On Wed, Jul 02, 2014 at 10:02:51AM +0100, Jingchang Lu wrote: > From: Jingchang Lu <b35083@xxxxxxxxxxxxx> > > The LS1021A SoC is a dual-core Cortex-A7 based processor, > this add the initial support for it. > > Signed-off-by: Jingchang Lu <b35083@xxxxxxxxxxxxx> > --- > arch/arm/mach-imx/Kconfig | 17 ++++++++++++++ > arch/arm/mach-imx/Makefile | 2 ++ > arch/arm/mach-imx/mach-ls1021a.c | 49 ++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 68 insertions(+) > create mode 100644 arch/arm/mach-imx/mach-ls1021a.c > > diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig > index bdfe276..7f24892 100644 > --- a/arch/arm/mach-imx/Kconfig > +++ b/arch/arm/mach-imx/Kconfig > @@ -762,6 +762,23 @@ config SOC_VF610 > help > This enable support for Freescale Vybrid VF610 processor. > > +config FSL_SOC > + bool > + > +config SOC_LS1021A > + bool "Freescale LS1021A support" > + select CPU_V7 > + select ARM_GIC > + select CLKSRC_OF > + select HAVE_ARM_ARCH_TIMER > + select HAVE_SMP > + select FSL_SOC > + select MIGHT_HAVE_PCI > + select PCI_DOMAINS if PCI > + > + help > + This enable support for Freescale LS1021A processor. > + > endif > > source "arch/arm/mach-imx/devices/Kconfig" > diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile > index a364e20..f49cbdb 100644 > --- a/arch/arm/mach-imx/Makefile > +++ b/arch/arm/mach-imx/Makefile > @@ -114,4 +114,6 @@ obj-$(CONFIG_SOC_IMX53) += mach-imx53.o > > obj-$(CONFIG_SOC_VF610) += clk-vf610.o mach-vf610.o > > +obj-$(CONFIG_SOC_LS1021A) += mach-ls1021a.o > + > obj-y += devices/ > diff --git a/arch/arm/mach-imx/mach-ls1021a.c b/arch/arm/mach-imx/mach-ls1021a.c > new file mode 100644 > index 0000000..d1a9bb9 > --- /dev/null > +++ b/arch/arm/mach-imx/mach-ls1021a.c > @@ -0,0 +1,49 @@ > +/* > + * Copyright 2013-2014 Freescale Semiconductor, Inc. > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation; either version 2 of the License, or > + * (at your option) any later version. > + */ > + > +#include <linux/of_platform.h> > +#include <asm/mach/arch.h> > + > +#include "common.h" > + > +static const struct of_device_id of_ls1021a_match_table[] = { > + { > + .compatible = "simple-bus", > + }, > + { > + .compatible = "fsl,ifc", > + }, > + { > + .compatible = "fsl,fpga-qixis", > + }, > + { > + .compatible = "fsl,qe", > + }, > + {} > +}; Are any of thse not always-on (or default-on) MMIO busses? Is there any reason for not giving them their own drivers? > + > +static void __init ls1021a_init_machine(void) > +{ > + mxc_arch_reset_init_dt(); This looks to only be used to set up a watchdog timer. Is there any reason this logic can't be moved to the watchdog timer driver? > + of_platform_populate(NULL, of_ls1021a_match_table, NULL, NULL); > +} > + > +static const char *ls1021a_dt_compat[] __initdata = { > + "fsl,ls1021a", > + NULL, > +}; > + > +DT_MACHINE_START(LS1021A, "Freescale LS1021A") > +#ifdef CONFIG_ZONE_DMA > + .dma_zone_size = SZ_128M, > +#endif > + .init_machine = ls1021a_init_machine, > + .dt_compat = ls1021a_dt_compat, > + .restart = mxc_restart, AFAICT, that jsut uses the WDT for restart. Why can't the watchdog driver register itself as a restart device? That would bring us close to an empty machine descriptor, and enable reuse of the WDT and those busses. Thanks, Mark. -- 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