ARM: i.MX1: Add devicetree support
authorAlexander Shiyan <shc_work@mail.ru>
Sat, 26 Jul 2014 09:45:28 +0000 (13:45 +0400)
committerShawn Guo <shawn.guo@freescale.com>
Tue, 16 Sep 2014 02:06:44 +0000 (10:06 +0800)
This patch adds basic devicetree support for i.MX1 based SoCs.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
arch/arm/mach-imx/Kconfig
arch/arm/mach-imx/Makefile
arch/arm/mach-imx/imx1-dt.c [new file with mode: 0644]

index 4e9b4f63d42b275daf245b26ac752623684a8d8a..11b2957f792ba63211dccb975b1d66eacd472e0a 100644 (file)
@@ -69,6 +69,7 @@ config SOC_IMX1
        select CPU_ARM920T
        select IMX_HAVE_IOMUX_V1
        select MXC_AVIC
+       select PINCTRL_IMX1
 
 config SOC_IMX21
        bool
@@ -124,6 +125,13 @@ config MACH_APF9328
        help
          Say Yes here if you are using the Armadeus APF9328 development board
 
+config MACH_IMX1_DT
+       bool "Support i.MX1 platforms from device tree"
+       select SOC_IMX1
+       help
+         Include support for Freescale i.MX1 based platforms
+         using the device tree for discovery.
+
 endif
 
 if ARCH_MULTI_V5
index 4147729775d23ff4fa986a4f8db7f8cabeab51bf..ef215d108e4d29bd01f627f03b5e985956b14662 100644 (file)
@@ -43,6 +43,7 @@ endif
 # i.MX1 based machines
 obj-$(CONFIG_MACH_SCB9328) += mach-scb9328.o
 obj-$(CONFIG_MACH_APF9328) += mach-apf9328.o
+obj-$(CONFIG_MACH_IMX1_DT) += imx1-dt.o
 
 # i.MX21 based machines
 obj-$(CONFIG_MACH_MX21ADS) += mach-mx21ads.o
diff --git a/arch/arm/mach-imx/imx1-dt.c b/arch/arm/mach-imx/imx1-dt.c
new file mode 100644 (file)
index 0000000..6f915b0
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ *  Copyright (C) 2014 Alexander Shiyan <shc_work@mail.ru>
+ *
+ * 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 char * const imx1_dt_board_compat[] __initconst = {
+       "fsl,imx1",
+       NULL
+};
+
+DT_MACHINE_START(IMX1_DT, "Freescale i.MX1 (Device Tree Support)")
+       .map_io         = mx1_map_io,
+       .init_early     = imx1_init_early,
+       .init_irq       = mx1_init_irq,
+       .dt_compat      = imx1_dt_board_compat,
+       .restart        = mxc_restart,
+MACHINE_END