1/*
2 * Copyright 2011 Freescale Semiconductor, Inc.
3 * Copyright 2011 Linaro Ltd.
4 *
5 * The code contained herein is licensed under the GNU General Public
6 * License. You may obtain a copy of the GNU General Public License
7 * Version 2 or later at the following locations:
8 *
9 * http://www.opensource.org/licenses/gpl-license.html
10 * http://www.gnu.org/copyleft/gpl.html
11 */
12
13#include <dt-bindings/clock/imx6qdl-clock.h>
14#include <dt-bindings/interrupt-controller/arm-gic.h>
15
16#include "skeleton.dtsi"
17
18/ {
19	aliases {
20		ethernet0 = &fec;
21		can0 = &can1;
22		can1 = &can2;
23		gpio0 = &gpio1;
24		gpio1 = &gpio2;
25		gpio2 = &gpio3;
26		gpio3 = &gpio4;
27		gpio4 = &gpio5;
28		gpio5 = &gpio6;
29		gpio6 = &gpio7;
30		i2c0 = &i2c1;
31		i2c1 = &i2c2;
32		i2c2 = &i2c3;
33		mmc0 = &usdhc1;
34		mmc1 = &usdhc2;
35		mmc2 = &usdhc3;
36		mmc3 = &usdhc4;
37		serial0 = &uart1;
38		serial1 = &uart2;
39		serial2 = &uart3;
40		serial3 = &uart4;
41		serial4 = &uart5;
42		spi0 = &ecspi1;
43		spi1 = &ecspi2;
44		spi2 = &ecspi3;
45		spi3 = &ecspi4;
46		usbphy0 = &usbphy1;
47		usbphy1 = &usbphy2;
48	};
49
50	intc: interrupt-controller@00a01000 {
51		compatible = "arm,cortex-a9-gic";
52		#interrupt-cells = <3>;
53		interrupt-controller;
54		reg = <0x00a01000 0x1000>,
55		      <0x00a00100 0x100>;
56	};
57
58	clocks {
59		#address-cells = <1>;
60		#size-cells = <0>;
61
62		ckil {
63			compatible = "fsl,imx-ckil", "fixed-clock";
64			#clock-cells = <0>;
65			clock-frequency = <32768>;
66		};
67
68		ckih1 {
69			compatible = "fsl,imx-ckih1", "fixed-clock";
70			#clock-cells = <0>;
71			clock-frequency = <0>;
72		};
73
74		osc {
75			compatible = "fsl,imx-osc", "fixed-clock";
76			#clock-cells = <0>;
77			clock-frequency = <24000000>;
78		};
79	};
80
81	soc {
82		#address-cells = <1>;
83		#size-cells = <1>;
84		compatible = "simple-bus";
85		interrupt-parent = <&intc>;
86		ranges;
87
88		dma_apbh: dma-apbh@00110000 {
89			compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
90			reg = <0x00110000 0x2000>;
91			interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>,
92				     <0 13 IRQ_TYPE_LEVEL_HIGH>,
93				     <0 13 IRQ_TYPE_LEVEL_HIGH>,
94				     <0 13 IRQ_TYPE_LEVEL_HIGH>;
95			interrupt-names = "gpmi0", "gpmi1", "gpmi2", "gpmi3";
96			#dma-cells = <1>;
97			dma-channels = <4>;
98			clocks = <&clks IMX6QDL_CLK_APBH_DMA>;
99		};
100
101		gpmi: gpmi-nand@00112000 {
102			compatible = "fsl,imx6q-gpmi-nand";
103			#address-cells = <1>;
104			#size-cells = <1>;
105			reg = <0x00112000 0x2000>, <0x00114000 0x2000>;
106			reg-names = "gpmi-nand", "bch";
107			interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>;
108			interrupt-names = "bch";
109			clocks = <&clks IMX6QDL_CLK_GPMI_IO>,
110				 <&clks IMX6QDL_CLK_GPMI_APB>,
111				 <&clks IMX6QDL_CLK_GPMI_BCH>,
112				 <&clks IMX6QDL_CLK_GPMI_BCH_APB>,
113				 <&clks IMX6QDL_CLK_PER1_BCH>;
114			clock-names = "gpmi_io", "gpmi_apb", "gpmi_bch",
115				      "gpmi_bch_apb", "per1_bch";
116			dmas = <&dma_apbh 0>;
117			dma-names = "rx-tx";
118			status = "disabled";
119		};
120
121		timer@00a00600 {
122			compatible = "arm,cortex-a9-twd-timer";
123			reg = <0x00a00600 0x20>;
124			interrupts = <1 13 0xf01>;
125			clocks = <&clks IMX6QDL_CLK_TWD>;
126		};
127
128		L2: l2-cache@00a02000 {
129			compatible = "arm,pl310-cache";
130			reg = <0x00a02000 0x1000>;
131			interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
132			cache-unified;
133			cache-level = <2>;
134			arm,tag-latency = <4 2 3>;
135			arm,data-latency = <4 2 3>;
136		};
137
138		pcie: pcie@0x01000000 {
139			compatible = "fsl,imx6q-pcie", "snps,dw-pcie";
140			reg = <0x01ffc000 0x04000>,
141			      <0x01f00000 0x80000>;
142			reg-names = "dbi", "config";
143			#address-cells = <3>;
144			#size-cells = <2>;
145			device_type = "pci";
146			ranges = <0x00000800 0 0x01f00000 0x01f00000 0 0x00080000 /* configuration space */
147				  0x81000000 0 0          0x01f80000 0 0x00010000 /* downstream I/O */
148				  0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */
149			num-lanes = <1>;
150			interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
151			interrupt-names = "msi";
152			#interrupt-cells = <1>;
153			interrupt-map-mask = <0 0 0 0x7>;
154			interrupt-map = <0 0 0 1 &intc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
155			                <0 0 0 2 &intc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
156			                <0 0 0 3 &intc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
157			                <0 0 0 4 &intc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
158			clocks = <&clks IMX6QDL_CLK_PCIE_AXI>,
159				 <&clks IMX6QDL_CLK_LVDS1_GATE>,
160				 <&clks IMX6QDL_CLK_PCIE_REF_125M>;
161			clock-names = "pcie", "pcie_bus", "pcie_phy";
162			status = "disabled";
163		};
164
165		pmu {
166			compatible = "arm,cortex-a9-pmu";
167			interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
168		};
169
170		aips-bus@02000000 { /* AIPS1 */
171			compatible = "fsl,aips-bus", "simple-bus";
172			#address-cells = <1>;
173			#size-cells = <1>;
174			reg = <0x02000000 0x100000>;
175			ranges;
176
177			spba-bus@02000000 {
178				compatible = "fsl,spba-bus", "simple-bus";
179				#address-cells = <1>;
180				#size-cells = <1>;
181				reg = <0x02000000 0x40000>;
182				ranges;
183
184				spdif: spdif@02004000 {
185					compatible = "fsl,imx35-spdif";
186					reg = <0x02004000 0x4000>;
187					interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
188					dmas = <&sdma 14 18 0>,
189					       <&sdma 15 18 0>;
190					dma-names = "rx", "tx";
191					clocks = <&clks IMX6QDL_CLK_SPDIF>, <&clks IMX6QDL_CLK_OSC>,
192						 <&clks IMX6QDL_CLK_SPDIF>, <&clks IMX6QDL_CLK_DUMMY>,
193						 <&clks IMX6QDL_CLK_DUMMY>, <&clks IMX6QDL_CLK_DUMMY>,
194						 <&clks IMX6QDL_CLK_DUMMY>, <&clks IMX6QDL_CLK_DUMMY>,
195						 <&clks IMX6QDL_CLK_DUMMY>;
196					clock-names = "core",  "rxtx0",
197						      "rxtx1", "rxtx2",
198						      "rxtx3", "rxtx4",
199						      "rxtx5", "rxtx6",
200						      "rxtx7";
201					status = "disabled";
202				};
203
204				ecspi1: ecspi@02008000 {
205					#address-cells = <1>;
206					#size-cells = <0>;
207					compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
208					reg = <0x02008000 0x4000>;
209					interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
210					clocks = <&clks IMX6QDL_CLK_ECSPI1>,
211						 <&clks IMX6QDL_CLK_ECSPI1>;
212					clock-names = "ipg", "per";
213					dmas = <&sdma 3 7 1>, <&sdma 4 7 2>;
214					dma-names = "rx", "tx";
215					status = "disabled";
216				};
217
218				ecspi2: ecspi@0200c000 {
219					#address-cells = <1>;
220					#size-cells = <0>;
221					compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
222					reg = <0x0200c000 0x4000>;
223					interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>;
224					clocks = <&clks IMX6QDL_CLK_ECSPI2>,
225						 <&clks IMX6QDL_CLK_ECSPI2>;
226					clock-names = "ipg", "per";
227					dmas = <&sdma 5 7 1>, <&sdma 6 7 2>;
228					dma-names = "rx", "tx";
229					status = "disabled";
230				};
231
232				ecspi3: ecspi@02010000 {
233					#address-cells = <1>;
234					#size-cells = <0>;
235					compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
236					reg = <0x02010000 0x4000>;
237					interrupts = <0 33 IRQ_TYPE_LEVEL_HIGH>;
238					clocks = <&clks IMX6QDL_CLK_ECSPI3>,
239						 <&clks IMX6QDL_CLK_ECSPI3>;
240					clock-names = "ipg", "per";
241					dmas = <&sdma 7 7 1>, <&sdma 8 7 2>;
242					dma-names = "rx", "tx";
243					status = "disabled";
244				};
245
246				ecspi4: ecspi@02014000 {
247					#address-cells = <1>;
248					#size-cells = <0>;
249					compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
250					reg = <0x02014000 0x4000>;
251					interrupts = <0 34 IRQ_TYPE_LEVEL_HIGH>;
252					clocks = <&clks IMX6QDL_CLK_ECSPI4>,
253						 <&clks IMX6QDL_CLK_ECSPI4>;
254					clock-names = "ipg", "per";
255					dmas = <&sdma 9 7 1>, <&sdma 10 7 2>;
256					dma-names = "rx", "tx";
257					status = "disabled";
258				};
259
260				uart1: serial@02020000 {
261					compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
262					reg = <0x02020000 0x4000>;
263					interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>;
264					clocks = <&clks IMX6QDL_CLK_UART_IPG>,
265						 <&clks IMX6QDL_CLK_UART_SERIAL>;
266					clock-names = "ipg", "per";
267					dmas = <&sdma 25 4 0>, <&sdma 26 4 0>;
268					dma-names = "rx", "tx";
269					status = "disabled";
270				};
271
272				esai: esai@02024000 {
273					reg = <0x02024000 0x4000>;
274					interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH>;
275				};
276
277				ssi1: ssi@02028000 {
278					#sound-dai-cells = <0>;
279					compatible = "fsl,imx6q-ssi",
280							"fsl,imx51-ssi";
281					reg = <0x02028000 0x4000>;
282					interrupts = <0 46 IRQ_TYPE_LEVEL_HIGH>;
283					clocks = <&clks IMX6QDL_CLK_SSI1_IPG>,
284						 <&clks IMX6QDL_CLK_SSI1>;
285					clock-names = "ipg", "baud";
286					dmas = <&sdma 37 1 0>,
287					       <&sdma 38 1 0>;
288					dma-names = "rx", "tx";
289					fsl,fifo-depth = <15>;
290					status = "disabled";
291				};
292
293				ssi2: ssi@0202c000 {
294					#sound-dai-cells = <0>;
295					compatible = "fsl,imx6q-ssi",
296							"fsl,imx51-ssi";
297					reg = <0x0202c000 0x4000>;
298					interrupts = <0 47 IRQ_TYPE_LEVEL_HIGH>;
299					clocks = <&clks IMX6QDL_CLK_SSI2_IPG>,
300						 <&clks IMX6QDL_CLK_SSI2>;
301					clock-names = "ipg", "baud";
302					dmas = <&sdma 41 1 0>,
303					       <&sdma 42 1 0>;
304					dma-names = "rx", "tx";
305					fsl,fifo-depth = <15>;
306					status = "disabled";
307				};
308
309				ssi3: ssi@02030000 {
310					#sound-dai-cells = <0>;
311					compatible = "fsl,imx6q-ssi",
312							"fsl,imx51-ssi";
313					reg = <0x02030000 0x4000>;
314					interrupts = <0 48 IRQ_TYPE_LEVEL_HIGH>;
315					clocks = <&clks IMX6QDL_CLK_SSI3_IPG>,
316						 <&clks IMX6QDL_CLK_SSI3>;
317					clock-names = "ipg", "baud";
318					dmas = <&sdma 45 1 0>,
319					       <&sdma 46 1 0>;
320					dma-names = "rx", "tx";
321					fsl,fifo-depth = <15>;
322					status = "disabled";
323				};
324
325				asrc: asrc@02034000 {
326					reg = <0x02034000 0x4000>;
327					interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>;
328				};
329
330				spba@0203c000 {
331					reg = <0x0203c000 0x4000>;
332				};
333			};
334
335			vpu: vpu@02040000 {
336				compatible = "cnm,coda960";
337				reg = <0x02040000 0x3c000>;
338				interrupts = <0 12 IRQ_TYPE_LEVEL_HIGH>,
339					     <0 3 IRQ_TYPE_LEVEL_HIGH>;
340				interrupt-names = "bit", "jpeg";
341				clocks = <&clks IMX6QDL_CLK_VPU_AXI>,
342					 <&clks IMX6QDL_CLK_MMDC_CH0_AXI>;
343				clock-names = "per", "ahb";
344				resets = <&src 1>;
345				iram = <&ocram>;
346			};
347
348			aipstz@0207c000 { /* AIPSTZ1 */
349				reg = <0x0207c000 0x4000>;
350			};
351
352			pwm1: pwm@02080000 {
353				#pwm-cells = <2>;
354				compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
355				reg = <0x02080000 0x4000>;
356				interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>;
357				clocks = <&clks IMX6QDL_CLK_IPG>,
358					 <&clks IMX6QDL_CLK_PWM1>;
359				clock-names = "ipg", "per";
360			};
361
362			pwm2: pwm@02084000 {
363				#pwm-cells = <2>;
364				compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
365				reg = <0x02084000 0x4000>;
366				interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>;
367				clocks = <&clks IMX6QDL_CLK_IPG>,
368					 <&clks IMX6QDL_CLK_PWM2>;
369				clock-names = "ipg", "per";
370			};
371
372			pwm3: pwm@02088000 {
373				#pwm-cells = <2>;
374				compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
375				reg = <0x02088000 0x4000>;
376				interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>;
377				clocks = <&clks IMX6QDL_CLK_IPG>,
378					 <&clks IMX6QDL_CLK_PWM3>;
379				clock-names = "ipg", "per";
380			};
381
382			pwm4: pwm@0208c000 {
383				#pwm-cells = <2>;
384				compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
385				reg = <0x0208c000 0x4000>;
386				interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
387				clocks = <&clks IMX6QDL_CLK_IPG>,
388					 <&clks IMX6QDL_CLK_PWM4>;
389				clock-names = "ipg", "per";
390			};
391
392			can1: flexcan@02090000 {
393				compatible = "fsl,imx6q-flexcan";
394				reg = <0x02090000 0x4000>;
395				interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>;
396				clocks = <&clks IMX6QDL_CLK_CAN1_IPG>,
397					 <&clks IMX6QDL_CLK_CAN1_SERIAL>;
398				clock-names = "ipg", "per";
399				status = "disabled";
400			};
401
402			can2: flexcan@02094000 {
403				compatible = "fsl,imx6q-flexcan";
404				reg = <0x02094000 0x4000>;
405				interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>;
406				clocks = <&clks IMX6QDL_CLK_CAN2_IPG>,
407					 <&clks IMX6QDL_CLK_CAN2_SERIAL>;
408				clock-names = "ipg", "per";
409				status = "disabled";
410			};
411
412			gpt: gpt@02098000 {
413				compatible = "fsl,imx6q-gpt", "fsl,imx31-gpt";
414				reg = <0x02098000 0x4000>;
415				interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
416				clocks = <&clks IMX6QDL_CLK_GPT_IPG>,
417					 <&clks IMX6QDL_CLK_GPT_IPG_PER>,
418					 <&clks IMX6QDL_CLK_GPT_3M>;
419				clock-names = "ipg", "per", "osc_per";
420			};
421
422			gpio1: gpio@0209c000 {
423				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
424				reg = <0x0209c000 0x4000>;
425				interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>,
426					     <0 67 IRQ_TYPE_LEVEL_HIGH>;
427				gpio-controller;
428				#gpio-cells = <2>;
429				interrupt-controller;
430				#interrupt-cells = <2>;
431			};
432
433			gpio2: gpio@020a0000 {
434				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
435				reg = <0x020a0000 0x4000>;
436				interrupts = <0 68 IRQ_TYPE_LEVEL_HIGH>,
437					     <0 69 IRQ_TYPE_LEVEL_HIGH>;
438				gpio-controller;
439				#gpio-cells = <2>;
440				interrupt-controller;
441				#interrupt-cells = <2>;
442			};
443
444			gpio3: gpio@020a4000 {
445				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
446				reg = <0x020a4000 0x4000>;
447				interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>,
448					     <0 71 IRQ_TYPE_LEVEL_HIGH>;
449				gpio-controller;
450				#gpio-cells = <2>;
451				interrupt-controller;
452				#interrupt-cells = <2>;
453			};
454
455			gpio4: gpio@020a8000 {
456				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
457				reg = <0x020a8000 0x4000>;
458				interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>,
459					     <0 73 IRQ_TYPE_LEVEL_HIGH>;
460				gpio-controller;
461				#gpio-cells = <2>;
462				interrupt-controller;
463				#interrupt-cells = <2>;
464			};
465
466			gpio5: gpio@020ac000 {
467				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
468				reg = <0x020ac000 0x4000>;
469				interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>,
470					     <0 75 IRQ_TYPE_LEVEL_HIGH>;
471				gpio-controller;
472				#gpio-cells = <2>;
473				interrupt-controller;
474				#interrupt-cells = <2>;
475			};
476
477			gpio6: gpio@020b0000 {
478				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
479				reg = <0x020b0000 0x4000>;
480				interrupts = <0 76 IRQ_TYPE_LEVEL_HIGH>,
481					     <0 77 IRQ_TYPE_LEVEL_HIGH>;
482				gpio-controller;
483				#gpio-cells = <2>;
484				interrupt-controller;
485				#interrupt-cells = <2>;
486			};
487
488			gpio7: gpio@020b4000 {
489				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
490				reg = <0x020b4000 0x4000>;
491				interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>,
492					     <0 79 IRQ_TYPE_LEVEL_HIGH>;
493				gpio-controller;
494				#gpio-cells = <2>;
495				interrupt-controller;
496				#interrupt-cells = <2>;
497			};
498
499			kpp: kpp@020b8000 {
500				compatible = "fsl,imx6q-kpp", "fsl,imx21-kpp";
501				reg = <0x020b8000 0x4000>;
502				interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
503				clocks = <&clks IMX6QDL_CLK_IPG>;
504				status = "disabled";
505			};
506
507			wdog1: wdog@020bc000 {
508				compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
509				reg = <0x020bc000 0x4000>;
510				interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
511				clocks = <&clks IMX6QDL_CLK_DUMMY>;
512			};
513
514			wdog2: wdog@020c0000 {
515				compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
516				reg = <0x020c0000 0x4000>;
517				interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
518				clocks = <&clks IMX6QDL_CLK_DUMMY>;
519				status = "disabled";
520			};
521
522			clks: ccm@020c4000 {
523				compatible = "fsl,imx6q-ccm";
524				reg = <0x020c4000 0x4000>;
525				interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>,
526					     <0 88 IRQ_TYPE_LEVEL_HIGH>;
527				#clock-cells = <1>;
528			};
529
530			anatop: anatop@020c8000 {
531				compatible = "fsl,imx6q-anatop", "syscon", "simple-bus";
532				reg = <0x020c8000 0x1000>;
533				interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
534					     <0 54 IRQ_TYPE_LEVEL_HIGH>,
535					     <0 127 IRQ_TYPE_LEVEL_HIGH>;
536
537				regulator-1p1@110 {
538					compatible = "fsl,anatop-regulator";
539					regulator-name = "vdd1p1";
540					regulator-min-microvolt = <800000>;
541					regulator-max-microvolt = <1375000>;
542					regulator-always-on;
543					anatop-reg-offset = <0x110>;
544					anatop-vol-bit-shift = <8>;
545					anatop-vol-bit-width = <5>;
546					anatop-min-bit-val = <4>;
547					anatop-min-voltage = <800000>;
548					anatop-max-voltage = <1375000>;
549				};
550
551				regulator-3p0@120 {
552					compatible = "fsl,anatop-regulator";
553					regulator-name = "vdd3p0";
554					regulator-min-microvolt = <2800000>;
555					regulator-max-microvolt = <3150000>;
556					regulator-always-on;
557					anatop-reg-offset = <0x120>;
558					anatop-vol-bit-shift = <8>;
559					anatop-vol-bit-width = <5>;
560					anatop-min-bit-val = <0>;
561					anatop-min-voltage = <2625000>;
562					anatop-max-voltage = <3400000>;
563				};
564
565				regulator-2p5@130 {
566					compatible = "fsl,anatop-regulator";
567					regulator-name = "vdd2p5";
568					regulator-min-microvolt = <2000000>;
569					regulator-max-microvolt = <2750000>;
570					regulator-always-on;
571					anatop-reg-offset = <0x130>;
572					anatop-vol-bit-shift = <8>;
573					anatop-vol-bit-width = <5>;
574					anatop-min-bit-val = <0>;
575					anatop-min-voltage = <2000000>;
576					anatop-max-voltage = <2750000>;
577				};
578
579				reg_arm: regulator-vddcore@140 {
580					compatible = "fsl,anatop-regulator";
581					regulator-name = "vddarm";
582					regulator-min-microvolt = <725000>;
583					regulator-max-microvolt = <1450000>;
584					regulator-always-on;
585					anatop-reg-offset = <0x140>;
586					anatop-vol-bit-shift = <0>;
587					anatop-vol-bit-width = <5>;
588					anatop-delay-reg-offset = <0x170>;
589					anatop-delay-bit-shift = <24>;
590					anatop-delay-bit-width = <2>;
591					anatop-min-bit-val = <1>;
592					anatop-min-voltage = <725000>;
593					anatop-max-voltage = <1450000>;
594				};
595
596				reg_pu: regulator-vddpu@140 {
597					compatible = "fsl,anatop-regulator";
598					regulator-name = "vddpu";
599					regulator-min-microvolt = <725000>;
600					regulator-max-microvolt = <1450000>;
601					regulator-always-on;
602					anatop-reg-offset = <0x140>;
603					anatop-vol-bit-shift = <9>;
604					anatop-vol-bit-width = <5>;
605					anatop-delay-reg-offset = <0x170>;
606					anatop-delay-bit-shift = <26>;
607					anatop-delay-bit-width = <2>;
608					anatop-min-bit-val = <1>;
609					anatop-min-voltage = <725000>;
610					anatop-max-voltage = <1450000>;
611				};
612
613				reg_soc: regulator-vddsoc@140 {
614					compatible = "fsl,anatop-regulator";
615					regulator-name = "vddsoc";
616					regulator-min-microvolt = <725000>;
617					regulator-max-microvolt = <1450000>;
618					regulator-always-on;
619					anatop-reg-offset = <0x140>;
620					anatop-vol-bit-shift = <18>;
621					anatop-vol-bit-width = <5>;
622					anatop-delay-reg-offset = <0x170>;
623					anatop-delay-bit-shift = <28>;
624					anatop-delay-bit-width = <2>;
625					anatop-min-bit-val = <1>;
626					anatop-min-voltage = <725000>;
627					anatop-max-voltage = <1450000>;
628				};
629			};
630
631			tempmon: tempmon {
632				compatible = "fsl,imx6q-tempmon";
633				interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
634				fsl,tempmon = <&anatop>;
635				fsl,tempmon-data = <&ocotp>;
636				clocks = <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
637			};
638
639			usbphy1: usbphy@020c9000 {
640				compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
641				reg = <0x020c9000 0x1000>;
642				interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
643				clocks = <&clks IMX6QDL_CLK_USBPHY1>;
644				fsl,anatop = <&anatop>;
645			};
646
647			usbphy2: usbphy@020ca000 {
648				compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
649				reg = <0x020ca000 0x1000>;
650				interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>;
651				clocks = <&clks IMX6QDL_CLK_USBPHY2>;
652				fsl,anatop = <&anatop>;
653			};
654
655			snvs@020cc000 {
656				compatible = "fsl,sec-v4.0-mon", "simple-bus";
657				#address-cells = <1>;
658				#size-cells = <1>;
659				ranges = <0 0x020cc000 0x4000>;
660
661				snvs-rtc-lp@34 {
662					compatible = "fsl,sec-v4.0-mon-rtc-lp";
663					reg = <0x34 0x58>;
664					interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>,
665						     <0 20 IRQ_TYPE_LEVEL_HIGH>;
666				};
667
668				snvs_poweroff: snvs-poweroff@38 {
669					compatible = "fsl,sec-v4.0-poweroff";
670					reg = <0x38 0x4>;
671					status = "disabled";
672				};
673			};
674
675			epit1: epit@020d0000 { /* EPIT1 */
676				reg = <0x020d0000 0x4000>;
677				interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
678			};
679
680			epit2: epit@020d4000 { /* EPIT2 */
681				reg = <0x020d4000 0x4000>;
682				interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
683			};
684
685			src: src@020d8000 {
686				compatible = "fsl,imx6q-src", "fsl,imx51-src";
687				reg = <0x020d8000 0x4000>;
688				interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
689					     <0 96 IRQ_TYPE_LEVEL_HIGH>;
690				#reset-cells = <1>;
691			};
692
693			gpc: gpc@020dc000 {
694				compatible = "fsl,imx6q-gpc";
695				reg = <0x020dc000 0x4000>;
696				interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>,
697					     <0 90 IRQ_TYPE_LEVEL_HIGH>;
698			};
699
700			gpr: iomuxc-gpr@020e0000 {
701				compatible = "fsl,imx6q-iomuxc-gpr", "syscon";
702				reg = <0x020e0000 0x38>;
703			};
704
705			iomuxc: iomuxc@020e0000 {
706				compatible = "fsl,imx6dl-iomuxc", "fsl,imx6q-iomuxc";
707				reg = <0x020e0000 0x4000>;
708			};
709
710			ldb: ldb@020e0008 {
711				#address-cells = <1>;
712				#size-cells = <0>;
713				compatible = "fsl,imx6q-ldb", "fsl,imx53-ldb";
714				gpr = <&gpr>;
715				status = "disabled";
716
717				lvds-channel@0 {
718					#address-cells = <1>;
719					#size-cells = <0>;
720					reg = <0>;
721					status = "disabled";
722
723					port@0 {
724						reg = <0>;
725
726						lvds0_mux_0: endpoint {
727							remote-endpoint = <&ipu1_di0_lvds0>;
728						};
729					};
730
731					port@1 {
732						reg = <1>;
733
734						lvds0_mux_1: endpoint {
735							remote-endpoint = <&ipu1_di1_lvds0>;
736						};
737					};
738				};
739
740				lvds-channel@1 {
741					#address-cells = <1>;
742					#size-cells = <0>;
743					reg = <1>;
744					status = "disabled";
745
746					port@0 {
747						reg = <0>;
748
749						lvds1_mux_0: endpoint {
750							remote-endpoint = <&ipu1_di0_lvds1>;
751						};
752					};
753
754					port@1 {
755						reg = <1>;
756
757						lvds1_mux_1: endpoint {
758							remote-endpoint = <&ipu1_di1_lvds1>;
759						};
760					};
761				};
762			};
763
764			hdmi: hdmi@0120000 {
765				#address-cells = <1>;
766				#size-cells = <0>;
767				reg = <0x00120000 0x9000>;
768				interrupts = <0 115 0x04>;
769				gpr = <&gpr>;
770				clocks = <&clks IMX6QDL_CLK_HDMI_IAHB>,
771					 <&clks IMX6QDL_CLK_HDMI_ISFR>;
772				clock-names = "iahb", "isfr";
773				status = "disabled";
774
775				port@0 {
776					reg = <0>;
777
778					hdmi_mux_0: endpoint {
779						remote-endpoint = <&ipu1_di0_hdmi>;
780					};
781				};
782
783				port@1 {
784					reg = <1>;
785
786					hdmi_mux_1: endpoint {
787						remote-endpoint = <&ipu1_di1_hdmi>;
788					};
789				};
790			};
791
792			dcic1: dcic@020e4000 {
793				reg = <0x020e4000 0x4000>;
794				interrupts = <0 124 IRQ_TYPE_LEVEL_HIGH>;
795			};
796
797			dcic2: dcic@020e8000 {
798				reg = <0x020e8000 0x4000>;
799				interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>;
800			};
801
802			sdma: sdma@020ec000 {
803				compatible = "fsl,imx6q-sdma", "fsl,imx35-sdma";
804				reg = <0x020ec000 0x4000>;
805				interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
806				clocks = <&clks IMX6QDL_CLK_SDMA>,
807					 <&clks IMX6QDL_CLK_SDMA>;
808				clock-names = "ipg", "ahb";
809				#dma-cells = <3>;
810				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
811			};
812		};
813
814		aips-bus@02100000 { /* AIPS2 */
815			compatible = "fsl,aips-bus", "simple-bus";
816			#address-cells = <1>;
817			#size-cells = <1>;
818			reg = <0x02100000 0x100000>;
819			ranges;
820
821			caam@02100000 {
822				reg = <0x02100000 0x40000>;
823				interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>,
824					     <0 106 IRQ_TYPE_LEVEL_HIGH>;
825			};
826
827			aipstz@0217c000 { /* AIPSTZ2 */
828				reg = <0x0217c000 0x4000>;
829			};
830
831			usbotg: usb@02184000 {
832				compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
833				reg = <0x02184000 0x200>;
834				interrupts = <0 43 IRQ_TYPE_LEVEL_HIGH>;
835				clocks = <&clks IMX6QDL_CLK_USBOH3>;
836				fsl,usbphy = <&usbphy1>;
837				fsl,usbmisc = <&usbmisc 0>;
838				status = "disabled";
839			};
840
841			usbh1: usb@02184200 {
842				compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
843				reg = <0x02184200 0x200>;
844				interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>;
845				clocks = <&clks IMX6QDL_CLK_USBOH3>;
846				fsl,usbphy = <&usbphy2>;
847				fsl,usbmisc = <&usbmisc 1>;
848				status = "disabled";
849			};
850
851			usbh2: usb@02184400 {
852				compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
853				reg = <0x02184400 0x200>;
854				interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>;
855				clocks = <&clks IMX6QDL_CLK_USBOH3>;
856				fsl,usbmisc = <&usbmisc 2>;
857				status = "disabled";
858			};
859
860			usbh3: usb@02184600 {
861				compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
862				reg = <0x02184600 0x200>;
863				interrupts = <0 42 IRQ_TYPE_LEVEL_HIGH>;
864				clocks = <&clks IMX6QDL_CLK_USBOH3>;
865				fsl,usbmisc = <&usbmisc 3>;
866				status = "disabled";
867			};
868
869			usbmisc: usbmisc@02184800 {
870				#index-cells = <1>;
871				compatible = "fsl,imx6q-usbmisc";
872				reg = <0x02184800 0x200>;
873				clocks = <&clks IMX6QDL_CLK_USBOH3>;
874			};
875
876			fec: ethernet@02188000 {
877				compatible = "fsl,imx6q-fec";
878				reg = <0x02188000 0x4000>;
879				interrupts-extended =
880					<&intc 0 118 IRQ_TYPE_LEVEL_HIGH>,
881					<&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
882				clocks = <&clks IMX6QDL_CLK_ENET>,
883					 <&clks IMX6QDL_CLK_ENET>,
884					 <&clks IMX6QDL_CLK_ENET_REF>;
885				clock-names = "ipg", "ahb", "ptp";
886				status = "disabled";
887			};
888
889			mlb@0218c000 {
890				reg = <0x0218c000 0x4000>;
891				interrupts = <0 53 IRQ_TYPE_LEVEL_HIGH>,
892					     <0 117 IRQ_TYPE_LEVEL_HIGH>,
893					     <0 126 IRQ_TYPE_LEVEL_HIGH>;
894			};
895
896			usdhc1: usdhc@02190000 {
897				compatible = "fsl,imx6q-usdhc";
898				reg = <0x02190000 0x4000>;
899				interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
900				clocks = <&clks IMX6QDL_CLK_USDHC1>,
901					 <&clks IMX6QDL_CLK_USDHC1>,
902					 <&clks IMX6QDL_CLK_USDHC1>;
903				clock-names = "ipg", "ahb", "per";
904				bus-width = <4>;
905				status = "disabled";
906			};
907
908			usdhc2: usdhc@02194000 {
909				compatible = "fsl,imx6q-usdhc";
910				reg = <0x02194000 0x4000>;
911				interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
912				clocks = <&clks IMX6QDL_CLK_USDHC2>,
913					 <&clks IMX6QDL_CLK_USDHC2>,
914					 <&clks IMX6QDL_CLK_USDHC2>;
915				clock-names = "ipg", "ahb", "per";
916				bus-width = <4>;
917				status = "disabled";
918			};
919
920			usdhc3: usdhc@02198000 {
921				compatible = "fsl,imx6q-usdhc";
922				reg = <0x02198000 0x4000>;
923				interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
924				clocks = <&clks IMX6QDL_CLK_USDHC3>,
925					 <&clks IMX6QDL_CLK_USDHC3>,
926					 <&clks IMX6QDL_CLK_USDHC3>;
927				clock-names = "ipg", "ahb", "per";
928				bus-width = <4>;
929				status = "disabled";
930			};
931
932			usdhc4: usdhc@0219c000 {
933				compatible = "fsl,imx6q-usdhc";
934				reg = <0x0219c000 0x4000>;
935				interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
936				clocks = <&clks IMX6QDL_CLK_USDHC4>,
937					 <&clks IMX6QDL_CLK_USDHC4>,
938					 <&clks IMX6QDL_CLK_USDHC4>;
939				clock-names = "ipg", "ahb", "per";
940				bus-width = <4>;
941				status = "disabled";
942			};
943
944			i2c1: i2c@021a0000 {
945				#address-cells = <1>;
946				#size-cells = <0>;
947				compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
948				reg = <0x021a0000 0x4000>;
949				interrupts = <0 36 IRQ_TYPE_LEVEL_HIGH>;
950				clocks = <&clks IMX6QDL_CLK_I2C1>;
951				status = "disabled";
952			};
953
954			i2c2: i2c@021a4000 {
955				#address-cells = <1>;
956				#size-cells = <0>;
957				compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
958				reg = <0x021a4000 0x4000>;
959				interrupts = <0 37 IRQ_TYPE_LEVEL_HIGH>;
960				clocks = <&clks IMX6QDL_CLK_I2C2>;
961				status = "disabled";
962			};
963
964			i2c3: i2c@021a8000 {
965				#address-cells = <1>;
966				#size-cells = <0>;
967				compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
968				reg = <0x021a8000 0x4000>;
969				interrupts = <0 38 IRQ_TYPE_LEVEL_HIGH>;
970				clocks = <&clks IMX6QDL_CLK_I2C3>;
971				status = "disabled";
972			};
973
974			romcp@021ac000 {
975				reg = <0x021ac000 0x4000>;
976			};
977
978			mmdc0: mmdc@021b0000 { /* MMDC0 */
979				compatible = "fsl,imx6q-mmdc";
980				reg = <0x021b0000 0x4000>;
981			};
982
983			mmdc1: mmdc@021b4000 { /* MMDC1 */
984				reg = <0x021b4000 0x4000>;
985			};
986
987			weim: weim@021b8000 {
988				compatible = "fsl,imx6q-weim";
989				reg = <0x021b8000 0x4000>;
990				interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
991				clocks = <&clks IMX6QDL_CLK_EIM_SLOW>;
992			};
993
994			ocotp: ocotp@021bc000 {
995				compatible = "fsl,imx6q-ocotp", "syscon";
996				reg = <0x021bc000 0x4000>;
997			};
998
999			tzasc@021d0000 { /* TZASC1 */
1000				reg = <0x021d0000 0x4000>;
1001				interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
1002			};
1003
1004			tzasc@021d4000 { /* TZASC2 */
1005				reg = <0x021d4000 0x4000>;
1006				interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
1007			};
1008
1009			audmux: audmux@021d8000 {
1010				compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux";
1011				reg = <0x021d8000 0x4000>;
1012				status = "disabled";
1013			};
1014
1015			mipi_csi: mipi@021dc000 {
1016				reg = <0x021dc000 0x4000>;
1017			};
1018
1019			mipi_dsi: mipi@021e0000 {
1020				#address-cells = <1>;
1021				#size-cells = <0>;
1022				reg = <0x021e0000 0x4000>;
1023				status = "disabled";
1024
1025				port@0 {
1026					reg = <0>;
1027
1028					mipi_mux_0: endpoint {
1029						remote-endpoint = <&ipu1_di0_mipi>;
1030					};
1031				};
1032
1033				port@1 {
1034					reg = <1>;
1035
1036					mipi_mux_1: endpoint {
1037						remote-endpoint = <&ipu1_di1_mipi>;
1038					};
1039				};
1040			};
1041
1042			vdoa@021e4000 {
1043				reg = <0x021e4000 0x4000>;
1044				interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
1045			};
1046
1047			uart2: serial@021e8000 {
1048				compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
1049				reg = <0x021e8000 0x4000>;
1050				interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH>;
1051				clocks = <&clks IMX6QDL_CLK_UART_IPG>,
1052					 <&clks IMX6QDL_CLK_UART_SERIAL>;
1053				clock-names = "ipg", "per";
1054				dmas = <&sdma 27 4 0>, <&sdma 28 4 0>;
1055				dma-names = "rx", "tx";
1056				status = "disabled";
1057			};
1058
1059			uart3: serial@021ec000 {
1060				compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
1061				reg = <0x021ec000 0x4000>;
1062				interrupts = <0 28 IRQ_TYPE_LEVEL_HIGH>;
1063				clocks = <&clks IMX6QDL_CLK_UART_IPG>,
1064					 <&clks IMX6QDL_CLK_UART_SERIAL>;
1065				clock-names = "ipg", "per";
1066				dmas = <&sdma 29 4 0>, <&sdma 30 4 0>;
1067				dma-names = "rx", "tx";
1068				status = "disabled";
1069			};
1070
1071			uart4: serial@021f0000 {
1072				compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
1073				reg = <0x021f0000 0x4000>;
1074				interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>;
1075				clocks = <&clks IMX6QDL_CLK_UART_IPG>,
1076					 <&clks IMX6QDL_CLK_UART_SERIAL>;
1077				clock-names = "ipg", "per";
1078				dmas = <&sdma 31 4 0>, <&sdma 32 4 0>;
1079				dma-names = "rx", "tx";
1080				status = "disabled";
1081			};
1082
1083			uart5: serial@021f4000 {
1084				compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
1085				reg = <0x021f4000 0x4000>;
1086				interrupts = <0 30 IRQ_TYPE_LEVEL_HIGH>;
1087				clocks = <&clks IMX6QDL_CLK_UART_IPG>,
1088					 <&clks IMX6QDL_CLK_UART_SERIAL>;
1089				clock-names = "ipg", "per";
1090				dmas = <&sdma 33 4 0>, <&sdma 34 4 0>;
1091				dma-names = "rx", "tx";
1092				status = "disabled";
1093			};
1094		};
1095
1096		ipu1: ipu@02400000 {
1097			#address-cells = <1>;
1098			#size-cells = <0>;
1099			compatible = "fsl,imx6q-ipu";
1100			reg = <0x02400000 0x400000>;
1101			interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>,
1102				     <0 5 IRQ_TYPE_LEVEL_HIGH>;
1103			clocks = <&clks IMX6QDL_CLK_IPU1>,
1104				 <&clks IMX6QDL_CLK_IPU1_DI0>,
1105				 <&clks IMX6QDL_CLK_IPU1_DI1>;
1106			clock-names = "bus", "di0", "di1";
1107			resets = <&src 2>;
1108
1109			ipu1_csi0: port@0 {
1110				reg = <0>;
1111			};
1112
1113			ipu1_csi1: port@1 {
1114				reg = <1>;
1115			};
1116
1117			ipu1_di0: port@2 {
1118				#address-cells = <1>;
1119				#size-cells = <0>;
1120				reg = <2>;
1121
1122				ipu1_di0_disp0: endpoint@0 {
1123				};
1124
1125				ipu1_di0_hdmi: endpoint@1 {
1126					remote-endpoint = <&hdmi_mux_0>;
1127				};
1128
1129				ipu1_di0_mipi: endpoint@2 {
1130					remote-endpoint = <&mipi_mux_0>;
1131				};
1132
1133				ipu1_di0_lvds0: endpoint@3 {
1134					remote-endpoint = <&lvds0_mux_0>;
1135				};
1136
1137				ipu1_di0_lvds1: endpoint@4 {
1138					remote-endpoint = <&lvds1_mux_0>;
1139				};
1140			};
1141
1142			ipu1_di1: port@3 {
1143				#address-cells = <1>;
1144				#size-cells = <0>;
1145				reg = <3>;
1146
1147				ipu1_di0_disp1: endpoint@0 {
1148				};
1149
1150				ipu1_di1_hdmi: endpoint@1 {
1151					remote-endpoint = <&hdmi_mux_1>;
1152				};
1153
1154				ipu1_di1_mipi: endpoint@2 {
1155					remote-endpoint = <&mipi_mux_1>;
1156				};
1157
1158				ipu1_di1_lvds0: endpoint@3 {
1159					remote-endpoint = <&lvds0_mux_1>;
1160				};
1161
1162				ipu1_di1_lvds1: endpoint@4 {
1163					remote-endpoint = <&lvds1_mux_1>;
1164				};
1165			};
1166		};
1167	};
1168};
1169