arm: at91/spl: atmel_sfr: move saic redirect to separate file
authorWenyou Yang <wenyou.yang@atmel.com>
Thu, 5 Nov 2015 08:37:53 +0000 (16:37 +0800)
committerAndreas Bießmann <andreas.devel@googlemail.com>
Mon, 30 Nov 2015 21:27:55 +0000 (22:27 +0100)
To make saic redirect code sharing with other SoCs, move the
saic redirect code from SAMA5D4 particular file,
mach-at91/armv7/sama5d4_devices.c to a separate file,
mach-at91/atmel_sfr.c

Move ATMEL_SFR_AICREDIR_KEY definition to sama5d4.h, because each
SoC has its own value.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
Reviewed-by: Andreas Bießmann <andreas.devel@googlemail.com>
arch/arm/mach-at91/Makefile
arch/arm/mach-at91/armv7/sama5d4_devices.c
arch/arm/mach-at91/atmel_sfr.c [new file with mode: 0644]
arch/arm/mach-at91/include/mach/sama5_sfr.h
arch/arm/mach-at91/include/mach/sama5d4.h

index 49e14e82573c4ec1f8d1a52e1c397664865f1dfb..5b89617623e7ed7771124e6b1ab399d9f7b47f9e 100644 (file)
@@ -10,7 +10,7 @@ obj-$(CONFIG_AT91SAM9M10G45) += mpddrc.o spl_at91.o
 obj-$(CONFIG_AT91SAM9N12) += mpddrc.o spl_at91.o
 obj-$(CONFIG_AT91SAM9X5) += mpddrc.o spl_at91.o
 obj-$(CONFIG_SAMA5D3) += mpddrc.o spl_atmel.o
-obj-$(CONFIG_SAMA5D4) += mpddrc.o spl_atmel.o matrix.o
+obj-$(CONFIG_SAMA5D4) += mpddrc.o spl_atmel.o matrix.o atmel_sfr.o
 obj-y += spl.o
 endif
 
index 52f486289d9a217f457399f6c54f804c4e6b37a2..ce33cd4988885c76a8432cd683e95041828c6e0e 100644 (file)
@@ -45,16 +45,3 @@ void at91_udp_hw_init(void)
        at91_periph_clk_enable(ATMEL_ID_UDPHS);
 }
 #endif
-
-#ifdef CONFIG_SPL_BUILD
-void redirect_int_from_saic_to_aic(void)
-{
-       struct atmel_sfr *sfr = (struct atmel_sfr *)ATMEL_BASE_SFR;
-       u32 key32;
-
-       if (!(readl(&sfr->aicredir) & ATMEL_SFR_AICREDIR_NSAIC)) {
-               key32 = readl(&sfr->sn1) ^ ATMEL_SFR_AICREDIR_KEY;
-               writel((key32 | ATMEL_SFR_AICREDIR_NSAIC), &sfr->aicredir);
-       }
-}
-#endif
diff --git a/arch/arm/mach-at91/atmel_sfr.c b/arch/arm/mach-at91/atmel_sfr.c
new file mode 100644 (file)
index 0000000..2bccb84
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2015 Atmel Corporation
+ *                   Wenyou Yang <wenyou.yang@atmel.com>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <common.h>
+#include <asm/io.h>
+#include <asm/arch/sama5_sfr.h>
+
+void redirect_int_from_saic_to_aic(void)
+{
+       struct atmel_sfr *sfr = (struct atmel_sfr *)ATMEL_BASE_SFR;
+       u32 key32;
+
+       if (!(readl(&sfr->aicredir) & ATMEL_SFR_AICREDIR_NSAIC)) {
+               key32 = readl(&sfr->sn1) ^ ATMEL_SFR_AICREDIR_KEY;
+               writel((key32 | ATMEL_SFR_AICREDIR_NSAIC), &sfr->aicredir);
+       }
+}
index 3081d3757186c10332c7da43c5cc59af5993d4f4..7b19a20a4e011c22bdf57f8fb1f5d081a6ff60c1 100644 (file)
@@ -32,7 +32,6 @@ struct atmel_sfr {
 #define ATMEL_SFR_DDRCFG_FDQSIEN       0x00020000
 
 /* Bit field in AICREDIR */
-#define ATMEL_SFR_AICREDIR_KEY         0x5F67B102
 #define ATMEL_SFR_AICREDIR_NSAIC       0x00000001
 
 #endif
index 449cf0ede3b2703c34670d4813f07faa4796693c..90085da1c6e62970feee38c2a9ff82a5f37bca5d 100644 (file)
 #define H32MX_SLAVE_USB                        5       /* USB Device & Host */
 #define H32MX_SLAVE_SMD                        6       /* Soft Modem (SMD) */
 
+/* AICREDIR Unlock Key */
+#define ATMEL_SFR_AICREDIR_KEY         0x5F67B102
+
 /* sama5d4 series chip id definitions */
 #define ARCH_ID_SAMA5D4                0x8a5c07c0
 #define ARCH_EXID_SAMA5D41     0x00000001