[PATCH 1/6] arm/imx6q: add device tree source

Shawn Guo shawn.guo at linaro.org
Tue Sep 6 05:58:35 EDT 2011


It adds device tree source and documentation for imx6q platform.

Signed-off-by: Shawn Guo <shawn.guo at linaro.org>
---
 Documentation/devicetree/bindings/arm/fsl.txt |    6 +
 arch/arm/boot/dts/imx6q-sabreauto.dts         |   49 +++
 arch/arm/boot/dts/imx6q.dtsi                  |  570 +++++++++++++++++++++++++
 3 files changed, 625 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/fsl.txt
 create mode 100644 arch/arm/boot/dts/imx6q-sabreauto.dts
 create mode 100644 arch/arm/boot/dts/imx6q.dtsi

diff --git a/Documentation/devicetree/bindings/arm/fsl.txt b/Documentation/devicetree/bindings/arm/fsl.txt
new file mode 100644
index 0000000..345bfc0
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/fsl.txt
@@ -0,0 +1,6 @@
+Freescale i.MX Platforms Device Tree Bindings
+-----------------------------------------------
+
+i.MX6 Quad SABRE Automotive Board
+Required root node properties:
+    - compatible = "fsl,imx6q-sabreauto", "fsl,imx6q";
diff --git a/arch/arm/boot/dts/imx6q-sabreauto.dts b/arch/arm/boot/dts/imx6q-sabreauto.dts
new file mode 100644
index 0000000..2b31ecb
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-sabreauto.dts
@@ -0,0 +1,49 @@
+/*
+ * 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/ "imx6q.dtsi"
+
+/ {
+	model = "Freescale i.MX6 Quad SABRE Automotive Board";
+	compatible = "fsl,imx6q-sabreauto", "fsl,imx6q";
+
+	chosen {
+		bootargs = "console=ttymxc3,115200 root=/dev/mmcblk3p3 rootwait";
+	};
+
+	memory {
+		reg = <0x10000000 0x80000000>;
+	};
+
+	aips-bus at 02100000 { /* AIPS2 */
+		enet at 02188000 {
+			phy-mode = "rgmii";
+			local-mac-address = [00 04 9F 01 1B 61];
+			status = "okay";
+		};
+
+		uart3: uart at 021f0000 { /* UART4 */
+			status = "okay";
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		debug-led {
+			label = "Heartbeat";
+			gpios = <&gpio2 25 0>; /* GPIO3_25 */
+			linux,default-trigger = "heartbeat";
+		};
+	};
+};
diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi
new file mode 100644
index 0000000..7864ee9
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q.dtsi
@@ -0,0 +1,570 @@
+/*
+ * 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 = <&intc>;
+
+	aliases {
+		serial0 = &uart0;
+		serial1 = &uart1;
+		serial2 = &uart2;
+		serial3 = &uart3;
+		serial4 = &uart4;
+	};
+
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		cpu at 0 {
+			compatible = "arm,cortex-a9";
+			reg = <0>;
+			next-level-cache = <&L2>;
+		};
+
+		cpu at 1 {
+			compatible = "arm,cortex-a9";
+			reg = <1>;
+			next-level-cache = <&L2>;
+		};
+
+		cpu at 2 {
+			compatible = "arm,cortex-a9";
+			reg = <2>;
+			next-level-cache = <&L2>;
+		};
+
+		cpu at 3 {
+			compatible = "arm,cortex-a9";
+			reg = <3>;
+			next-level-cache = <&L2>;
+		};
+	};
+
+	intc: interrupt-controller at 00a01000 {
+		compatible = "arm,cortex-a9-gic";
+		#interrupt-cells = <2>;
+		#size-cells = <0>;
+		#address-cells = <1>;
+		interrupt-controller;
+		reg = <0x00a01000 0x1000>,
+		      <0x00a00100 0x100>;
+
+		gicppi0: gic-ppi at 0 {
+			compatible = "arm,cortex-a9-gic-ppi";
+			#interrupt-cells = <1>;
+			interrupt-controller;
+			reg = <0>;
+		};
+
+		gicppi1: gic-ppi at 1 {
+			compatible = "arm,cortex-a9-gic-ppi";
+			#interrupt-cells = <1>;
+			interrupt-controller;
+			reg = <1>;
+
+		};
+		gicppi2: gic-ppi at 2 {
+			compatible = "arm,cortex-a9-gic-ppi";
+			#interrupt-cells = <1>;
+			interrupt-controller;
+			reg = <2>;
+		};
+
+		gicppi3: gic-ppi at 3 {
+			compatible = "arm,cortex-a9-gic-ppi";
+			#interrupt-cells = <1>;
+			interrupt-controller;
+			reg = <3>;
+		};
+	};
+
+	timer at 00a00600 {
+		compatible = "arm,smp-twd";
+		reg = <0x00a00600 0x100>;
+		interrupt-parent = <&gicppi0>;
+		interrupts = <29>;
+	};
+
+	L2: l2-cache at 00a02000 {
+		compatible = "arm,pl310-cache";
+		reg = <0x00a02000 0x1000>;
+		interrupts = <124 4>;
+		cache-unified;
+		cache-level = <2>;
+	};
+
+	aips-bus at 02000000 { /* AIPS1 */
+		compatible = "fsl,aips-bus", "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		reg = <0x02000000 0x100000>;
+		ranges;
+
+		spba-bus at 02000000 {
+			compatible = "fsl,spba-bus", "simple-bus";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			reg = <0x02000000 0x40000>;
+			ranges;
+
+			spdif at 02004000 {
+				reg = <0x02004000 0x4000>;
+				interrupts = <84 4>;
+			};
+
+			ecspi at 02008000 { /* eCSPI1 */
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
+				reg = <0x02008000 0x4000>;
+				interrupts = <63 4>;
+				status = "disabled";
+			};
+
+			ecspi at 0200c000 { /* eCSPI2 */
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
+				reg = <0x0200c000 0x4000>;
+				interrupts = <64 4>;
+				status = "disabled";
+			};
+
+			ecspi at 02010000 { /* eCSPI3 */
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
+				reg = <0x02010000 0x4000>;
+				interrupts = <65 4>;
+				status = "disabled";
+			};
+
+			ecspi at 02014000 { /* eCSPI4 */
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
+				reg = <0x02014000 0x4000>;
+				interrupts = <66 4>;
+				status = "disabled";
+			};
+
+			ecspi at 02018000 { /* eCSPI5 */
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
+				reg = <0x02018000 0x4000>;
+				interrupts = <67 4>;
+				status = "disabled";
+			};
+
+			uart0: uart at 02020000 { /* UART1 */
+				compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
+				reg = <0x02020000 0x4000>;
+				interrupts = <58 4>;
+				status = "disabled";
+			};
+
+			esai at 02024000 {
+				reg = <0x02024000 0x4000>;
+				interrupts = <83 4>;
+			};
+
+			ssi at 02028000 { /* SSI1 */
+				reg = <0x02028000 0x4000>;
+				interrupts = <78 4>;
+			};
+
+			ssi at 0202c000 { /* SSI2 */
+				reg = <0x0202c000 0x4000>;
+				interrupts = <79 4>;
+			};
+
+			ssi at 02030000 { /* SSI3 */
+				reg = <0x02030000 0x4000>;
+				interrupts = <80 4>;
+			};
+
+			asrc at 02034000 {
+				reg = <0x02034000 0x4000>;
+				interrupts = <82 4>;
+			};
+
+			spba at 0203c000 {
+				reg = <0x0203c000 0x4000>;
+			};
+		};
+
+		vpu at 02040000 {
+			reg = <0x02040000 0x3c000>;
+			interrupts = <35 4 44 4>;
+		};
+
+		aipstz at 0207c000 { /* AIPSTZ1 */
+			reg = <0x0207c000 0x4000>;
+		};
+
+		pwm at 02080000 { /* PWM1 */
+			reg = <0x02080000 0x4000>;
+			interrupts = <115 4>;
+		};
+
+		pwm at 02084000 { /* PWM2 */
+			reg = <0x02084000 0x4000>;
+			interrupts = <116 4>;
+		};
+
+		pwm at 02088000 { /* PWM3 */
+			reg = <0x02088000 0x4000>;
+			interrupts = <117 4>;
+		};
+
+		pwm at 0208c000 { /* PWM4 */
+			reg = <0x0208c000 0x4000>;
+			interrupts = <118 4>;
+		};
+
+		flexcan at 02090000 { /* CAN1 */
+			reg = <0x02090000 0x4000>;
+			interrupts = <142 4>;
+		};
+
+		flexcan at 02094000 { /* CAN2 */
+			reg = <0x02094000 0x4000>;
+			interrupts = <143 4>;
+		};
+
+		gpt at 02098000 {
+			compatible = "fsl,imx6q-gpt";
+			reg = <0x02098000 0x4000>;
+			interrupts = <87 4>;
+		};
+
+		gpio0: gpio at 0209c000 { /* GPIO1 */
+			compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";
+			reg = <0x0209c000 0x4000>;
+			interrupts = <98 4 99 4>;
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+		};
+
+		gpio1: gpio at 020a0000 { /* GPIO2 */
+			compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";
+			reg = <0x020a0000 0x4000>;
+			interrupts = <100 4 101 4>;
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+		};
+
+		gpio2: gpio at 020a4000 { /* GPIO3 */
+			compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";
+			reg = <0x020a4000 0x4000>;
+			interrupts = <102 4 103 4>;
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+		};
+
+		gpio3: gpio at 020a8000 { /* GPIO4 */
+			compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";
+			reg = <0x020a8000 0x4000>;
+			interrupts = <104 4 105 4>;
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+		};
+
+		gpio4: gpio at 020ac000 { /* GPIO5 */
+			compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";
+			reg = <0x020ac000 0x4000>;
+			interrupts = <106 4 107 4>;
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+		};
+
+		gpio5: gpio at 020b0000 { /* GPIO6 */
+			compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";
+			reg = <0x020b0000 0x4000>;
+			interrupts = <108 4 109 4>;
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+		};
+
+		gpio6: gpio at 020b4000 { /* GPIO7 */
+			compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";
+			reg = <0x020b4000 0x4000>;
+			interrupts = <110 4 111 4>;
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+		};
+
+		kpp at 020b8000 {
+			reg = <0x020b8000 0x4000>;
+			interrupts = <114 4>;
+		};
+
+		wdog at 020bc000 { /* WDOG1 */
+			compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
+			reg = <0x020bc000 0x4000>;
+			interrupts = <112 4>;
+			status = "disabled";
+		};
+
+		wdog at 020c0000 { /* WDOG2 */
+			compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
+			reg = <0x020c0000 0x4000>;
+			interrupts = <113 4>;
+			status = "disabled";
+		};
+
+		ccm at 020c4000 {
+			compatible = "fsl,imx6q-ccm";
+			reg = <0x020c4000 0x4000>;
+			interrupts = <119 4 120 4>;
+		};
+
+		anatop at 020c8000 {
+			compatible = "fsl,imx6q-anatop";
+			reg = <0x020c8000 0x1000>;
+			interrupts = <81 4 86 4 159 4>;
+		};
+
+		usbphy at 020c9000 { /* USBPHY1 */
+			reg = <0x020c9000 0x1000>;
+			interrupts = <76 4>;
+		};
+
+		usbphy at 020ca000 { /* USBPHY2 */
+			reg = <0x020ca000 0x1000>;
+			interrupts = <77 4>;
+		};
+
+		snvs at 020cc000 {
+			reg = <0x020cc000 0x4000>;
+			interrupts = <51 4 52 4>;
+		};
+
+		epit at 020d0000 { /* EPIT1 */
+			reg = <0x020d0000 0x4000>;
+			interrupts = <88 4>;
+		};
+
+		epit at 020d4000 { /* EPIT2 */
+			reg = <0x020d4000 0x4000>;
+			interrupts = <89 4>;
+		};
+
+		src at 020d8000 {
+			compatible = "fsl,imx6q-src";
+			reg = <0x020d8000 0x4000>;
+			interrupts = <123 4 128 4>;
+		};
+
+		gpc at 020dc000 {
+			compatible = "fsl,imx6q-gpc";
+			reg = <0x020dc000 0x4000>;
+			interrupts = <121 4 122 4>;
+		};
+
+		iomuxc at 020e0000 {
+			reg = <0x020e0000 0x4000>;
+		};
+
+		dcic at 020e4000 { /* DCIC1 */
+			reg = <0x020e4000 0x4000>;
+			interrupts = <156 4>;
+		};
+
+		dcic at 020e8000 { /* DCIC2 */
+			reg = <0x020e8000 0x4000>;
+			interrupts = <157 4>;
+		};
+
+		sdma at 020ec000 {
+			compatible = "fsl,imx6q-sdma", "fsl,imx35-sdma";
+			reg = <0x020ec000 0x4000>;
+			interrupts = <34 4>;
+		};
+	};
+
+	aips-bus at 02100000 { /* AIPS2 */
+		compatible = "fsl,aips-bus", "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		reg = <0x02100000 0x100000>;
+		ranges;
+
+		caam at 02100000 {
+			reg = <0x02100000 0x40000>;
+			interrupts = <137 4 138 4>;
+		};
+
+		aipstz at 0217c000 { /* AIPSTZ2 */
+			reg = <0x0217c000 0x4000>;
+		};
+
+		enet at 02188000 {
+			compatible = "fsl,imx6q-fec";
+			reg = <0x02188000 0x4000>;
+			interrupts = <150 4 151 4>;
+			status = "disabled";
+		};
+
+		mlb at 0218c000 {
+			reg = <0x0218c000 0x4000>;
+			interrupts = <85 4 149 4 158 4>;
+		};
+
+		usdhc at 02190000 { /* uSDHC1 */
+			reg = <0x02190000 0x4000>;
+			interrupts = <54 4>;
+		};
+
+		usdhc at 02194000 { /* uSDHC2 */
+			reg = <0x02194000 0x4000>;
+			interrupts = <55 4>;
+		};
+
+		usdhc at 02198000 { /* uSDHC3 */
+			reg = <0x02198000 0x4000>;
+			interrupts = <56 4>;
+		};
+
+		usdhc at 0219c000 { /* uSDHC4 */
+			reg = <0x0219c000 0x4000>;
+			interrupts = <57 4>;
+		};
+
+		i2c at 021a0000 { /* I2C1 */
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "fsl,imx6q-i2c", "fsl,imx1-i2c";
+			reg = <0x021a0000 0x4000>;
+			interrupts = <68 4>;
+			status = "disabled";
+		};
+
+		i2c at 021a4000 { /* I2C2 */
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "fsl,imx6q-i2c", "fsl,imx1-i2c";
+			reg = <0x021a4000 0x4000>;
+			interrupts = <69 4>;
+			status = "disabled";
+		};
+
+		i2c at 021a8000 { /* I2C3 */
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "fsl,imx6q-i2c", "fsl,imx1-i2c";
+			reg = <0x021a8000 0x4000>;
+			interrupts = <70 4>;
+			status = "disabled";
+		};
+
+		romcp at 021ac000 {
+			reg = <0x021ac000 0x4000>;
+		};
+
+		mmdc at 021b0000 { /* MMDC0 */
+			compatible = "fsl,imx6q-mmdc";
+			reg = <0x021b0000 0x4000>;
+		};
+
+		mmdc at 021b4000 { /* MMDC1 */
+			reg = <0x021b4000 0x4000>;
+		};
+
+		weim at 021b8000 {
+			reg = <0x021b8000 0x4000>;
+			interrupts = <46 4>;
+		};
+
+		ocotp at 021bc000 {
+			reg = <0x021bc000 0x4000>;
+		};
+
+		ocotp at 021c0000 {
+			reg = <0x021c0000 0x4000>;
+			interrupts = <53 4>;
+		};
+
+		tzasc at 021d0000 { /* TZASC1 */
+			reg = <0x021d0000 0x4000>;
+			interrupts = <140 4>;
+		};
+
+		tzasc at 021d4000 { /* TZASC2 */
+			reg = <0x021d4000 0x4000>;
+			interrupts = <141 4>;
+		};
+
+		audmux at 021d8000 {
+			reg = <0x021d8000 0x4000>;
+		};
+
+		mipi at 021dc000 { /* MIPI-CSI */
+			reg = <0x021dc000 0x4000>;
+		};
+
+		mipi at 021e0000 { /* MIPI-DSI */
+			reg = <0x021e0000 0x4000>;
+		};
+
+		vdoa at 021e4000 {
+			reg = <0x021e4000 0x4000>;
+			interrupts = <50 4>;
+		};
+
+		uart1: uart at 021e8000 { /* UART2 */
+			compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
+			reg = <0x021e8000 0x4000>;
+			interrupts = <59 4>;
+			status = "disabled";
+		};
+
+		uart2: uart at 021ec000 { /* UART3 */
+			compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
+			reg = <0x021ec000 0x4000>;
+			interrupts = <60 4>;
+			status = "disabled";
+		};
+
+		uart3: uart at 021f0000 { /* UART4 */
+			compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
+			reg = <0x021f0000 0x4000>;
+			interrupts = <61 4>;
+			status = "disabled";
+		};
+
+		uart4: uart at 021f4000 { /* UART5 */
+			compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
+			reg = <0x021f4000 0x4000>;
+			interrupts = <62 4>;
+			status = "disabled";
+		};
+	};
+};
-- 
1.7.4.1




More information about the linux-arm-kernel mailing list