All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shawn Guo <shawn.guo@linaro.org>
To: linux-arm-kernel@lists.infradead.org
Cc: Grant Likely <grant.likely@secretlab.ca>,
	devicetree-discuss@lists.ozlabs.org,
	Shawn Guo <shawn.guo@linaro.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	patches@linaro.org
Subject: [PATCH 2/2] arm/mx5: add device tree support for imx53 boards
Date: Mon, 25 Jul 2011 23:07:47 +0800	[thread overview]
Message-ID: <1311606467-28985-3-git-send-email-shawn.guo@linaro.org> (raw)
In-Reply-To: <1311606467-28985-1-git-send-email-shawn.guo@linaro.org>

It adds device tree support for imx53 boards.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
---
 .../devicetree/bindings/arm/fsl/boards.txt         |   15 +
 arch/arm/boot/dts/imx53-ard.dts                    |  365 +++++++
 arch/arm/boot/dts/imx53-evk.dts                    |  354 +++++++
 arch/arm/boot/dts/imx53-qsb.dts                    |  358 +++++++
 arch/arm/boot/dts/imx53-smd.dts                    |  444 +++++++++
 arch/arm/boot/dts/imx53.dtsi                       | 1044 ++++++++++++++++++++
 arch/arm/mach-mx5/Kconfig                          |    8 +
 arch/arm/mach-mx5/Makefile                         |    1 +
 arch/arm/mach-mx5/imx53-dt.c                       |  128 +++
 9 files changed, 2717 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/fsl/boards.txt
 create mode 100644 arch/arm/boot/dts/imx53-ard.dts
 create mode 100644 arch/arm/boot/dts/imx53-evk.dts
 create mode 100644 arch/arm/boot/dts/imx53-qsb.dts
 create mode 100644 arch/arm/boot/dts/imx53-smd.dts
 create mode 100644 arch/arm/boot/dts/imx53.dtsi
 create mode 100644 arch/arm/mach-mx5/imx53-dt.c

