Thread (2 messages) flat view 2 messages, 2 authors, 2014-07-03

[PATCH 4/5] ARM: imx: Add initial support for Freescale LS1021A

From: mark.rutland@arm.com (Mark Rutland)
Date: 2014-07-02 11:21:25
Also in: linux-devicetree

On Wed, Jul 02, 2014 at 10:02:51AM +0100, Jingchang Lu wrote:
quoted hunk
From: Jingchang Lu <redacted>

The LS1021A SoC is a dual-core Cortex-A7 based processor,
this add the initial support for it.

Signed-off-by: Jingchang Lu <redacted>
---
 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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help