Hi Thomas, On 20/02/2015 18:04, Thomas Petazzoni wrote: > This commit adds the core support for Armada 39x, which is quite > simple: > > - a new Kconfig option which selects the appropriate clock and > pinctrl drivers as well as other common features (GIC, L2 cache, > SMP, etc.) > > - a new DT_MACHINE_START which references the top-level compatible > strings supported for the Marvell Armada 39x. > > - a new SMP enable-method. The mechanism to enable CPUs for Armada > 39x appears to be the same as Armada 38x. However, we do not want > to use marvell,armada-380-smp in the Device Tree, in the case of > the discovery of a subtle difference in the future, which would > require changing the Device Tree. And the enable-method isn't a > compatible string: you can't specify several values and expect a > fallback on the second string if the first one isn't > supported. Therefore, we simply declare the SMP enable method > "marvell,armada-390-smp" as doing the same thing as the > "marvell,armada-380-smp" one. > > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx> > --- > arch/arm/mach-mvebu/Kconfig | 14 ++++++++++++++ > arch/arm/mach-mvebu/board-v7.c | 14 ++++++++++++++ > arch/arm/mach-mvebu/platsmp-a9.c | 2 ++ > 3 files changed, 30 insertions(+) > > diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig > index c1e4567..9747316 100644 > --- a/arch/arm/mach-mvebu/Kconfig > +++ b/arch/arm/mach-mvebu/Kconfig > @@ -64,6 +64,20 @@ config MACH_ARMADA_38X > 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_39X > + bool "Marvell Armada 39x boards" if ARCH_MULTI_V7 As you don't select it by default we should update the mvebu_v7_defconfig with this symbol. Thanks, Gregory > + select ARM_GIC > + select ARMADA_39X_CLK > + select CACHE_L2X0 > + select HAVE_ARM_SCU > + select HAVE_ARM_TWD if SMP > + select HAVE_SMP > + select MACH_MVEBU_V7 > + select PINCTRL_ARMADA_39X > + help > + Say 'Y' here if you want your kernel to support boards based > + on the Marvell Armada 39x SoC with device tree. > + > config MACH_ARMADA_XP > bool "Marvell Armada XP boards" if ARCH_MULTI_V7 > select ARMADA_XP_CLK > diff --git a/arch/arm/mach-mvebu/board-v7.c b/arch/arm/mach-mvebu/board-v7.c > index 31b66f2..afee908 100644 > --- a/arch/arm/mach-mvebu/board-v7.c > +++ b/arch/arm/mach-mvebu/board-v7.c > @@ -232,3 +232,17 @@ DT_MACHINE_START(ARMADA_38X_DT, "Marvell Armada 380/385 (Device Tree)") > .restart = mvebu_restart, > .dt_compat = armada_38x_dt_compat, > MACHINE_END > + > +static const char * const armada_39x_dt_compat[] __initconst = { > + "marvell,armada390", > + "marvell,armada398", > + NULL, > +}; > + > +DT_MACHINE_START(ARMADA_39X_DT, "Marvell Armada 39x (Device Tree)") > + .l2c_aux_val = 0, > + .l2c_aux_mask = ~0, > + .init_irq = mvebu_init_irq, > + .restart = mvebu_restart, > + .dt_compat = armada_39x_dt_compat, > +MACHINE_END > diff --git a/arch/arm/mach-mvebu/platsmp-a9.c b/arch/arm/mach-mvebu/platsmp-a9.c > index 2ec1a42..df0a9cc 100644 > --- a/arch/arm/mach-mvebu/platsmp-a9.c > +++ b/arch/arm/mach-mvebu/platsmp-a9.c > @@ -110,3 +110,5 @@ CPU_METHOD_OF_DECLARE(mvebu_armada_375_smp, "marvell,armada-375-smp", > &mvebu_cortex_a9_smp_ops); > CPU_METHOD_OF_DECLARE(mvebu_armada_380_smp, "marvell,armada-380-smp", > &armada_38x_smp_ops); > +CPU_METHOD_OF_DECLARE(mvebu_armada_390_smp, "marvell,armada-390-smp", > + &armada_38x_smp_ops); > -- Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html