ARM: mvebu: add initial support for the Armada 380/385 SOCs
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Mon, 17 Feb 2014 14:23:27 +0000 (15:23 +0100)
committerJason Cooper <jason@lakedaemon.net>
Sat, 22 Feb 2014 00:43:59 +0000 (00:43 +0000)
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>
Documentation/devicetree/bindings/arm/armada-38x.txt [new file with mode: 0644]
arch/arm/mach-mvebu/Kconfig
arch/arm/mach-mvebu/board-v7.c

diff --git a/Documentation/devicetree/bindings/arm/armada-38x.txt b/Documentation/devicetree/bindings/arm/armada-38x.txt
new file mode 100644 (file)
index 0000000..11f2330
--- /dev/null
@@ -0,0 +1,10 @@
+Marvell Armada 38x Platforms Device Tree Bindings
+-------------------------------------------------
+
+Boards with a SoC of the Marvell Armada 38x family shall have the
+following property:
+
+Required root node property:
+
+ - compatible: must contain either "marvell,armada380" or
+   "marvell,armada385" depending on the variant of the SoC being used.
index 3b74a8450947541a2faa6fee52cb1d6185e1178f..884b275ab0567fda435cee31729c5b889360a4ed 100644 (file)
@@ -51,6 +51,20 @@ config MACH_ARMADA_375
          Say 'Y' here if you want your kernel to support boards based
          on the Marvell Armada 375 SoC with device tree.
 
+config MACH_ARMADA_38X
+       bool "Marvell Armada 380/385 boards"
+       select ARM_ERRATA_720789
+       select ARM_ERRATA_753970
+       select ARM_GIC
+       select ARMADA_38X_CLK
+       select CPU_V7
+       select MACH_MVEBU_V7
+       select NEON
+       select PINCTRL_ARMADA_38X
+       help
+         Say 'Y' here if you want your kernel to support boards based
+         on the Marvell Armada 380/385 SoC with device tree.
+
 config MACH_ARMADA_XP
        bool "Marvell Armada XP boards"
        select ARMADA_XP_CLK
index 087668c7d46a6b186b3f9c378155f9cff00a00f9..746134ecdfc2a8e9d6cd812682761dbc7fb8e57a 100644 (file)
@@ -125,3 +125,15 @@ DT_MACHINE_START(ARMADA_375_DT, "Marvell Armada 375 (Device Tree)")
        .restart        = mvebu_restart,
        .dt_compat      = armada_375_dt_compat,
 MACHINE_END
+
+static const char * const armada_38x_dt_compat[] = {
+       "marvell,armada380",
+       "marvell,armada385",
+       NULL,
+};
+
+DT_MACHINE_START(ARMADA_38X_DT, "Marvell Armada 380/385 (Device Tree)")
+       .init_time      = mvebu_timer_and_clk_init,
+       .restart        = mvebu_restart,
+       .dt_compat      = armada_38x_dt_compat,
+MACHINE_END