2 * Copyright 2013 Freescale Semiconductor, Inc.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
10 #include "vf610-pinfunc.h"
11 #include <dt-bindings/clock/vf610-clock.h>
12 #include <dt-bindings/interrupt-controller/irq.h>
13 #include <dt-bindings/gpio/gpio.h>
37 compatible = "fixed-clock";
39 clock-frequency = <24000000>;
43 compatible = "fixed-clock";
45 clock-frequency = <32768>;
48 reboot: syscon-reboot {
49 compatible = "syscon-reboot";
58 compatible = "simple-bus";
59 interrupt-parent = <&mscm_ir>;
62 aips0: aips-bus@40000000 {
63 compatible = "fsl,aips-bus", "simple-bus";
68 mscm_cpucfg: cpucfg@40001000 {
69 compatible = "fsl,vf610-mscm-cpucfg", "syscon";
70 reg = <0x40001000 0x800>;
73 mscm_ir: interrupt-controller@40001800 {
74 compatible = "fsl,vf610-mscm-ir";
75 reg = <0x40001800 0x400>;
76 fsl,cpucfg = <&mscm_cpucfg>;
78 #interrupt-cells = <2>;
81 edma0: dma-controller@40018000 {
83 compatible = "fsl,vf610-edma";
84 reg = <0x40018000 0x2000>,
88 interrupts = <8 IRQ_TYPE_LEVEL_HIGH>,
89 <9 IRQ_TYPE_LEVEL_HIGH>;
90 interrupt-names = "edma-tx", "edma-err";
91 clock-names = "dmamux0", "dmamux1";
92 clocks = <&clks VF610_CLK_DMAMUX0>,
93 <&clks VF610_CLK_DMAMUX1>;
97 can0: flexcan@40020000 {
98 compatible = "fsl,vf610-flexcan";
99 reg = <0x40020000 0x4000>;
100 interrupts = <58 IRQ_TYPE_LEVEL_HIGH>;
101 clocks = <&clks VF610_CLK_FLEXCAN0>,
102 <&clks VF610_CLK_FLEXCAN0>;
103 clock-names = "ipg", "per";
107 uart0: serial@40027000 {
108 compatible = "fsl,vf610-lpuart";
109 reg = <0x40027000 0x1000>;
110 interrupts = <61 IRQ_TYPE_LEVEL_HIGH>;
111 clocks = <&clks VF610_CLK_UART0>;
115 dma-names = "rx","tx";
119 uart1: serial@40028000 {
120 compatible = "fsl,vf610-lpuart";
121 reg = <0x40028000 0x1000>;
122 interrupts = <62 IRQ_TYPE_LEVEL_HIGH>;
123 clocks = <&clks VF610_CLK_UART1>;
127 dma-names = "rx","tx";
131 uart2: serial@40029000 {
132 compatible = "fsl,vf610-lpuart";
133 reg = <0x40029000 0x1000>;
134 interrupts = <63 IRQ_TYPE_LEVEL_HIGH>;
135 clocks = <&clks VF610_CLK_UART2>;
139 dma-names = "rx","tx";
143 uart3: serial@4002a000 {
144 compatible = "fsl,vf610-lpuart";
145 reg = <0x4002a000 0x1000>;
146 interrupts = <64 IRQ_TYPE_LEVEL_HIGH>;
147 clocks = <&clks VF610_CLK_UART3>;
151 dma-names = "rx","tx";
155 dspi0: dspi0@4002c000 {
156 #address-cells = <1>;
158 compatible = "fsl,vf610-dspi";
159 reg = <0x4002c000 0x1000>;
160 interrupts = <67 IRQ_TYPE_LEVEL_HIGH>;
161 clocks = <&clks VF610_CLK_DSPI0>;
162 clock-names = "dspi";
163 spi-num-chipselects = <6>;
167 dspi1: dspi1@4002d000 {
168 #address-cells = <1>;
170 compatible = "fsl,vf610-dspi";
171 reg = <0x4002d000 0x1000>;
172 interrupts = <68 IRQ_TYPE_LEVEL_HIGH>;
173 clocks = <&clks VF610_CLK_DSPI1>;
174 clock-names = "dspi";
175 spi-num-chipselects = <4>;
180 compatible = "fsl,vf610-sai";
181 reg = <0x4002f000 0x1000>;
182 interrupts = <84 IRQ_TYPE_LEVEL_HIGH>;
183 clocks = <&clks VF610_CLK_SAI0>,
184 <&clks VF610_CLK_SAI0_DIV>,
185 <&clks 0>, <&clks 0>;
186 clock-names = "bus", "mclk1", "mclk2", "mclk3";
187 dma-names = "tx", "rx";
188 dmas = <&edma0 0 17>,
194 compatible = "fsl,vf610-sai";
195 reg = <0x40030000 0x1000>;
196 interrupts = <85 IRQ_TYPE_LEVEL_HIGH>;
197 clocks = <&clks VF610_CLK_SAI1>,
198 <&clks VF610_CLK_SAI1_DIV>,
199 <&clks 0>, <&clks 0>;
200 clock-names = "bus", "mclk1", "mclk2", "mclk3";
201 dma-names = "tx", "rx";
202 dmas = <&edma0 0 19>,
208 compatible = "fsl,vf610-sai";
209 reg = <0x40031000 0x1000>;
210 interrupts = <86 IRQ_TYPE_LEVEL_HIGH>;
211 clocks = <&clks VF610_CLK_SAI2>,
212 <&clks VF610_CLK_SAI2_DIV>,
213 <&clks 0>, <&clks 0>;
214 clock-names = "bus", "mclk1", "mclk2", "mclk3";
215 dma-names = "tx", "rx";
216 dmas = <&edma0 0 21>,
222 compatible = "fsl,vf610-sai";
223 reg = <0x40032000 0x1000>;
224 interrupts = <87 IRQ_TYPE_LEVEL_HIGH>;
225 clocks = <&clks VF610_CLK_SAI3>,
226 <&clks VF610_CLK_SAI3_DIV>,
227 <&clks 0>, <&clks 0>;
228 clock-names = "bus", "mclk1", "mclk2", "mclk3";
229 dma-names = "tx", "rx";
236 compatible = "fsl,vf610-pit";
237 reg = <0x40037000 0x1000>;
238 interrupts = <39 IRQ_TYPE_LEVEL_HIGH>;
239 clocks = <&clks VF610_CLK_PIT>;
244 compatible = "fsl,vf610-ftm-pwm";
246 reg = <0x40038000 0x1000>;
247 clock-names = "ftm_sys", "ftm_ext",
248 "ftm_fix", "ftm_cnt_clk_en";
249 clocks = <&clks VF610_CLK_FTM0>,
250 <&clks VF610_CLK_FTM0_EXT_SEL>,
251 <&clks VF610_CLK_FTM0_FIX_SEL>,
252 <&clks VF610_CLK_FTM0_EXT_FIX_EN>;
257 compatible = "fsl,vf610-ftm-pwm";
259 reg = <0x40039000 0x1000>;
260 clock-names = "ftm_sys", "ftm_ext",
261 "ftm_fix", "ftm_cnt_clk_en";
262 clocks = <&clks VF610_CLK_FTM1>,
263 <&clks VF610_CLK_FTM1_EXT_SEL>,
264 <&clks VF610_CLK_FTM1_FIX_SEL>,
265 <&clks VF610_CLK_FTM1_EXT_FIX_EN>;
270 compatible = "fsl,vf610-adc";
271 reg = <0x4003b000 0x1000>;
272 interrupts = <53 IRQ_TYPE_LEVEL_HIGH>;
273 clocks = <&clks VF610_CLK_ADC0>;
275 #io-channel-cells = <1>;
277 fsl,adck-max-frequency = <30000000>, <40000000>,
281 wdoga5: wdog@4003e000 {
282 compatible = "fsl,vf610-wdt", "fsl,imx21-wdt";
283 reg = <0x4003e000 0x1000>;
284 interrupts = <20 IRQ_TYPE_LEVEL_HIGH>;
285 clocks = <&clks VF610_CLK_WDT>;
286 clock-names = "wdog";
290 qspi0: quadspi@40044000 {
291 #address-cells = <1>;
293 compatible = "fsl,vf610-qspi";
294 reg = <0x40044000 0x1000>, <0x20000000 0x10000000>;
295 reg-names = "QuadSPI", "QuadSPI-memory";
296 interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
297 clocks = <&clks VF610_CLK_QSPI0_EN>,
298 <&clks VF610_CLK_QSPI0>;
299 clock-names = "qspi_en", "qspi";
303 iomuxc: iomuxc@40048000 {
304 compatible = "fsl,vf610-iomuxc";
305 reg = <0x40048000 0x1000>;
308 gpio0: gpio@40049000 {
309 compatible = "fsl,vf610-gpio";
310 reg = <0x40049000 0x1000 0x400ff000 0x40>;
313 interrupts = <107 IRQ_TYPE_LEVEL_HIGH>;
314 interrupt-controller;
315 #interrupt-cells = <2>;
316 gpio-ranges = <&iomuxc 0 0 32>;
319 gpio1: gpio@4004a000 {
320 compatible = "fsl,vf610-gpio";
321 reg = <0x4004a000 0x1000 0x400ff040 0x40>;
324 interrupts = <108 IRQ_TYPE_LEVEL_HIGH>;
325 interrupt-controller;
326 #interrupt-cells = <2>;
327 gpio-ranges = <&iomuxc 0 32 32>;
330 gpio2: gpio@4004b000 {
331 compatible = "fsl,vf610-gpio";
332 reg = <0x4004b000 0x1000 0x400ff080 0x40>;
335 interrupts = <109 IRQ_TYPE_LEVEL_HIGH>;
336 interrupt-controller;
337 #interrupt-cells = <2>;
338 gpio-ranges = <&iomuxc 0 64 32>;
341 gpio3: gpio@4004c000 {
342 compatible = "fsl,vf610-gpio";
343 reg = <0x4004c000 0x1000 0x400ff0c0 0x40>;
346 interrupts = <110 IRQ_TYPE_LEVEL_HIGH>;
347 interrupt-controller;
348 #interrupt-cells = <2>;
349 gpio-ranges = <&iomuxc 0 96 32>;
352 gpio4: gpio@4004d000 {
353 compatible = "fsl,vf610-gpio";
354 reg = <0x4004d000 0x1000 0x400ff100 0x40>;
357 interrupts = <111 IRQ_TYPE_LEVEL_HIGH>;
358 interrupt-controller;
359 #interrupt-cells = <2>;
360 gpio-ranges = <&iomuxc 0 128 7>;
363 anatop: anatop@40050000 {
364 compatible = "fsl,vf610-anatop", "syscon";
365 reg = <0x40050000 0x400>;
368 usbphy0: usbphy@40050800 {
369 compatible = "fsl,vf610-usbphy";
370 reg = <0x40050800 0x400>;
371 interrupts = <50 IRQ_TYPE_LEVEL_HIGH>;
372 clocks = <&clks VF610_CLK_USBPHY0>;
373 fsl,anatop = <&anatop>;
377 usbphy1: usbphy@40050c00 {
378 compatible = "fsl,vf610-usbphy";
379 reg = <0x40050c00 0x400>;
380 interrupts = <51 IRQ_TYPE_LEVEL_HIGH>;
381 clocks = <&clks VF610_CLK_USBPHY1>;
382 fsl,anatop = <&anatop>;
387 #address-cells = <1>;
389 compatible = "fsl,vf610-i2c";
390 reg = <0x40066000 0x1000>;
391 interrupts = <71 IRQ_TYPE_LEVEL_HIGH>;
392 clocks = <&clks VF610_CLK_I2C0>;
394 dmas = <&edma0 0 50>,
396 dma-names = "rx","tx";
401 #address-cells = <1>;
403 compatible = "fsl,vf610-i2c";
404 reg = <0x40067000 0x1000>;
405 interrupts = <72 IRQ_TYPE_LEVEL_HIGH>;
406 clocks = <&clks VF610_CLK_I2C1>;
408 dmas = <&edma0 0 52>,
410 dma-names = "rx","tx";
415 compatible = "fsl,vf610-ccm";
416 reg = <0x4006b000 0x1000>;
417 clocks = <&sxosc>, <&fxosc>;
418 clock-names = "sxosc", "fxosc";
422 usbdev0: usb@40034000 {
423 compatible = "fsl,vf610-usb", "fsl,imx27-usb";
424 reg = <0x40034000 0x800>;
425 interrupts = <75 IRQ_TYPE_LEVEL_HIGH>;
426 clocks = <&clks VF610_CLK_USBC0>;
427 fsl,usbphy = <&usbphy0>;
428 fsl,usbmisc = <&usbmisc0 0>;
429 dr_mode = "peripheral";
433 usbmisc0: usb@40034800 {
435 compatible = "fsl,vf610-usbmisc";
436 reg = <0x40034800 0x200>;
437 clocks = <&clks VF610_CLK_USBC0>;
442 compatible = "fsl,vf610-src", "syscon";
443 reg = <0x4006e000 0x1000>;
444 interrupts = <96 IRQ_TYPE_LEVEL_HIGH>;
448 aips1: aips-bus@40080000 {
449 compatible = "fsl,aips-bus", "simple-bus";
450 #address-cells = <1>;
454 edma1: dma-controller@40098000 {
456 compatible = "fsl,vf610-edma";
457 reg = <0x40098000 0x2000>,
461 interrupts = <10 IRQ_TYPE_LEVEL_HIGH>,
462 <11 IRQ_TYPE_LEVEL_HIGH>;
463 interrupt-names = "edma-tx", "edma-err";
464 clock-names = "dmamux0", "dmamux1";
465 clocks = <&clks VF610_CLK_DMAMUX2>,
466 <&clks VF610_CLK_DMAMUX3>;
470 snvs0: snvs@400a7000 {
471 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
472 reg = <0x400a7000 0x2000>;
474 snvsrtc: snvs-rtc-lp {
475 compatible = "fsl,sec-v4.0-mon-rtc-lp";
478 interrupts = <100 IRQ_TYPE_LEVEL_HIGH>;
479 clocks = <&clks VF610_CLK_SNVS>;
480 clock-names = "snvs-rtc";
484 uart4: serial@400a9000 {
485 compatible = "fsl,vf610-lpuart";
486 reg = <0x400a9000 0x1000>;
487 interrupts = <65 IRQ_TYPE_LEVEL_HIGH>;
488 clocks = <&clks VF610_CLK_UART4>;
493 uart5: serial@400aa000 {
494 compatible = "fsl,vf610-lpuart";
495 reg = <0x400aa000 0x1000>;
496 interrupts = <66 IRQ_TYPE_LEVEL_HIGH>;
497 clocks = <&clks VF610_CLK_UART5>;
502 dspi2: dspi2@400ac000 {
503 #address-cells = <1>;
505 compatible = "fsl,vf610-dspi";
506 reg = <0x400ac000 0x1000>;
507 interrupts = <69 IRQ_TYPE_LEVEL_HIGH>;
508 clocks = <&clks VF610_CLK_DSPI2>;
509 clock-names = "dspi";
510 spi-num-chipselects = <2>;
514 dspi3: dspi3@400ad000 {
515 #address-cells = <1>;
517 compatible = "fsl,vf610-dspi";
518 reg = <0x400ad000 0x1000>;
519 interrupts = <70 IRQ_TYPE_LEVEL_HIGH>;
520 clocks = <&clks VF610_CLK_DSPI3>;
521 clock-names = "dspi";
522 spi-num-chipselects = <2>;
527 compatible = "fsl,vf610-adc";
528 reg = <0x400bb000 0x1000>;
529 interrupts = <54 IRQ_TYPE_LEVEL_HIGH>;
530 clocks = <&clks VF610_CLK_ADC1>;
532 #io-channel-cells = <1>;
534 fsl,adck-max-frequency = <30000000>, <40000000>,
538 esdhc0: esdhc@400b1000 {
539 compatible = "fsl,imx53-esdhc";
540 reg = <0x400b1000 0x1000>;
541 interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
542 clocks = <&clks VF610_CLK_IPG_BUS>,
543 <&clks VF610_CLK_PLATFORM_BUS>,
544 <&clks VF610_CLK_ESDHC0>;
545 clock-names = "ipg", "ahb", "per";
549 esdhc1: esdhc@400b2000 {
550 compatible = "fsl,imx53-esdhc";
551 reg = <0x400b2000 0x1000>;
552 interrupts = <28 IRQ_TYPE_LEVEL_HIGH>;
553 clocks = <&clks VF610_CLK_IPG_BUS>,
554 <&clks VF610_CLK_PLATFORM_BUS>,
555 <&clks VF610_CLK_ESDHC1>;
556 clock-names = "ipg", "ahb", "per";
560 usbh1: usb@400b4000 {
561 compatible = "fsl,vf610-usb", "fsl,imx27-usb";
562 reg = <0x400b4000 0x800>;
563 interrupts = <76 IRQ_TYPE_LEVEL_HIGH>;
564 clocks = <&clks VF610_CLK_USBC1>;
565 fsl,usbphy = <&usbphy1>;
566 fsl,usbmisc = <&usbmisc1 0>;
571 usbmisc1: usb@400b4800 {
573 compatible = "fsl,vf610-usbmisc";
574 reg = <0x400b4800 0x200>;
575 clocks = <&clks VF610_CLK_USBC1>;
580 compatible = "fsl,ftm-timer";
581 reg = <0x400b8000 0x1000 0x400b9000 0x1000>;
582 interrupts = <44 IRQ_TYPE_LEVEL_HIGH>;
583 clock-names = "ftm-evt", "ftm-src",
584 "ftm-evt-counter-en", "ftm-src-counter-en";
585 clocks = <&clks VF610_CLK_FTM2>,
586 <&clks VF610_CLK_FTM3>,
587 <&clks VF610_CLK_FTM2_EXT_FIX_EN>,
588 <&clks VF610_CLK_FTM3_EXT_FIX_EN>;
592 qspi1: quadspi@400c4000 {
593 #address-cells = <1>;
595 compatible = "fsl,vf610-qspi";
596 reg = <0x400c4000 0x1000>, <0x50000000 0x10000000>;
597 reg-names = "QuadSPI", "QuadSPI-memory";
598 interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
599 clocks = <&clks VF610_CLK_QSPI1_EN>,
600 <&clks VF610_CLK_QSPI1>;
601 clock-names = "qspi_en", "qspi";
605 fec0: ethernet@400d0000 {
606 compatible = "fsl,mvf600-fec";
607 reg = <0x400d0000 0x1000>;
608 interrupts = <78 IRQ_TYPE_LEVEL_HIGH>;
609 clocks = <&clks VF610_CLK_ENET0>,
610 <&clks VF610_CLK_ENET0>,
611 <&clks VF610_CLK_ENET>;
612 clock-names = "ipg", "ahb", "ptp";
616 fec1: ethernet@400d1000 {
617 compatible = "fsl,mvf600-fec";
618 reg = <0x400d1000 0x1000>;
619 interrupts = <79 IRQ_TYPE_LEVEL_HIGH>;
620 clocks = <&clks VF610_CLK_ENET1>,
621 <&clks VF610_CLK_ENET1>,
622 <&clks VF610_CLK_ENET>;
623 clock-names = "ipg", "ahb", "ptp";
627 can1: flexcan@400d4000 {
628 compatible = "fsl,vf610-flexcan";
629 reg = <0x400d4000 0x4000>;
630 interrupts = <59 IRQ_TYPE_LEVEL_HIGH>;
631 clocks = <&clks VF610_CLK_FLEXCAN1>,
632 <&clks VF610_CLK_FLEXCAN1>;
633 clock-names = "ipg", "per";
638 #address-cells = <1>;
640 compatible = "fsl,vf610-nfc";
641 reg = <0x400e0000 0x4000>;
642 interrupts = <83 IRQ_TYPE_LEVEL_HIGH>;
643 clocks = <&clks VF610_CLK_NFC>;
649 #address-cells = <1>;
651 compatible = "fsl,vf610-i2c";
652 reg = <0x400e6000 0x1000>;
653 interrupts = <73 IRQ_TYPE_LEVEL_HIGH>;
654 clocks = <&clks VF610_CLK_I2C2>;
656 dmas = <&edma0 1 36>,
658 dma-names = "rx","tx";
663 #address-cells = <1>;
665 compatible = "fsl,vf610-i2c";
666 reg = <0x400e7000 0x1000>;
667 interrupts = <74 IRQ_TYPE_LEVEL_HIGH>;
668 clocks = <&clks VF610_CLK_I2C3>;
670 dmas = <&edma0 1 38>,
672 dma-names = "rx","tx";