xref: /freebsd-src/sys/contrib/device-tree/src/arm/nxp/imx/imx27.dtsi (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0+
2f126890aSEmmanuel Vadot//
3f126890aSEmmanuel Vadot// Copyright 2012 Sascha Hauer, Pengutronix
4f126890aSEmmanuel Vadot
5f126890aSEmmanuel Vadot#include "imx27-pinfunc.h"
6f126890aSEmmanuel Vadot
7f126890aSEmmanuel Vadot#include <dt-bindings/clock/imx27-clock.h>
8f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
9f126890aSEmmanuel Vadot#include <dt-bindings/input/input.h>
10f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
11f126890aSEmmanuel Vadot
12f126890aSEmmanuel Vadot/ {
13f126890aSEmmanuel Vadot	#address-cells = <1>;
14f126890aSEmmanuel Vadot	#size-cells = <1>;
15f126890aSEmmanuel Vadot	/*
16f126890aSEmmanuel Vadot	 * The decompressor and also some bootloaders rely on a
17f126890aSEmmanuel Vadot	 * pre-existing /chosen node to be available to insert the
18f126890aSEmmanuel Vadot	 * command line and merge other ATAGS info.
19f126890aSEmmanuel Vadot	 */
20f126890aSEmmanuel Vadot	chosen {};
21f126890aSEmmanuel Vadot
22f126890aSEmmanuel Vadot	aliases {
23f126890aSEmmanuel Vadot		ethernet0 = &fec;
24f126890aSEmmanuel Vadot		gpio0 = &gpio1;
25f126890aSEmmanuel Vadot		gpio1 = &gpio2;
26f126890aSEmmanuel Vadot		gpio2 = &gpio3;
27f126890aSEmmanuel Vadot		gpio3 = &gpio4;
28f126890aSEmmanuel Vadot		gpio4 = &gpio5;
29f126890aSEmmanuel Vadot		gpio5 = &gpio6;
30f126890aSEmmanuel Vadot		i2c0 = &i2c1;
31f126890aSEmmanuel Vadot		i2c1 = &i2c2;
32f126890aSEmmanuel Vadot		serial0 = &uart1;
33f126890aSEmmanuel Vadot		serial1 = &uart2;
34f126890aSEmmanuel Vadot		serial2 = &uart3;
35f126890aSEmmanuel Vadot		serial3 = &uart4;
36f126890aSEmmanuel Vadot		serial4 = &uart5;
37f126890aSEmmanuel Vadot		serial5 = &uart6;
38f126890aSEmmanuel Vadot		spi0 = &cspi1;
39f126890aSEmmanuel Vadot		spi1 = &cspi2;
40f126890aSEmmanuel Vadot		spi2 = &cspi3;
41f126890aSEmmanuel Vadot	};
42f126890aSEmmanuel Vadot
43f126890aSEmmanuel Vadot	aitc: aitc-interrupt-controller@10040000 {
44f126890aSEmmanuel Vadot		compatible = "fsl,imx27-aitc", "fsl,avic";
45f126890aSEmmanuel Vadot		interrupt-controller;
46f126890aSEmmanuel Vadot		#interrupt-cells = <1>;
47f126890aSEmmanuel Vadot		reg = <0x10040000 0x1000>;
48f126890aSEmmanuel Vadot	};
49f126890aSEmmanuel Vadot
50f126890aSEmmanuel Vadot	clocks {
51f126890aSEmmanuel Vadot		clk_osc26m: osc26m {
52f126890aSEmmanuel Vadot			compatible = "fsl,imx-osc26m", "fixed-clock";
53f126890aSEmmanuel Vadot			#clock-cells = <0>;
54f126890aSEmmanuel Vadot			clock-frequency = <26000000>;
55f126890aSEmmanuel Vadot		};
56f126890aSEmmanuel Vadot	};
57f126890aSEmmanuel Vadot
58f126890aSEmmanuel Vadot	cpus {
59f126890aSEmmanuel Vadot		#size-cells = <0>;
60f126890aSEmmanuel Vadot		#address-cells = <1>;
61f126890aSEmmanuel Vadot
62f126890aSEmmanuel Vadot		cpu: cpu@0 {
63f126890aSEmmanuel Vadot			device_type = "cpu";
64f126890aSEmmanuel Vadot			reg = <0>;
65f126890aSEmmanuel Vadot			compatible = "arm,arm926ej-s";
66f126890aSEmmanuel Vadot			operating-points = <
67f126890aSEmmanuel Vadot				/* kHz uV */
68f126890aSEmmanuel Vadot				266000 1300000
69f126890aSEmmanuel Vadot				399000 1450000
70f126890aSEmmanuel Vadot			>;
71f126890aSEmmanuel Vadot			clock-latency = <62500>;
72f126890aSEmmanuel Vadot			clocks = <&clks IMX27_CLK_CPU_DIV>;
73f126890aSEmmanuel Vadot			voltage-tolerance = <5>;
74f126890aSEmmanuel Vadot		};
75f126890aSEmmanuel Vadot	};
76f126890aSEmmanuel Vadot
77f126890aSEmmanuel Vadot	soc: soc {
78f126890aSEmmanuel Vadot		#address-cells = <1>;
79f126890aSEmmanuel Vadot		#size-cells = <1>;
80f126890aSEmmanuel Vadot		compatible = "simple-bus";
81f126890aSEmmanuel Vadot		interrupt-parent = <&aitc>;
82f126890aSEmmanuel Vadot		ranges;
83f126890aSEmmanuel Vadot
848d13bc63SEmmanuel Vadot		aipi1: bus@10000000 { /* AIPI1 */
85f126890aSEmmanuel Vadot			compatible = "fsl,aipi-bus", "simple-bus";
86f126890aSEmmanuel Vadot			#address-cells = <1>;
87f126890aSEmmanuel Vadot			#size-cells = <1>;
88f126890aSEmmanuel Vadot			reg = <0x10000000 0x20000>;
89f126890aSEmmanuel Vadot			ranges;
90f126890aSEmmanuel Vadot
91*b2d2a78aSEmmanuel Vadot			dma: dma-controller@10001000 {
92f126890aSEmmanuel Vadot				compatible = "fsl,imx27-dma";
93f126890aSEmmanuel Vadot				reg = <0x10001000 0x1000>;
94f126890aSEmmanuel Vadot				interrupts = <32>;
95f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_DMA_IPG_GATE>,
96f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_DMA_AHB_GATE>;
97f126890aSEmmanuel Vadot				clock-names = "ipg", "ahb";
98f126890aSEmmanuel Vadot				#dma-cells = <1>;
99f126890aSEmmanuel Vadot				dma-channels = <16>;
100f126890aSEmmanuel Vadot			};
101f126890aSEmmanuel Vadot
102f126890aSEmmanuel Vadot			wdog: watchdog@10002000 {
103f126890aSEmmanuel Vadot				compatible = "fsl,imx27-wdt", "fsl,imx21-wdt";
104f126890aSEmmanuel Vadot				reg = <0x10002000 0x1000>;
105f126890aSEmmanuel Vadot				interrupts = <27>;
106f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_WDOG_IPG_GATE>;
107f126890aSEmmanuel Vadot			};
108f126890aSEmmanuel Vadot
109f126890aSEmmanuel Vadot			gpt1: timer@10003000 {
110f126890aSEmmanuel Vadot				compatible = "fsl,imx27-gpt", "fsl,imx21-gpt";
111f126890aSEmmanuel Vadot				reg = <0x10003000 0x1000>;
112f126890aSEmmanuel Vadot				interrupts = <26>;
113f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_GPT1_IPG_GATE>,
114f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER1_GATE>;
115f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
116f126890aSEmmanuel Vadot			};
117f126890aSEmmanuel Vadot
118f126890aSEmmanuel Vadot			gpt2: timer@10004000 {
119f126890aSEmmanuel Vadot				compatible = "fsl,imx27-gpt", "fsl,imx21-gpt";
120f126890aSEmmanuel Vadot				reg = <0x10004000 0x1000>;
121f126890aSEmmanuel Vadot				interrupts = <25>;
122f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_GPT2_IPG_GATE>,
123f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER1_GATE>;
124f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
125f126890aSEmmanuel Vadot			};
126f126890aSEmmanuel Vadot
127f126890aSEmmanuel Vadot			gpt3: timer@10005000 {
128f126890aSEmmanuel Vadot				compatible = "fsl,imx27-gpt", "fsl,imx21-gpt";
129f126890aSEmmanuel Vadot				reg = <0x10005000 0x1000>;
130f126890aSEmmanuel Vadot				interrupts = <24>;
131f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_GPT3_IPG_GATE>,
132f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER1_GATE>;
133f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
134f126890aSEmmanuel Vadot			};
135f126890aSEmmanuel Vadot
136f126890aSEmmanuel Vadot			pwm: pwm@10006000 {
137f126890aSEmmanuel Vadot				#pwm-cells = <3>;
138f126890aSEmmanuel Vadot				compatible = "fsl,imx27-pwm";
139f126890aSEmmanuel Vadot				reg = <0x10006000 0x1000>;
140f126890aSEmmanuel Vadot				interrupts = <23>;
141f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_PWM_IPG_GATE>,
142f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER1_GATE>;
143f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
144f126890aSEmmanuel Vadot			};
145f126890aSEmmanuel Vadot
146f126890aSEmmanuel Vadot			rtc: rtc@10007000 {
147f126890aSEmmanuel Vadot				compatible = "fsl,imx21-rtc";
148f126890aSEmmanuel Vadot				reg = <0x10007000 0x1000>;
149f126890aSEmmanuel Vadot				interrupts = <22>;
150f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_CKIL>,
151f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_RTC_IPG_GATE>;
152f126890aSEmmanuel Vadot				clock-names = "ref", "ipg";
153f126890aSEmmanuel Vadot			};
154f126890aSEmmanuel Vadot
155f126890aSEmmanuel Vadot			kpp: kpp@10008000 {
156f126890aSEmmanuel Vadot				compatible = "fsl,imx27-kpp", "fsl,imx21-kpp";
157f126890aSEmmanuel Vadot				reg = <0x10008000 0x1000>;
158f126890aSEmmanuel Vadot				interrupts = <21>;
159f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_KPP_IPG_GATE>;
160f126890aSEmmanuel Vadot				status = "disabled";
161f126890aSEmmanuel Vadot			};
162f126890aSEmmanuel Vadot
163f126890aSEmmanuel Vadot			owire: owire@10009000 {
164f126890aSEmmanuel Vadot				compatible = "fsl,imx27-owire", "fsl,imx21-owire";
165f126890aSEmmanuel Vadot				reg = <0x10009000 0x1000>;
166f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_OWIRE_IPG_GATE>;
167f126890aSEmmanuel Vadot				status = "disabled";
168f126890aSEmmanuel Vadot			};
169f126890aSEmmanuel Vadot
170f126890aSEmmanuel Vadot			uart1: serial@1000a000 {
171f126890aSEmmanuel Vadot				compatible = "fsl,imx27-uart", "fsl,imx21-uart";
172f126890aSEmmanuel Vadot				reg = <0x1000a000 0x1000>;
173f126890aSEmmanuel Vadot				interrupts = <20>;
174f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_UART1_IPG_GATE>,
175f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER1_GATE>;
176f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
177f126890aSEmmanuel Vadot				status = "disabled";
178f126890aSEmmanuel Vadot			};
179f126890aSEmmanuel Vadot
180f126890aSEmmanuel Vadot			uart2: serial@1000b000 {
181f126890aSEmmanuel Vadot				compatible = "fsl,imx27-uart", "fsl,imx21-uart";
182f126890aSEmmanuel Vadot				reg = <0x1000b000 0x1000>;
183f126890aSEmmanuel Vadot				interrupts = <19>;
184f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_UART2_IPG_GATE>,
185f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER1_GATE>;
186f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
187f126890aSEmmanuel Vadot				status = "disabled";
188f126890aSEmmanuel Vadot			};
189f126890aSEmmanuel Vadot
190f126890aSEmmanuel Vadot			uart3: serial@1000c000 {
191f126890aSEmmanuel Vadot				compatible = "fsl,imx27-uart", "fsl,imx21-uart";
192f126890aSEmmanuel Vadot				reg = <0x1000c000 0x1000>;
193f126890aSEmmanuel Vadot				interrupts = <18>;
194f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_UART3_IPG_GATE>,
195f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER1_GATE>;
196f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
197f126890aSEmmanuel Vadot				status = "disabled";
198f126890aSEmmanuel Vadot			};
199f126890aSEmmanuel Vadot
200f126890aSEmmanuel Vadot			uart4: serial@1000d000 {
201f126890aSEmmanuel Vadot				compatible = "fsl,imx27-uart", "fsl,imx21-uart";
202f126890aSEmmanuel Vadot				reg = <0x1000d000 0x1000>;
203f126890aSEmmanuel Vadot				interrupts = <17>;
204f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_UART4_IPG_GATE>,
205f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER1_GATE>;
206f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
207f126890aSEmmanuel Vadot				status = "disabled";
208f126890aSEmmanuel Vadot			};
209f126890aSEmmanuel Vadot
210f126890aSEmmanuel Vadot			cspi1: spi@1000e000 {
211f126890aSEmmanuel Vadot				#address-cells = <1>;
212f126890aSEmmanuel Vadot				#size-cells = <0>;
213f126890aSEmmanuel Vadot				compatible = "fsl,imx27-cspi";
214f126890aSEmmanuel Vadot				reg = <0x1000e000 0x1000>;
215f126890aSEmmanuel Vadot				interrupts = <16>;
216f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_CSPI1_IPG_GATE>,
217f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER2_GATE>;
218f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
219f126890aSEmmanuel Vadot				status = "disabled";
220f126890aSEmmanuel Vadot			};
221f126890aSEmmanuel Vadot
222f126890aSEmmanuel Vadot			cspi2: spi@1000f000 {
223f126890aSEmmanuel Vadot				#address-cells = <1>;
224f126890aSEmmanuel Vadot				#size-cells = <0>;
225f126890aSEmmanuel Vadot				compatible = "fsl,imx27-cspi";
226f126890aSEmmanuel Vadot				reg = <0x1000f000 0x1000>;
227f126890aSEmmanuel Vadot				interrupts = <15>;
228f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_CSPI2_IPG_GATE>,
229f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER2_GATE>;
230f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
231f126890aSEmmanuel Vadot				status = "disabled";
232f126890aSEmmanuel Vadot			};
233f126890aSEmmanuel Vadot
234f126890aSEmmanuel Vadot			ssi1: ssi@10010000 {
235f126890aSEmmanuel Vadot				#sound-dai-cells = <0>;
236f126890aSEmmanuel Vadot				compatible = "fsl,imx27-ssi", "fsl,imx21-ssi";
237f126890aSEmmanuel Vadot				reg = <0x10010000 0x1000>;
238f126890aSEmmanuel Vadot				interrupts = <14>;
239f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_SSI1_IPG_GATE>;
240f126890aSEmmanuel Vadot				dmas = <&dma 12>, <&dma 13>, <&dma 14>, <&dma 15>;
241f126890aSEmmanuel Vadot				dma-names = "rx0", "tx0", "rx1", "tx1";
242f126890aSEmmanuel Vadot				fsl,fifo-depth = <8>;
243f126890aSEmmanuel Vadot				status = "disabled";
244f126890aSEmmanuel Vadot			};
245f126890aSEmmanuel Vadot
246f126890aSEmmanuel Vadot			ssi2: ssi@10011000 {
247f126890aSEmmanuel Vadot				#sound-dai-cells = <0>;
248f126890aSEmmanuel Vadot				compatible = "fsl,imx27-ssi", "fsl,imx21-ssi";
249f126890aSEmmanuel Vadot				reg = <0x10011000 0x1000>;
250f126890aSEmmanuel Vadot				interrupts = <13>;
251f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_SSI2_IPG_GATE>;
252f126890aSEmmanuel Vadot				dmas = <&dma 8>, <&dma 9>, <&dma 10>, <&dma 11>;
253f126890aSEmmanuel Vadot				dma-names = "rx0", "tx0", "rx1", "tx1";
254f126890aSEmmanuel Vadot				fsl,fifo-depth = <8>;
255f126890aSEmmanuel Vadot				status = "disabled";
256f126890aSEmmanuel Vadot			};
257f126890aSEmmanuel Vadot
258f126890aSEmmanuel Vadot			i2c1: i2c@10012000 {
259f126890aSEmmanuel Vadot				#address-cells = <1>;
260f126890aSEmmanuel Vadot				#size-cells = <0>;
261f126890aSEmmanuel Vadot				compatible = "fsl,imx27-i2c", "fsl,imx21-i2c";
262f126890aSEmmanuel Vadot				reg = <0x10012000 0x1000>;
263f126890aSEmmanuel Vadot				interrupts = <12>;
264f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_I2C1_IPG_GATE>;
265f126890aSEmmanuel Vadot				status = "disabled";
266f126890aSEmmanuel Vadot			};
267f126890aSEmmanuel Vadot
268f126890aSEmmanuel Vadot			sdhci1: mmc@10013000 {
269f126890aSEmmanuel Vadot				compatible = "fsl,imx27-mmc", "fsl,imx21-mmc";
270f126890aSEmmanuel Vadot				reg = <0x10013000 0x1000>;
271f126890aSEmmanuel Vadot				interrupts = <11>;
272f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_SDHC1_IPG_GATE>,
273f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER2_GATE>;
274f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
275f126890aSEmmanuel Vadot				dmas = <&dma 7>;
276f126890aSEmmanuel Vadot				dma-names = "rx-tx";
277f126890aSEmmanuel Vadot				status = "disabled";
278f126890aSEmmanuel Vadot			};
279f126890aSEmmanuel Vadot
280f126890aSEmmanuel Vadot			sdhci2: mmc@10014000 {
281f126890aSEmmanuel Vadot				compatible = "fsl,imx27-mmc", "fsl,imx21-mmc";
282f126890aSEmmanuel Vadot				reg = <0x10014000 0x1000>;
283f126890aSEmmanuel Vadot				interrupts = <10>;
284f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_SDHC2_IPG_GATE>,
285f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER2_GATE>;
286f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
287f126890aSEmmanuel Vadot				dmas = <&dma 6>;
288f126890aSEmmanuel Vadot				dma-names = "rx-tx";
289f126890aSEmmanuel Vadot				status = "disabled";
290f126890aSEmmanuel Vadot			};
291f126890aSEmmanuel Vadot
292f126890aSEmmanuel Vadot			iomuxc: iomuxc@10015000 {
293f126890aSEmmanuel Vadot				compatible = "fsl,imx27-iomuxc";
294f126890aSEmmanuel Vadot				reg = <0x10015000 0x600>;
295f126890aSEmmanuel Vadot				#address-cells = <1>;
296f126890aSEmmanuel Vadot				#size-cells = <1>;
297f126890aSEmmanuel Vadot				ranges;
298f126890aSEmmanuel Vadot
299f126890aSEmmanuel Vadot				gpio1: gpio@10015000 {
300f126890aSEmmanuel Vadot					compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
301f126890aSEmmanuel Vadot					reg = <0x10015000 0x100>;
302f126890aSEmmanuel Vadot					clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>;
303f126890aSEmmanuel Vadot					interrupts = <8>;
304f126890aSEmmanuel Vadot					gpio-controller;
305f126890aSEmmanuel Vadot					#gpio-cells = <2>;
306f126890aSEmmanuel Vadot					interrupt-controller;
307f126890aSEmmanuel Vadot					#interrupt-cells = <2>;
308f126890aSEmmanuel Vadot				};
309f126890aSEmmanuel Vadot
310f126890aSEmmanuel Vadot				gpio2: gpio@10015100 {
311f126890aSEmmanuel Vadot					compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
312f126890aSEmmanuel Vadot					reg = <0x10015100 0x100>;
313f126890aSEmmanuel Vadot					clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>;
314f126890aSEmmanuel Vadot					interrupts = <8>;
315f126890aSEmmanuel Vadot					gpio-controller;
316f126890aSEmmanuel Vadot					#gpio-cells = <2>;
317f126890aSEmmanuel Vadot					interrupt-controller;
318f126890aSEmmanuel Vadot					#interrupt-cells = <2>;
319f126890aSEmmanuel Vadot				};
320f126890aSEmmanuel Vadot
321f126890aSEmmanuel Vadot				gpio3: gpio@10015200 {
322f126890aSEmmanuel Vadot					compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
323f126890aSEmmanuel Vadot					reg = <0x10015200 0x100>;
324f126890aSEmmanuel Vadot					clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>;
325f126890aSEmmanuel Vadot					interrupts = <8>;
326f126890aSEmmanuel Vadot					gpio-controller;
327f126890aSEmmanuel Vadot					#gpio-cells = <2>;
328f126890aSEmmanuel Vadot					interrupt-controller;
329f126890aSEmmanuel Vadot					#interrupt-cells = <2>;
330f126890aSEmmanuel Vadot				};
331f126890aSEmmanuel Vadot
332f126890aSEmmanuel Vadot				gpio4: gpio@10015300 {
333f126890aSEmmanuel Vadot					compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
334f126890aSEmmanuel Vadot					reg = <0x10015300 0x100>;
335f126890aSEmmanuel Vadot					clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>;
336f126890aSEmmanuel Vadot					interrupts = <8>;
337f126890aSEmmanuel Vadot					gpio-controller;
338f126890aSEmmanuel Vadot					#gpio-cells = <2>;
339f126890aSEmmanuel Vadot					interrupt-controller;
340f126890aSEmmanuel Vadot					#interrupt-cells = <2>;
341f126890aSEmmanuel Vadot				};
342f126890aSEmmanuel Vadot
343f126890aSEmmanuel Vadot				gpio5: gpio@10015400 {
344f126890aSEmmanuel Vadot					compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
345f126890aSEmmanuel Vadot					reg = <0x10015400 0x100>;
346f126890aSEmmanuel Vadot					clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>;
347f126890aSEmmanuel Vadot					interrupts = <8>;
348f126890aSEmmanuel Vadot					gpio-controller;
349f126890aSEmmanuel Vadot					#gpio-cells = <2>;
350f126890aSEmmanuel Vadot					interrupt-controller;
351f126890aSEmmanuel Vadot					#interrupt-cells = <2>;
352f126890aSEmmanuel Vadot				};
353f126890aSEmmanuel Vadot
354f126890aSEmmanuel Vadot				gpio6: gpio@10015500 {
355f126890aSEmmanuel Vadot					compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
356f126890aSEmmanuel Vadot					reg = <0x10015500 0x100>;
357f126890aSEmmanuel Vadot					clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>;
358f126890aSEmmanuel Vadot					interrupts = <8>;
359f126890aSEmmanuel Vadot					gpio-controller;
360f126890aSEmmanuel Vadot					#gpio-cells = <2>;
361f126890aSEmmanuel Vadot					interrupt-controller;
362f126890aSEmmanuel Vadot					#interrupt-cells = <2>;
363f126890aSEmmanuel Vadot				};
364f126890aSEmmanuel Vadot			};
365f126890aSEmmanuel Vadot
366f126890aSEmmanuel Vadot			audmux: audmux@10016000 {
367f126890aSEmmanuel Vadot				compatible = "fsl,imx27-audmux", "fsl,imx21-audmux";
368f126890aSEmmanuel Vadot				reg = <0x10016000 0x1000>;
369f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_DUMMY>;
370f126890aSEmmanuel Vadot				clock-names = "audmux";
371f126890aSEmmanuel Vadot				status = "disabled";
372f126890aSEmmanuel Vadot			};
373f126890aSEmmanuel Vadot
374f126890aSEmmanuel Vadot			cspi3: spi@10017000 {
375f126890aSEmmanuel Vadot				#address-cells = <1>;
376f126890aSEmmanuel Vadot				#size-cells = <0>;
377f126890aSEmmanuel Vadot				compatible = "fsl,imx27-cspi";
378f126890aSEmmanuel Vadot				reg = <0x10017000 0x1000>;
379f126890aSEmmanuel Vadot				interrupts = <6>;
380f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_CSPI3_IPG_GATE>,
381f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER2_GATE>;
382f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
383f126890aSEmmanuel Vadot				status = "disabled";
384f126890aSEmmanuel Vadot			};
385f126890aSEmmanuel Vadot
386f126890aSEmmanuel Vadot			gpt4: timer@10019000 {
387f126890aSEmmanuel Vadot				compatible = "fsl,imx27-gpt", "fsl,imx21-gpt";
388f126890aSEmmanuel Vadot				reg = <0x10019000 0x1000>;
389f126890aSEmmanuel Vadot				interrupts = <4>;
390f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_GPT4_IPG_GATE>,
391f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER1_GATE>;
392f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
393f126890aSEmmanuel Vadot			};
394f126890aSEmmanuel Vadot
395f126890aSEmmanuel Vadot			gpt5: timer@1001a000 {
396f126890aSEmmanuel Vadot				compatible = "fsl,imx27-gpt", "fsl,imx21-gpt";
397f126890aSEmmanuel Vadot				reg = <0x1001a000 0x1000>;
398f126890aSEmmanuel Vadot				interrupts = <3>;
399f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_GPT5_IPG_GATE>,
400f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER1_GATE>;
401f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
402f126890aSEmmanuel Vadot			};
403f126890aSEmmanuel Vadot
404f126890aSEmmanuel Vadot			uart5: serial@1001b000 {
405f126890aSEmmanuel Vadot				compatible = "fsl,imx27-uart", "fsl,imx21-uart";
406f126890aSEmmanuel Vadot				reg = <0x1001b000 0x1000>;
407f126890aSEmmanuel Vadot				interrupts = <49>;
408f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_UART5_IPG_GATE>,
409f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER1_GATE>;
410f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
411f126890aSEmmanuel Vadot				status = "disabled";
412f126890aSEmmanuel Vadot			};
413f126890aSEmmanuel Vadot
414f126890aSEmmanuel Vadot			uart6: serial@1001c000 {
415f126890aSEmmanuel Vadot				compatible = "fsl,imx27-uart", "fsl,imx21-uart";
416f126890aSEmmanuel Vadot				reg = <0x1001c000 0x1000>;
417f126890aSEmmanuel Vadot				interrupts = <48>;
418f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_UART6_IPG_GATE>,
419f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER1_GATE>;
420f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
421f126890aSEmmanuel Vadot				status = "disabled";
422f126890aSEmmanuel Vadot			};
423f126890aSEmmanuel Vadot
424f126890aSEmmanuel Vadot			i2c2: i2c@1001d000 {
425f126890aSEmmanuel Vadot				#address-cells = <1>;
426f126890aSEmmanuel Vadot				#size-cells = <0>;
427f126890aSEmmanuel Vadot				compatible = "fsl,imx27-i2c", "fsl,imx21-i2c";
428f126890aSEmmanuel Vadot				reg = <0x1001d000 0x1000>;
429f126890aSEmmanuel Vadot				interrupts = <1>;
430f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_I2C2_IPG_GATE>;
431f126890aSEmmanuel Vadot				status = "disabled";
432f126890aSEmmanuel Vadot			};
433f126890aSEmmanuel Vadot
434f126890aSEmmanuel Vadot			sdhci3: mmc@1001e000 {
435f126890aSEmmanuel Vadot				compatible = "fsl,imx27-mmc", "fsl,imx21-mmc";
436f126890aSEmmanuel Vadot				reg = <0x1001e000 0x1000>;
437f126890aSEmmanuel Vadot				interrupts = <9>;
438f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_SDHC3_IPG_GATE>,
439f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER2_GATE>;
440f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
441f126890aSEmmanuel Vadot				dmas = <&dma 36>;
442f126890aSEmmanuel Vadot				dma-names = "rx-tx";
443f126890aSEmmanuel Vadot				status = "disabled";
444f126890aSEmmanuel Vadot			};
445f126890aSEmmanuel Vadot
446f126890aSEmmanuel Vadot			gpt6: timer@1001f000 {
447f126890aSEmmanuel Vadot				compatible = "fsl,imx27-gpt", "fsl,imx21-gpt";
448f126890aSEmmanuel Vadot				reg = <0x1001f000 0x1000>;
449f126890aSEmmanuel Vadot				interrupts = <2>;
450f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_GPT6_IPG_GATE>,
451f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER1_GATE>;
452f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
453f126890aSEmmanuel Vadot			};
454f126890aSEmmanuel Vadot		};
455f126890aSEmmanuel Vadot
4568d13bc63SEmmanuel Vadot		aipi2: bus@10020000 { /* AIPI2 */
457f126890aSEmmanuel Vadot			compatible = "fsl,aipi-bus", "simple-bus";
458f126890aSEmmanuel Vadot			#address-cells = <1>;
459f126890aSEmmanuel Vadot			#size-cells = <1>;
460f126890aSEmmanuel Vadot			reg = <0x10020000 0x20000>;
461f126890aSEmmanuel Vadot			ranges;
462f126890aSEmmanuel Vadot
463f126890aSEmmanuel Vadot			fb: fb@10021000 {
464f126890aSEmmanuel Vadot				compatible = "fsl,imx27-fb", "fsl,imx21-fb";
465f126890aSEmmanuel Vadot				interrupts = <61>;
466f126890aSEmmanuel Vadot				reg = <0x10021000 0x1000>;
467f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_LCDC_IPG_GATE>,
468f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_LCDC_AHB_GATE>,
469f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_PER3_GATE>;
470f126890aSEmmanuel Vadot				clock-names = "ipg", "ahb", "per";
471f126890aSEmmanuel Vadot				status = "disabled";
472f126890aSEmmanuel Vadot			};
473f126890aSEmmanuel Vadot
474f126890aSEmmanuel Vadot			coda: coda@10023000 {
475f126890aSEmmanuel Vadot				compatible = "fsl,imx27-vpu", "cnm,codadx6";
476f126890aSEmmanuel Vadot				reg = <0x10023000 0x0200>;
477f126890aSEmmanuel Vadot				interrupts = <53>;
478f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_VPU_BAUD_GATE>,
479f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_VPU_AHB_GATE>;
480f126890aSEmmanuel Vadot				clock-names = "per", "ahb";
481f126890aSEmmanuel Vadot				iram = <&iram>;
482f126890aSEmmanuel Vadot			};
483f126890aSEmmanuel Vadot
484f126890aSEmmanuel Vadot			usbotg: usb@10024000 {
485f126890aSEmmanuel Vadot				compatible = "fsl,imx27-usb";
486f126890aSEmmanuel Vadot				reg = <0x10024000 0x200>;
487f126890aSEmmanuel Vadot				interrupts = <56>;
488f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
489f126890aSEmmanuel Vadot					<&clks IMX27_CLK_USB_AHB_GATE>,
490f126890aSEmmanuel Vadot					<&clks IMX27_CLK_USB_DIV>;
491f126890aSEmmanuel Vadot				clock-names = "ipg", "ahb", "per";
492f126890aSEmmanuel Vadot				fsl,usbmisc = <&usbmisc 0>;
493f126890aSEmmanuel Vadot				status = "disabled";
494f126890aSEmmanuel Vadot			};
495f126890aSEmmanuel Vadot
496f126890aSEmmanuel Vadot			usbh1: usb@10024200 {
497f126890aSEmmanuel Vadot				compatible = "fsl,imx27-usb";
498f126890aSEmmanuel Vadot				reg = <0x10024200 0x200>;
499f126890aSEmmanuel Vadot				interrupts = <54>;
500f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
501f126890aSEmmanuel Vadot					<&clks IMX27_CLK_USB_AHB_GATE>,
502f126890aSEmmanuel Vadot					<&clks IMX27_CLK_USB_DIV>;
503f126890aSEmmanuel Vadot				clock-names = "ipg", "ahb", "per";
504f126890aSEmmanuel Vadot				fsl,usbmisc = <&usbmisc 1>;
505f126890aSEmmanuel Vadot				dr_mode = "host";
506f126890aSEmmanuel Vadot				status = "disabled";
507f126890aSEmmanuel Vadot			};
508f126890aSEmmanuel Vadot
509f126890aSEmmanuel Vadot			usbh2: usb@10024400 {
510f126890aSEmmanuel Vadot				compatible = "fsl,imx27-usb";
511f126890aSEmmanuel Vadot				reg = <0x10024400 0x200>;
512f126890aSEmmanuel Vadot				interrupts = <55>;
513f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
514f126890aSEmmanuel Vadot					<&clks IMX27_CLK_USB_AHB_GATE>,
515f126890aSEmmanuel Vadot					<&clks IMX27_CLK_USB_DIV>;
516f126890aSEmmanuel Vadot				clock-names = "ipg", "ahb", "per";
517f126890aSEmmanuel Vadot				fsl,usbmisc = <&usbmisc 2>;
518f126890aSEmmanuel Vadot				dr_mode = "host";
519f126890aSEmmanuel Vadot				status = "disabled";
520f126890aSEmmanuel Vadot			};
521f126890aSEmmanuel Vadot
522f126890aSEmmanuel Vadot			usbmisc: usbmisc@10024600 {
523f126890aSEmmanuel Vadot				#index-cells = <1>;
524f126890aSEmmanuel Vadot				compatible = "fsl,imx27-usbmisc";
525f126890aSEmmanuel Vadot				reg = <0x10024600 0x200>;
526f126890aSEmmanuel Vadot			};
527f126890aSEmmanuel Vadot
528f126890aSEmmanuel Vadot			sahara2: crypto@10025000 {
529f126890aSEmmanuel Vadot				compatible = "fsl,imx27-sahara";
530f126890aSEmmanuel Vadot				reg = <0x10025000 0x1000>;
531f126890aSEmmanuel Vadot				interrupts = <59>;
532f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_SAHARA_IPG_GATE>,
533f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_SAHARA_AHB_GATE>;
534f126890aSEmmanuel Vadot				clock-names = "ipg", "ahb";
535f126890aSEmmanuel Vadot			};
536f126890aSEmmanuel Vadot
537f126890aSEmmanuel Vadot			clks: ccm@10027000 {
538f126890aSEmmanuel Vadot				compatible = "fsl,imx27-ccm";
539f126890aSEmmanuel Vadot				reg = <0x10027000 0x1000>;
540f126890aSEmmanuel Vadot				#clock-cells = <1>;
541f126890aSEmmanuel Vadot			};
542f126890aSEmmanuel Vadot
543f126890aSEmmanuel Vadot			iim: efuse@10028000 {
544f126890aSEmmanuel Vadot				compatible = "fsl,imx27-iim";
545f126890aSEmmanuel Vadot				reg = <0x10028000 0x1000>;
546f126890aSEmmanuel Vadot				interrupts = <62>;
547f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_IIM_IPG_GATE>;
548f126890aSEmmanuel Vadot			};
549f126890aSEmmanuel Vadot
550f126890aSEmmanuel Vadot			fec: ethernet@1002b000 {
551f126890aSEmmanuel Vadot				compatible = "fsl,imx27-fec";
552f126890aSEmmanuel Vadot				reg = <0x1002b000 0x1000>;
553f126890aSEmmanuel Vadot				interrupts = <50>;
554f126890aSEmmanuel Vadot				clocks = <&clks IMX27_CLK_FEC_IPG_GATE>,
555f126890aSEmmanuel Vadot					 <&clks IMX27_CLK_FEC_AHB_GATE>;
556f126890aSEmmanuel Vadot				clock-names = "ipg", "ahb";
557f126890aSEmmanuel Vadot				status = "disabled";
558f126890aSEmmanuel Vadot			};
559f126890aSEmmanuel Vadot		};
560f126890aSEmmanuel Vadot
561f126890aSEmmanuel Vadot		nfc: nand-controller@d8000000 {
562f126890aSEmmanuel Vadot			#address-cells = <1>;
563f126890aSEmmanuel Vadot			#size-cells = <1>;
564f126890aSEmmanuel Vadot			compatible = "fsl,imx27-nand";
565f126890aSEmmanuel Vadot			reg = <0xd8000000 0x1000>;
566f126890aSEmmanuel Vadot			interrupts = <29>;
567f126890aSEmmanuel Vadot			clocks = <&clks IMX27_CLK_NFC_BAUD_GATE>;
568f126890aSEmmanuel Vadot			status = "disabled";
569f126890aSEmmanuel Vadot		};
570f126890aSEmmanuel Vadot
57101950c46SEmmanuel Vadot		weim: memory-controller@d8002000 {
572f126890aSEmmanuel Vadot			#address-cells = <2>;
573f126890aSEmmanuel Vadot			#size-cells = <1>;
574f126890aSEmmanuel Vadot			compatible = "fsl,imx27-weim";
575f126890aSEmmanuel Vadot			reg = <0xd8002000 0x1000>;
576f126890aSEmmanuel Vadot			clocks = <&clks IMX27_CLK_EMI_AHB_GATE>;
577f126890aSEmmanuel Vadot			ranges = <
578f126890aSEmmanuel Vadot				0 0 0xc0000000 0x08000000
579f126890aSEmmanuel Vadot				1 0 0xc8000000 0x08000000
580f126890aSEmmanuel Vadot				2 0 0xd0000000 0x02000000
581f126890aSEmmanuel Vadot				3 0 0xd2000000 0x02000000
582f126890aSEmmanuel Vadot				4 0 0xd4000000 0x02000000
583f126890aSEmmanuel Vadot				5 0 0xd6000000 0x02000000
584f126890aSEmmanuel Vadot			>;
585f126890aSEmmanuel Vadot			status = "disabled";
586f126890aSEmmanuel Vadot		};
587f126890aSEmmanuel Vadot
588f126890aSEmmanuel Vadot		iram: sram@ffff4c00 {
589f126890aSEmmanuel Vadot			compatible = "mmio-sram";
590f126890aSEmmanuel Vadot			reg = <0xffff4c00 0xb400>;
5918d13bc63SEmmanuel Vadot			ranges = <0 0xffff4c00 0xb400>;
5928d13bc63SEmmanuel Vadot			#address-cells = <1>;
5938d13bc63SEmmanuel Vadot			#size-cells = <1>;
594f126890aSEmmanuel Vadot		};
595f126890aSEmmanuel Vadot	};
596f126890aSEmmanuel Vadot};
597