summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorBo Shen <voice.shen@atmel.com>2014-03-28 17:22:55 +0800
committerSascha Hauer <s.hauer@pengutronix.de>2014-03-31 08:33:10 +0200
commit0d823930940e68c62c39076b46a158f85edd5832 (patch)
tree430b705d51ce8620cafd5636b046e2a2b0955ad2 /arch
parent06ac5fbe6cbcdc49909656b2cec5406f4964630b (diff)
downloadbarebox-0d823930940e68c62c39076b46a158f85edd5832.tar.gz
barebox-0d823930940e68c62c39076b46a158f85edd5832.tar.xz
ARM: at91: add sama5d36 SoC support
SAMA5D36 SoC is a sub type of SAMA5D3 which has two Ethernets Signed-off-by: Bo Shen <voice.shen@atmel.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-at91/include/mach/cpu.h5
-rw-r--r--arch/arm/mach-at91/sama5d3.c6
-rw-r--r--arch/arm/mach-at91/setup.c3
3 files changed, 11 insertions, 3 deletions
diff --git a/arch/arm/mach-at91/include/mach/cpu.h b/arch/arm/mach-at91/include/mach/cpu.h
index 7132489132..0e213ce9da 100644
--- a/arch/arm/mach-at91/include/mach/cpu.h
+++ b/arch/arm/mach-at91/include/mach/cpu.h
@@ -52,6 +52,7 @@
#define ARCH_EXID_SAMA5D33 0x00414300
#define ARCH_EXID_SAMA5D34 0x00414301
#define ARCH_EXID_SAMA5D35 0x00584300
+#define ARCH_EXID_SAMA5D36 0x00004301
#define ARCH_FAMILY_AT91X92 0x09200000
#define ARCH_FAMILY_AT91SAM9 0x01900000
@@ -104,7 +105,7 @@ enum at91_soc_subtype {
/* SAMA5D3 */
AT91_SOC_SAMA5D31, AT91_SOC_SAMA5D33, AT91_SOC_SAMA5D34,
- AT91_SOC_SAMA5D35,
+ AT91_SOC_SAMA5D35, AT91_SOC_SAMA5D36,
/* Unknown subtype */
AT91_SOC_SUBTYPE_NONE
@@ -206,12 +207,14 @@ static inline int at91_soc_is_detected(void)
#define cpu_is_sama5d33() (at91_soc_initdata.subtype == AT91_SOC_SAMA5D33)
#define cpu_is_sama5d34() (at91_soc_initdata.subtype == AT91_SOC_SAMA5D34)
#define cpu_is_sama5d35() (at91_soc_initdata.subtype == AT91_SOC_SAMA5D35)
+#define cpu_is_sama5d36() (at91_soc_initdata.subtype == AT91_SOC_SAMA5D36)
#else
#define cpu_is_sama5d3() (0)
#define cpu_is_sama5d31() (0)
#define cpu_is_sama5d33() (0)
#define cpu_is_sama5d34() (0)
#define cpu_is_sama5d35() (0)
+#define cpu_is_sama5d36() (0)
#endif
/*
diff --git a/arch/arm/mach-at91/sama5d3.c b/arch/arm/mach-at91/sama5d3.c
index 1bfae14f63..85efb2d78f 100644
--- a/arch/arm/mach-at91/sama5d3.c
+++ b/arch/arm/mach-at91/sama5d3.c
@@ -348,11 +348,13 @@ static void __init sama5d3_register_clocks(void)
if ( cpu_is_sama5d33()
|| cpu_is_sama5d34()
- || cpu_is_sama5d35() )
+ || cpu_is_sama5d35()
+ || cpu_is_sama5d36())
clk_register(&macb0_clk);
if ( cpu_is_sama5d31()
- || cpu_is_sama5d35() )
+ || cpu_is_sama5d35()
+ || cpu_is_sama5d36())
clk_register(&macb1_clk);
if (!cpu_is_sama5d35())
diff --git a/arch/arm/mach-at91/setup.c b/arch/arm/mach-at91/setup.c
index 65d0588b43..7a7de98045 100644
--- a/arch/arm/mach-at91/setup.c
+++ b/arch/arm/mach-at91/setup.c
@@ -162,6 +162,8 @@ static void __init soc_detect(u32 dbgu_base)
break;
case ARCH_EXID_SAMA5D35:
at91_soc_initdata.subtype = AT91_SOC_SAMA5D35;
+ case ARCH_EXID_SAMA5D36:
+ at91_soc_initdata.subtype = AT91_SOC_SAMA5D36;
break;
}
}
@@ -205,6 +207,7 @@ static const char *soc_subtype_name[] = {
[AT91_SOC_SAMA5D33] = "sama5d33",
[AT91_SOC_SAMA5D34] = "sama5d34",
[AT91_SOC_SAMA5D35] = "sama5d35",
+ [AT91_SOC_SAMA5D36] = "sama5d36",
[AT91_SOC_SUBTYPE_NONE] = "Unknown"
};