diff --git a/Documentation/devicetree/bindings/arm/fsl/boards.txt b/Documentation/devicetree/bindings/arm/fsl/boards.txt
new file mode 100644
index 0000000..7603905
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/fsl/boards.txt
@@ -0,0 +1,15 @@
+i.MX53 Automotive Reference Design Board
+Required root node properties:
+    - compatible = "fsl,mx53-ard", "fsl,mx53";
+
+i.MX53 Evaluation Kit
+Required root node properties:
+    - compatible = "fsl,mx53-evk", "fsl,mx53";
+
+i.MX53 Quick Start Board
+Required root node properties:
+    - compatible = "fsl,mx53-qsb", "fsl,mx53";
+
+i.MX53 Smart Mobile Reference Design Board
+Required root node properties:
+    - compatible = "fsl,mx53-smd", "fsl,mx53";
diff --git a/arch/arm/boot/dts/imx53-ard.dts b/arch/arm/boot/dts/imx53-ard.dts
new file mode 100644
index 0000000..6a007f1
--- /dev/null
+++ b/arch/arm/boot/dts/imx53-ard.dts
@@ -0,0 +1,365 @@
+/*
+ * Copyright 2011 Freescale Semiconductor, Inc.
+ * Copyright 2011 Linaro Ltd.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+/include/ "imx53.dtsi"
+
+/ {
+	model = "Freescale i.MX53 Automotive Reference Design Board";
+	compatible = "fsl,imx53-ard", "fsl,imx53";
+
+	chosen {
+		bootargs = "console=ttymxc0,115200 root=/dev/mmcblk0p3 rootwait";
+	};
+
+	memory {
+		reg = <0x70000000 0x40000000>;
+	};
+
+	aips@50000000 { /* AIPS1 */
+		spba@50000000 {
+			esdhc@50004000 { /* ESDHC1 */
+				cd-gpios = <&gpio0 1 0>; /* GPIO1_1 */
+				wp-gpios = <&gpio0 9 0>; /* GPIO1_9 */
+			};
+
+			esdhc@50008000 { /* ESDHC2 */
+				status = "disabled";
+			};
+
+			uart2: uart@5000c000 { /* UART3 */
+				status = "disabled";
+			};
+
+			ecspi@50010000 { /* ECSPI1 */
+				status = "disabled";
+			};
+
+			esdhc@50020000 { /* ESDHC3 */
+				status = "disabled";
+			};
+
+			esdhc@50024000 { /* ESDHC4 */
+				status = "disabled";
+			};
+		};
+
+		iomuxc@53fa8000 {
+			#address-cells = <2>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-iomuxc";
+			reg = <0x53fa8000 0x4000>;
+
+			/*
+			 * UART1
+			 */
+			pata-diow { /* UART1_TXD_MUX */
+				fsl,iomuxc-mux-mode = <3>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-dmack { /* UART1_RXD_MUX */
+				fsl,iomuxc-mux-mode = <3>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+				fsl,iomuxc-select-input = <0x878 0x3>;
+			};
+
+			/*
+			 * EIM CS1
+			 */
+			eim-d16 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d17 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d18 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d19 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d20 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d21 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d22 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d23 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d24 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d25 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d26 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d27 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d28 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d29 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d30 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d31 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-da0 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-da1 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-da2 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-da3 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-da4 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-da5 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-da6 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-oe {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-rw {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-cs1 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-eb3 { /* GPIO2_31: ETHERNET_INT_B */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * SD1
+			 */
+			sd1-cmd {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-clk {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data0 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data1 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data2 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data3 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data8 { /* ESDHC1_DAT4 */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data9 { /* ESDHC1_DAT5 */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data10 { /* ESDHC1_DAT6 */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data11 { /* ESDHC1_DAT7 */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			gpio-1 { /* GPIO1_1: SD1_CD */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			gpio-9 { /* GPIO1_9: SD1_WP */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * Buttons
+			 */
+			disp0-dat16 { /* GPIO5_10: Home */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			disp0-dat17 { /* GPIO5_11: Back */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			disp0-dat18 { /* GPIO5_12: Program */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			disp0-dat19 { /* GPIO5_13: Volumn Up */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			gpio-10 { /* GPIO4_0: Volume Down */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+		};
+
+		uart1: uart@53fc0000 { /* UART2 */
+			status = "disabled";
+		};
+
+		i2c@53fec000 { /* I2C3 */
+			status = "disabled";
+		};
+
+		uart3: uart@53ff0000 { /* UART4 */
+			status = "disabled";
+		};
+	};
+
+	aips@60000000 {	/* AIPS2 */
+		uart4: uart@63f90000 { /* UART5 */
+			status = "disabled";
+		};
+
+		ecspi@63fac000 { /* ECSPI2 */
+			status = "disabled";
+		};
+
+		cspi@63fc0000 {
+			status = "disabled";
+		};
+
+		i2c@63fc4000 { /* I2C2 */
+			status = "disabled";
+		};
+
+		i2c@63fc8000 { /* I2C1 */
+			status = "disabled";
+		};
+
+		fec@63fec000 {
+			status = "disabled";
+		};
+	};
+
+	eim-cs1@f4000000 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "fsl,eim-bus", "simple-bus";
+		reg = <0xf4000000 0x3ff0000>;
+		ranges;
+
+		lan9220@f4000000 {
+			compatible = "smsc,lan9220", "smsc,lan";
+			reg = <0xf4000000 0x2000000>;
+			phy-mode = "mii";
+			smsc-int-gpios = <&gpio1 31 0>; /* GPIO2_31 */
+			smsc,irq-push-pull;
+			smsc,access-in-32bit;
+		};
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		home {
+			label = "Home";
+			gpios = <&gpio4 10 0>; /* GPIO5_10 */
+			linux,code = <102>; /* KEY_HOME */
+			gpio-key,wakeup;
+		};
+
+		back {
+			label = "Back";
+			gpios = <&gpio4 11 0>; /* GPIO5_11 */
+			linux,code = <158>; /* KEY_BACK */
+			gpio-key,wakeup;
+		};
+
+		program {
+			label = "Program";
+			gpios = <&gpio4 12 0>; /* GPIO5_12 */
+			linux,code = <362>; /* KEY_PROGRAM */
+			gpio-key,wakeup;
+		};
+
+		volume-up {
+			label = "Volume Up";
+			gpios = <&gpio4 13 0>; /* GPIO5_13 */
+			linux,code = <115>; /* KEY_VOLUMEUP */
+		};
+
+		volume-down {
+			label = "Volume Down";
+			gpios = <&gpio3 0 0>; /* GPIO4_0 */
+			linux,code = <114>; /* KEY_VOLUMEDOWN */
+		};
+	};
+};
diff --git a/arch/arm/boot/dts/imx53-evk.dts b/arch/arm/boot/dts/imx53-evk.dts
new file mode 100644
index 0000000..1761e38
--- /dev/null
+++ b/arch/arm/boot/dts/imx53-evk.dts
@@ -0,0 +1,354 @@
+/*
+ * Copyright 2011 Freescale Semiconductor, Inc.
+ * Copyright 2011 Linaro Ltd.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+/include/ "imx53.dtsi"
+
+/ {
+	model = "Freescale i.MX53 Evaluation Kit";
+	compatible = "fsl,imx53-evk", "fsl,imx53";
+
+	chosen {
+		bootargs = "console=ttymxc0,115200 root=/dev/mmcblk0p3 rootwait";
+	};
+
+	memory {
+		reg = <0x70000000 0x80000000>;
+	};
+
+	aips@50000000 { /* AIPS1 */
+		spba@50000000 {
+			esdhc@50004000 { /* ESDHC1 */
+				cd-gpios = <&gpio2 13 0>; /* GPIO3_13 */
+				wp-gpios = <&gpio2 14 0>; /* GPIO3_14 */
+			};
+
+			esdhc@50008000 { /* ESDHC2 */
+				status = "disabled";
+			};
+
+			uart2: uart@5000c000 { /* UART3 */
+				status = "disabled";
+			};
+
+			ecspi@50010000 { /* ECSPI1 */
+				fsl,spi-num-chipselects = <2>;
+				cs-gpios = <&gpio1 30 0>, /* GPIO2_30 */
+					   <&gpio2 19 0>; /* GPIO3_19 */
+
+				flash: at45db321d@1 {
+					#address-cells = <1>;
+					#size-cells = <1>;
+					compatible = "atmel,at45db321d", "atmel,at45", "atmel,dataflash";
+					spi-max-frequency = <25000000>;
+					reg = <1>;
+
+					partition@0 {
+						label = "U-Boot";
+						reg = <0x0 0x40000>;
+						read-only;
+					};
+
+					partition@40000 {
+						label = "Kernel";
+						reg = <0x40000 0x3c0000>;
+					};
+				};
+			};
+
+			esdhc@50020000 { /* ESDHC3 */
+				cd-gpios = <&gpio2 11 0>; /* GPIO3_11 */
+				wp-gpios = <&gpio2 12 0>; /* GPIO3_12 */
+			};
+
+			esdhc@50024000 { /* ESDHC4 */
+				status = "disabled";
+			};
+		};
+
+		iomuxc@53fa8000 {
+			#address-cells = <2>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-iomuxc";
+			reg = <0x53fa8000 0x4000>;
+
+			/*
+			 * UART1
+			 */
+			csi0-dat10 { /* UART1_TXD_MUX */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			csi0-dat11 { /* UART1_RXD_MUX */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			/*
+			 * FEC
+			 */
+			fec-mdc {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-mdio {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-select-input = <0x804 0x1>;
+			};
+
+			fec-ref-clk {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rx-er {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-crs-dv {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rxd1 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rxd0 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-tx-en {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-txd1 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-txd0 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			pdata-da-0 { /* GPIO7_6: FEC_nRST */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * I2C2
+			 */
+			key-col3 { /* I2C2_SCL */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x81c 0x0>;
+			};
+
+			key-row3 { /* I2C2_SDA */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x820 0x0>;
+			};
+
+			/*
+			 * ECSPI1
+			 */
+			eim-d16 { /* ECSPI1_SCLK */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-select-input = <0x79c 0x3>;
+			};
+
+			eim-d17 { /* ECSPI1_MISO */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-select-input = <0x7a0 0x3>;
+			};
+
+			eim-d18 { /* ECSPI1_MOSI */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-select-input = <0x7a4 0x3>;
+			};
+
+			eim-eb2 { /* GPIO2_30: eCSPI1_SS0 */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			eim-d19 { /* GPIO3_19: eCSPI1_SS1 */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * SD1
+			 */
+			sd1-cmd {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-clk {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data0 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data1 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data2 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data3 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			eim-da13 { /* GPIO3_13: SD1_CD */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			eim-da14 { /* GPIO3_14: SD1_WP */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * SD3
+			 */
+			pata-reset-b { /* ESDHC3_CMD */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-iordy { /* ESDHC3_CLK */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data8 { /* ESDHC3_DAT0 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data9 { /* ESDHC3_DAT1 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data10 { /* ESDHC3_DAT2 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data11 { /* ESDHC3_DAT3 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data0 { /* ESDHC3_DAT4 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data1 { /* ESDHC3_DAT5 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data2 { /* ESDHC3_DAT6 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data3 { /* ESDHC3_DAT7 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			eim-da11 { /* GPIO3_11: SD3_CD */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			eim-da12 { /* GPIO3_12: SD3_WP */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * LED
+			 */
+			pata-da-1 { /* GPIO7_7: GPIO_LED */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+		};
+
+		uart1: uart@53fc0000 { /* UART2 */
+			status = "disabled";
+		};
+
+		i2c@53fec000 { /* I2C3 */
+			status = "disabled";
+		};
+
+		uart3: uart@53ff0000 { /* UART4 */
+			status = "disabled";
+		};
+	};
+
+	aips@60000000 {	/* AIPS2 */
+		uart4: uart@63f90000 { /* UART5 */
+			status = "disabled";
+		};
+
+		ecspi@63fac000 { /* ECSPI2 */
+			status = "disabled";
+		};
+
+		cspi@63fc0000 {
+			status = "disabled";
+		};
+
+		i2c@63fc4000 { /* I2C2 */
+			pmic: mc13892@08 {
+				compatible = "fsl,mc13892", "fsl,mc13xxx";
+				reg = <0x08>;
+			};
+
+			codec: sgtl5000@0a {
+				compatible = "fsl,sgtl5000";
+				reg = <0x0a>;
+			};
+		};
+
+		i2c@63fc8000 { /* I2C1 */
+			status = "disabled";
+		};
+
+		fec@63fec000 {
+			phy-mode = "rmii";
+			phy-reset-gpios = <&gpio6 6 0>; /* GPIO7_6 */
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		green {
+			label = "Heartbeat";
+			gpios = <&gpio6 7 0>; /* GPIO7_7 */
+			linux,default-trigger = "heartbeat";
+		};
+	};
+};
diff --git a/arch/arm/boot/dts/imx53-qsb.dts b/arch/arm/boot/dts/imx53-qsb.dts
new file mode 100644
index 0000000..41125fa
--- /dev/null
+++ b/arch/arm/boot/dts/imx53-qsb.dts
@@ -0,0 +1,358 @@
+/*
+ * Copyright 2011 Freescale Semiconductor, Inc.
+ * Copyright 2011 Linaro Ltd.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+/include/ "imx53.dtsi"
+
+/ {
+	model = "Freescale i.MX53 Quick Start Board";
+	compatible = "fsl,imx53-qsb", "fsl,imx53";
+
+	chosen {
+		bootargs = "console=ttymxc0,115200 root=/dev/mmcblk0p3 rootwait";
+	};
+
+	memory {
+		reg = <0x70000000 0x40000000>;
+	};
+
+	aips@50000000 { /* AIPS1 */
+		spba@50000000 {
+			esdhc@50004000 { /* ESDHC1 */
+				cd-gpios = <&gpio2 13 0>; /* GPIO3_13 */
+			};
+
+			esdhc@50008000 { /* ESDHC2 */
+				status = "disabled";
+			};
+
+			uart2: uart@5000c000 { /* UART3 */
+				status = "disabled";
+			};
+
+			ecspi@50010000 { /* ECSPI1 */
+				status = "disabled";
+			};
+
+			esdhc@50020000 { /* ESDHC3 */
+				cd-gpios = <&gpio2 11 0>; /* GPIO3_11 */
+				wp-gpios = <&gpio2 12 0>; /* GPIO3_12 */
+			};
+
+			esdhc@50024000 { /* ESDHC4 */
+				status = "disabled";
+			};
+		};
+
+		iomuxc@53fa8000 {
+			#address-cells = <2>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-iomuxc";
+			reg = <0x53fa8000 0x4000>;
+
+			/*
+			 * UART1
+			 */
+			csi0-dat10 { /* UART1_TXD_MUX */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			csi0-dat11 { /* UART1_RXD_MUX */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			/*
+			 * FEC
+			 */
+			fec-mdc {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-mdio {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-select-input = <0x804 0x1>;
+			};
+
+			fec-ref-clk {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rx-er {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-crs-dv {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rxd1 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rxd0 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-tx-en {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-txd1 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-txd0 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			pdata-da-0 { /* GPIO7_6: FEC_nRST */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * I2C1
+			 */
+			csi0-dat9 { /* I2C1_SCL */
+				fsl,iomuxc-mux-mode = <5>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x814 0x0>;
+			};
+
+			csi0-dat8 { /* I2C1_SDA */
+				fsl,iomuxc-mux-mode = <5>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x818 0x0>;
+			};
+
+			/*
+			 * I2C2
+			 */
+			key-col3 { /* I2C2_SCL */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x81c 0x0>;
+			};
+
+			key-row3 { /* I2C2_SDA */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x820 0x0>;
+			};
+
+			/*
+			 * SD1
+			 */
+			sd1-cmd {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-clk {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data0 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data1 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data2 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data3 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			eim-da13 { /* GPIO3_13: SD1_CD */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * SD3
+			 */
+			pata-reset-b { /* ESDHC3_CMD */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-iordy { /* ESDHC3_CLK */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data8 { /* ESDHC3_DAT0 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data9 { /* ESDHC3_DAT1 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data10 { /* ESDHC3_DAT2 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data11 { /* ESDHC3_DAT3 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data0 { /* ESDHC3_DAT4 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data1 { /* ESDHC3_DAT5 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data2 { /* ESDHC3_DAT6 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data3 { /* ESDHC3_DAT7 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			eim-da11 { /* GPIO3_11: SD3_CD */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			eim-da12 { /* GPIO3_12: SD3_WP */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * Buttons
+			 */
+			gpio-8 { /* GPIO1_8: nONKEY/KEEPACT */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			pata-data14 { /* GPIO2_14: USER_UI1 */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			pata-data15 { /* GPIO2_15: USER_UI2 */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * LED
+			 */
+			pata-da-1 { /* GPIO7_7: USER_LED_EN */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+		};
+
+		uart1: uart@53fc0000 { /* UART2 */
+			status = "disabled";
+		};
+
+		i2c@53fec000 { /* I2C3 */
+			status = "disabled";
+		};
+
+		uart3: uart@53ff0000 { /* UART4 */
+			status = "disabled";
+		};
+	};
+
+	aips@60000000 {	/* AIPS2 */
+		uart4: uart@63f90000 { /* UART5 */
+			status = "disabled";
+		};
+
+		ecspi@63fac000 { /* ECSPI2 */
+			status = "disabled";
+		};
+
+		cspi@63fc0000 {
+			status = "disabled";
+		};
+
+		i2c@63fc4000 { /* I2C2 */
+			codec: sgtl5000@0a {
+				compatible = "fsl,sgtl5000";
+				reg = <0x0a>;
+			};
+		};
+
+		i2c@63fc8000 { /* I2C1 */
+			accelerometer: mma8450@1c {
+				compatible = "fsl,mma8450";
+				reg = <0x1c>;
+			};
+
+			pmic: dialog@48 {
+				compatible = "dialog,da9053", "dialog,da9052";
+				reg = <0x48>;
+			};
+		};
+
+		fec@63fec000 {
+			phy-mode = "rmii";
+			phy-reset-gpios = <&gpio6 6 0>; /* GPIO7_6 */
+		};
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		power {
+			label = "Power Button";
+			gpios = <&gpio0 8 0>; /* GPIO1_8 */
+			linux,code = <116>; /* KEY_POWER */
+			gpio-key,wakeup;
+		};
+
+		volume-up {
+			label = "Volume Up";
+			gpios = <&gpio1 14 0>; /* GPIO2_14 */
+			linux,code = <115>; /* KEY_VOLUMEUP */
+		};
+
+		volume-down {
+			label = "Volume Down";
+			gpios = <&gpio1 15 0>; /* GPIO2_15 */
+			linux,code = <114>; /* KEY_VOLUMEDOWN */
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		user {
+			label = "Heartbeat";
+			gpios = <&gpio6 7 0>; /* GPIO7_7 */
+			linux,default-trigger = "heartbeat";
+		};
+	};
+};
diff --git a/arch/arm/boot/dts/imx53-smd.dts b/arch/arm/boot/dts/imx53-smd.dts
new file mode 100644
index 0000000..a3d56cd
--- /dev/null
+++ b/arch/arm/boot/dts/imx53-smd.dts
@@ -0,0 +1,444 @@
+/*
+ * Copyright 2011 Freescale Semiconductor, Inc.
+ * Copyright 2011 Linaro Ltd.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+/include/ "imx53.dtsi"
+
+/ {
+	model = "Freescale i.MX53 Smart Mobile Reference Design Board";
+	compatible = "fsl,imx53-smd", "fsl,imx53";
+
+	chosen {
+		bootargs = "console=ttymxc0,115200 root=/dev/mmcblk0p3 rootwait";
+	};
+
+	memory {
+		reg = <0x70000000 0x40000000>;
+	};
+
+	aips@50000000 { /* AIPS1 */
+		spba@50000000 {
+			esdhc@50004000 { /* ESDHC1 */
+				cd-gpios = <&gpio2 13 0>; /* GPIO3_13 */
+				wp-gpios = <&gpio3 11 0>; /* GPIO4_11 */
+			};
+
+			esdhc@50008000 { /* ESDHC2 */
+				fsl,card-wired;
+			};
+
+			uart2: uart@5000c000 { /* UART3 */
+				fsl,uart-has-rtscts;
+			};
+
+			ecspi@50010000 { /* ECSPI1 */
+				fsl,spi-num-chipselects = <2>;
+				cs-gpios = <&gpio1 30 0>, /* GPIO2_30 */
+					   <&gpio2 19 0>; /* GPIO3_19 */
+
+				zigbee: mc1323@0 {
+					compatible = "fsl,mc1323";
+					spi-max-frequency = <8000000>;
+					reg = <0>;
+				};
+
+				flash: m25p32@1 {
+					#address-cells = <1>;
+					#size-cells = <1>;
+					compatible = "st,m25p32", "st,m25p";
+					spi-max-frequency = <20000000>;
+					reg = <1>;
+
+					partition@0 {
+						label = "U-Boot";
+						reg = <0x0 0x40000>;
+						read-only;
+					};
+
+					partition@40000 {
+						label = "Kernel";
+						reg = <0x40000 0x3c0000>;
+					};
+				};
+			};
+
+			esdhc@50020000 { /* ESDHC3 */
+				fsl,card-wired;
+			};
+
+			esdhc@50024000 { /* ESDHC4 */
+				status = "disabled";
+			};
+		};
+
+		iomuxc@53fa8000 {
+			#address-cells = <2>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-iomuxc";
+			reg = <0x53fa8000 0x4000>;
+
+			/*
+			 * UART1
+			 */
+			csi0-dat10 { /* UART1_TXD_MUX */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			csi0-dat11 { /* UART1_RXD_MUX */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			/*
+			 * UART2
+			 */
+			pata-dmarq { /* UART2_TXD_MUX */
+				fsl,iomuxc-mux-mode = <3>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-buffer-en { /* UART2_RXD_MUX */
+				fsl,iomuxc-mux-mode = <3>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+				fsl,iomuxc-select-input = <0x880 0x3>;
+			};
+
+			/*
+			 * UART3
+			 */
+			pata-da-1 { /* UART3_CTS */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-da-2 { /* UART3_RTS */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+				fsl,iomuxc-select-input = <0x884 0x5>;
+			};
+
+			pata-cs-0 { /* UART3_TXD_MUX */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-cs-1 { /* UART3_RXD_MUX */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+				fsl,iomuxc-select-input = <0x888 0x3>;
+			};
+
+			/*
+			 * FEC
+			 */
+			fec-mdc {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-mdio {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-select-input = <0x804 0x1>;
+			};
+
+			fec-ref-clk {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rx-er {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-crs-dv {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rxd1 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rxd0 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-tx-en {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-txd1 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-txd0 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			pdata-da-0 { /* GPIO7_6: FEC_nRST */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * I2C1
+			 */
+			csi0-dat9 { /* I2C1_SCL */
+				fsl,iomuxc-mux-mode = <5>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x814 0x0>;
+			};
+
+			csi0-dat8 { /* I2C1_SDA */
+				fsl,iomuxc-mux-mode = <5>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x818 0x0>;
+			};
+
+			/*
+			 * I2C2
+			 */
+			key-col3 { /* I2C2_SCL */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x81c 0x0>;
+			};
+
+			key-row3 { /* I2C2_SDA */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x820 0x0>;
+			};
+
+			/*
+			 * SD1
+			 */
+			sd1-cmd {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-clk {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data0 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data1 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data2 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data3 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			eim-da13 { /* GPIO3_13: SD1_CD */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			key-row2 { /* GPIO4_11: SD1_WP */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * SD2
+			 */
+			sd2-clk {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd2-cmd {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd2-data3 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd2-data2 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd2-data1 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd2-data0 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			/*
+			 * SD3
+			 */
+			pata-reset-b { /* ESDHC3_CMD */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-iordy { /* ESDHC3_CLK */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data8 { /* ESDHC3_DAT0 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data9 { /* ESDHC3_DAT1 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data10 { /* ESDHC3_DAT2 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data11 { /* ESDHC3_DAT3 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data0 { /* ESDHC3_DAT4 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data1 { /* ESDHC3_DAT5 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data2 { /* ESDHC3_DAT6 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data3 { /* ESDHC3_DAT7 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			eim-da11 { /* GPIO3_11: SD3_CD */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			eim-da12 { /* GPIO3_12: SD3_WP */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * Buttons
+			 */
+			pata-data14 { /* GPIO2_14: VOL+ */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			pata-data15 { /* GPIO2_15: VOL- */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+		};
+
+		i2c@53fec000 { /* I2C3 */
+			status = "disabled";
+		};
+
+		uart3: uart@53ff0000 { /* UART4 */
+			status = "disabled";
+		};
+	};
+
+	aips@60000000 {	/* AIPS2 */
+		uart4: uart@63f90000 { /* UART5 */
+			status = "disabled";
+		};
+
+		ecspi@63fac000 { /* ECSPI2 */
+			status = "disabled";
+		};
+
+		cspi@63fc0000 {
+			status = "disabled";
+		};
+
+		i2c@63fc4000 { /* I2C2 */
+			codec: sgtl5000@0a {
+				compatible = "fsl,sgtl5000";
+				reg = <0x0a>;
+			};
+
+			magnetometer: mag3110@0e {
+				compatible = "fsl,mag3110";
+				reg = <0x0e>;
+			};
+
+			touchkey: mpr121@5a {
+				compatible = "fsl,mpr121";
+				reg = <0x5a>;
+			};
+		};
+
+		i2c@63fc8000 { /* I2C1 */
+			accelerometer: mma8450@1c {
+				compatible = "fsl,mma8450";
+				reg = <0x1c>;
+			};
+
+			camera: ov5642@3c {
+				compatible = "ovti,ov5642";
+				reg = <0x3c>;
+			};
+
+			pmic: dialog@48 {
+				compatible = "dialog,da9053", "dialog,da9052";
+				reg = <0x48>;
+			};
+		};
+
+		fec@63fec000 {
+			phy-mode = "rmii";
+			phy-reset-gpios = <&gpio6 6 0>; /* GPIO7_6 */
+		};
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		volume-up {
+			label = "Volume Up";
+			gpios = <&gpio1 14 0>; /* GPIO2_14 */
+			linux,code = <115>; /* KEY_VOLUMEUP */
+		};
+
+		volume-down {
+			label = "Volume Down";
+			gpios = <&gpio1 15 0>; /* GPIO2_15 */
+			linux,code = <114>; /* KEY_VOLUMEDOWN */
+		};
+	};
+};
diff --git a/arch/arm/boot/dts/imx53.dtsi b/arch/arm/boot/dts/imx53.dtsi
new file mode 100644
index 0000000..746221c
--- /dev/null
+++ b/arch/arm/boot/dts/imx53.dtsi
@@ -0,0 +1,1044 @@
+/*
+ * Copyright 2011 Freescale Semiconductor, Inc.
+ * Copyright 2011 Linaro Ltd.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/include/ "skeleton.dtsi"
+
+/ {
+	interrupt-parent = <&tzic>;
+
+	aliases {
+		serial0 = &uart0;
+		serial1 = &uart1;
+		serial2 = &uart2;
+		serial3 = &uart3;
+		serial4 = &uart4;
+	};
+
+	tzic: tz-interrupt-controller@0fffc000 {
+		compatible = "fsl,imx53-tzic", "fsl,tzic";
+		interrupt-controller;
+		#interrupt-cells = <1>;
+		reg = <0x0fffc000 0x4000>;
+	};
+
+	aips@50000000 { /* AIPS1 */
+		compatible = "fsl,aips-bus", "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		reg = <0x50000000 0x10000000>;
+		ranges;
+
+		spba@50000000 {
+			compatible = "fsl,spba-bus", "simple-bus";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			reg = <0x50000000 0x40000>;
+			ranges;
+
+			esdhc@50004000 { /* ESDHC1 */
+				compatible = "fsl,imx53-esdhc";
+				reg = <0x50004000 0x4000>;
+				interrupts = <1>;
+			};
+
+			esdhc@50008000 { /* ESDHC2 */
+				compatible = "fsl,imx53-esdhc";
+				reg = <0x50008000 0x4000>;
+				interrupts = <2>;
+			};
+
+			uart2: uart@5000c000 { /* UART3 */
+				compatible = "fsl,imx53-uart", "fsl,imx21-uart";
+				reg = <0x5000c000 0x4000>;
+				interrupts = <33>;
+			};
+
+			ecspi@50010000 { /* ECSPI1 */
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "fsl,imx53-ecspi", "fsl,imx51-ecspi";
+				reg = <0x50010000 0x4000>;
+				interrupts = <36>;
+			};
+
+			esdhc@50020000 { /* ESDHC3 */
+				compatible = "fsl,imx53-esdhc";
+				reg = <0x50020000 0x4000>;
+				interrupts = <3>;
+			};
+
+			esdhc@50024000 { /* ESDHC4 */
+				compatible = "fsl,imx53-esdhc";
+				reg = <0x50024000 0x4000>;
+				interrupts = <4>;
+			};
+		};
+
+		gpio0: gpio@53f84000 { /* GPIO1 */
+			compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
+			reg = <0x53f84000 0x4000>;
+			interrupts = <50 51>;
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+
+		gpio1: gpio@53f88000 { /* GPIO2 */
+			compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
+			reg = <0x53f88000 0x4000>;
+			interrupts = <52 53>;
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+
+		gpio2: gpio@53f8c000 { /* GPIO3 */
+			compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
+			reg = <0x53f8c000 0x4000>;
+			interrupts = <54 55>;
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+
+		gpio3: gpio@53f90000 { /* GPIO4 */
+			compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
+			reg = <0x53f90000 0x4000>;
+			interrupts = <56 57>;
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+
+		wdt@53f98000 { /* WDOG1 */
+			compatible = "fsl,imx53-wdt", "fsl,imx21-wdt";
+			reg = <0x53f98000 0x4000>;
+			interrupts = <58>;
+		};
+
+		iomuxc@53fa8000 {
+			#address-cells = <2>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-iomuxc";
+			reg = <0x53fa8000 0x4000>;
+
+			gpio-19 {
+				reg = <0x20 0x348>;
+			};
+
+			key-col0 {
+				reg = <0x24 0x34c>;
+			};
+
+			key-row0 {
+				reg = <0x28 0x350>;
+			};
+
+			key-col1 {
+				reg = <0x2c 0x354>;
+			};
+
+			key-row1 {
+				reg = <0x30 0x358>;
+			};
+
+			key-col2 {
+				reg = <0x34 0x35c>;
+			};
+
+			key-row2 {
+				reg = <0x38 0x360>;
+			};
+
+			key-col3 {
+				reg = <0x3c 0x364>;
+			};
+
+			key-row3 {
+				reg = <0x40 0x368>;
+			};
+
+			key-col4 {
+				reg = <0x44 0x36c>;
+			};
+
+			key-row4 {
+				reg = <0x48 0x370>;
+			};
+
+			di0-disp-clk {
+				reg = <0x4c 0x378>;
+			};
+
+			di0-pin15 {
+				reg = <0x50 0x37c>;
+			};
+
+			di0-pin2 {
+				reg = <0x54 0x380>;
+			};
+
+			di0-pin3 {
+				reg = <0x58 0x384>;
+			};
+
+			di0-pin4 {
+				reg = <0x5c 0x388>;
+			};
+
+			disp0-dat0 {
+				reg = <0x60 0x38c>;
+			};
+
+			disp0-dat1 {
+				reg = <0x64 0x390>;
+			};
+
+			disp0-dat2 {
+				reg = <0x68 0x394>;
+			};
+
+			disp0-dat3 {
+				reg = <0x6c 0x398>;
+			};
+
+			disp0-dat4 {
+				reg = <0x70 0x39c>;
+			};
+
+			disp0-dat5 {
+				reg = <0x74 0x3a0>;
+			};
+
+			disp0-dat6 {
+				reg = <0x78 0x3a4>;
+			};
+
+			disp0-dat7 {
+				reg = <0x7c 0x3a8>;
+			};
+
+			disp0-dat8 {
+				reg = <0x80 0x3ac>;
+			};
+
+			disp0-dat9 {
+				reg = <0x84 0x3b0>;
+			};
+
+			disp0-dat10 {
+				reg = <0x88 0x3b4>;
+			};
+
+			disp0-dat11 {
+				reg = <0x8c 0x3b8>;
+			};
+
+			disp0-dat12 {
+				reg = <0x90 0x3bc>;
+			};
+
+			disp0-dat13 {
+				reg = <0x94 0x3c0>;
+			};
+
+			disp0-dat14 {
+				reg = <0x98 0x3c4>;
+			};
+
+			disp0-dat15 {
+				reg = <0x9c 0x3c8>;
+			};
+
+			disp0-dat16 {
+				reg = <0xa0 0x3cc>;
+			};
+
+			disp0-dat17 {
+				reg = <0xa4 0x3d0>;
+			};
+
+			disp0-dat18 {
+				reg = <0xa8 0x3d4>;
+			};
+
+			disp0-dat19 {
+				reg = <0xac 0x3d8>;
+			};
+
+			disp0-dat20 {
+				reg = <0xb0 0x3dc>;
+			};
+
+			disp0-dat21 {
+				reg = <0xb4 0x3e0>;
+			};
+
+			disp0-dat22 {
+				reg = <0xb8 0x3e4>;
+			};
+
+			disp0-dat23 {
+				reg = <0xbc 0x3e8>;
+			};
+
+			csi0-pixclk {
+				reg = <0xc0 0x3ec>;
+			};
+
+			csi0-mclk {
+				reg = <0xc4 0x3f0>;
+			};
+
+			csi0-data-en {
+				reg = <0xc8 0x3f4>;
+			};
+
+			csi0-vsync {
+				reg = <0xcc 0x3f8>;
+			};
+
+			csi0-dat4 {
+				reg = <0xd0 0x3fc>;
+			};
+
+			csi0-dat5 {
+				reg = <0xd4 0x400>;
+			};
+
+			csi0-dat6 {
+				reg = <0xd8 0x404>;
+			};
+
+			csi0-dat7 {
+				reg = <0xdc 0x408>;
+			};
+
+			csi0-dat8 {
+				reg = <0xe0 0x40c>;
+			};
+
+			csi0-dat9 {
+				reg = <0xe4 0x410>;
+			};
+
+			csi0-dat10 {
+				reg = <0xe8 0x414>;
+			};
+
+			csi0-dat11 {
+				reg = <0xec 0x418>;
+			};
+
+			csi0-dat12 {
+				reg = <0xf0 0x41c>;
+			};
+
+			csi0-dat13 {
+				reg = <0xf4 0x420>;
+			};
+
+			csi0-dat14 {
+				reg = <0xf8 0x424>;
+			};
+
+			csi0-dat15 {
+				reg = <0xfc 0x428>;
+			};
+
+			csi0-dat16 {
+				reg = <0x100 0x42c>;
+			};
+
+			csi0-dat17 {
+				reg = <0x104 0x430>;
+			};
+
+			csi0-dat18 {
+				reg = <0x108 0x434>;
+			};
+
+			csi0-dat19 {
+				reg = <0x10c 0x438>;
+			};
+
+			eim-a25 {
+				reg = <0x110 0x458>;
+			};
+
+			eim-eb2 {
+				reg = <0x114 0x45c>;
+			};
+
+			eim-d16 {
+				reg = <0x118 0x460>;
+			};
+
+			eim-d17 {
+				reg = <0x11c 0x464>;
+			};
+
+			eim-d18 {
+				reg = <0x120 0x468>;
+			};
+
+			eim-d19 {
+				reg = <0x124 0x46c>;
+			};
+
+			eim-d20 {
+				reg = <0x128 0x470>;
+			};
+
+			eim-d21 {
+				reg = <0x12c 0x474>;
+			};
+
+			eim-d22 {
+				reg = <0x130 0x478>;
+			};
+
+			eim-d23 {
+				reg = <0x134 0x47c>;
+			};
+
+			eim-eb3 {
+				reg = <0x138 0x480>;
+			};
+
+			eim-d24 {
+				reg = <0x13c 0x484>;
+			};
+
+			eim-d25 {
+				reg = <0x140 0x488>;
+			};
+
+			eim-d26 {
+				reg = <0x144 0x48c>;
+			};
+
+			eim-d27 {
+				reg = <0x148 0x490>;
+			};
+
+			eim-d28 {
+				reg = <0x14c 0x494>;
+			};
+
+			eim-d29 {
+				reg = <0x150 0x498>;
+			};
+
+			eim-d30 {
+				reg = <0x154 0x49c>;
+			};
+
+			eim-d31 {
+				reg = <0x158 0x4a0>;
+			};
+
+			eim-a24 {
+				reg = <0x15c 0x4a8>;
+			};
+
+			eim-a23 {
+				reg = <0x160 0x4ac>;
+			};
+
+			eim-a22 {
+				reg = <0x164 0x4b0>;
+			};
+
+			eim-a21 {
+				reg = <0x168 0x4b4>;
+			};
+
+			eim-a20 {
+				reg = <0x16c 0x4b8>;
+			};
+
+			eim-a19 {
+				reg = <0x170 0x4bc>;
+			};
+
+			eim-a18 {
+				reg = <0x174 0x4c0>;
+			};
+
+			eim-a17 {
+				reg = <0x178 0x4c4>;
+			};
+
+			eim-a16 {
+				reg = <0x17c 0x4c8>;
+			};
+
+			eim-cs0 {
+				reg = <0x180 0x4cc>;
+			};
+
+			eim-cs1 {
+				reg = <0x184 0x4d0>;
+			};
+
+			eim-oe {
+				reg = <0x188 0x4d4>;
+			};
+
+			eim-rw {
+				reg = <0x18c 0x4d8>;
+			};
+
+			eim-lba {
+				reg = <0x190 0x4dc>;
+			};
+
+			eim-eb0 {
+				reg = <0x194 0x4e4>;
+			};
+
+			eim-eb1 {
+				reg = <0x198 0x4e8>;
+			};
+
+			eim-da0 {
+				reg = <0x19c 0x4ec>;
+			};
+
+			eim-da1 {
+				reg = <0x1a0 0x4f0>;
+			};
+
+			eim-da2 {
+				reg = <0x1a4 0x4f4>;
+			};
+
+			eim-da3 {
+				reg = <0x1a8 0x4f8>;
+			};
+
+			eim-da4 {
+				reg = <0x1ac 0x4fc>;
+			};
+
+			eim-da5 {
+				reg = <0x1b0 0x500>;
+			};
+
+			eim-da6 {
+				reg = <0x1b4 0x504>;
+			};
+
+			eim-da7 {
+				reg = <0x1b8 0x508>;
+			};
+
+			eim-da8 {
+				reg = <0x1bc 0x50c>;
+			};
+
+			eim-da9 {
+				reg = <0x1c0 0x510>;
+			};
+
+			eim-da10 {
+				reg = <0x1c4 0x514>;
+			};
+
+			eim-da11 {
+				reg = <0x1c8 0x518>;
+			};
+
+			eim-da12 {
+				reg = <0x1cc 0x51c>;
+			};
+
+			eim-da13 {
+				reg = <0x1d0 0x520>;
+			};
+
+			eim-da14 {
+				reg = <0x1d4 0x524>;
+			};
+
+			eim-da15 {
+				reg = <0x1d8 0x528>;
+			};
+
+			nandf-we-b {
+				reg = <0x1dc 0x52c>;
+			};
+
+			nandf-re-b {
+				reg = <0x1e0 0x530>;
+			};
+
+			eim-wait {
+				reg = <0x1e4 0x534>;
+			};
+
+			lvds1-tx3-p {
+				reg = <0x1ec 0x0>;
+			};
+
+			lvds1-tx2-p {
+				reg = <0x1f0 0x0>;
+			};
+
+			lvds1-clk-p {
+				reg = <0x1f4 0x0>;
+			};
+
+			lvds1-tx1-p {
+				reg = <0x1f8 0x0>;
+			};
+
+			lvds1-tx0-p {
+				reg = <0x1fc 0x0>;
+			};
+
+			lvds0-tx3-p {
+				reg = <0x200 0x0>;
+			};
+
+			lvds0-clk-p {
+				reg = <0x204 0x0>;
+			};
+
+			lvds0-tx2-p {
+				reg = <0x208 0x0>;
+			};
+
+			lvds0-tx1-p {
+				reg = <0x20c 0x0>;
+			};
+
+			lvds0-tx0-p {
+				reg = <0x210 0x0>;
+			};
+
+			gpio-10 {
+				reg = <0x214 0x540>;
+			};
+
+			gpio-11 {
+				reg = <0x218 0x544>;
+			};
+
+			gpio-12 {
+				reg = <0x21c 0x548>;
+			};
+
+			gpio-13 {
+				reg = <0x220 0x54c>;
+			};
+
+			gpio-14 {
+				reg = <0x224 0x550>;
+			};
+
+			nandf-cle {
+				reg = <0x228 0x5a0>;
+			};
+
+			nandf-ale {
+				reg = <0x22c 0x5a4>;
+			};
+
+			nandf-wp-b {
+				reg = <0x230 0x5a8>;
+			};
+
+			nandf-rb0 {
+				reg = <0x234 0x5ac>;
+			};
+
+			nandf-cs0 {
+				reg = <0x238 0x5b0>;
+			};
+
+			nandf-cs1 {
+				reg = <0x23c 0x5b4>;
+			};
+
+			nandf-cs2 {
+				reg = <0x240 0x5b8>;
+			};
+
+			nandf-cs3 {
+				reg = <0x244 0x5bc>;
+			};
+
+			fec-mdio {
+				reg = <0x248 0x5c4>;
+			};
+
+			fec-ref-clk {
+				reg = <0x24c 0x5c8>;
+			};
+
+			fec-rx-er {
+				reg = <0x250 0x5cc>;
+			};
+
+			fec-crs-dv {
+				reg = <0x254 0x5d0>;
+			};
+
+			fec-rxd1 {
+				reg = <0x258 0x5d4>;
+			};
+
+			fec-rxd0 {
+				reg = <0x25c 0x5d8>;
+			};
+
+			fec-tx-en {
+				reg = <0x260 0x5dc>;
+			};
+
+			fec-txd1 {
+				reg = <0x264 0x5e0>;
+			};
+
+			fec-txd0 {
+				reg = <0x268 0x5e4>;
+			};
+
+			fec-mdc {
+				reg = <0x26c 0x5e8>;
+			};
+
+			pata-diow {
+				reg = <0x270 0x5f0>;
+			};
+
+			pata-dmack {
+				reg = <0x274 0x5f4>;
+			};
+
+			pata-dmarq {
+				reg = <0x278 0x5f8>;
+			};
+
+			pata-buffer-en {
+				reg = <0x27c 0x5fc>;
+			};
+
+			pata-intrq {
+				reg = <0x280 0x600>;
+			};
+
+			pata-dior {
+				reg = <0x284 0x604>;
+			};
+
+			pata-reset-b {
+				reg = <0x288 0x608>;
+			};
+
+			pata-iordy {
+				reg = <0x28c 0x60c>;
+			};
+
+			pata-da-0 {
+				reg = <0x290 0x610>;
+			};
+
+			pata-da-1 {
+				reg = <0x294 0x614>;
+			};
+
+			pata-da-2 {
+				reg = <0x298 0x618>;
+			};
+
+			pata-cs-0 {
+				reg = <0x29c 0x61c>;
+			};
+
+			pata-cs-1 {
+				reg = <0x2a0 0x620>;
+			};
+
+			pata-data0 {
+				reg = <0x2a4 0x628>;
+			};
+
+			pata-data1 {
+				reg = <0x2a8 0x62c>;
+			};
+
+			pata-data2 {
+				reg = <0x2ac 0x630>;
+			};
+
+			pata-data3 {
+				reg = <0x2b0 0x634>;
+			};
+
+			pata-data4 {
+				reg = <0x2b4 0x638>;
+			};
+
+			pata-data5 {
+				reg = <0x2b8 0x63c>;
+			};
+
+			pata-data6 {
+				reg = <0x2bc 0x640>;
+			};
+
+			pata-data7 {
+				reg = <0x2c0 0x644>;
+			};
+
+			pata-data8 {
+				reg = <0x2c4 0x648>;
+			};
+
+			pata-data9 {
+				reg = <0x2c8 0x64c>;
+			};
+
+			pata-data10 {
+				reg = <0x2cc 0x650>;
+			};
+
+			pata-data11 {
+				reg = <0x2d0 0x654>;
+			};
+
+			pata-data12 {
+				reg = <0x2d4 0x658>;
+			};
+
+			pata-data13 {
+				reg = <0x2d8 0x65c>;
+			};
+
+			pata-data14 {
+				reg = <0x2dc 0x660>;
+			};
+
+			pata-data15 {
+				reg = <0x2e0 0x664>;
+			};
+
+			sd1-data0 {
+				reg = <0x2e4 0x66c>;
+			};
+
+			sd1-data1 {
+				reg = <0x2e8 0x670>;
+			};
+
+			sd1-cmd {
+				reg = <0x2ec 0x674>;
+			};
+
+			sd1-data2 {
+				reg = <0x2f0 0x678>;
+			};
+
+			sd1-clk {
+				reg = <0x2f4 0x67c>;
+			};
+
+			sd1-data3 {
+				reg = <0x2f8 0x680>;
+			};
+
+			sd2-clk {
+				reg = <0x2fc 0x688>;
+			};
+
+			sd2-cmd {
+				reg = <0x300 0x68c>;
+			};
+
+			sd2-data3 {
+				reg = <0x304 0x690>;
+			};
+
+			sd2-data2 {
+				reg = <0x308 0x694>;
+			};
+
+			sd2-data1 {
+				reg = <0x30c 0x698>;
+			};
+
+			sd2-data0 {
+				reg = <0x310 0x69c>;
+			};
+
+			gpio-0 {
+				reg = <0x314 0x6a4>;
+			};
+
+			gpio-1 {
+				reg = <0x318 0x6a8>;
+			};
+
+			gpio-9 {
+				reg = <0x31c 0x6ac>;
+			};
+
+			gpio-3 {
+				reg = <0x320 0x6b0>;
+			};
+
+			gpio-6 {
+				reg = <0x324 0x6b4>;
+			};
+
+			gpio-2 {
+				reg = <0x328 0x6b8>;
+			};
+
+			gpio-4 {
+				reg = <0x32c 0x6bc>;
+			};
+
+			gpio-5 {
+				reg = <0x330 0x6c0>;
+			};
+
+			gpio-7 {
+				reg = <0x334 0x6c4>;
+			};
+
+			gpio-8 {
+				reg = <0x338 0x6c8>;
+			};
+
+			gpio-16 {
+				reg = <0x33c 0x6cc>;
+			};
+
+			gpio-17 {
+				reg = <0x340 0x6d0>;
+			};
+
+			gpio-18 {
+				reg = <0x344 0x6d4>;
+			};
+		};
+
+		uart0: uart@53fbc000 { /* UART1 */
+			compatible = "fsl,imx53-uart", "fsl,imx21-uart";
+			reg = <0x53fbc000 0x4000>;
+			interrupts = <31>;
+		};
+
+		uart1: uart@53fc0000 { /* UART2 */
+			compatible = "fsl,imx53-uart", "fsl,imx21-uart";
+			reg = <0x53fc0000 0x4000>;
+			interrupts = <32>;
+		};
+
+		gpio4: gpio@53fdc000 { /* GPIO5 */
+			compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
+			reg = <0x53fdc000 0x4000>;
+			interrupts = <103 104>;
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+
+		gpio5: gpio@53fe0000 { /* GPIO6 */
+			compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
+			reg = <0x53fe0000 0x4000>;
+			interrupts = <105 106>;
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+
+		gpio6: gpio@53fe4000 { /* GPIO7 */
+			compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
+			reg = <0x53fe4000 0x4000>;
+			interrupts = <107 108>;
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+
+		i2c@53fec000 { /* I2C3 */
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-i2c", "fsl,imx1-i2c";
+			reg = <0x53fec000 0x4000>;
+			interrupts = <64>;
+		};
+
+		uart3: uart@53ff0000 { /* UART4 */
+			compatible = "fsl,imx53-uart", "fsl,imx21-uart";
+			reg = <0x53ff0000 0x4000>;
+			interrupts = <13>;
+		};
+	};
+
+	aips@60000000 {	/* AIPS2 */
+		compatible = "fsl,aips-bus", "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		reg = <0x60000000 0x10000000>;
+		ranges;
+
+		uart4: uart@63f90000 { /* UART5 */
+			compatible = "fsl,imx53-uart", "fsl,imx21-uart";
+			reg = <0x63f90000 0x4000>;
+			interrupts = <86>;
+		};
+
+		ecspi@63fac000 { /* ECSPI2 */
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-ecspi", "fsl,imx51-ecspi";
+			reg = <0x63fac000 0x4000>;
+			interrupts = <37>;
+		};
+
+		sdma@63fb0000 {
+			compatible = "fsl,imx53-sdma", "fsl,imx35-sdma";
+			reg = <0x63fb0000 0x4000>;
+			interrupts = <6>;
+			fsl,sdma-ram-script-name = "imx/sdma/sdma-imx53.bin";
+		};
+
+		cspi@63fc0000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-cspi", "fsl,imx35-cspi";
+			reg = <0x63fc0000 0x4000>;
+			interrupts = <38>;
+		};
+
+		i2c@63fc4000 { /* I2C2 */
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-i2c", "fsl,imx1-i2c";
+			reg = <0x63fc4000 0x4000>;
+			interrupts = <63>;
+		};
+
+		i2c@63fc8000 { /* I2C1 */
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-i2c", "fsl,imx1-i2c";
+			reg = <0x63fc8000 0x4000>;
+			interrupts = <62>;
+		};
+
+		fec@63fec000 {
+			compatible = "fsl,imx53-fec", "fsl,imx25-fec";
+			reg = <0x63fec000 0x4000>;
+			interrupts = <87>;
+		};
+	};
+};
diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig
index 53422d2..9f60dc1 100644
--- a/arch/arm/mach-mx5/Kconfig
+++ b/arch/arm/mach-mx5/Kconfig
@@ -173,6 +173,14 @@ endif # ARCH_MX51
 if ARCH_MX53_SUPPORTED
 comment "i.MX53 machines:"
 
+config MACH_IMX53_DT
+	bool "Support i.MX53 platforms from device tree"
+	select SOC_IMX53
+	select USE_OF
+	help
+	  Include support for Freescale i.MX53 based platforms
+	  using the device tree for discovery
+
 config MACH_MX53_EVK
 	bool "Support MX53 EVK platforms"
 	select SOC_IMX53
diff --git a/arch/arm/mach-mx5/Makefile b/arch/arm/mach-mx5/Makefile
index 71379f6..a1fd712 100644
--- a/arch/arm/mach-mx5/Makefile
+++ b/arch/arm/mach-mx5/Makefile
@@ -24,3 +24,4 @@ obj-$(CONFIG_MACH_MX51_EFIKASB) += board-mx51_efikasb.o
 obj-$(CONFIG_MACH_MX50_RDP) += board-mx50_rdp.o
 
 obj-$(CONFIG_OF) += iomuxc-dt.o
+obj-$(CONFIG_MACH_IMX53_DT) += imx53-dt.o
diff --git a/arch/arm/mach-mx5/imx53-dt.c b/arch/arm/mach-mx5/imx53-dt.c
new file mode 100644
index 0000000..ac06f04
--- /dev/null
+++ b/arch/arm/mach-mx5/imx53-dt.c
@@ -0,0 +1,128 @@
+/*
+ * Copyright 2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright 2011 Linaro Ltd.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include <linux/irq.h>
+#include <linux/of_platform.h>
+#include <asm/mach/arch.h>
+#include <asm/mach/time.h>
+#include <mach/common.h>
+#include <mach/hardware.h>
+#include <mach/mx53.h>
+
+/*
+ * Lookup table for attaching a specific name and platform_data pointer to
+ * devices as they get created by of_platform_populate().  Ideally this table
+ * would not exist, but the current clock implementation depends on some devices
+ * having a specific name.
+ */
+static const struct of_dev_auxdata imx53_auxdata_lookup[] __initconst = {
+	OF_DEV_AUXDATA("fsl,imx53-uart", MX53_UART1_BASE_ADDR, "imx21-uart.0", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-uart", MX53_UART2_BASE_ADDR, "imx21-uart.1", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-uart", MX53_UART3_BASE_ADDR, "imx21-uart.2", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-uart", MX53_UART4_BASE_ADDR, "imx21-uart.3", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-uart", MX53_UART5_BASE_ADDR, "imx21-uart.4", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-fec", MX53_FEC_BASE_ADDR, "imx25-fec.0", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-esdhc", MX53_ESDHC1_BASE_ADDR, "sdhci-esdhc-imx53.0", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-esdhc", MX53_ESDHC2_BASE_ADDR, "sdhci-esdhc-imx53.1", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-esdhc", MX53_ESDHC3_BASE_ADDR, "sdhci-esdhc-imx53.2", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-esdhc", MX53_ESDHC4_BASE_ADDR, "sdhci-esdhc-imx53.3", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-ecspi", MX53_ECSPI1_BASE_ADDR, "imx51-ecspi.0", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-ecspi", MX53_ECSPI2_BASE_ADDR, "imx51-ecspi.1", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-cspi", MX53_CSPI_BASE_ADDR, "imx35-cspi.0", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-i2c", MX53_I2C1_BASE_ADDR, "imx-i2c.0", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-i2c", MX53_I2C2_BASE_ADDR, "imx-i2c.1", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-i2c", MX53_I2C3_BASE_ADDR, "imx-i2c.2", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-sdma", MX53_SDMA_BASE_ADDR, "imx35-sdma", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-wdt", MX53_WDOG1_BASE_ADDR, "imx2-wdt.0", NULL),
+	{ /* sentinel */ }
+};
+
+static const struct of_device_id imx53_tzic_of_match[] __initconst = {
+	{ .compatible = "fsl,imx53-tzic", },
+	{ /* sentinel */ }
+};
+
+static const struct of_device_id imx53_iomuxc_of_match[] __initconst = {
+	{ .compatible = "fsl,imx53-iomuxc", },
+	{ /* sentinel */ }
+};
+
+/* Configure EIM for SMSC LAN9220 */
+static void __init imx53_ard_eim_config(void)
+{
+	u32 val;
+	void __iomem *eim_base, *iomuxc_base;
+
+	eim_base = ioremap(MX53_WEIM_BASE_ADDR, SZ_4K);
+	iomuxc_base = ioremap(MX53_IOMUXC_BASE_ADDR, SZ_4K);
+	if (!eim_base || !iomuxc_base) {
+		pr_warn("%s: ioremap failed\n", __func__);
+		return;
+	}
+
+	/* CS1 timings for LAN9220 */
+	writel(0x20001, (eim_base + 0x18));
+	writel(0x0, (eim_base + 0x1c));
+	writel(0x16000202, (eim_base + 0x20));
+	writel(0x00000002, (eim_base + 0x24));
+	writel(0x16002082, (eim_base + 0x28));
+	writel(0x00000000, (eim_base + 0x2c));
+	writel(0x00000000, (eim_base + 0x90));
+
+	/* specify 64 MB on CS1 and CS0 on GPR1 */
+	val = readl(iomuxc_base + 0x4);
+	val &= ~0x3f;
+	val |= 0x1b;
+	writel(val, (iomuxc_base + 0x4));
+
+	iounmap(eim_base);
+	iounmap(iomuxc_base);
+}
+
+static void __init imx53_dt_init(void)
+{
+	if (of_machine_is_compatible("fsl,imx53-ard"))
+		imx53_ard_eim_config();
+
+	mxc_iomuxc_dt_init(imx53_iomuxc_of_match);
+
+	irq_domain_generate_simple(imx53_tzic_of_match, MX53_TZIC_BASE_ADDR, 0);
+
+	of_platform_populate(NULL, of_default_bus_match_table,
+			     imx53_auxdata_lookup, NULL);
+}
+
+static void __init imx53_timer_init(void)
+{
+	mx53_clocks_init(32768, 24000000, 22579200, 0);
+}
+
+static struct sys_timer imx53_timer = {
+	.init = imx53_timer_init,
+};
+
+static const char *imx53_dt_board_compat[] __initdata = {
+	"fsl,imx53-ard",
+	"fsl,imx53-evk",
+	"fsl,imx53-qsb",
+	"fsl,imx53-smd",
+	NULL
+};
+
+DT_MACHINE_START(IMX53_DT, "Freescale i.MX53 (Device Tree Support)")
+	.map_io		= mx53_map_io,
+	.init_early	= imx53_init_early,
+	.init_irq	= mx53_init_irq,
+	.timer		= &imx53_timer,
+	.init_machine	= imx53_dt_init,
+	.dt_compat	= imx53_dt_board_compat,
+MACHINE_END
-- 
1.7.4.1

WARNING: multiple messages have this Message-ID (diff)
From: shawn.guo@linaro.org (Shawn Guo)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] arm/mx5: add device tree support for imx53 boards
Date: Mon, 25 Jul 2011 23:07:47 +0800	[thread overview]
Message-ID: <1311606467-28985-3-git-send-email-shawn.guo@linaro.org> (raw)
In-Reply-To: <1311606467-28985-1-git-send-email-shawn.guo@linaro.org>

It adds device tree support for imx53 boards.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
---
 .../devicetree/bindings/arm/fsl/boards.txt         |   15 +
 arch/arm/boot/dts/imx53-ard.dts                    |  365 +++++++
 arch/arm/boot/dts/imx53-evk.dts                    |  354 +++++++
 arch/arm/boot/dts/imx53-qsb.dts                    |  358 +++++++
 arch/arm/boot/dts/imx53-smd.dts                    |  444 +++++++++
 arch/arm/boot/dts/imx53.dtsi                       | 1044 ++++++++++++++++++++
 arch/arm/mach-mx5/Kconfig                          |    8 +
 arch/arm/mach-mx5/Makefile                         |    1 +
 arch/arm/mach-mx5/imx53-dt.c                       |  128 +++
 9 files changed, 2717 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/fsl/boards.txt
 create mode 100644 arch/arm/boot/dts/imx53-ard.dts
 create mode 100644 arch/arm/boot/dts/imx53-evk.dts
 create mode 100644 arch/arm/boot/dts/imx53-qsb.dts
 create mode 100644 arch/arm/boot/dts/imx53-smd.dts
 create mode 100644 arch/arm/boot/dts/imx53.dtsi
 create mode 100644 arch/arm/mach-mx5/imx53-dt.c

diff --git a/Documentation/devicetree/bindings/arm/fsl/boards.txt b/Documentation/devicetree/bindings/arm/fsl/boards.txt
new file mode 100644
index 0000000..7603905
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/fsl/boards.txt
@@ -0,0 +1,15 @@
+i.MX53 Automotive Reference Design Board
+Required root node properties:
+    - compatible = "fsl,mx53-ard", "fsl,mx53";
+
+i.MX53 Evaluation Kit
+Required root node properties:
+    - compatible = "fsl,mx53-evk", "fsl,mx53";
+
+i.MX53 Quick Start Board
+Required root node properties:
+    - compatible = "fsl,mx53-qsb", "fsl,mx53";
+
+i.MX53 Smart Mobile Reference Design Board
+Required root node properties:
+    - compatible = "fsl,mx53-smd", "fsl,mx53";
diff --git a/arch/arm/boot/dts/imx53-ard.dts b/arch/arm/boot/dts/imx53-ard.dts
new file mode 100644
index 0000000..6a007f1
--- /dev/null
+++ b/arch/arm/boot/dts/imx53-ard.dts
@@ -0,0 +1,365 @@
+/*
+ * Copyright 2011 Freescale Semiconductor, Inc.
+ * Copyright 2011 Linaro Ltd.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+/include/ "imx53.dtsi"
+
+/ {
+	model = "Freescale i.MX53 Automotive Reference Design Board";
+	compatible = "fsl,imx53-ard", "fsl,imx53";
+
+	chosen {
+		bootargs = "console=ttymxc0,115200 root=/dev/mmcblk0p3 rootwait";
+	};
+
+	memory {
+		reg = <0x70000000 0x40000000>;
+	};
+
+	aips at 50000000 { /* AIPS1 */
+		spba at 50000000 {
+			esdhc at 50004000 { /* ESDHC1 */
+				cd-gpios = <&gpio0 1 0>; /* GPIO1_1 */
+				wp-gpios = <&gpio0 9 0>; /* GPIO1_9 */
+			};
+
+			esdhc at 50008000 { /* ESDHC2 */
+				status = "disabled";
+			};
+
+			uart2: uart at 5000c000 { /* UART3 */
+				status = "disabled";
+			};
+
+			ecspi at 50010000 { /* ECSPI1 */
+				status = "disabled";
+			};
+
+			esdhc at 50020000 { /* ESDHC3 */
+				status = "disabled";
+			};
+
+			esdhc at 50024000 { /* ESDHC4 */
+				status = "disabled";
+			};
+		};
+
+		iomuxc at 53fa8000 {
+			#address-cells = <2>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-iomuxc";
+			reg = <0x53fa8000 0x4000>;
+
+			/*
+			 * UART1
+			 */
+			pata-diow { /* UART1_TXD_MUX */
+				fsl,iomuxc-mux-mode = <3>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-dmack { /* UART1_RXD_MUX */
+				fsl,iomuxc-mux-mode = <3>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+				fsl,iomuxc-select-input = <0x878 0x3>;
+			};
+
+			/*
+			 * EIM CS1
+			 */
+			eim-d16 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d17 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d18 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d19 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d20 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d21 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d22 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d23 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d24 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d25 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d26 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d27 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d28 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d29 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d30 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-d31 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-da0 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-da1 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-da2 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-da3 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-da4 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-da5 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-da6 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-oe {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-rw {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-cs1 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			eim-eb3 { /* GPIO2_31: ETHERNET_INT_B */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * SD1
+			 */
+			sd1-cmd {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-clk {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data0 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data1 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data2 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data3 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data8 { /* ESDHC1_DAT4 */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data9 { /* ESDHC1_DAT5 */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data10 { /* ESDHC1_DAT6 */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data11 { /* ESDHC1_DAT7 */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			gpio-1 { /* GPIO1_1: SD1_CD */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			gpio-9 { /* GPIO1_9: SD1_WP */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * Buttons
+			 */
+			disp0-dat16 { /* GPIO5_10: Home */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			disp0-dat17 { /* GPIO5_11: Back */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			disp0-dat18 { /* GPIO5_12: Program */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			disp0-dat19 { /* GPIO5_13: Volumn Up */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			gpio-10 { /* GPIO4_0: Volume Down */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+		};
+
+		uart1: uart at 53fc0000 { /* UART2 */
+			status = "disabled";
+		};
+
+		i2c at 53fec000 { /* I2C3 */
+			status = "disabled";
+		};
+
+		uart3: uart at 53ff0000 { /* UART4 */
+			status = "disabled";
+		};
+	};
+
+	aips at 60000000 {	/* AIPS2 */
+		uart4: uart at 63f90000 { /* UART5 */
+			status = "disabled";
+		};
+
+		ecspi at 63fac000 { /* ECSPI2 */
+			status = "disabled";
+		};
+
+		cspi at 63fc0000 {
+			status = "disabled";
+		};
+
+		i2c at 63fc4000 { /* I2C2 */
+			status = "disabled";
+		};
+
+		i2c at 63fc8000 { /* I2C1 */
+			status = "disabled";
+		};
+
+		fec at 63fec000 {
+			status = "disabled";
+		};
+	};
+
+	eim-cs1 at f4000000 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "fsl,eim-bus", "simple-bus";
+		reg = <0xf4000000 0x3ff0000>;
+		ranges;
+
+		lan9220 at f4000000 {
+			compatible = "smsc,lan9220", "smsc,lan";
+			reg = <0xf4000000 0x2000000>;
+			phy-mode = "mii";
+			smsc-int-gpios = <&gpio1 31 0>; /* GPIO2_31 */
+			smsc,irq-push-pull;
+			smsc,access-in-32bit;
+		};
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		home {
+			label = "Home";
+			gpios = <&gpio4 10 0>; /* GPIO5_10 */
+			linux,code = <102>; /* KEY_HOME */
+			gpio-key,wakeup;
+		};
+
+		back {
+			label = "Back";
+			gpios = <&gpio4 11 0>; /* GPIO5_11 */
+			linux,code = <158>; /* KEY_BACK */
+			gpio-key,wakeup;
+		};
+
+		program {
+			label = "Program";
+			gpios = <&gpio4 12 0>; /* GPIO5_12 */
+			linux,code = <362>; /* KEY_PROGRAM */
+			gpio-key,wakeup;
+		};
+
+		volume-up {
+			label = "Volume Up";
+			gpios = <&gpio4 13 0>; /* GPIO5_13 */
+			linux,code = <115>; /* KEY_VOLUMEUP */
+		};
+
+		volume-down {
+			label = "Volume Down";
+			gpios = <&gpio3 0 0>; /* GPIO4_0 */
+			linux,code = <114>; /* KEY_VOLUMEDOWN */
+		};
+	};
+};
diff --git a/arch/arm/boot/dts/imx53-evk.dts b/arch/arm/boot/dts/imx53-evk.dts
new file mode 100644
index 0000000..1761e38
--- /dev/null
+++ b/arch/arm/boot/dts/imx53-evk.dts
@@ -0,0 +1,354 @@
+/*
+ * Copyright 2011 Freescale Semiconductor, Inc.
+ * Copyright 2011 Linaro Ltd.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+/include/ "imx53.dtsi"
+
+/ {
+	model = "Freescale i.MX53 Evaluation Kit";
+	compatible = "fsl,imx53-evk", "fsl,imx53";
+
+	chosen {
+		bootargs = "console=ttymxc0,115200 root=/dev/mmcblk0p3 rootwait";
+	};
+
+	memory {
+		reg = <0x70000000 0x80000000>;
+	};
+
+	aips at 50000000 { /* AIPS1 */
+		spba at 50000000 {
+			esdhc at 50004000 { /* ESDHC1 */
+				cd-gpios = <&gpio2 13 0>; /* GPIO3_13 */
+				wp-gpios = <&gpio2 14 0>; /* GPIO3_14 */
+			};
+
+			esdhc at 50008000 { /* ESDHC2 */
+				status = "disabled";
+			};
+
+			uart2: uart at 5000c000 { /* UART3 */
+				status = "disabled";
+			};
+
+			ecspi at 50010000 { /* ECSPI1 */
+				fsl,spi-num-chipselects = <2>;
+				cs-gpios = <&gpio1 30 0>, /* GPIO2_30 */
+					   <&gpio2 19 0>; /* GPIO3_19 */
+
+				flash: at45db321d at 1 {
+					#address-cells = <1>;
+					#size-cells = <1>;
+					compatible = "atmel,at45db321d", "atmel,at45", "atmel,dataflash";
+					spi-max-frequency = <25000000>;
+					reg = <1>;
+
+					partition at 0 {
+						label = "U-Boot";
+						reg = <0x0 0x40000>;
+						read-only;
+					};
+
+					partition at 40000 {
+						label = "Kernel";
+						reg = <0x40000 0x3c0000>;
+					};
+				};
+			};
+
+			esdhc at 50020000 { /* ESDHC3 */
+				cd-gpios = <&gpio2 11 0>; /* GPIO3_11 */
+				wp-gpios = <&gpio2 12 0>; /* GPIO3_12 */
+			};
+
+			esdhc at 50024000 { /* ESDHC4 */
+				status = "disabled";
+			};
+		};
+
+		iomuxc at 53fa8000 {
+			#address-cells = <2>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-iomuxc";
+			reg = <0x53fa8000 0x4000>;
+
+			/*
+			 * UART1
+			 */
+			csi0-dat10 { /* UART1_TXD_MUX */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			csi0-dat11 { /* UART1_RXD_MUX */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			/*
+			 * FEC
+			 */
+			fec-mdc {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-mdio {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-select-input = <0x804 0x1>;
+			};
+
+			fec-ref-clk {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rx-er {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-crs-dv {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rxd1 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rxd0 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-tx-en {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-txd1 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-txd0 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			pdata-da-0 { /* GPIO7_6: FEC_nRST */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * I2C2
+			 */
+			key-col3 { /* I2C2_SCL */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x81c 0x0>;
+			};
+
+			key-row3 { /* I2C2_SDA */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x820 0x0>;
+			};
+
+			/*
+			 * ECSPI1
+			 */
+			eim-d16 { /* ECSPI1_SCLK */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-select-input = <0x79c 0x3>;
+			};
+
+			eim-d17 { /* ECSPI1_MISO */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-select-input = <0x7a0 0x3>;
+			};
+
+			eim-d18 { /* ECSPI1_MOSI */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-select-input = <0x7a4 0x3>;
+			};
+
+			eim-eb2 { /* GPIO2_30: eCSPI1_SS0 */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			eim-d19 { /* GPIO3_19: eCSPI1_SS1 */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * SD1
+			 */
+			sd1-cmd {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-clk {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data0 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data1 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data2 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data3 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			eim-da13 { /* GPIO3_13: SD1_CD */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			eim-da14 { /* GPIO3_14: SD1_WP */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * SD3
+			 */
+			pata-reset-b { /* ESDHC3_CMD */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-iordy { /* ESDHC3_CLK */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data8 { /* ESDHC3_DAT0 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data9 { /* ESDHC3_DAT1 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data10 { /* ESDHC3_DAT2 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data11 { /* ESDHC3_DAT3 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data0 { /* ESDHC3_DAT4 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data1 { /* ESDHC3_DAT5 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data2 { /* ESDHC3_DAT6 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data3 { /* ESDHC3_DAT7 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			eim-da11 { /* GPIO3_11: SD3_CD */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			eim-da12 { /* GPIO3_12: SD3_WP */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * LED
+			 */
+			pata-da-1 { /* GPIO7_7: GPIO_LED */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+		};
+
+		uart1: uart at 53fc0000 { /* UART2 */
+			status = "disabled";
+		};
+
+		i2c at 53fec000 { /* I2C3 */
+			status = "disabled";
+		};
+
+		uart3: uart at 53ff0000 { /* UART4 */
+			status = "disabled";
+		};
+	};
+
+	aips at 60000000 {	/* AIPS2 */
+		uart4: uart at 63f90000 { /* UART5 */
+			status = "disabled";
+		};
+
+		ecspi at 63fac000 { /* ECSPI2 */
+			status = "disabled";
+		};
+
+		cspi at 63fc0000 {
+			status = "disabled";
+		};
+
+		i2c at 63fc4000 { /* I2C2 */
+			pmic: mc13892 at 08 {
+				compatible = "fsl,mc13892", "fsl,mc13xxx";
+				reg = <0x08>;
+			};
+
+			codec: sgtl5000 at 0a {
+				compatible = "fsl,sgtl5000";
+				reg = <0x0a>;
+			};
+		};
+
+		i2c at 63fc8000 { /* I2C1 */
+			status = "disabled";
+		};
+
+		fec at 63fec000 {
+			phy-mode = "rmii";
+			phy-reset-gpios = <&gpio6 6 0>; /* GPIO7_6 */
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		green {
+			label = "Heartbeat";
+			gpios = <&gpio6 7 0>; /* GPIO7_7 */
+			linux,default-trigger = "heartbeat";
+		};
+	};
+};
diff --git a/arch/arm/boot/dts/imx53-qsb.dts b/arch/arm/boot/dts/imx53-qsb.dts
new file mode 100644
index 0000000..41125fa
--- /dev/null
+++ b/arch/arm/boot/dts/imx53-qsb.dts
@@ -0,0 +1,358 @@
+/*
+ * Copyright 2011 Freescale Semiconductor, Inc.
+ * Copyright 2011 Linaro Ltd.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+/include/ "imx53.dtsi"
+
+/ {
+	model = "Freescale i.MX53 Quick Start Board";
+	compatible = "fsl,imx53-qsb", "fsl,imx53";
+
+	chosen {
+		bootargs = "console=ttymxc0,115200 root=/dev/mmcblk0p3 rootwait";
+	};
+
+	memory {
+		reg = <0x70000000 0x40000000>;
+	};
+
+	aips at 50000000 { /* AIPS1 */
+		spba at 50000000 {
+			esdhc at 50004000 { /* ESDHC1 */
+				cd-gpios = <&gpio2 13 0>; /* GPIO3_13 */
+			};
+
+			esdhc at 50008000 { /* ESDHC2 */
+				status = "disabled";
+			};
+
+			uart2: uart at 5000c000 { /* UART3 */
+				status = "disabled";
+			};
+
+			ecspi at 50010000 { /* ECSPI1 */
+				status = "disabled";
+			};
+
+			esdhc at 50020000 { /* ESDHC3 */
+				cd-gpios = <&gpio2 11 0>; /* GPIO3_11 */
+				wp-gpios = <&gpio2 12 0>; /* GPIO3_12 */
+			};
+
+			esdhc at 50024000 { /* ESDHC4 */
+				status = "disabled";
+			};
+		};
+
+		iomuxc at 53fa8000 {
+			#address-cells = <2>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-iomuxc";
+			reg = <0x53fa8000 0x4000>;
+
+			/*
+			 * UART1
+			 */
+			csi0-dat10 { /* UART1_TXD_MUX */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			csi0-dat11 { /* UART1_RXD_MUX */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			/*
+			 * FEC
+			 */
+			fec-mdc {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-mdio {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-select-input = <0x804 0x1>;
+			};
+
+			fec-ref-clk {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rx-er {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-crs-dv {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rxd1 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rxd0 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-tx-en {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-txd1 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-txd0 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			pdata-da-0 { /* GPIO7_6: FEC_nRST */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * I2C1
+			 */
+			csi0-dat9 { /* I2C1_SCL */
+				fsl,iomuxc-mux-mode = <5>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x814 0x0>;
+			};
+
+			csi0-dat8 { /* I2C1_SDA */
+				fsl,iomuxc-mux-mode = <5>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x818 0x0>;
+			};
+
+			/*
+			 * I2C2
+			 */
+			key-col3 { /* I2C2_SCL */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x81c 0x0>;
+			};
+
+			key-row3 { /* I2C2_SDA */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x820 0x0>;
+			};
+
+			/*
+			 * SD1
+			 */
+			sd1-cmd {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-clk {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data0 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data1 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data2 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data3 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			eim-da13 { /* GPIO3_13: SD1_CD */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * SD3
+			 */
+			pata-reset-b { /* ESDHC3_CMD */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-iordy { /* ESDHC3_CLK */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data8 { /* ESDHC3_DAT0 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data9 { /* ESDHC3_DAT1 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data10 { /* ESDHC3_DAT2 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data11 { /* ESDHC3_DAT3 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data0 { /* ESDHC3_DAT4 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data1 { /* ESDHC3_DAT5 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data2 { /* ESDHC3_DAT6 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data3 { /* ESDHC3_DAT7 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			eim-da11 { /* GPIO3_11: SD3_CD */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			eim-da12 { /* GPIO3_12: SD3_WP */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * Buttons
+			 */
+			gpio-8 { /* GPIO1_8: nONKEY/KEEPACT */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			pata-data14 { /* GPIO2_14: USER_UI1 */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			pata-data15 { /* GPIO2_15: USER_UI2 */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * LED
+			 */
+			pata-da-1 { /* GPIO7_7: USER_LED_EN */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+		};
+
+		uart1: uart at 53fc0000 { /* UART2 */
+			status = "disabled";
+		};
+
+		i2c at 53fec000 { /* I2C3 */
+			status = "disabled";
+		};
+
+		uart3: uart at 53ff0000 { /* UART4 */
+			status = "disabled";
+		};
+	};
+
+	aips at 60000000 {	/* AIPS2 */
+		uart4: uart at 63f90000 { /* UART5 */
+			status = "disabled";
+		};
+
+		ecspi at 63fac000 { /* ECSPI2 */
+			status = "disabled";
+		};
+
+		cspi at 63fc0000 {
+			status = "disabled";
+		};
+
+		i2c at 63fc4000 { /* I2C2 */
+			codec: sgtl5000 at 0a {
+				compatible = "fsl,sgtl5000";
+				reg = <0x0a>;
+			};
+		};
+
+		i2c at 63fc8000 { /* I2C1 */
+			accelerometer: mma8450 at 1c {
+				compatible = "fsl,mma8450";
+				reg = <0x1c>;
+			};
+
+			pmic: dialog at 48 {
+				compatible = "dialog,da9053", "dialog,da9052";
+				reg = <0x48>;
+			};
+		};
+
+		fec at 63fec000 {
+			phy-mode = "rmii";
+			phy-reset-gpios = <&gpio6 6 0>; /* GPIO7_6 */
+		};
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		power {
+			label = "Power Button";
+			gpios = <&gpio0 8 0>; /* GPIO1_8 */
+			linux,code = <116>; /* KEY_POWER */
+			gpio-key,wakeup;
+		};
+
+		volume-up {
+			label = "Volume Up";
+			gpios = <&gpio1 14 0>; /* GPIO2_14 */
+			linux,code = <115>; /* KEY_VOLUMEUP */
+		};
+
+		volume-down {
+			label = "Volume Down";
+			gpios = <&gpio1 15 0>; /* GPIO2_15 */
+			linux,code = <114>; /* KEY_VOLUMEDOWN */
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		user {
+			label = "Heartbeat";
+			gpios = <&gpio6 7 0>; /* GPIO7_7 */
+			linux,default-trigger = "heartbeat";
+		};
+	};
+};
diff --git a/arch/arm/boot/dts/imx53-smd.dts b/arch/arm/boot/dts/imx53-smd.dts
new file mode 100644
index 0000000..a3d56cd
--- /dev/null
+++ b/arch/arm/boot/dts/imx53-smd.dts
@@ -0,0 +1,444 @@
+/*
+ * Copyright 2011 Freescale Semiconductor, Inc.
+ * Copyright 2011 Linaro Ltd.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+/include/ "imx53.dtsi"
+
+/ {
+	model = "Freescale i.MX53 Smart Mobile Reference Design Board";
+	compatible = "fsl,imx53-smd", "fsl,imx53";
+
+	chosen {
+		bootargs = "console=ttymxc0,115200 root=/dev/mmcblk0p3 rootwait";
+	};
+
+	memory {
+		reg = <0x70000000 0x40000000>;
+	};
+
+	aips at 50000000 { /* AIPS1 */
+		spba at 50000000 {
+			esdhc at 50004000 { /* ESDHC1 */
+				cd-gpios = <&gpio2 13 0>; /* GPIO3_13 */
+				wp-gpios = <&gpio3 11 0>; /* GPIO4_11 */
+			};
+
+			esdhc at 50008000 { /* ESDHC2 */
+				fsl,card-wired;
+			};
+
+			uart2: uart at 5000c000 { /* UART3 */
+				fsl,uart-has-rtscts;
+			};
+
+			ecspi at 50010000 { /* ECSPI1 */
+				fsl,spi-num-chipselects = <2>;
+				cs-gpios = <&gpio1 30 0>, /* GPIO2_30 */
+					   <&gpio2 19 0>; /* GPIO3_19 */
+
+				zigbee: mc1323 at 0 {
+					compatible = "fsl,mc1323";
+					spi-max-frequency = <8000000>;
+					reg = <0>;
+				};
+
+				flash: m25p32 at 1 {
+					#address-cells = <1>;
+					#size-cells = <1>;
+					compatible = "st,m25p32", "st,m25p";
+					spi-max-frequency = <20000000>;
+					reg = <1>;
+
+					partition at 0 {
+						label = "U-Boot";
+						reg = <0x0 0x40000>;
+						read-only;
+					};
+
+					partition at 40000 {
+						label = "Kernel";
+						reg = <0x40000 0x3c0000>;
+					};
+				};
+			};
+
+			esdhc at 50020000 { /* ESDHC3 */
+				fsl,card-wired;
+			};
+
+			esdhc at 50024000 { /* ESDHC4 */
+				status = "disabled";
+			};
+		};
+
+		iomuxc at 53fa8000 {
+			#address-cells = <2>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-iomuxc";
+			reg = <0x53fa8000 0x4000>;
+
+			/*
+			 * UART1
+			 */
+			csi0-dat10 { /* UART1_TXD_MUX */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			csi0-dat11 { /* UART1_RXD_MUX */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			/*
+			 * UART2
+			 */
+			pata-dmarq { /* UART2_TXD_MUX */
+				fsl,iomuxc-mux-mode = <3>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-buffer-en { /* UART2_RXD_MUX */
+				fsl,iomuxc-mux-mode = <3>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+				fsl,iomuxc-select-input = <0x880 0x3>;
+			};
+
+			/*
+			 * UART3
+			 */
+			pata-da-1 { /* UART3_CTS */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-da-2 { /* UART3_RTS */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+				fsl,iomuxc-select-input = <0x884 0x5>;
+			};
+
+			pata-cs-0 { /* UART3_TXD_MUX */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-cs-1 { /* UART3_RXD_MUX */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+				fsl,iomuxc-select-input = <0x888 0x3>;
+			};
+
+			/*
+			 * FEC
+			 */
+			fec-mdc {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-mdio {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-select-input = <0x804 0x1>;
+			};
+
+			fec-ref-clk {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rx-er {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-crs-dv {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rxd1 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-rxd0 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-tx-en {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-txd1 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			fec-txd0 {
+				fsl,iomuxc-mux-mode = <0>;
+			};
+
+			pdata-da-0 { /* GPIO7_6: FEC_nRST */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * I2C1
+			 */
+			csi0-dat9 { /* I2C1_SCL */
+				fsl,iomuxc-mux-mode = <5>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x814 0x0>;
+			};
+
+			csi0-dat8 { /* I2C1_SDA */
+				fsl,iomuxc-mux-mode = <5>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x818 0x0>;
+			};
+
+			/*
+			 * I2C2
+			 */
+			key-col3 { /* I2C2_SCL */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x81c 0x0>;
+			};
+
+			key-row3 { /* I2C2_SDA */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-select-input = <0x820 0x0>;
+			};
+
+			/*
+			 * SD1
+			 */
+			sd1-cmd {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-sion;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-clk {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data0 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data1 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data2 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd1-data3 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			eim-da13 { /* GPIO3_13: SD1_CD */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			key-row2 { /* GPIO4_11: SD1_WP */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * SD2
+			 */
+			sd2-clk {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd2-cmd {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd2-data3 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd2-data2 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd2-data1 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			sd2-data0 {
+				fsl,iomuxc-mux-mode = <0>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			/*
+			 * SD3
+			 */
+			pata-reset-b { /* ESDHC3_CMD */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-iordy { /* ESDHC3_CLK */
+				fsl,iomuxc-mux-mode = <2>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data8 { /* ESDHC3_DAT0 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data9 { /* ESDHC3_DAT1 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data10 { /* ESDHC3_DAT2 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data11 { /* ESDHC3_DAT3 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data0 { /* ESDHC3_DAT4 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data1 { /* ESDHC3_DAT5 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data2 { /* ESDHC3_DAT6 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			pata-data3 { /* ESDHC3_DAT7 */
+				fsl,iomuxc-mux-mode = <4>;
+				fsl,iomuxc-pad-ctl = <0x1e4>;
+			};
+
+			eim-da11 { /* GPIO3_11: SD3_CD */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			eim-da12 { /* GPIO3_12: SD3_WP */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			/*
+			 * Buttons
+			 */
+			pata-data14 { /* GPIO2_14: VOL+ */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+
+			pata-data15 { /* GPIO2_15: VOL- */
+				fsl,iomuxc-mux-mode = <1>;
+			};
+		};
+
+		i2c at 53fec000 { /* I2C3 */
+			status = "disabled";
+		};
+
+		uart3: uart at 53ff0000 { /* UART4 */
+			status = "disabled";
+		};
+	};
+
+	aips at 60000000 {	/* AIPS2 */
+		uart4: uart at 63f90000 { /* UART5 */
+			status = "disabled";
+		};
+
+		ecspi at 63fac000 { /* ECSPI2 */
+			status = "disabled";
+		};
+
+		cspi at 63fc0000 {
+			status = "disabled";
+		};
+
+		i2c at 63fc4000 { /* I2C2 */
+			codec: sgtl5000 at 0a {
+				compatible = "fsl,sgtl5000";
+				reg = <0x0a>;
+			};
+
+			magnetometer: mag3110 at 0e {
+				compatible = "fsl,mag3110";
+				reg = <0x0e>;
+			};
+
+			touchkey: mpr121 at 5a {
+				compatible = "fsl,mpr121";
+				reg = <0x5a>;
+			};
+		};
+
+		i2c at 63fc8000 { /* I2C1 */
+			accelerometer: mma8450 at 1c {
+				compatible = "fsl,mma8450";
+				reg = <0x1c>;
+			};
+
+			camera: ov5642 at 3c {
+				compatible = "ovti,ov5642";
+				reg = <0x3c>;
+			};
+
+			pmic: dialog at 48 {
+				compatible = "dialog,da9053", "dialog,da9052";
+				reg = <0x48>;
+			};
+		};
+
+		fec at 63fec000 {
+			phy-mode = "rmii";
+			phy-reset-gpios = <&gpio6 6 0>; /* GPIO7_6 */
+		};
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		volume-up {
+			label = "Volume Up";
+			gpios = <&gpio1 14 0>; /* GPIO2_14 */
+			linux,code = <115>; /* KEY_VOLUMEUP */
+		};
+
+		volume-down {
+			label = "Volume Down";
+			gpios = <&gpio1 15 0>; /* GPIO2_15 */
+			linux,code = <114>; /* KEY_VOLUMEDOWN */
+		};
+	};
+};
diff --git a/arch/arm/boot/dts/imx53.dtsi b/arch/arm/boot/dts/imx53.dtsi
new file mode 100644
index 0000000..746221c
--- /dev/null
+++ b/arch/arm/boot/dts/imx53.dtsi
@@ -0,0 +1,1044 @@
+/*
+ * Copyright 2011 Freescale Semiconductor, Inc.
+ * Copyright 2011 Linaro Ltd.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/include/ "skeleton.dtsi"
+
+/ {
+	interrupt-parent = <&tzic>;
+
+	aliases {
+		serial0 = &uart0;
+		serial1 = &uart1;
+		serial2 = &uart2;
+		serial3 = &uart3;
+		serial4 = &uart4;
+	};
+
+	tzic: tz-interrupt-controller at 0fffc000 {
+		compatible = "fsl,imx53-tzic", "fsl,tzic";
+		interrupt-controller;
+		#interrupt-cells = <1>;
+		reg = <0x0fffc000 0x4000>;
+	};
+
+	aips at 50000000 { /* AIPS1 */
+		compatible = "fsl,aips-bus", "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		reg = <0x50000000 0x10000000>;
+		ranges;
+
+		spba at 50000000 {
+			compatible = "fsl,spba-bus", "simple-bus";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			reg = <0x50000000 0x40000>;
+			ranges;
+
+			esdhc at 50004000 { /* ESDHC1 */
+				compatible = "fsl,imx53-esdhc";
+				reg = <0x50004000 0x4000>;
+				interrupts = <1>;
+			};
+
+			esdhc at 50008000 { /* ESDHC2 */
+				compatible = "fsl,imx53-esdhc";
+				reg = <0x50008000 0x4000>;
+				interrupts = <2>;
+			};
+
+			uart2: uart at 5000c000 { /* UART3 */
+				compatible = "fsl,imx53-uart", "fsl,imx21-uart";
+				reg = <0x5000c000 0x4000>;
+				interrupts = <33>;
+			};
+
+			ecspi at 50010000 { /* ECSPI1 */
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "fsl,imx53-ecspi", "fsl,imx51-ecspi";
+				reg = <0x50010000 0x4000>;
+				interrupts = <36>;
+			};
+
+			esdhc at 50020000 { /* ESDHC3 */
+				compatible = "fsl,imx53-esdhc";
+				reg = <0x50020000 0x4000>;
+				interrupts = <3>;
+			};
+
+			esdhc at 50024000 { /* ESDHC4 */
+				compatible = "fsl,imx53-esdhc";
+				reg = <0x50024000 0x4000>;
+				interrupts = <4>;
+			};
+		};
+
+		gpio0: gpio at 53f84000 { /* GPIO1 */
+			compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
+			reg = <0x53f84000 0x4000>;
+			interrupts = <50 51>;
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+
+		gpio1: gpio at 53f88000 { /* GPIO2 */
+			compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
+			reg = <0x53f88000 0x4000>;
+			interrupts = <52 53>;
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+
+		gpio2: gpio at 53f8c000 { /* GPIO3 */
+			compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
+			reg = <0x53f8c000 0x4000>;
+			interrupts = <54 55>;
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+
+		gpio3: gpio at 53f90000 { /* GPIO4 */
+			compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
+			reg = <0x53f90000 0x4000>;
+			interrupts = <56 57>;
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+
+		wdt at 53f98000 { /* WDOG1 */
+			compatible = "fsl,imx53-wdt", "fsl,imx21-wdt";
+			reg = <0x53f98000 0x4000>;
+			interrupts = <58>;
+		};
+
+		iomuxc at 53fa8000 {
+			#address-cells = <2>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-iomuxc";
+			reg = <0x53fa8000 0x4000>;
+
+			gpio-19 {
+				reg = <0x20 0x348>;
+			};
+
+			key-col0 {
+				reg = <0x24 0x34c>;
+			};
+
+			key-row0 {
+				reg = <0x28 0x350>;
+			};
+
+			key-col1 {
+				reg = <0x2c 0x354>;
+			};
+
+			key-row1 {
+				reg = <0x30 0x358>;
+			};
+
+			key-col2 {
+				reg = <0x34 0x35c>;
+			};
+
+			key-row2 {
+				reg = <0x38 0x360>;
+			};
+
+			key-col3 {
+				reg = <0x3c 0x364>;
+			};
+
+			key-row3 {
+				reg = <0x40 0x368>;
+			};
+
+			key-col4 {
+				reg = <0x44 0x36c>;
+			};
+
+			key-row4 {
+				reg = <0x48 0x370>;
+			};
+
+			di0-disp-clk {
+				reg = <0x4c 0x378>;
+			};
+
+			di0-pin15 {
+				reg = <0x50 0x37c>;
+			};
+
+			di0-pin2 {
+				reg = <0x54 0x380>;
+			};
+
+			di0-pin3 {
+				reg = <0x58 0x384>;
+			};
+
+			di0-pin4 {
+				reg = <0x5c 0x388>;
+			};
+
+			disp0-dat0 {
+				reg = <0x60 0x38c>;
+			};
+
+			disp0-dat1 {
+				reg = <0x64 0x390>;
+			};
+
+			disp0-dat2 {
+				reg = <0x68 0x394>;
+			};
+
+			disp0-dat3 {
+				reg = <0x6c 0x398>;
+			};
+
+			disp0-dat4 {
+				reg = <0x70 0x39c>;
+			};
+
+			disp0-dat5 {
+				reg = <0x74 0x3a0>;
+			};
+
+			disp0-dat6 {
+				reg = <0x78 0x3a4>;
+			};
+
+			disp0-dat7 {
+				reg = <0x7c 0x3a8>;
+			};
+
+			disp0-dat8 {
+				reg = <0x80 0x3ac>;
+			};
+
+			disp0-dat9 {
+				reg = <0x84 0x3b0>;
+			};
+
+			disp0-dat10 {
+				reg = <0x88 0x3b4>;
+			};
+
+			disp0-dat11 {
+				reg = <0x8c 0x3b8>;
+			};
+
+			disp0-dat12 {
+				reg = <0x90 0x3bc>;
+			};
+
+			disp0-dat13 {
+				reg = <0x94 0x3c0>;
+			};
+
+			disp0-dat14 {
+				reg = <0x98 0x3c4>;
+			};
+
+			disp0-dat15 {
+				reg = <0x9c 0x3c8>;
+			};
+
+			disp0-dat16 {
+				reg = <0xa0 0x3cc>;
+			};
+
+			disp0-dat17 {
+				reg = <0xa4 0x3d0>;
+			};
+
+			disp0-dat18 {
+				reg = <0xa8 0x3d4>;
+			};
+
+			disp0-dat19 {
+				reg = <0xac 0x3d8>;
+			};
+
+			disp0-dat20 {
+				reg = <0xb0 0x3dc>;
+			};
+
+			disp0-dat21 {
+				reg = <0xb4 0x3e0>;
+			};
+
+			disp0-dat22 {
+				reg = <0xb8 0x3e4>;
+			};
+
+			disp0-dat23 {
+				reg = <0xbc 0x3e8>;
+			};
+
+			csi0-pixclk {
+				reg = <0xc0 0x3ec>;
+			};
+
+			csi0-mclk {
+				reg = <0xc4 0x3f0>;
+			};
+
+			csi0-data-en {
+				reg = <0xc8 0x3f4>;
+			};
+
+			csi0-vsync {
+				reg = <0xcc 0x3f8>;
+			};
+
+			csi0-dat4 {
+				reg = <0xd0 0x3fc>;
+			};
+
+			csi0-dat5 {
+				reg = <0xd4 0x400>;
+			};
+
+			csi0-dat6 {
+				reg = <0xd8 0x404>;
+			};
+
+			csi0-dat7 {
+				reg = <0xdc 0x408>;
+			};
+
+			csi0-dat8 {
+				reg = <0xe0 0x40c>;
+			};
+
+			csi0-dat9 {
+				reg = <0xe4 0x410>;
+			};
+
+			csi0-dat10 {
+				reg = <0xe8 0x414>;
+			};
+
+			csi0-dat11 {
+				reg = <0xec 0x418>;
+			};
+
+			csi0-dat12 {
+				reg = <0xf0 0x41c>;
+			};
+
+			csi0-dat13 {
+				reg = <0xf4 0x420>;
+			};
+
+			csi0-dat14 {
+				reg = <0xf8 0x424>;
+			};
+
+			csi0-dat15 {
+				reg = <0xfc 0x428>;
+			};
+
+			csi0-dat16 {
+				reg = <0x100 0x42c>;
+			};
+
+			csi0-dat17 {
+				reg = <0x104 0x430>;
+			};
+
+			csi0-dat18 {
+				reg = <0x108 0x434>;
+			};
+
+			csi0-dat19 {
+				reg = <0x10c 0x438>;
+			};
+
+			eim-a25 {
+				reg = <0x110 0x458>;
+			};
+
+			eim-eb2 {
+				reg = <0x114 0x45c>;
+			};
+
+			eim-d16 {
+				reg = <0x118 0x460>;
+			};
+
+			eim-d17 {
+				reg = <0x11c 0x464>;
+			};
+
+			eim-d18 {
+				reg = <0x120 0x468>;
+			};
+
+			eim-d19 {
+				reg = <0x124 0x46c>;
+			};
+
+			eim-d20 {
+				reg = <0x128 0x470>;
+			};
+
+			eim-d21 {
+				reg = <0x12c 0x474>;
+			};
+
+			eim-d22 {
+				reg = <0x130 0x478>;
+			};
+
+			eim-d23 {
+				reg = <0x134 0x47c>;
+			};
+
+			eim-eb3 {
+				reg = <0x138 0x480>;
+			};
+
+			eim-d24 {
+				reg = <0x13c 0x484>;
+			};
+
+			eim-d25 {
+				reg = <0x140 0x488>;
+			};
+
+			eim-d26 {
+				reg = <0x144 0x48c>;
+			};
+
+			eim-d27 {
+				reg = <0x148 0x490>;
+			};
+
+			eim-d28 {
+				reg = <0x14c 0x494>;
+			};
+
+			eim-d29 {
+				reg = <0x150 0x498>;
+			};
+
+			eim-d30 {
+				reg = <0x154 0x49c>;
+			};
+
+			eim-d31 {
+				reg = <0x158 0x4a0>;
+			};
+
+			eim-a24 {
+				reg = <0x15c 0x4a8>;
+			};
+
+			eim-a23 {
+				reg = <0x160 0x4ac>;
+			};
+
+			eim-a22 {
+				reg = <0x164 0x4b0>;
+			};
+
+			eim-a21 {
+				reg = <0x168 0x4b4>;
+			};
+
+			eim-a20 {
+				reg = <0x16c 0x4b8>;
+			};
+
+			eim-a19 {
+				reg = <0x170 0x4bc>;
+			};
+
+			eim-a18 {
+				reg = <0x174 0x4c0>;
+			};
+
+			eim-a17 {
+				reg = <0x178 0x4c4>;
+			};
+
+			eim-a16 {
+				reg = <0x17c 0x4c8>;
+			};
+
+			eim-cs0 {
+				reg = <0x180 0x4cc>;
+			};
+
+			eim-cs1 {
+				reg = <0x184 0x4d0>;
+			};
+
+			eim-oe {
+				reg = <0x188 0x4d4>;
+			};
+
+			eim-rw {
+				reg = <0x18c 0x4d8>;
+			};
+
+			eim-lba {
+				reg = <0x190 0x4dc>;
+			};
+
+			eim-eb0 {
+				reg = <0x194 0x4e4>;
+			};
+
+			eim-eb1 {
+				reg = <0x198 0x4e8>;
+			};
+
+			eim-da0 {
+				reg = <0x19c 0x4ec>;
+			};
+
+			eim-da1 {
+				reg = <0x1a0 0x4f0>;
+			};
+
+			eim-da2 {
+				reg = <0x1a4 0x4f4>;
+			};
+
+			eim-da3 {
+				reg = <0x1a8 0x4f8>;
+			};
+
+			eim-da4 {
+				reg = <0x1ac 0x4fc>;
+			};
+
+			eim-da5 {
+				reg = <0x1b0 0x500>;
+			};
+
+			eim-da6 {
+				reg = <0x1b4 0x504>;
+			};
+
+			eim-da7 {
+				reg = <0x1b8 0x508>;
+			};
+
+			eim-da8 {
+				reg = <0x1bc 0x50c>;
+			};
+
+			eim-da9 {
+				reg = <0x1c0 0x510>;
+			};
+
+			eim-da10 {
+				reg = <0x1c4 0x514>;
+			};
+
+			eim-da11 {
+				reg = <0x1c8 0x518>;
+			};
+
+			eim-da12 {
+				reg = <0x1cc 0x51c>;
+			};
+
+			eim-da13 {
+				reg = <0x1d0 0x520>;
+			};
+
+			eim-da14 {
+				reg = <0x1d4 0x524>;
+			};
+
+			eim-da15 {
+				reg = <0x1d8 0x528>;
+			};
+
+			nandf-we-b {
+				reg = <0x1dc 0x52c>;
+			};
+
+			nandf-re-b {
+				reg = <0x1e0 0x530>;
+			};
+
+			eim-wait {
+				reg = <0x1e4 0x534>;
+			};
+
+			lvds1-tx3-p {
+				reg = <0x1ec 0x0>;
+			};
+
+			lvds1-tx2-p {
+				reg = <0x1f0 0x0>;
+			};
+
+			lvds1-clk-p {
+				reg = <0x1f4 0x0>;
+			};
+
+			lvds1-tx1-p {
+				reg = <0x1f8 0x0>;
+			};
+
+			lvds1-tx0-p {
+				reg = <0x1fc 0x0>;
+			};
+
+			lvds0-tx3-p {
+				reg = <0x200 0x0>;
+			};
+
+			lvds0-clk-p {
+				reg = <0x204 0x0>;
+			};
+
+			lvds0-tx2-p {
+				reg = <0x208 0x0>;
+			};
+
+			lvds0-tx1-p {
+				reg = <0x20c 0x0>;
+			};
+
+			lvds0-tx0-p {
+				reg = <0x210 0x0>;
+			};
+
+			gpio-10 {
+				reg = <0x214 0x540>;
+			};
+
+			gpio-11 {
+				reg = <0x218 0x544>;
+			};
+
+			gpio-12 {
+				reg = <0x21c 0x548>;
+			};
+
+			gpio-13 {
+				reg = <0x220 0x54c>;
+			};
+
+			gpio-14 {
+				reg = <0x224 0x550>;
+			};
+
+			nandf-cle {
+				reg = <0x228 0x5a0>;
+			};
+
+			nandf-ale {
+				reg = <0x22c 0x5a4>;
+			};
+
+			nandf-wp-b {
+				reg = <0x230 0x5a8>;
+			};
+
+			nandf-rb0 {
+				reg = <0x234 0x5ac>;
+			};
+
+			nandf-cs0 {
+				reg = <0x238 0x5b0>;
+			};
+
+			nandf-cs1 {
+				reg = <0x23c 0x5b4>;
+			};
+
+			nandf-cs2 {
+				reg = <0x240 0x5b8>;
+			};
+
+			nandf-cs3 {
+				reg = <0x244 0x5bc>;
+			};
+
+			fec-mdio {
+				reg = <0x248 0x5c4>;
+			};
+
+			fec-ref-clk {
+				reg = <0x24c 0x5c8>;
+			};
+
+			fec-rx-er {
+				reg = <0x250 0x5cc>;
+			};
+
+			fec-crs-dv {
+				reg = <0x254 0x5d0>;
+			};
+
+			fec-rxd1 {
+				reg = <0x258 0x5d4>;
+			};
+
+			fec-rxd0 {
+				reg = <0x25c 0x5d8>;
+			};
+
+			fec-tx-en {
+				reg = <0x260 0x5dc>;
+			};
+
+			fec-txd1 {
+				reg = <0x264 0x5e0>;
+			};
+
+			fec-txd0 {
+				reg = <0x268 0x5e4>;
+			};
+
+			fec-mdc {
+				reg = <0x26c 0x5e8>;
+			};
+
+			pata-diow {
+				reg = <0x270 0x5f0>;
+			};
+
+			pata-dmack {
+				reg = <0x274 0x5f4>;
+			};
+
+			pata-dmarq {
+				reg = <0x278 0x5f8>;
+			};
+
+			pata-buffer-en {
+				reg = <0x27c 0x5fc>;
+			};
+
+			pata-intrq {
+				reg = <0x280 0x600>;
+			};
+
+			pata-dior {
+				reg = <0x284 0x604>;
+			};
+
+			pata-reset-b {
+				reg = <0x288 0x608>;
+			};
+
+			pata-iordy {
+				reg = <0x28c 0x60c>;
+			};
+
+			pata-da-0 {
+				reg = <0x290 0x610>;
+			};
+
+			pata-da-1 {
+				reg = <0x294 0x614>;
+			};
+
+			pata-da-2 {
+				reg = <0x298 0x618>;
+			};
+
+			pata-cs-0 {
+				reg = <0x29c 0x61c>;
+			};
+
+			pata-cs-1 {
+				reg = <0x2a0 0x620>;
+			};
+
+			pata-data0 {
+				reg = <0x2a4 0x628>;
+			};
+
+			pata-data1 {
+				reg = <0x2a8 0x62c>;
+			};
+
+			pata-data2 {
+				reg = <0x2ac 0x630>;
+			};
+
+			pata-data3 {
+				reg = <0x2b0 0x634>;
+			};
+
+			pata-data4 {
+				reg = <0x2b4 0x638>;
+			};
+
+			pata-data5 {
+				reg = <0x2b8 0x63c>;
+			};
+
+			pata-data6 {
+				reg = <0x2bc 0x640>;
+			};
+
+			pata-data7 {
+				reg = <0x2c0 0x644>;
+			};
+
+			pata-data8 {
+				reg = <0x2c4 0x648>;
+			};
+
+			pata-data9 {
+				reg = <0x2c8 0x64c>;
+			};
+
+			pata-data10 {
+				reg = <0x2cc 0x650>;
+			};
+
+			pata-data11 {
+				reg = <0x2d0 0x654>;
+			};
+
+			pata-data12 {
+				reg = <0x2d4 0x658>;
+			};
+
+			pata-data13 {
+				reg = <0x2d8 0x65c>;
+			};
+
+			pata-data14 {
+				reg = <0x2dc 0x660>;
+			};
+
+			pata-data15 {
+				reg = <0x2e0 0x664>;
+			};
+
+			sd1-data0 {
+				reg = <0x2e4 0x66c>;
+			};
+
+			sd1-data1 {
+				reg = <0x2e8 0x670>;
+			};
+
+			sd1-cmd {
+				reg = <0x2ec 0x674>;
+			};
+
+			sd1-data2 {
+				reg = <0x2f0 0x678>;
+			};
+
+			sd1-clk {
+				reg = <0x2f4 0x67c>;
+			};
+
+			sd1-data3 {
+				reg = <0x2f8 0x680>;
+			};
+
+			sd2-clk {
+				reg = <0x2fc 0x688>;
+			};
+
+			sd2-cmd {
+				reg = <0x300 0x68c>;
+			};
+
+			sd2-data3 {
+				reg = <0x304 0x690>;
+			};
+
+			sd2-data2 {
+				reg = <0x308 0x694>;
+			};
+
+			sd2-data1 {
+				reg = <0x30c 0x698>;
+			};
+
+			sd2-data0 {
+				reg = <0x310 0x69c>;
+			};
+
+			gpio-0 {
+				reg = <0x314 0x6a4>;
+			};
+
+			gpio-1 {
+				reg = <0x318 0x6a8>;
+			};
+
+			gpio-9 {
+				reg = <0x31c 0x6ac>;
+			};
+
+			gpio-3 {
+				reg = <0x320 0x6b0>;
+			};
+
+			gpio-6 {
+				reg = <0x324 0x6b4>;
+			};
+
+			gpio-2 {
+				reg = <0x328 0x6b8>;
+			};
+
+			gpio-4 {
+				reg = <0x32c 0x6bc>;
+			};
+
+			gpio-5 {
+				reg = <0x330 0x6c0>;
+			};
+
+			gpio-7 {
+				reg = <0x334 0x6c4>;
+			};
+
+			gpio-8 {
+				reg = <0x338 0x6c8>;
+			};
+
+			gpio-16 {
+				reg = <0x33c 0x6cc>;
+			};
+
+			gpio-17 {
+				reg = <0x340 0x6d0>;
+			};
+
+			gpio-18 {
+				reg = <0x344 0x6d4>;
+			};
+		};
+
+		uart0: uart at 53fbc000 { /* UART1 */
+			compatible = "fsl,imx53-uart", "fsl,imx21-uart";
+			reg = <0x53fbc000 0x4000>;
+			interrupts = <31>;
+		};
+
+		uart1: uart at 53fc0000 { /* UART2 */
+			compatible = "fsl,imx53-uart", "fsl,imx21-uart";
+			reg = <0x53fc0000 0x4000>;
+			interrupts = <32>;
+		};
+
+		gpio4: gpio at 53fdc000 { /* GPIO5 */
+			compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
+			reg = <0x53fdc000 0x4000>;
+			interrupts = <103 104>;
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+
+		gpio5: gpio at 53fe0000 { /* GPIO6 */
+			compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
+			reg = <0x53fe0000 0x4000>;
+			interrupts = <105 106>;
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+
+		gpio6: gpio at 53fe4000 { /* GPIO7 */
+			compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
+			reg = <0x53fe4000 0x4000>;
+			interrupts = <107 108>;
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+
+		i2c at 53fec000 { /* I2C3 */
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-i2c", "fsl,imx1-i2c";
+			reg = <0x53fec000 0x4000>;
+			interrupts = <64>;
+		};
+
+		uart3: uart at 53ff0000 { /* UART4 */
+			compatible = "fsl,imx53-uart", "fsl,imx21-uart";
+			reg = <0x53ff0000 0x4000>;
+			interrupts = <13>;
+		};
+	};
+
+	aips at 60000000 {	/* AIPS2 */
+		compatible = "fsl,aips-bus", "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		reg = <0x60000000 0x10000000>;
+		ranges;
+
+		uart4: uart at 63f90000 { /* UART5 */
+			compatible = "fsl,imx53-uart", "fsl,imx21-uart";
+			reg = <0x63f90000 0x4000>;
+			interrupts = <86>;
+		};
+
+		ecspi at 63fac000 { /* ECSPI2 */
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-ecspi", "fsl,imx51-ecspi";
+			reg = <0x63fac000 0x4000>;
+			interrupts = <37>;
+		};
+
+		sdma at 63fb0000 {
+			compatible = "fsl,imx53-sdma", "fsl,imx35-sdma";
+			reg = <0x63fb0000 0x4000>;
+			interrupts = <6>;
+			fsl,sdma-ram-script-name = "imx/sdma/sdma-imx53.bin";
+		};
+
+		cspi at 63fc0000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-cspi", "fsl,imx35-cspi";
+			reg = <0x63fc0000 0x4000>;
+			interrupts = <38>;
+		};
+
+		i2c at 63fc4000 { /* I2C2 */
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-i2c", "fsl,imx1-i2c";
+			reg = <0x63fc4000 0x4000>;
+			interrupts = <63>;
+		};
+
+		i2c at 63fc8000 { /* I2C1 */
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "fsl,imx53-i2c", "fsl,imx1-i2c";
+			reg = <0x63fc8000 0x4000>;
+			interrupts = <62>;
+		};
+
+		fec at 63fec000 {
+			compatible = "fsl,imx53-fec", "fsl,imx25-fec";
+			reg = <0x63fec000 0x4000>;
+			interrupts = <87>;
+		};
+	};
+};
diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig
index 53422d2..9f60dc1 100644
--- a/arch/arm/mach-mx5/Kconfig
+++ b/arch/arm/mach-mx5/Kconfig
@@ -173,6 +173,14 @@ endif # ARCH_MX51
 if ARCH_MX53_SUPPORTED
 comment "i.MX53 machines:"
 
+config MACH_IMX53_DT
+	bool "Support i.MX53 platforms from device tree"
+	select SOC_IMX53
+	select USE_OF
+	help
+	  Include support for Freescale i.MX53 based platforms
+	  using the device tree for discovery
+
 config MACH_MX53_EVK
 	bool "Support MX53 EVK platforms"
 	select SOC_IMX53
diff --git a/arch/arm/mach-mx5/Makefile b/arch/arm/mach-mx5/Makefile
index 71379f6..a1fd712 100644
--- a/arch/arm/mach-mx5/Makefile
+++ b/arch/arm/mach-mx5/Makefile
@@ -24,3 +24,4 @@ obj-$(CONFIG_MACH_MX51_EFIKASB) += board-mx51_efikasb.o
 obj-$(CONFIG_MACH_MX50_RDP) += board-mx50_rdp.o
 
 obj-$(CONFIG_OF) += iomuxc-dt.o
+obj-$(CONFIG_MACH_IMX53_DT) += imx53-dt.o
diff --git a/arch/arm/mach-mx5/imx53-dt.c b/arch/arm/mach-mx5/imx53-dt.c
new file mode 100644
index 0000000..ac06f04
--- /dev/null
+++ b/arch/arm/mach-mx5/imx53-dt.c
@@ -0,0 +1,128 @@
+/*
+ * Copyright 2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright 2011 Linaro Ltd.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include <linux/irq.h>
+#include <linux/of_platform.h>
+#include <asm/mach/arch.h>
+#include <asm/mach/time.h>
+#include <mach/common.h>
+#include <mach/hardware.h>
+#include <mach/mx53.h>
+
+/*
+ * Lookup table for attaching a specific name and platform_data pointer to
+ * devices as they get created by of_platform_populate().  Ideally this table
+ * would not exist, but the current clock implementation depends on some devices
+ * having a specific name.
+ */
+static const struct of_dev_auxdata imx53_auxdata_lookup[] __initconst = {
+	OF_DEV_AUXDATA("fsl,imx53-uart", MX53_UART1_BASE_ADDR, "imx21-uart.0", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-uart", MX53_UART2_BASE_ADDR, "imx21-uart.1", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-uart", MX53_UART3_BASE_ADDR, "imx21-uart.2", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-uart", MX53_UART4_BASE_ADDR, "imx21-uart.3", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-uart", MX53_UART5_BASE_ADDR, "imx21-uart.4", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-fec", MX53_FEC_BASE_ADDR, "imx25-fec.0", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-esdhc", MX53_ESDHC1_BASE_ADDR, "sdhci-esdhc-imx53.0", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-esdhc", MX53_ESDHC2_BASE_ADDR, "sdhci-esdhc-imx53.1", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-esdhc", MX53_ESDHC3_BASE_ADDR, "sdhci-esdhc-imx53.2", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-esdhc", MX53_ESDHC4_BASE_ADDR, "sdhci-esdhc-imx53.3", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-ecspi", MX53_ECSPI1_BASE_ADDR, "imx51-ecspi.0", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-ecspi", MX53_ECSPI2_BASE_ADDR, "imx51-ecspi.1", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-cspi", MX53_CSPI_BASE_ADDR, "imx35-cspi.0", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-i2c", MX53_I2C1_BASE_ADDR, "imx-i2c.0", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-i2c", MX53_I2C2_BASE_ADDR, "imx-i2c.1", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-i2c", MX53_I2C3_BASE_ADDR, "imx-i2c.2", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-sdma", MX53_SDMA_BASE_ADDR, "imx35-sdma", NULL),
+	OF_DEV_AUXDATA("fsl,imx53-wdt", MX53_WDOG1_BASE_ADDR, "imx2-wdt.0", NULL),
+	{ /* sentinel */ }
+};
+
+static const struct of_device_id imx53_tzic_of_match[] __initconst = {
+	{ .compatible = "fsl,imx53-tzic", },
+	{ /* sentinel */ }
+};
+
+static const struct of_device_id imx53_iomuxc_of_match[] __initconst = {
+	{ .compatible = "fsl,imx53-iomuxc", },
+	{ /* sentinel */ }
+};
+
+/* Configure EIM for SMSC LAN9220 */
+static void __init imx53_ard_eim_config(void)
+{
+	u32 val;
+	void __iomem *eim_base, *iomuxc_base;
+
+	eim_base = ioremap(MX53_WEIM_BASE_ADDR, SZ_4K);
+	iomuxc_base = ioremap(MX53_IOMUXC_BASE_ADDR, SZ_4K);
+	if (!eim_base || !iomuxc_base) {
+		pr_warn("%s: ioremap failed\n", __func__);
+		return;
+	}
+
+	/* CS1 timings for LAN9220 */
+	writel(0x20001, (eim_base + 0x18));
+	writel(0x0, (eim_base + 0x1c));
+	writel(0x16000202, (eim_base + 0x20));
+	writel(0x00000002, (eim_base + 0x24));
+	writel(0x16002082, (eim_base + 0x28));
+	writel(0x00000000, (eim_base + 0x2c));
+	writel(0x00000000, (eim_base + 0x90));
+
+	/* specify 64 MB on CS1 and CS0 on GPR1 */
+	val = readl(iomuxc_base + 0x4);
+	val &= ~0x3f;
+	val |= 0x1b;
+	writel(val, (iomuxc_base + 0x4));
+
+	iounmap(eim_base);
+	iounmap(iomuxc_base);
+}
+
+static void __init imx53_dt_init(void)
+{
+	if (of_machine_is_compatible("fsl,imx53-ard"))
+		imx53_ard_eim_config();
+
+	mxc_iomuxc_dt_init(imx53_iomuxc_of_match);
+
+	irq_domain_generate_simple(imx53_tzic_of_match, MX53_TZIC_BASE_ADDR, 0);
+
+	of_platform_populate(NULL, of_default_bus_match_table,
+			     imx53_auxdata_lookup, NULL);
+}
+
+static void __init imx53_timer_init(void)
+{
+	mx53_clocks_init(32768, 24000000, 22579200, 0);
+}
+
+static struct sys_timer imx53_timer = {
+	.init = imx53_timer_init,
+};
+
+static const char *imx53_dt_board_compat[] __initdata = {
+	"fsl,imx53-ard",
+	"fsl,imx53-evk",
+	"fsl,imx53-qsb",
+	"fsl,imx53-smd",
+	NULL
+};
+
+DT_MACHINE_START(IMX53_DT, "Freescale i.MX53 (Device Tree Support)")
+	.map_io		= mx53_map_io,
+	.init_early	= imx53_init_early,
+	.init_irq	= mx53_init_irq,
+	.timer		= &imx53_timer,
+	.init_machine	= imx53_dt_init,
+	.dt_compat	= imx53_dt_board_compat,
+MACHINE_END
-- 
1.7.4.1

  parent reply	other threads:[~2011-07-25 15:07 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-25 15:07 [PATCH 0/2] Add device tree support for i.mx53 boards Shawn Guo
2011-07-25 15:07 ` Shawn Guo
     [not found] ` <1311606467-28985-1-git-send-email-shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2011-07-25 15:07   ` [PATCH 1/2] arm/mx5: parse iomuxc pad configuratoin from device tree Shawn Guo
2011-07-25 15:07     ` Shawn Guo
     [not found]     ` <1311606467-28985-2-git-send-email-shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2011-07-25 20:46       ` Grant Likely
2011-07-25 20:46         ` Grant Likely
     [not found]         ` <20110725204630.GD26735-e0URQFbLeQY2iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2011-07-26  2:43           ` Shawn Guo
2011-07-26  2:43             ` Shawn Guo
     [not found]             ` <20110726024354.GI21641-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-07-26  6:29               ` Sascha Hauer
2011-07-26  6:29                 ` Sascha Hauer
2011-07-26 16:34                 ` Shawn Guo
2011-07-26 16:34                   ` Shawn Guo
2011-07-31  4:02               ` Grant Likely
2011-07-31  4:02                 ` Grant Likely
2011-07-26 11:19           ` Eric Miao
2011-07-26 11:19             ` Eric Miao
2011-08-04 23:07         ` Matt Sealey
2011-08-04 23:07           ` Matt Sealey
     [not found]           ` <CAKGA1bmbWUeyhUtDwHZjB8V4e2wJ0NHX2qWhqaqx6HoBm7uMnQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-08-05  7:07             ` David Brown
2011-08-05  7:07               ` David Brown
     [not found]               ` <20110805070729.GA26563-AOX6H5vLt3Uj8izMo0bVsAC/G2K4zDHf@public.gmane.org>
2011-08-05 18:36                 ` Matt Sealey
2011-08-05 18:36                   ` Matt Sealey
2011-08-05 20:26                   ` Scott Wood
2011-08-05 20:26                     ` Scott Wood
2011-08-05 20:36                     ` David Brown
2011-08-05 20:36                       ` David Brown
     [not found]                       ` <20110805203629.GB6991-AOX6H5vLt3Uj8izMo0bVsAC/G2K4zDHf@public.gmane.org>
2011-08-05 21:29                         ` Matt Sealey
2011-08-05 21:29                           ` Matt Sealey
2011-08-05 21:48                           ` Scott Wood
2011-08-05 21:48                             ` Scott Wood
2011-08-06 17:41                   ` Grant Likely
2011-08-06 17:41                     ` Grant Likely
     [not found]                   ` <CAKGA1bkM6X533w20hDV7GCPwzzj2nrjGdN6zkXsS+hCvUD_s2A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-08-07 16:23                     ` Russell King - ARM Linux
2011-08-07 16:23                       ` Russell King - ARM Linux
2011-08-05 22:58           ` Grant Likely
2011-08-05 22:58             ` Grant Likely
     [not found]             ` <20110805225845.GC6404-e0URQFbLeQY2iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2011-08-05 23:31               ` Mitch Bradley
2011-08-05 23:31                 ` Mitch Bradley
2011-08-06  3:47                 ` Mark Brown
2011-08-06  3:47                   ` Mark Brown
2011-08-07 11:15           ` Sascha Hauer
2011-08-07 11:15             ` Sascha Hauer
2011-07-26  6:31       ` Sascha Hauer
2011-07-26  6:31         ` Sascha Hauer
2011-07-26 16:39         ` Shawn Guo
2011-07-26 16:39           ` Shawn Guo
2011-07-26  6:39       ` Sascha Hauer
2011-07-26  6:39         ` Sascha Hauer
2011-07-26 16:41         ` Shawn Guo
2011-07-26 16:41           ` Shawn Guo
2011-07-25 15:07 ` Shawn Guo [this message]
2011-07-25 15:07   ` [PATCH 2/2] arm/mx5: add device tree support for imx53 boards Shawn Guo
     [not found]   ` <1311606467-28985-3-git-send-email-shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2011-07-25 20:57     ` Grant Likely
2011-07-25 20:57       ` Grant Likely

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1311606467-28985-3-git-send-email-shawn.guo@linaro.org \
    --to=shawn.guo@linaro.org \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=grant.likely@secretlab.ca \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=patches@linaro.org \
    --cc=s.hauer@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.