1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
3 // Copyright 2013 Freescale Semiconductor, Inc.
5 #include "vf610-pinfunc.h"
6 #include <dt-bindings/clock/vf610-clock.h>
7 #include <dt-bindings/interrupt-controller/irq.h>
8 #include <dt-bindings/gpio/gpio.h>
32 compatible = "fixed-clock";
34 clock-frequency = <24000000>;
38 compatible = "fixed-clock";
40 clock-frequency = <32768>;
43 reboot: syscon-reboot {
44 compatible = "syscon-reboot";
50 tempsensor: iio-hwmon {
51 compatible = "iio-hwmon";
52 io-channels = <&adc0 16>, <&adc1 16>;
58 compatible = "simple-bus";
59 interrupt-parent = <&mscm_ir>;
63 compatible = "fsl,aips-bus", "simple-bus";
66 reg = <0x40000000 0x00070000>;
69 mscm_cpucfg: cpucfg@40001000 {
70 compatible = "fsl,vf610-mscm-cpucfg", "syscon";
71 reg = <0x40001000 0x800>;
74 mscm_ir: interrupt-controller@40001800 {
75 compatible = "fsl,vf610-mscm-ir";
76 reg = <0x40001800 0x400>;
77 fsl,cpucfg = <&mscm_cpucfg>;
79 #interrupt-cells = <2>;
82 edma0: dma-controller@40018000 {
84 compatible = "fsl,vf610-edma";
85 reg = <0x40018000 0x2000>,
89 interrupts = <8 IRQ_TYPE_LEVEL_HIGH>,
90 <9 IRQ_TYPE_LEVEL_HIGH>;
91 interrupt-names = "edma-tx", "edma-err";
92 clock-names = "dmamux0", "dmamux1";
93 clocks = <&clks VF610_CLK_DMAMUX0>,
94 <&clks VF610_CLK_DMAMUX1>;
99 compatible = "fsl,vf610-flexcan";
100 reg = <0x40020000 0x4000>;
101 interrupts = <58 IRQ_TYPE_LEVEL_HIGH>;
102 clocks = <&clks VF610_CLK_FLEXCAN0>,
103 <&clks VF610_CLK_FLEXCAN0>;
104 clock-names = "ipg", "per";
108 uart0: serial@40027000 {
109 compatible = "fsl,vf610-lpuart";
110 reg = <0x40027000 0x1000>;
111 interrupts = <61 IRQ_TYPE_LEVEL_HIGH>;
112 clocks = <&clks VF610_CLK_UART0>;
116 dma-names = "rx","tx";
120 uart1: serial@40028000 {
121 compatible = "fsl,vf610-lpuart";
122 reg = <0x40028000 0x1000>;
123 interrupts = <62 IRQ_TYPE_LEVEL_HIGH>;
124 clocks = <&clks VF610_CLK_UART1>;
128 dma-names = "rx","tx";
132 uart2: serial@40029000 {
133 compatible = "fsl,vf610-lpuart";
134 reg = <0x40029000 0x1000>;
135 interrupts = <63 IRQ_TYPE_LEVEL_HIGH>;
136 clocks = <&clks VF610_CLK_UART2>;
140 dma-names = "rx","tx";
144 uart3: serial@4002a000 {
145 compatible = "fsl,vf610-lpuart";
146 reg = <0x4002a000 0x1000>;
147 interrupts = <64 IRQ_TYPE_LEVEL_HIGH>;
148 clocks = <&clks VF610_CLK_UART3>;
152 dma-names = "rx","tx";
156 dspi0: spi@4002c000 {
157 #address-cells = <1>;
159 compatible = "fsl,vf610-dspi";
160 reg = <0x4002c000 0x1000>;
161 interrupts = <67 IRQ_TYPE_LEVEL_HIGH>;
162 clocks = <&clks VF610_CLK_DSPI0>;
163 clock-names = "dspi";
164 spi-num-chipselects = <6>;
165 dmas = <&edma1 1 12>,
167 dma-names = "rx", "tx";
171 dspi1: spi@4002d000 {
172 #address-cells = <1>;
174 compatible = "fsl,vf610-dspi";
175 reg = <0x4002d000 0x1000>;
176 interrupts = <68 IRQ_TYPE_LEVEL_HIGH>;
177 clocks = <&clks VF610_CLK_DSPI1>;
178 clock-names = "dspi";
179 spi-num-chipselects = <4>;
180 dmas = <&edma1 1 14>,
182 dma-names = "rx", "tx";
187 compatible = "fsl,vf610-sai";
188 reg = <0x4002f000 0x1000>;
189 interrupts = <84 IRQ_TYPE_LEVEL_HIGH>;
190 clocks = <&clks VF610_CLK_SAI0>,
191 <&clks VF610_CLK_SAI0_DIV>,
192 <&clks 0>, <&clks 0>;
193 clock-names = "bus", "mclk1", "mclk2", "mclk3";
194 dma-names = "tx", "rx";
195 dmas = <&edma0 0 17>,
201 compatible = "fsl,vf610-sai";
202 reg = <0x40030000 0x1000>;
203 interrupts = <85 IRQ_TYPE_LEVEL_HIGH>;
204 clocks = <&clks VF610_CLK_SAI1>,
205 <&clks VF610_CLK_SAI1_DIV>,
206 <&clks 0>, <&clks 0>;
207 clock-names = "bus", "mclk1", "mclk2", "mclk3";
208 dma-names = "tx", "rx";
209 dmas = <&edma0 0 19>,
215 compatible = "fsl,vf610-sai";
216 reg = <0x40031000 0x1000>;
217 interrupts = <86 IRQ_TYPE_LEVEL_HIGH>;
218 clocks = <&clks VF610_CLK_SAI2>,
219 <&clks VF610_CLK_SAI2_DIV>,
220 <&clks 0>, <&clks 0>;
221 clock-names = "bus", "mclk1", "mclk2", "mclk3";
222 dma-names = "tx", "rx";
223 dmas = <&edma0 0 21>,
229 compatible = "fsl,vf610-sai";
230 reg = <0x40032000 0x1000>;
231 interrupts = <87 IRQ_TYPE_LEVEL_HIGH>;
232 clocks = <&clks VF610_CLK_SAI3>,
233 <&clks VF610_CLK_SAI3_DIV>,
234 <&clks 0>, <&clks 0>;
235 clock-names = "bus", "mclk1", "mclk2", "mclk3";
236 dma-names = "tx", "rx";
243 compatible = "fsl,vf610-pit";
244 reg = <0x40037000 0x1000>;
245 interrupts = <39 IRQ_TYPE_LEVEL_HIGH>;
246 clocks = <&clks VF610_CLK_PIT>;
251 compatible = "fsl,vf610-ftm-pwm";
253 reg = <0x40038000 0x1000>;
254 clock-names = "ftm_sys", "ftm_ext",
255 "ftm_fix", "ftm_cnt_clk_en";
256 clocks = <&clks VF610_CLK_FTM0>,
257 <&clks VF610_CLK_FTM0_EXT_SEL>,
258 <&clks VF610_CLK_FTM0_FIX_SEL>,
259 <&clks VF610_CLK_FTM0_EXT_FIX_EN>;
264 compatible = "fsl,vf610-ftm-pwm";
266 reg = <0x40039000 0x1000>;
267 clock-names = "ftm_sys", "ftm_ext",
268 "ftm_fix", "ftm_cnt_clk_en";
269 clocks = <&clks VF610_CLK_FTM1>,
270 <&clks VF610_CLK_FTM1_EXT_SEL>,
271 <&clks VF610_CLK_FTM1_FIX_SEL>,
272 <&clks VF610_CLK_FTM1_EXT_FIX_EN>;
277 compatible = "fsl,vf610-adc";
278 reg = <0x4003b000 0x1000>;
279 interrupts = <53 IRQ_TYPE_LEVEL_HIGH>;
280 clocks = <&clks VF610_CLK_ADC0>;
282 #io-channel-cells = <1>;
284 fsl,adck-max-frequency = <30000000>, <40000000>,
288 tcon0: timing-controller@4003d000 {
289 compatible = "fsl,vf610-tcon";
290 reg = <0x4003d000 0x1000>;
291 clocks = <&clks VF610_CLK_TCON0>;
296 wdoga5: watchdog@4003e000 {
297 compatible = "fsl,vf610-wdt", "fsl,imx21-wdt";
298 reg = <0x4003e000 0x1000>;
299 interrupts = <20 IRQ_TYPE_LEVEL_HIGH>;
300 clocks = <&clks VF610_CLK_WDT>;
301 clock-names = "wdog";
305 qspi0: spi@40044000 {
306 #address-cells = <1>;
308 compatible = "fsl,vf610-qspi";
309 reg = <0x40044000 0x1000>, <0x20000000 0x10000000>;
310 reg-names = "QuadSPI", "QuadSPI-memory";
311 interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
312 clocks = <&clks VF610_CLK_QSPI0_EN>,
313 <&clks VF610_CLK_QSPI0>;
314 clock-names = "qspi_en", "qspi";
318 iomuxc: iomuxc@40048000 {
319 compatible = "fsl,vf610-iomuxc";
320 reg = <0x40048000 0x1000>;
323 gpio0: gpio@40049000 {
324 compatible = "fsl,vf610-gpio";
325 reg = <0x40049000 0x1000 0x400ff000 0x40>;
328 interrupts = <107 IRQ_TYPE_LEVEL_HIGH>;
329 interrupt-controller;
330 #interrupt-cells = <2>;
331 gpio-ranges = <&iomuxc 0 0 32>;
334 gpio1: gpio@4004a000 {
335 compatible = "fsl,vf610-gpio";
336 reg = <0x4004a000 0x1000 0x400ff040 0x40>;
339 interrupts = <108 IRQ_TYPE_LEVEL_HIGH>;
340 interrupt-controller;
341 #interrupt-cells = <2>;
342 gpio-ranges = <&iomuxc 0 32 32>;
345 gpio2: gpio@4004b000 {
346 compatible = "fsl,vf610-gpio";
347 reg = <0x4004b000 0x1000 0x400ff080 0x40>;
350 interrupts = <109 IRQ_TYPE_LEVEL_HIGH>;
351 interrupt-controller;
352 #interrupt-cells = <2>;
353 gpio-ranges = <&iomuxc 0 64 32>;
356 gpio3: gpio@4004c000 {
357 compatible = "fsl,vf610-gpio";
358 reg = <0x4004c000 0x1000 0x400ff0c0 0x40>;
361 interrupts = <110 IRQ_TYPE_LEVEL_HIGH>;
362 interrupt-controller;
363 #interrupt-cells = <2>;
364 gpio-ranges = <&iomuxc 0 96 32>;
367 gpio4: gpio@4004d000 {
368 compatible = "fsl,vf610-gpio";
369 reg = <0x4004d000 0x1000 0x400ff100 0x40>;
372 interrupts = <111 IRQ_TYPE_LEVEL_HIGH>;
373 interrupt-controller;
374 #interrupt-cells = <2>;
375 gpio-ranges = <&iomuxc 0 128 7>;
378 anatop: anatop@40050000 {
379 compatible = "fsl,vf610-anatop", "syscon";
380 reg = <0x40050000 0x400>;
383 usbphy0: usbphy@40050800 {
384 compatible = "fsl,vf610-usbphy";
385 reg = <0x40050800 0x400>;
386 interrupts = <50 IRQ_TYPE_LEVEL_HIGH>;
387 clocks = <&clks VF610_CLK_USBPHY0>;
388 fsl,anatop = <&anatop>;
392 usbphy1: usbphy@40050c00 {
393 compatible = "fsl,vf610-usbphy";
394 reg = <0x40050c00 0x400>;
395 interrupts = <51 IRQ_TYPE_LEVEL_HIGH>;
396 clocks = <&clks VF610_CLK_USBPHY1>;
397 fsl,anatop = <&anatop>;
402 compatible = "fsl,vf610-dcu";
403 reg = <0x40058000 0x1200>;
404 interrupts = <30 IRQ_TYPE_LEVEL_HIGH>;
405 clocks = <&clks VF610_CLK_DCU0>,
406 <&clks VF610_CLK_DCU0_DIV>;
407 clock-names = "dcu", "pix";
413 #address-cells = <1>;
415 compatible = "fsl,vf610-i2c";
416 reg = <0x40066000 0x1000>;
417 interrupts = <71 IRQ_TYPE_LEVEL_HIGH>;
418 clocks = <&clks VF610_CLK_I2C0>;
420 dmas = <&edma0 0 50>,
422 dma-names = "rx","tx";
427 #address-cells = <1>;
429 compatible = "fsl,vf610-i2c";
430 reg = <0x40067000 0x1000>;
431 interrupts = <72 IRQ_TYPE_LEVEL_HIGH>;
432 clocks = <&clks VF610_CLK_I2C1>;
434 dmas = <&edma0 0 52>,
436 dma-names = "rx","tx";
441 compatible = "fsl,vf610-ccm";
442 reg = <0x4006b000 0x1000>;
443 clocks = <&sxosc>, <&fxosc>;
444 clock-names = "sxosc", "fxosc";
448 usbdev0: usb@40034000 {
449 compatible = "fsl,vf610-usb", "fsl,imx27-usb";
450 reg = <0x40034000 0x800>;
451 interrupts = <75 IRQ_TYPE_LEVEL_HIGH>;
452 clocks = <&clks VF610_CLK_USBC0>;
453 fsl,usbphy = <&usbphy0>;
454 fsl,usbmisc = <&usbmisc0 0>;
455 dr_mode = "peripheral";
459 usbmisc0: usb@40034800 {
461 compatible = "fsl,vf610-usbmisc";
462 reg = <0x40034800 0x200>;
463 clocks = <&clks VF610_CLK_USBC0>;
468 compatible = "fsl,vf610-src", "syscon";
469 reg = <0x4006e000 0x1000>;
470 interrupts = <96 IRQ_TYPE_LEVEL_HIGH>;
474 aips1: bus@40080000 {
475 compatible = "fsl,aips-bus", "simple-bus";
476 #address-cells = <1>;
478 reg = <0x40080000 0x0007f000>;
481 edma1: dma-controller@40098000 {
483 compatible = "fsl,vf610-edma";
484 reg = <0x40098000 0x2000>,
488 interrupts = <10 IRQ_TYPE_LEVEL_HIGH>,
489 <11 IRQ_TYPE_LEVEL_HIGH>;
490 interrupt-names = "edma-tx", "edma-err";
491 clock-names = "dmamux0", "dmamux1";
492 clocks = <&clks VF610_CLK_DMAMUX2>,
493 <&clks VF610_CLK_DMAMUX3>;
497 ocotp: ocotp@400a5000 {
498 compatible = "fsl,vf610-ocotp", "syscon";
499 reg = <0x400a5000 0x1000>;
500 clocks = <&clks VF610_CLK_OCOTP>;
503 snvs0: snvs@400a7000 {
504 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
505 reg = <0x400a7000 0x2000>;
507 snvsrtc: snvs-rtc-lp {
508 compatible = "fsl,sec-v4.0-mon-rtc-lp";
511 interrupts = <100 IRQ_TYPE_LEVEL_HIGH>;
512 clocks = <&clks VF610_CLK_SNVS>;
513 clock-names = "snvs-rtc";
517 uart4: serial@400a9000 {
518 compatible = "fsl,vf610-lpuart";
519 reg = <0x400a9000 0x1000>;
520 interrupts = <65 IRQ_TYPE_LEVEL_HIGH>;
521 clocks = <&clks VF610_CLK_UART4>;
526 uart5: serial@400aa000 {
527 compatible = "fsl,vf610-lpuart";
528 reg = <0x400aa000 0x1000>;
529 interrupts = <66 IRQ_TYPE_LEVEL_HIGH>;
530 clocks = <&clks VF610_CLK_UART5>;
535 dspi2: spi@400ac000 {
536 #address-cells = <1>;
538 compatible = "fsl,vf610-dspi";
539 reg = <0x400ac000 0x1000>;
540 interrupts = <69 IRQ_TYPE_LEVEL_HIGH>;
541 clocks = <&clks VF610_CLK_DSPI2>;
542 clock-names = "dspi";
543 spi-num-chipselects = <2>;
544 dmas = <&edma1 0 10>,
546 dma-names = "rx", "tx";
550 dspi3: spi@400ad000 {
551 #address-cells = <1>;
553 compatible = "fsl,vf610-dspi";
554 reg = <0x400ad000 0x1000>;
555 interrupts = <70 IRQ_TYPE_LEVEL_HIGH>;
556 clocks = <&clks VF610_CLK_DSPI3>;
557 clock-names = "dspi";
558 spi-num-chipselects = <2>;
559 dmas = <&edma1 0 12>,
561 dma-names = "rx", "tx";
566 compatible = "fsl,vf610-adc";
567 reg = <0x400bb000 0x1000>;
568 interrupts = <54 IRQ_TYPE_LEVEL_HIGH>;
569 clocks = <&clks VF610_CLK_ADC1>;
571 #io-channel-cells = <1>;
573 fsl,adck-max-frequency = <30000000>, <40000000>,
577 esdhc0: esdhc@400b1000 {
578 compatible = "fsl,imx53-esdhc";
579 reg = <0x400b1000 0x1000>;
580 interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
581 clocks = <&clks VF610_CLK_IPG_BUS>,
582 <&clks VF610_CLK_PLATFORM_BUS>,
583 <&clks VF610_CLK_ESDHC0>;
584 clock-names = "ipg", "ahb", "per";
588 esdhc1: esdhc@400b2000 {
589 compatible = "fsl,imx53-esdhc";
590 reg = <0x400b2000 0x1000>;
591 interrupts = <28 IRQ_TYPE_LEVEL_HIGH>;
592 clocks = <&clks VF610_CLK_IPG_BUS>,
593 <&clks VF610_CLK_PLATFORM_BUS>,
594 <&clks VF610_CLK_ESDHC1>;
595 clock-names = "ipg", "ahb", "per";
599 usbh1: usb@400b4000 {
600 compatible = "fsl,vf610-usb", "fsl,imx27-usb";
601 reg = <0x400b4000 0x800>;
602 interrupts = <76 IRQ_TYPE_LEVEL_HIGH>;
603 clocks = <&clks VF610_CLK_USBC1>;
604 fsl,usbphy = <&usbphy1>;
605 fsl,usbmisc = <&usbmisc1 0>;
610 usbmisc1: usb@400b4800 {
612 compatible = "fsl,vf610-usbmisc";
613 reg = <0x400b4800 0x200>;
614 clocks = <&clks VF610_CLK_USBC1>;
619 compatible = "fsl,ftm-timer";
620 reg = <0x400b8000 0x1000 0x400b9000 0x1000>;
621 interrupts = <44 IRQ_TYPE_LEVEL_HIGH>;
622 clock-names = "ftm-evt", "ftm-src",
623 "ftm-evt-counter-en", "ftm-src-counter-en";
624 clocks = <&clks VF610_CLK_FTM2>,
625 <&clks VF610_CLK_FTM3>,
626 <&clks VF610_CLK_FTM2_EXT_FIX_EN>,
627 <&clks VF610_CLK_FTM3_EXT_FIX_EN>;
631 qspi1: spi@400c4000 {
632 #address-cells = <1>;
634 compatible = "fsl,vf610-qspi";
635 reg = <0x400c4000 0x1000>, <0x50000000 0x10000000>;
636 reg-names = "QuadSPI", "QuadSPI-memory";
637 interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
638 clocks = <&clks VF610_CLK_QSPI1_EN>,
639 <&clks VF610_CLK_QSPI1>;
640 clock-names = "qspi_en", "qspi";
645 compatible = "fsl,vf610-dac";
646 reg = <0x400cc000 1000>;
647 interrupts = <55 IRQ_TYPE_LEVEL_HIGH>;
649 clocks = <&clks VF610_CLK_DAC0>;
654 compatible = "fsl,vf610-dac";
655 reg = <0x400cd000 1000>;
656 interrupts = <56 IRQ_TYPE_LEVEL_HIGH>;
658 clocks = <&clks VF610_CLK_DAC1>;
662 fec0: ethernet@400d0000 {
663 compatible = "fsl,mvf600-fec";
664 reg = <0x400d0000 0x1000>;
665 interrupts = <78 IRQ_TYPE_LEVEL_HIGH>;
666 clocks = <&clks VF610_CLK_ENET0>,
667 <&clks VF610_CLK_ENET0>,
668 <&clks VF610_CLK_ENET>;
669 clock-names = "ipg", "ahb", "ptp";
673 fec1: ethernet@400d1000 {
674 compatible = "fsl,mvf600-fec";
675 reg = <0x400d1000 0x1000>;
676 interrupts = <79 IRQ_TYPE_LEVEL_HIGH>;
677 clocks = <&clks VF610_CLK_ENET1>,
678 <&clks VF610_CLK_ENET1>,
679 <&clks VF610_CLK_ENET>;
680 clock-names = "ipg", "ahb", "ptp";
685 compatible = "fsl,vf610-flexcan";
686 reg = <0x400d4000 0x4000>;
687 interrupts = <59 IRQ_TYPE_LEVEL_HIGH>;
688 clocks = <&clks VF610_CLK_FLEXCAN1>,
689 <&clks VF610_CLK_FLEXCAN1>;
690 clock-names = "ipg", "per";
695 #address-cells = <1>;
697 compatible = "fsl,vf610-nfc";
698 reg = <0x400e0000 0x4000>;
699 interrupts = <83 IRQ_TYPE_LEVEL_HIGH>;
700 clocks = <&clks VF610_CLK_NFC>;
706 #address-cells = <1>;
708 compatible = "fsl,vf610-i2c";
709 reg = <0x400e6000 0x1000>;
710 interrupts = <73 IRQ_TYPE_LEVEL_HIGH>;
711 clocks = <&clks VF610_CLK_I2C2>;
713 dmas = <&edma0 1 36>,
715 dma-names = "rx","tx";
720 #address-cells = <1>;
722 compatible = "fsl,vf610-i2c";
723 reg = <0x400e7000 0x1000>;
724 interrupts = <74 IRQ_TYPE_LEVEL_HIGH>;
725 clocks = <&clks VF610_CLK_I2C3>;
727 dmas = <&edma0 1 38>,
729 dma-names = "rx","tx";
733 crypto: crypto@400f0000 {
734 compatible = "fsl,sec-v4.0";
735 #address-cells = <1>;
737 reg = <0x400f0000 0x9000>;
738 ranges = <0 0x400f0000 0x9000>;
739 clocks = <&clks VF610_CLK_CAAM>;
743 compatible = "fsl,sec-v4.0-job-ring";
744 reg = <0x1000 0x1000>;
745 interrupts = <102 IRQ_TYPE_LEVEL_HIGH>;
749 compatible = "fsl,sec-v4.0-job-ring";
750 reg = <0x2000 0x1000>;
751 interrupts = <102 IRQ_TYPE_LEVEL_HIGH>;