2 * Copyright 2011 Freescale Semiconductor, Inc.
3 * Copyright 2011 Linaro Ltd.
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:
9 * http://www.opensource.org/licenses/gpl-license.html
10 * http://www.gnu.org/copyleft/gpl.html
13 #include <dt-bindings/clock/imx6qdl-clock.h>
14 #include <dt-bindings/gpio/gpio.h>
16 #include "skeleton.dtsi"
48 intc: interrupt-controller@00a01000 {
49 compatible = "arm,cortex-a9-gic";
50 #interrupt-cells = <3>;
54 reg = <0x00a01000 0x1000>,
63 compatible = "fsl,imx-ckil", "fixed-clock";
64 clock-frequency = <32768>;
68 compatible = "fsl,imx-ckih1", "fixed-clock";
69 clock-frequency = <0>;
73 compatible = "fsl,imx-osc", "fixed-clock";
74 clock-frequency = <24000000>;
81 compatible = "simple-bus";
82 interrupt-parent = <&intc>;
85 caam_sm: caam-sm@00100000 {
86 compatible = "fsl,imx6q-caam-sm";
87 reg = <0x00100000 0x3fff>;
90 dma_apbh: dma-apbh@00110000 {
91 compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
92 reg = <0x00110000 0x2000>;
93 interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>,
94 <0 13 IRQ_TYPE_LEVEL_HIGH>,
95 <0 13 IRQ_TYPE_LEVEL_HIGH>,
96 <0 13 IRQ_TYPE_LEVEL_HIGH>;
97 interrupt-names = "gpmi0", "gpmi1", "gpmi2", "gpmi3";
100 clocks = <&clks IMX6QDL_CLK_APBH_DMA>;
103 irq_sec_vio: caam_secvio {
104 compatible = "fsl,imx6q-caam-secvio";
105 interrupts = <0 20 0x04>;
106 secvio_src = <0x8000001d>;
109 gpmi: gpmi-nand@00112000 {
110 compatible = "fsl,imx6q-gpmi-nand";
111 #address-cells = <1>;
113 reg = <0x00112000 0x2000>, <0x00114000 0x2000>;
114 reg-names = "gpmi-nand", "bch";
115 interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>;
116 interrupt-names = "bch";
117 clocks = <&clks IMX6QDL_CLK_GPMI_IO>,
118 <&clks IMX6QDL_CLK_GPMI_APB>,
119 <&clks IMX6QDL_CLK_GPMI_BCH>,
120 <&clks IMX6QDL_CLK_GPMI_BCH_APB>,
121 <&clks IMX6QDL_CLK_PER1_BCH>;
122 clock-names = "gpmi_io", "gpmi_apb", "gpmi_bch",
123 "gpmi_bch_apb", "per1_bch";
124 dmas = <&dma_apbh 0>;
130 compatible = "arm,cortex-a9-twd-timer";
131 reg = <0x00a00600 0x20>;
132 interrupts = <1 13 0xf01>;
133 clocks = <&clks IMX6QDL_CLK_TWD>;
136 L2: l2-cache@00a02000 {
137 compatible = "arm,pl310-cache";
138 reg = <0x00a02000 0x1000>;
139 interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
142 arm,tag-latency = <4 2 3>;
143 arm,data-latency = <4 2 3>;
146 pcie: pcie@0x01000000 {
147 compatible = "fsl,imx6q-pcie", "snps,dw-pcie";
148 reg = <0x01ffc000 0x4000>; /* DBI */
149 #address-cells = <3>;
152 ranges = <0x00000800 0 0x01f00000 0x01f00000 0 0x00080000 /* configuration space */
153 0x81000000 0 0 0x01f80000 0 0x00010000 /* downstream I/O */
154 0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */
156 interrupts = <0 123 IRQ_TYPE_LEVEL_HIGH>;
157 clocks = <&clks IMX6QDL_CLK_PCIE_REF_125M>, <&clks IMX6QDL_CLK_SATA_REF_100M>,
158 <&clks IMX6QDL_CLK_LVDS1_GATE>, <&clks IMX6QDL_CLK_PCIE_AXI>;
159 clock-names = "pcie_ref_125m", "sata_ref_100m", "lvds_gate", "pcie_axi";
164 compatible = "arm,cortex-a9-pmu";
165 interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
168 hdmi_core: hdmi_core@00120000 {
169 compatible = "fsl,imx6q-hdmi-core";
170 reg = <0x00120000 0x9000>;
171 clocks = <&clks IMX6QDL_CLK_HDMI_ISFR>,
172 <&clks IMX6QDL_CLK_HDMI_IAHB>,
173 <&clks IMX6QDL_CLK_HSI_TX>;
174 clock-names = "hdmi_isfr", "hdmi_iahb", "mipi_core";
178 hdmi_video: hdmi_video@020e0000 {
179 compatible = "fsl,imx6q-hdmi-video";
180 reg = <0x020e0000 0x1000>;
181 reg-names = "hdmi_gpr";
182 interrupts = <0 115 IRQ_TYPE_LEVEL_HIGH>;
183 clocks = <&clks IMX6QDL_CLK_HDMI_ISFR>,
184 <&clks IMX6QDL_CLK_HDMI_IAHB>,
185 <&clks IMX6QDL_CLK_HSI_TX>;
186 clock-names = "hdmi_isfr", "hdmi_iahb", "mipi_core";
190 hdmi_audio: hdmi_audio@00120000 {
191 compatible = "fsl,imx6q-hdmi-audio";
192 clocks = <&clks IMX6QDL_CLK_HDMI_ISFR>,
193 <&clks IMX6QDL_CLK_HDMI_IAHB>,
194 <&clks IMX6QDL_CLK_HSI_TX>;
195 clock-names = "hdmi_isfr", "hdmi_iahb", "mipi_core";
196 dmas = <&sdma 2 24 0>;
201 hdmi_cec: hdmi_cec@00120000 {
202 compatible = "fsl,imx6q-hdmi-cec";
203 interrupts = <0 115 IRQ_TYPE_LEVEL_HIGH>;
207 aips-bus@02000000 { /* AIPS1 */
208 compatible = "fsl,aips-bus", "simple-bus";
209 #address-cells = <1>;
211 reg = <0x02000000 0x100000>;
215 compatible = "fsl,spba-bus", "simple-bus";
216 #address-cells = <1>;
218 reg = <0x02000000 0x40000>;
221 spdif: spdif@02004000 {
222 compatible = "fsl,imx35-spdif";
223 reg = <0x02004000 0x4000>;
224 interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
225 dmas = <&sdma 14 18 0>,
227 dma-names = "rx", "tx";
228 clocks = <&clks IMX6QDL_CLK_SPDIF_GCLK>, <&clks IMX6QDL_CLK_OSC>,
229 <&clks IMX6QDL_CLK_SPDIF>, <&clks IMX6QDL_CLK_ASRC>,
230 <&clks IMX6QDL_CLK_DUMMY>, <&clks IMX6QDL_CLK_ESAI_EXTAL>,
231 <&clks IMX6QDL_CLK_IPG>, <&clks IMX6QDL_CLK_MLB>,
232 <&clks IMX6QDL_CLK_DUMMY>, <&clks IMX6QDL_CLK_SPBA>;
233 clock-names = "core", "rxtx0",
241 ecspi1: ecspi@02008000 {
242 #address-cells = <1>;
244 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
245 reg = <0x02008000 0x4000>;
246 interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
247 clocks = <&clks IMX6QDL_CLK_ECSPI1>,
248 <&clks IMX6QDL_CLK_ECSPI1>;
249 clock-names = "ipg", "per";
253 ecspi2: ecspi@0200c000 {
254 #address-cells = <1>;
256 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
257 reg = <0x0200c000 0x4000>;
258 interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>;
259 clocks = <&clks IMX6QDL_CLK_ECSPI2>,
260 <&clks IMX6QDL_CLK_ECSPI2>;
261 clock-names = "ipg", "per";
265 ecspi3: ecspi@02010000 {
266 #address-cells = <1>;
268 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
269 reg = <0x02010000 0x4000>;
270 interrupts = <0 33 IRQ_TYPE_LEVEL_HIGH>;
271 clocks = <&clks IMX6QDL_CLK_ECSPI3>,
272 <&clks IMX6QDL_CLK_ECSPI3>;
273 clock-names = "ipg", "per";
277 ecspi4: ecspi@02014000 {
278 #address-cells = <1>;
280 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
281 reg = <0x02014000 0x4000>;
282 interrupts = <0 34 IRQ_TYPE_LEVEL_HIGH>;
283 clocks = <&clks IMX6QDL_CLK_ECSPI4>,
284 <&clks IMX6QDL_CLK_ECSPI4>;
285 clock-names = "ipg", "per";
289 uart1: serial@02020000 {
290 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
291 reg = <0x02020000 0x4000>;
292 interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>;
293 clocks = <&clks IMX6QDL_CLK_UART_IPG>,
294 <&clks IMX6QDL_CLK_UART_SERIAL>;
295 clock-names = "ipg", "per";
296 dmas = <&sdma 25 4 0>, <&sdma 26 4 0>;
297 dma-names = "rx", "tx";
301 esai: esai@02024000 {
302 compatible = "fsl,imx35-esai";
303 reg = <0x02024000 0x4000>;
304 interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH>;
305 clocks = <&clks IMX6QDL_CLK_ESAI_IPG>,
306 <&clks IMX6QDL_CLK_ESAI_MEM>,
307 <&clks IMX6QDL_CLK_ESAI_EXTAL>,
308 <&clks IMX6QDL_CLK_ESAI_IPG>,
309 <&clks IMX6QDL_CLK_SPBA>;
310 clock-names = "core", "mem", "extal", "fsys", "dma";
311 dmas = <&sdma 23 21 0>,
313 dma-names = "rx", "tx";
318 compatible = "fsl,imx6q-ssi","fsl,imx21-ssi";
319 reg = <0x02028000 0x4000>;
320 interrupts = <0 46 IRQ_TYPE_LEVEL_HIGH>;
321 clocks = <&clks IMX6QDL_CLK_SSI1_IPG>,
322 <&clks IMX6QDL_CLK_SSI1>;
323 clock-names = "ipg", "baud";
324 dmas = <&sdma 37 1 0>,
326 dma-names = "rx", "tx";
327 fsl,fifo-depth = <15>;
328 fsl,ssi-dma-events = <38 37>;
333 compatible = "fsl,imx6q-ssi","fsl,imx21-ssi";
334 reg = <0x0202c000 0x4000>;
335 interrupts = <0 47 IRQ_TYPE_LEVEL_HIGH>;
336 clocks = <&clks IMX6QDL_CLK_SSI2_IPG>,
337 <&clks IMX6QDL_CLK_SSI2>;
338 clock-names = "ipg", "baud";
339 dmas = <&sdma 41 1 0>,
341 dma-names = "rx", "tx";
342 fsl,fifo-depth = <15>;
343 fsl,ssi-dma-events = <42 41>;
348 compatible = "fsl,imx6q-ssi","fsl,imx21-ssi";
349 reg = <0x02030000 0x4000>;
350 interrupts = <0 48 IRQ_TYPE_LEVEL_HIGH>;
351 clocks = <&clks IMX6QDL_CLK_SSI3_IPG>,
352 <&clks IMX6QDL_CLK_SSI3>;
353 clock-names = "ipg", "baud";
354 dmas = <&sdma 45 1 0>,
356 dma-names = "rx", "tx";
357 fsl,fifo-depth = <15>;
358 fsl,ssi-dma-events = <46 45>;
362 asrc: asrc@02034000 {
363 compatible = "fsl,imx53-asrc";
364 reg = <0x02034000 0x4000>;
365 interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>;
366 clocks = <&clks IMX6QDL_CLK_ASRC_IPG>,
367 <&clks IMX6QDL_CLK_ASRC_MEM>, <&clks 0>,
368 <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
369 <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
370 <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
371 <&clks IMX6QDL_CLK_ASRC>, <&clks 0>, <&clks 0>,
372 <&clks IMX6QDL_CLK_SPBA>;
373 clock-names = "mem", "ipg", "asrck_0",
374 "asrck_1", "asrck_2", "asrck_3", "asrck_4",
375 "asrck_5", "asrck_6", "asrck_7", "asrck_8",
376 "asrck_9", "asrck_a", "asrck_b", "asrck_c",
377 "asrck_d", "asrck_e", "asrck_f", "dma";
378 dmas = <&sdma 17 23 1>, <&sdma 18 23 1>, <&sdma 19 23 1>,
379 <&sdma 20 23 1>, <&sdma 21 23 1>, <&sdma 22 23 1>;
380 dma-names = "rxa", "rxb", "rxc",
382 fsl,asrc-rate = <48000>;
383 fsl,asrc-width = <16>;
388 reg = <0x0203c000 0x4000>;
393 compatible = "fsl,imx6-vpu";
394 reg = <0x02040000 0x3c000>;
395 reg-names = "vpu_regs";
396 interrupts = <0 3 IRQ_TYPE_EDGE_RISING>,
397 <0 12 IRQ_TYPE_LEVEL_HIGH>;
398 interrupt-names = "vpu_jpu_irq", "vpu_ipi_irq";
399 clocks = <&clks IMX6QDL_CLK_VPU_AXI>,
400 <&clks IMX6QDL_CLK_MMDC_CH0_AXI>,
401 <&clks IMX6QDL_CLK_OCRAM>;
402 clock-names = "vpu_clk", "mmdc_ch0_axi", "ocram";
403 iramsize = <0x21000>;
406 power-domains = <&gpc 1>;
409 aipstz@0207c000 { /* AIPSTZ1 */
410 reg = <0x0207c000 0x4000>;
415 compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
416 reg = <0x02080000 0x4000>;
417 interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>;
418 clocks = <&clks IMX6QDL_CLK_IPG>,
419 <&clks IMX6QDL_CLK_PWM1>;
420 clock-names = "ipg", "per";
425 compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
426 reg = <0x02084000 0x4000>;
427 interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>;
428 clocks = <&clks IMX6QDL_CLK_IPG>,
429 <&clks IMX6QDL_CLK_PWM2>;
430 clock-names = "ipg", "per";
435 compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
436 reg = <0x02088000 0x4000>;
437 interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>;
438 clocks = <&clks IMX6QDL_CLK_IPG>,
439 <&clks IMX6QDL_CLK_PWM3>;
440 clock-names = "ipg", "per";
445 compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
446 reg = <0x0208c000 0x4000>;
447 interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
448 clocks = <&clks IMX6QDL_CLK_IPG>,
449 <&clks IMX6QDL_CLK_PWM4>;
450 clock-names = "ipg", "per";
453 flexcan1: can@02090000 {
454 compatible = "fsl,imx6q-flexcan";
455 reg = <0x02090000 0x4000>;
456 interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>;
457 clocks = <&clks IMX6QDL_CLK_CAN1_IPG>,
458 <&clks IMX6QDL_CLK_CAN1_SERIAL>;
459 clock-names = "ipg", "per";
460 stop-mode = <&gpr 0x34 28 0x10 17>;
464 flexcan2: can@02094000 {
465 compatible = "fsl,imx6q-flexcan";
466 reg = <0x02094000 0x4000>;
467 interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>;
468 clocks = <&clks IMX6QDL_CLK_CAN2_IPG>,
469 <&clks IMX6QDL_CLK_CAN2_SERIAL>;
470 clock-names = "ipg", "per";
471 stop-mode = <&gpr 0x34 29 0x10 18>;
476 compatible = "fsl,imx6q-gpt", "fsl,imx31-gpt";
477 reg = <0x02098000 0x4000>;
478 interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
479 clocks = <&clks IMX6QDL_CLK_GPT_IPG>,
480 <&clks IMX6QDL_CLK_GPT_IPG_PER>;
481 clock-names = "ipg", "per";
484 gpio1: gpio@0209c000 {
485 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
486 reg = <0x0209c000 0x4000>;
487 interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>,
488 <0 67 IRQ_TYPE_LEVEL_HIGH>;
491 interrupt-controller;
492 #interrupt-cells = <2>;
495 gpio2: gpio@020a0000 {
496 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
497 reg = <0x020a0000 0x4000>;
498 interrupts = <0 68 IRQ_TYPE_LEVEL_HIGH>,
499 <0 69 IRQ_TYPE_LEVEL_HIGH>;
502 interrupt-controller;
503 #interrupt-cells = <2>;
506 gpio3: gpio@020a4000 {
507 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
508 reg = <0x020a4000 0x4000>;
509 interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>,
510 <0 71 IRQ_TYPE_LEVEL_HIGH>;
513 interrupt-controller;
514 #interrupt-cells = <2>;
517 gpio4: gpio@020a8000 {
518 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
519 reg = <0x020a8000 0x4000>;
520 interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>,
521 <0 73 IRQ_TYPE_LEVEL_HIGH>;
524 interrupt-controller;
525 #interrupt-cells = <2>;
528 gpio5: gpio@020ac000 {
529 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
530 reg = <0x020ac000 0x4000>;
531 interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>,
532 <0 75 IRQ_TYPE_LEVEL_HIGH>;
535 interrupt-controller;
536 #interrupt-cells = <2>;
539 gpio6: gpio@020b0000 {
540 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
541 reg = <0x020b0000 0x4000>;
542 interrupts = <0 76 IRQ_TYPE_LEVEL_HIGH>,
543 <0 77 IRQ_TYPE_LEVEL_HIGH>;
546 interrupt-controller;
547 #interrupt-cells = <2>;
550 gpio7: gpio@020b4000 {
551 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
552 reg = <0x020b4000 0x4000>;
553 interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>,
554 <0 79 IRQ_TYPE_LEVEL_HIGH>;
557 interrupt-controller;
558 #interrupt-cells = <2>;
562 reg = <0x020b8000 0x4000>;
563 interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
566 wdog1: wdog@020bc000 {
567 compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
568 reg = <0x020bc000 0x4000>;
569 interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
570 clocks = <&clks IMX6QDL_CLK_DUMMY>;
573 wdog2: wdog@020c0000 {
574 compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
575 reg = <0x020c0000 0x4000>;
576 interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
577 clocks = <&clks IMX6QDL_CLK_DUMMY>;
582 compatible = "fsl,imx6q-ccm";
583 reg = <0x020c4000 0x4000>;
584 interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>,
585 <0 88 IRQ_TYPE_LEVEL_HIGH>;
589 anatop: anatop@020c8000 {
590 compatible = "fsl,imx6q-anatop", "syscon", "simple-bus";
591 reg = <0x020c8000 0x1000>;
592 interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
593 <0 54 IRQ_TYPE_LEVEL_HIGH>,
594 <0 127 IRQ_TYPE_LEVEL_HIGH>;
597 compatible = "fsl,anatop-regulator";
598 regulator-name = "vdd1p1";
599 regulator-min-microvolt = <800000>;
600 regulator-max-microvolt = <1375000>;
602 anatop-reg-offset = <0x110>;
603 anatop-vol-bit-shift = <8>;
604 anatop-vol-bit-width = <5>;
605 anatop-min-bit-val = <4>;
606 anatop-min-voltage = <800000>;
607 anatop-max-voltage = <1375000>;
611 compatible = "fsl,anatop-regulator";
612 regulator-name = "vdd3p0";
613 regulator-min-microvolt = <2800000>;
614 regulator-max-microvolt = <3150000>;
616 anatop-reg-offset = <0x120>;
617 anatop-vol-bit-shift = <8>;
618 anatop-vol-bit-width = <5>;
619 anatop-min-bit-val = <0>;
620 anatop-min-voltage = <2625000>;
621 anatop-max-voltage = <3400000>;
625 compatible = "fsl,anatop-regulator";
626 regulator-name = "vdd2p5";
627 regulator-min-microvolt = <2000000>;
628 regulator-max-microvolt = <2750000>;
630 anatop-reg-offset = <0x130>;
631 anatop-vol-bit-shift = <8>;
632 anatop-vol-bit-width = <5>;
633 anatop-min-bit-val = <0>;
634 anatop-min-voltage = <2000000>;
635 anatop-max-voltage = <2750000>;
638 reg_arm: regulator-vddcore@140 {
639 compatible = "fsl,anatop-regulator";
640 regulator-name = "vddarm";
641 regulator-min-microvolt = <725000>;
642 regulator-max-microvolt = <1450000>;
644 anatop-reg-offset = <0x140>;
645 anatop-vol-bit-shift = <0>;
646 anatop-vol-bit-width = <5>;
647 anatop-delay-reg-offset = <0x170>;
648 anatop-delay-bit-shift = <24>;
649 anatop-delay-bit-width = <2>;
650 anatop-min-bit-val = <1>;
651 anatop-min-voltage = <725000>;
652 anatop-max-voltage = <1450000>;
653 regulator-allow-bypass;
656 reg_pu: regulator-vddpu@140 {
657 compatible = "fsl,anatop-regulator";
658 regulator-name = "vddpu";
659 regulator-min-microvolt = <725000>;
660 regulator-max-microvolt = <1450000>;
661 regulator-enable-ramp-delay = <150>;
663 anatop-reg-offset = <0x140>;
664 anatop-vol-bit-shift = <9>;
665 anatop-vol-bit-width = <5>;
666 anatop-delay-reg-offset = <0x170>;
667 anatop-delay-bit-shift = <26>;
668 anatop-delay-bit-width = <2>;
669 anatop-min-bit-val = <1>;
670 anatop-min-voltage = <725000>;
671 anatop-max-voltage = <1450000>;
672 regulator-allow-bypass;
675 reg_soc: regulator-vddsoc@140 {
676 compatible = "fsl,anatop-regulator";
677 regulator-name = "vddsoc";
678 regulator-min-microvolt = <725000>;
679 regulator-max-microvolt = <1450000>;
681 anatop-reg-offset = <0x140>;
682 anatop-vol-bit-shift = <18>;
683 anatop-vol-bit-width = <5>;
684 anatop-delay-reg-offset = <0x170>;
685 anatop-delay-bit-shift = <28>;
686 anatop-delay-bit-width = <2>;
687 anatop-min-bit-val = <1>;
688 anatop-min-voltage = <725000>;
689 anatop-max-voltage = <1450000>;
690 regulator-allow-bypass;
695 compatible = "fsl,imx6q-tempmon";
696 interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
697 fsl,tempmon = <&anatop>;
698 fsl,tempmon-data = <&ocotp>;
699 clocks = <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
702 usbphy1: usbphy@020c9000 {
703 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
704 reg = <0x020c9000 0x1000>;
705 interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
706 clocks = <&clks IMX6QDL_CLK_USBPHY1>;
707 fsl,anatop = <&anatop>;
710 usbphy2: usbphy@020ca000 {
711 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
712 reg = <0x020ca000 0x1000>;
713 interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>;
714 clocks = <&clks IMX6QDL_CLK_USBPHY2>;
715 fsl,anatop = <&anatop>;
718 usbphy_nop1: usbphy_nop1 {
719 compatible = "usb-nop-xceiv";
720 clocks = <&clks IMX6QDL_CLK_USBPHY1>;
721 clock-names = "main_clk";
724 usbphy_nop2: usbphy_nop2 {
725 compatible = "usb-nop-xceiv";
726 clocks = <&clks IMX6QDL_CLK_USBPHY1>;
727 clock-names = "main_clk";
730 caam_snvs: caam-snvs@020cc000 {
731 compatible = "fsl,imx6q-caam-snvs";
732 reg = <0x020cc000 0x4000>;
736 compatible = "fsl,sec-v4.0-mon", "simple-bus";
737 #address-cells = <1>;
739 ranges = <0 0x020cc000 0x4000>;
742 compatible = "fsl,sec-v4.0-mon-rtc-lp";
744 interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>,
745 <0 20 IRQ_TYPE_LEVEL_HIGH>;
749 epit1: epit@020d0000 { /* EPIT1 */
750 reg = <0x020d0000 0x4000>;
751 interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
754 epit2: epit@020d4000 { /* EPIT2 */
755 reg = <0x020d4000 0x4000>;
756 interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
760 compatible = "fsl,imx6q-src", "fsl,imx51-src";
761 reg = <0x020d8000 0x4000>;
762 interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
763 <0 96 IRQ_TYPE_LEVEL_HIGH>;
768 compatible = "fsl,imx6q-gpc";
769 reg = <0x020dc000 0x4000>;
770 interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>,
771 <0 90 IRQ_TYPE_LEVEL_HIGH>;
772 pu-supply = <®_pu>;
773 clocks = <&clks IMX6QDL_CLK_GPU3D_CORE>,
774 <&clks IMX6QDL_CLK_GPU3D_SHADER>,
775 <&clks IMX6QDL_CLK_GPU2D_CORE>,
776 <&clks IMX6QDL_CLK_GPU2D_AXI>,
777 <&clks IMX6QDL_CLK_OPENVG_AXI>,
778 <&clks IMX6QDL_CLK_VPU_AXI>;
779 #power-domain-cells = <1>;
782 gpr: iomuxc-gpr@020e0000 {
783 compatible = "fsl,imx6q-iomuxc-gpr", "syscon";
784 reg = <0x020e0000 0x38>;
787 iomuxc: iomuxc@020e0000 {
788 compatible = "fsl,imx6dl-iomuxc", "fsl,imx6q-iomuxc";
789 reg = <0x020e0000 0x4000>;
793 #address-cells = <1>;
809 dcic1: dcic@020e4000 {
810 compatible = "fsl,imx6q-dcic";
811 reg = <0x020e4000 0x4000>;
812 interrupts = <0 124 IRQ_TYPE_LEVEL_HIGH>;
813 clocks = <&clks IMX6QDL_CLK_DCIC1>, <&clks IMX6QDL_CLK_DCIC1>;
814 clock-names = "dcic", "disp-axi";
819 dcic2: dcic@020e8000 {
820 compatible = "fsl,imx6q-dcic";
821 reg = <0x020e8000 0x4000>;
822 interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>;
823 clocks = <&clks IMX6QDL_CLK_DCIC2>, <&clks IMX6QDL_CLK_DCIC2>;
824 clock-names = "dcic", "disp-axi";
829 sdma: sdma@020ec000 {
830 compatible = "fsl,imx6q-sdma", "fsl,imx35-sdma";
831 reg = <0x020ec000 0x4000>;
832 interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
833 clocks = <&clks IMX6QDL_CLK_SDMA>,
834 <&clks IMX6QDL_CLK_SDMA>;
835 clock-names = "ipg", "ahb";
837 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
841 aips-bus@02100000 { /* AIPS2 */
842 compatible = "fsl,aips-bus", "simple-bus";
843 #address-cells = <1>;
845 reg = <0x02100000 0x100000>;
848 crypto: caam@2100000 {
849 compatible = "fsl,sec-v4.0";
850 #address-cells = <1>;
852 reg = <0x2100000 0x40000>;
853 ranges = <0 0x2100000 0x40000>;
854 interrupt-parent = <&intc>; /* interrupts = <0 92 0x4>; */
855 clocks = <&clks IMX6QDL_CAAM_MEM>, <&clks IMX6QDL_CAAM_ACLK>, <&clks IMX6QDL_CAAM_IPG> ,<&clks IMX6QDL_CLK_EIM_SLOW>;
856 clock-names = "caam_mem", "caam_aclk", "caam_ipg", "caam_emi_slow";
859 compatible = "fsl,sec-v4.0-job-ring";
860 reg = <0x1000 0x1000>;
861 interrupt-parent = <&intc>;
862 interrupts = <0 105 0x4>;
866 compatible = "fsl,sec-v4.0-job-ring";
867 reg = <0x2000 0x1000>;
868 interrupt-parent = <&intc>;
869 interrupts = <0 106 0x4>;
873 aipstz@0217c000 { /* AIPSTZ2 */
874 reg = <0x0217c000 0x4000>;
877 usbotg: usb@02184000 {
878 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
879 reg = <0x02184000 0x200>;
880 interrupts = <0 43 IRQ_TYPE_LEVEL_HIGH>;
881 clocks = <&clks IMX6QDL_CLK_USBOH3>;
882 fsl,usbphy = <&usbphy1>;
883 fsl,usbmisc = <&usbmisc 0>;
884 fsl,anatop = <&anatop>;
888 usbh1: usb@02184200 {
889 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
890 reg = <0x02184200 0x200>;
891 interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>;
892 clocks = <&clks IMX6QDL_CLK_USBOH3>;
893 fsl,usbphy = <&usbphy2>;
894 fsl,usbmisc = <&usbmisc 1>;
898 usbh2: usb@02184400 {
899 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
900 reg = <0x02184400 0x200>;
901 interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>;
902 clocks = <&clks IMX6QDL_CLK_USBOH3>;
903 fsl,usbmisc = <&usbmisc 2>;
905 fsl,usbphy = <&usbphy_nop1>;
906 fsl,anatop = <&anatop>;
910 usbh3: usb@02184600 {
911 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
912 reg = <0x02184600 0x200>;
913 interrupts = <0 42 IRQ_TYPE_LEVEL_HIGH>;
914 clocks = <&clks IMX6QDL_CLK_USBOH3>;
915 fsl,usbmisc = <&usbmisc 3>;
917 fsl,usbphy = <&usbphy_nop2>;
918 fsl,anatop = <&anatop>;
922 usbmisc: usbmisc@02184800 {
924 compatible = "fsl,imx6q-usbmisc";
925 reg = <0x02184800 0x200>;
926 clocks = <&clks IMX6QDL_CLK_USBOH3>;
929 fec: ethernet@02188000 {
930 compatible = "fsl,imx6q-fec";
931 reg = <0x02188000 0x4000>;
932 interrupts-extended =
933 <&intc 0 118 IRQ_TYPE_LEVEL_HIGH>,
934 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
935 clocks = <&clks IMX6QDL_CLK_ENET>,
936 <&clks IMX6QDL_CLK_ENET>,
937 <&clks IMX6QDL_CLK_ENET_REF>;
938 clock-names = "ipg", "ahb", "ptp";
943 compatible = "fsl,imx6q-mlb150";
944 reg = <0x0218c000 0x4000>;
945 interrupts = <0 53 IRQ_TYPE_LEVEL_HIGH>,
946 <0 117 IRQ_TYPE_LEVEL_HIGH>,
947 <0 126 IRQ_TYPE_LEVEL_HIGH>;
948 clocks = <&clks IMX6QDL_CLK_MLB>,
949 <&clks IMX6QDL_CLK_PLL8_MLB>;
950 clock-names = "mlb", "pll8_mlb";
955 usdhc1: usdhc@02190000 {
956 compatible = "fsl,imx6q-usdhc";
957 reg = <0x02190000 0x4000>;
958 interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
959 clocks = <&clks IMX6QDL_CLK_USDHC1>,
960 <&clks IMX6QDL_CLK_USDHC1>,
961 <&clks IMX6QDL_CLK_USDHC1>;
962 clock-names = "ipg", "ahb", "per";
967 usdhc2: usdhc@02194000 {
968 compatible = "fsl,imx6q-usdhc";
969 reg = <0x02194000 0x4000>;
970 interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
971 clocks = <&clks IMX6QDL_CLK_USDHC2>,
972 <&clks IMX6QDL_CLK_USDHC2>,
973 <&clks IMX6QDL_CLK_USDHC2>;
974 clock-names = "ipg", "ahb", "per";
979 usdhc3: usdhc@02198000 {
980 compatible = "fsl,imx6q-usdhc";
981 reg = <0x02198000 0x4000>;
982 interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
983 clocks = <&clks IMX6QDL_CLK_USDHC3>,
984 <&clks IMX6QDL_CLK_USDHC3>,
985 <&clks IMX6QDL_CLK_USDHC3>;
986 clock-names = "ipg", "ahb", "per";
991 usdhc4: usdhc@0219c000 {
992 compatible = "fsl,imx6q-usdhc";
993 reg = <0x0219c000 0x4000>;
994 interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
995 clocks = <&clks IMX6QDL_CLK_USDHC4>,
996 <&clks IMX6QDL_CLK_USDHC4>,
997 <&clks IMX6QDL_CLK_USDHC4>;
998 clock-names = "ipg", "ahb", "per";
1000 status = "disabled";
1003 i2c1: i2c@021a0000 {
1004 #address-cells = <1>;
1006 compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
1007 reg = <0x021a0000 0x4000>;
1008 interrupts = <0 36 IRQ_TYPE_LEVEL_HIGH>;
1009 clocks = <&clks IMX6QDL_CLK_I2C1>;
1010 status = "disabled";
1013 i2c2: i2c@021a4000 {
1014 #address-cells = <1>;
1016 compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
1017 reg = <0x021a4000 0x4000>;
1018 interrupts = <0 37 IRQ_TYPE_LEVEL_HIGH>;
1019 clocks = <&clks IMX6QDL_CLK_I2C2>;
1020 status = "disabled";
1023 i2c3: i2c@021a8000 {
1024 #address-cells = <1>;
1026 compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
1027 reg = <0x021a8000 0x4000>;
1028 interrupts = <0 38 IRQ_TYPE_LEVEL_HIGH>;
1029 clocks = <&clks IMX6QDL_CLK_I2C3>;
1030 status = "disabled";
1034 reg = <0x021ac000 0x4000>;
1037 mmdc0-1@021b0000 { /* MMDC0-1 */
1038 compatible = "fsl,imx6q-mmdc-combine";
1039 reg = <0x021b0000 0x8000>;
1042 mmdc0: mmdc@021b0000 { /* MMDC0 */
1043 compatible = "fsl,imx6q-mmdc";
1044 reg = <0x021b0000 0x4000>;
1047 mmdc1: mmdc@021b4000 { /* MMDC1 */
1048 reg = <0x021b4000 0x4000>;
1051 weim: weim@021b8000 {
1052 compatible = "fsl,imx6q-weim";
1053 reg = <0x021b8000 0x4000>;
1054 interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
1055 clocks = <&clks IMX6QDL_CLK_EIM_SLOW>;
1058 ocotp: ocotp-ctrl@021bc000 {
1059 compatible = "syscon";
1060 reg = <0x021bc000 0x4000>;
1061 clocks = <&clks IMX6QDL_CLK_IIM>;
1064 ocotp-fuse@021bc000 {
1065 compatible = "fsl,imx6q-ocotp";
1066 reg = <0x021bc000 0x4000>;
1067 clocks = <&clks IMX6QDL_CLK_IIM>;
1070 tzasc@021d0000 { /* TZASC1 */
1071 reg = <0x021d0000 0x4000>;
1072 interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
1075 tzasc@021d4000 { /* TZASC2 */
1076 reg = <0x021d4000 0x4000>;
1077 interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
1080 audmux: audmux@021d8000 {
1081 compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux";
1082 reg = <0x021d8000 0x4000>;
1083 status = "disabled";
1086 mipi_csi: mipi_csi@021dc000 { /* MIPI-CSI */
1087 compatible = "fsl,imx6q-mipi-csi2";
1088 reg = <0x021dc000 0x4000>;
1089 interrupts = <0 100 0x04>, <0 101 0x04>;
1090 clocks = <&clks 138>, <&clks 53>, <&clks 204>;
1091 /* Note: clks 138 is hsi_tx, however, the dphy_c
1092 * hsi_tx and pll_refclk use the same clk gate.
1093 * In current clk driver, open/close clk gate do
1094 * use hsi_tx for a temporary debug purpose.
1096 clock-names = "dphy_clk", "pixel_clk", "cfg_clk";
1097 status = "disabled";
1100 mipi@021e0000 { /* MIPI-DSI */
1101 reg = <0x021e0000 0x4000>;
1105 compatible = "fsl,imx6q-vdoa";
1106 reg = <0x021e4000 0x4000>;
1107 interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
1108 clocks = <&clks IMX6QDL_CLK_VDOA>;
1112 uart2: serial@021e8000 {
1113 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
1114 reg = <0x021e8000 0x4000>;
1115 interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH>;
1116 clocks = <&clks IMX6QDL_CLK_UART_IPG>,
1117 <&clks IMX6QDL_CLK_UART_SERIAL>;
1118 clock-names = "ipg", "per";
1119 dmas = <&sdma 27 4 0>, <&sdma 28 4 0>;
1120 dma-names = "rx", "tx";
1121 status = "disabled";
1124 uart3: serial@021ec000 {
1125 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
1126 reg = <0x021ec000 0x4000>;
1127 interrupts = <0 28 IRQ_TYPE_LEVEL_HIGH>;
1128 clocks = <&clks IMX6QDL_CLK_UART_IPG>,
1129 <&clks IMX6QDL_CLK_UART_SERIAL>;
1130 clock-names = "ipg", "per";
1131 dmas = <&sdma 29 4 0>, <&sdma 30 4 0>;
1132 dma-names = "rx", "tx";
1133 status = "disabled";
1136 uart4: serial@021f0000 {
1137 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
1138 reg = <0x021f0000 0x4000>;
1139 interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>;
1140 clocks = <&clks IMX6QDL_CLK_UART_IPG>,
1141 <&clks IMX6QDL_CLK_UART_SERIAL>;
1142 clock-names = "ipg", "per";
1143 dmas = <&sdma 31 4 0>, <&sdma 32 4 0>;
1144 dma-names = "rx", "tx";
1145 status = "disabled";
1148 uart5: serial@021f4000 {
1149 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
1150 reg = <0x021f4000 0x4000>;
1151 interrupts = <0 30 IRQ_TYPE_LEVEL_HIGH>;
1152 clocks = <&clks IMX6QDL_CLK_UART_IPG>,
1153 <&clks IMX6QDL_CLK_UART_SERIAL>;
1154 clock-names = "ipg", "per";
1155 dmas = <&sdma 33 4 0>, <&sdma 34 4 0>;
1156 dma-names = "rx", "tx";
1157 status = "disabled";
1161 ipu1: ipu@02400000 {
1162 compatible = "fsl,imx6q-ipu";
1163 reg = <0x02400000 0x400000>;
1164 interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>,
1165 <0 5 IRQ_TYPE_LEVEL_HIGH>;
1166 clocks = <&clks IMX6QDL_CLK_IPU1>,
1167 <&clks IMX6QDL_CLK_IPU1_DI0>, <&clks IMX6QDL_CLK_IPU1_DI1>,
1168 <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>,
1169 <&clks IMX6QDL_CLK_LDB_DI0>, <&clks IMX6QDL_CLK_LDB_DI1>;
1170 clock-names = "bus",
1172 "di0_sel", "di1_sel",
1173 "ldb_di0", "ldb_di1";