xref: /OK3568_Linux_fs/u-boot/arch/arm/mach-at91/atmel_sfr.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Copyright (C) 2015 Atmel Corporation
3*4882a593Smuzhiyun  *		      Wenyou Yang <wenyou.yang@atmel.com>
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0+
6*4882a593Smuzhiyun  */
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #include <common.h>
9*4882a593Smuzhiyun #include <asm/io.h>
10*4882a593Smuzhiyun #include <asm/arch/sama5_sfr.h>
11*4882a593Smuzhiyun 
redirect_int_from_saic_to_aic(void)12*4882a593Smuzhiyun void redirect_int_from_saic_to_aic(void)
13*4882a593Smuzhiyun {
14*4882a593Smuzhiyun 	struct atmel_sfr *sfr = (struct atmel_sfr *)ATMEL_BASE_SFR;
15*4882a593Smuzhiyun 	u32 key32;
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun 	if (!(readl(&sfr->aicredir) & ATMEL_SFR_AICREDIR_NSAIC)) {
18*4882a593Smuzhiyun 		key32 = readl(&sfr->sn1) ^ ATMEL_SFR_AICREDIR_KEY;
19*4882a593Smuzhiyun 		writel((key32 | ATMEL_SFR_AICREDIR_NSAIC), &sfr->aicredir);
20*4882a593Smuzhiyun 	}
21*4882a593Smuzhiyun }
22*4882a593Smuzhiyun 
configure_2nd_sram_as_l2_cache(void)23*4882a593Smuzhiyun void configure_2nd_sram_as_l2_cache(void)
24*4882a593Smuzhiyun {
25*4882a593Smuzhiyun 	struct atmel_sfr *sfr = (struct atmel_sfr *)ATMEL_BASE_SFR;
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun 	writel(1, &sfr->l2cc_hramc);
28*4882a593Smuzhiyun }
29