aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2014-02-17 09:23:27 -0500
committerJason Cooper <jason@lakedaemon.net>2014-02-21 19:43:59 -0500
commit9aa30f1c13d1df2fc82ef0d0fd506306d8c8cef2 (patch)
tree839c1d5c4622ad6a35ea281273bdd7628ebb3f9e
parentca4a6f87150b2cec4feab2610ef7a0d6d7fcd800 (diff)
ARM: mvebu: add initial support for the Armada 380/385 SOCs
This commit adds the basic support for the Armada 380 and Armada 385 SOCs. These SoCs share most of their IP with the Armada 370/XP SoCs. The main difference is the use of a Cortex A9 CPU instead of the PJ4B CPU. The Armada 380 is a single core Cortex-A9, while the Armada 385 is a dual-core Cortex-A9. The support is introduced in board-v7.c, together with Armada 370/XP, but a separate DT structure is added, because Armada 38x will need a different set of SMP operations when the SMP support is introduced. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
-rw-r--r--Documentation/devicetree/bindings/arm/armada-38x.txt10
-rw-r--r--arch/arm/mach-mvebu/Kconfig14
-rw-r--r--arch/arm/mach-mvebu/board-v7.c12
3 files changed, 36 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/arm/armada-38x.txt b/Documentation/devicetree/bindings/arm/armada-38x.txt
new file mode 100644
index 000000000000..11f2330a6554
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/armada-38x.txt
@@ -0,0 +1,10 @@
1Marvell Armada 38x Platforms Device Tree Bindings
2-------------------------------------------------
3
4Boards with a SoC of the Marvell Armada 38x family shall have the
5following property:
6
7Required root node property:
8
9 - compatible: must contain either "marvell,armada380" or
10 "marvell,armada385" depending on the variant of the SoC being used.
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
index 3b74a8450947..884b275ab056 100644
--- a/arch/arm/mach-mvebu/Kconfig
+++ b/arch/arm/mach-mvebu/Kconfig
@@ -51,6 +51,20 @@ config MACH_ARMADA_375
51 Say 'Y' here if you want your kernel to support boards based 51 Say 'Y' here if you want your kernel to support boards based
52 on the Marvell Armada 375 SoC with device tree. 52 on the Marvell Armada 375 SoC with device tree.
53 53
54config MACH_ARMADA_38X
55 bool "Marvell Armada 380/385 boards"
56 select ARM_ERRATA_720789
57 select ARM_ERRATA_753970
58 select ARM_GIC
59 select ARMADA_38X_CLK
60 select CPU_V7
61 select MACH_MVEBU_V7
62 select NEON
63 select PINCTRL_ARMADA_38X
64 help
65 Say 'Y' here if you want your kernel to support boards based
66 on the Marvell Armada 380/385 SoC with device tree.
67
54config MACH_ARMADA_XP 68config MACH_ARMADA_XP
55 bool "Marvell Armada XP boards" 69 bool "Marvell Armada XP boards"
56 select ARMADA_XP_CLK 70 select ARMADA_XP_CLK
diff --git a/arch/arm/mach-mvebu/board-v7.c b/arch/arm/mach-mvebu/board-v7.c
index 087668c7d46a..746134ecdfc2 100644
--- a/arch/arm/mach-mvebu/board-v7.c
+++ b/arch/arm/mach-mvebu/board-v7.c
@@ -125,3 +125,15 @@ DT_MACHINE_START(ARMADA_375_DT, "Marvell Armada 375 (Device Tree)")
125 .restart = mvebu_restart, 125 .restart = mvebu_restart,
126 .dt_compat = armada_375_dt_compat, 126 .dt_compat = armada_375_dt_compat,
127MACHINE_END 127MACHINE_END
128
129static const char * const armada_38x_dt_compat[] = {
130 "marvell,armada380",
131 "marvell,armada385",
132 NULL,
133};
134
135DT_MACHINE_START(ARMADA_38X_DT, "Marvell Armada 380/385 (Device Tree)")
136 .init_time = mvebu_timer_and_clk_init,
137 .restart = mvebu_restart,
138 .dt_compat = armada_38x_dt_compat,
139MACHINE_END