2 * Device Tree Source for OMAP3 SoC
4 * Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com/
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
11 #include <dt-bindings/bus/ti-sysc.h>
12 #include <dt-bindings/gpio/gpio.h>
13 #include <dt-bindings/interrupt-controller/irq.h>
14 #include <dt-bindings/pinctrl/omap.h>
17 compatible = "ti,omap3430", "ti,omap3";
18 interrupt-parent = <&intc>;
37 compatible = "arm,cortex-a8";
44 clock-latency = <300000>; /* From omap-cpufreq driver */
49 compatible = "arm,cortex-a8-pmu";
50 reg = <0x54000000 0x800000>;
52 ti,hwmods = "debugss";
56 * The soc node represents the soc top level view. It is used for IPs
57 * that are not memory mapped in the MPU view or for the MPU itself.
60 compatible = "ti,omap-infra";
62 compatible = "ti,omap3-mpu";
67 compatible = "ti,iva2.2";
71 compatible = "ti,omap3-c64";
77 * XXX: Use a flat representation of the OMAP3 interconnect.
78 * The real OMAP interconnect network is quite complex.
79 * Since it will not bring real advantage to represent that in DT for
80 * the moment, just use a fake OCP bus entry to represent the whole bus
84 compatible = "ti,omap3-l3-smx", "simple-bus";
85 reg = <0x68000000 0x10000>;
90 ti,hwmods = "l3_main";
92 l4_core: l4@48000000 {
93 compatible = "ti,omap3-l4-core", "simple-bus";
96 ranges = <0 0x48000000 0x1000000>;
99 compatible = "ti,omap3-scm", "simple-bus";
100 reg = <0x2000 0x2000>;
101 #address-cells = <1>;
103 ranges = <0 0x2000 0x2000>;
105 omap3_pmx_core: pinmux@30 {
106 compatible = "ti,omap3-padconf",
109 #address-cells = <1>;
111 #pinctrl-cells = <1>;
112 #interrupt-cells = <1>;
113 interrupt-controller;
114 pinctrl-single,register-width = <16>;
115 pinctrl-single,function-mask = <0xff1f>;
118 scm_conf: scm_conf@270 {
119 compatible = "syscon", "simple-bus";
121 #address-cells = <1>;
123 ranges = <0 0x270 0x330>;
125 pbias_regulator: pbias_regulator@2b0 {
126 compatible = "ti,pbias-omap3", "ti,pbias-omap";
128 syscon = <&scm_conf>;
129 pbias_mmc_reg: pbias_mmc_omap2430 {
130 regulator-name = "pbias_mmc_omap2430";
131 regulator-min-microvolt = <1800000>;
132 regulator-max-microvolt = <3000000>;
137 #address-cells = <1>;
142 scm_clockdomains: clockdomains {
145 omap3_pmx_wkup: pinmux@a00 {
146 compatible = "ti,omap3-padconf",
149 #address-cells = <1>;
151 #pinctrl-cells = <1>;
152 #interrupt-cells = <1>;
153 interrupt-controller;
154 pinctrl-single,register-width = <16>;
155 pinctrl-single,function-mask = <0xff1f>;
160 aes1_target: target-module@480a6000 {
161 compatible = "ti,sysc-omap2", "ti,sysc";
162 reg = <0x480a6044 0x4>,
165 reg-names = "rev", "sysc", "syss";
166 ti,sysc-mask = <(SYSC_OMAP2_AUTOIDLE)>;
167 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
171 clocks = <&aes1_ick>;
173 #address-cells = <1>;
175 ranges = <0 0x480a6000 0x2000>;
178 compatible = "ti,omap3-aes";
181 dmas = <&sdma 9 &sdma 10>;
182 dma-names = "tx", "rx";
186 aes2_target: target-module@480c5000 {
187 compatible = "ti,sysc-omap2", "ti,sysc";
188 reg = <0x480c5044 0x4>,
191 reg-names = "rev", "sysc", "syss";
192 ti,sysc-mask = <(SYSC_OMAP2_AUTOIDLE)>;
193 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
197 clocks = <&aes2_ick>;
199 #address-cells = <1>;
201 ranges = <0 0x480c5000 0x2000>;
204 compatible = "ti,omap3-aes";
207 dmas = <&sdma 65 &sdma 66>;
208 dma-names = "tx", "rx";
213 compatible = "ti,omap3-prm";
214 reg = <0x48306000 0x4000>;
218 #address-cells = <1>;
222 prm_clockdomains: clockdomains {
227 compatible = "ti,omap3-cm";
228 reg = <0x48004000 0x4000>;
231 #address-cells = <1>;
235 cm_clockdomains: clockdomains {
239 target-module@48320000 {
240 compatible = "ti,sysc-omap2", "ti,sysc";
241 reg = <0x48320000 0x4>,
243 reg-names = "rev", "sysc";
244 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
246 clocks = <&wkup_32k_fck>, <&omap_32ksync_ick>;
247 clock-names = "fck", "ick";
248 #address-cells = <1>;
250 ranges = <0x0 0x48320000 0x1000>;
252 counter32k: counter@0 {
253 compatible = "ti,omap-counter32k";
258 intc: interrupt-controller@48200000 {
259 compatible = "ti,omap3-intc";
260 interrupt-controller;
261 #interrupt-cells = <1>;
262 reg = <0x48200000 0x1000>;
265 target-module@48056000 {
266 compatible = "ti,sysc-omap2", "ti,sysc";
267 reg = <0x48056000 0x4>,
270 reg-names = "rev", "sysc", "syss";
271 ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
273 SYSC_OMAP2_SOFTRESET |
274 SYSC_OMAP2_AUTOIDLE)>;
275 ti,sysc-midle = <SYSC_IDLE_FORCE>,
278 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
282 /* Domains (V, P, C): core, core_pwrdm, core_l3_clkdm */
283 clocks = <&core_l3_ick>;
285 #address-cells = <1>;
287 ranges = <0 0x48056000 0x1000>;
289 sdma: dma-controller@0 {
290 compatible = "ti,omap3430-sdma", "ti,omap-sdma";
302 gpio1: gpio@48310000 {
303 compatible = "ti,omap3-gpio";
304 reg = <0x48310000 0x200>;
310 interrupt-controller;
311 #interrupt-cells = <2>;
314 gpio2: gpio@49050000 {
315 compatible = "ti,omap3-gpio";
316 reg = <0x49050000 0x200>;
321 interrupt-controller;
322 #interrupt-cells = <2>;
325 gpio3: gpio@49052000 {
326 compatible = "ti,omap3-gpio";
327 reg = <0x49052000 0x200>;
332 interrupt-controller;
333 #interrupt-cells = <2>;
336 gpio4: gpio@49054000 {
337 compatible = "ti,omap3-gpio";
338 reg = <0x49054000 0x200>;
343 interrupt-controller;
344 #interrupt-cells = <2>;
347 gpio5: gpio@49056000 {
348 compatible = "ti,omap3-gpio";
349 reg = <0x49056000 0x200>;
354 interrupt-controller;
355 #interrupt-cells = <2>;
358 gpio6: gpio@49058000 {
359 compatible = "ti,omap3-gpio";
360 reg = <0x49058000 0x200>;
365 interrupt-controller;
366 #interrupt-cells = <2>;
369 uart1: serial@4806a000 {
370 compatible = "ti,omap3-uart";
371 reg = <0x4806a000 0x2000>;
372 interrupts-extended = <&intc 72>;
373 dmas = <&sdma 49 &sdma 50>;
374 dma-names = "tx", "rx";
376 clock-frequency = <48000000>;
379 uart2: serial@4806c000 {
380 compatible = "ti,omap3-uart";
381 reg = <0x4806c000 0x400>;
382 interrupts-extended = <&intc 73>;
383 dmas = <&sdma 51 &sdma 52>;
384 dma-names = "tx", "rx";
386 clock-frequency = <48000000>;
389 uart3: serial@49020000 {
390 compatible = "ti,omap3-uart";
391 reg = <0x49020000 0x400>;
392 interrupts-extended = <&intc 74>;
393 dmas = <&sdma 53 &sdma 54>;
394 dma-names = "tx", "rx";
396 clock-frequency = <48000000>;
400 compatible = "ti,omap3-i2c";
401 reg = <0x48070000 0x80>;
403 dmas = <&sdma 27 &sdma 28>;
404 dma-names = "tx", "rx";
405 #address-cells = <1>;
411 compatible = "ti,omap3-i2c";
412 reg = <0x48072000 0x80>;
414 dmas = <&sdma 29 &sdma 30>;
415 dma-names = "tx", "rx";
416 #address-cells = <1>;
422 compatible = "ti,omap3-i2c";
423 reg = <0x48060000 0x80>;
425 dmas = <&sdma 25 &sdma 26>;
426 dma-names = "tx", "rx";
427 #address-cells = <1>;
432 mailbox: mailbox@48094000 {
433 compatible = "ti,omap3-mailbox";
434 ti,hwmods = "mailbox";
435 reg = <0x48094000 0x200>;
438 ti,mbox-num-users = <2>;
439 ti,mbox-num-fifos = <2>;
441 ti,mbox-tx = <0 0 0>;
442 ti,mbox-rx = <1 0 0>;
446 mcspi1: spi@48098000 {
447 compatible = "ti,omap2-mcspi";
448 reg = <0x48098000 0x100>;
450 #address-cells = <1>;
452 ti,hwmods = "mcspi1";
462 dma-names = "tx0", "rx0", "tx1", "rx1",
463 "tx2", "rx2", "tx3", "rx3";
466 mcspi2: spi@4809a000 {
467 compatible = "ti,omap2-mcspi";
468 reg = <0x4809a000 0x100>;
470 #address-cells = <1>;
472 ti,hwmods = "mcspi2";
478 dma-names = "tx0", "rx0", "tx1", "rx1";
481 mcspi3: spi@480b8000 {
482 compatible = "ti,omap2-mcspi";
483 reg = <0x480b8000 0x100>;
485 #address-cells = <1>;
487 ti,hwmods = "mcspi3";
493 dma-names = "tx0", "rx0", "tx1", "rx1";
496 mcspi4: spi@480ba000 {
497 compatible = "ti,omap2-mcspi";
498 reg = <0x480ba000 0x100>;
500 #address-cells = <1>;
502 ti,hwmods = "mcspi4";
504 dmas = <&sdma 70>, <&sdma 71>;
505 dma-names = "tx0", "rx0";
508 hdqw1w: 1w@480b2000 {
509 compatible = "ti,omap3-1w";
510 reg = <0x480b2000 0x1000>;
516 compatible = "ti,omap3-hsmmc";
517 reg = <0x4809c000 0x200>;
521 dmas = <&sdma 61>, <&sdma 62>;
522 dma-names = "tx", "rx";
523 pbias-supply = <&pbias_mmc_reg>;
527 compatible = "ti,omap3-hsmmc";
528 reg = <0x480b4000 0x200>;
531 dmas = <&sdma 47>, <&sdma 48>;
532 dma-names = "tx", "rx";
536 compatible = "ti,omap3-hsmmc";
537 reg = <0x480ad000 0x200>;
540 dmas = <&sdma 77>, <&sdma 78>;
541 dma-names = "tx", "rx";
544 mmu_isp: mmu@480bd400 {
546 compatible = "ti,omap2-iommu";
547 reg = <0x480bd400 0x80>;
549 ti,hwmods = "mmu_isp";
550 ti,#tlb-entries = <8>;
553 mmu_iva: mmu@5d000000 {
555 compatible = "ti,omap2-iommu";
556 reg = <0x5d000000 0x80>;
558 ti,hwmods = "mmu_iva";
563 compatible = "ti,omap3-wdt";
564 reg = <0x48314000 0x80>;
565 ti,hwmods = "wd_timer2";
568 mcbsp1: mcbsp@48074000 {
569 compatible = "ti,omap3-mcbsp";
570 reg = <0x48074000 0xff>;
572 interrupts = <16>, /* OCP compliant interrupt */
573 <59>, /* TX interrupt */
574 <60>; /* RX interrupt */
575 interrupt-names = "common", "tx", "rx";
576 ti,buffer-size = <128>;
577 ti,hwmods = "mcbsp1";
580 dma-names = "tx", "rx";
581 clocks = <&mcbsp1_fck>;
586 /* Likely needs to be tagged disabled on HS devices */
587 rng_target: target-module@480a0000 {
588 compatible = "ti,sysc-omap2", "ti,sysc";
589 reg = <0x480a003c 0x4>,
592 reg-names = "rev", "sysc", "syss";
593 ti,sysc-mask = <(SYSC_OMAP2_AUTOIDLE)>;
594 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
599 #address-cells = <1>;
601 ranges = <0 0x480a0000 0x2000>;
604 compatible = "ti,omap2-rng";
610 mcbsp2: mcbsp@49022000 {
611 compatible = "ti,omap3-mcbsp";
612 reg = <0x49022000 0xff>,
614 reg-names = "mpu", "sidetone";
615 interrupts = <17>, /* OCP compliant interrupt */
616 <62>, /* TX interrupt */
617 <63>, /* RX interrupt */
619 interrupt-names = "common", "tx", "rx", "sidetone";
620 ti,buffer-size = <1280>;
621 ti,hwmods = "mcbsp2", "mcbsp2_sidetone";
624 dma-names = "tx", "rx";
625 clocks = <&mcbsp2_fck>, <&mcbsp2_ick>;
626 clock-names = "fck", "ick";
630 mcbsp3: mcbsp@49024000 {
631 compatible = "ti,omap3-mcbsp";
632 reg = <0x49024000 0xff>,
634 reg-names = "mpu", "sidetone";
635 interrupts = <22>, /* OCP compliant interrupt */
636 <89>, /* TX interrupt */
637 <90>, /* RX interrupt */
639 interrupt-names = "common", "tx", "rx", "sidetone";
640 ti,buffer-size = <128>;
641 ti,hwmods = "mcbsp3", "mcbsp3_sidetone";
644 dma-names = "tx", "rx";
645 clocks = <&mcbsp3_fck>, <&mcbsp3_ick>;
646 clock-names = "fck", "ick";
650 mcbsp4: mcbsp@49026000 {
651 compatible = "ti,omap3-mcbsp";
652 reg = <0x49026000 0xff>;
654 interrupts = <23>, /* OCP compliant interrupt */
655 <54>, /* TX interrupt */
656 <55>; /* RX interrupt */
657 interrupt-names = "common", "tx", "rx";
658 ti,buffer-size = <128>;
659 ti,hwmods = "mcbsp4";
662 dma-names = "tx", "rx";
663 clocks = <&mcbsp4_fck>;
665 #sound-dai-cells = <0>;
669 mcbsp5: mcbsp@48096000 {
670 compatible = "ti,omap3-mcbsp";
671 reg = <0x48096000 0xff>;
673 interrupts = <27>, /* OCP compliant interrupt */
674 <81>, /* TX interrupt */
675 <82>; /* RX interrupt */
676 interrupt-names = "common", "tx", "rx";
677 ti,buffer-size = <128>;
678 ti,hwmods = "mcbsp5";
681 dma-names = "tx", "rx";
682 clocks = <&mcbsp5_fck>;
687 sham: sham@480c3000 {
688 compatible = "ti,omap3-sham";
690 reg = <0x480c3000 0x64>;
696 timer1_target: target-module@48318000 {
697 compatible = "ti,sysc-omap2-timer", "ti,sysc";
698 reg = <0x48318000 0x4>,
701 reg-names = "rev", "sysc", "syss";
702 ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
704 SYSC_OMAP2_ENAWAKEUP |
705 SYSC_OMAP2_SOFTRESET |
706 SYSC_OMAP2_AUTOIDLE)>;
707 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
711 clocks = <&gpt1_fck>, <&gpt1_ick>;
712 clock-names = "fck", "ick";
713 #address-cells = <1>;
715 ranges = <0x0 0x48318000 0x1000>;
718 compatible = "ti,omap3430-timer";
720 clocks = <&gpt1_fck>;
727 timer2_target: target-module@49032000 {
728 compatible = "ti,sysc-omap2-timer", "ti,sysc";
729 reg = <0x49032000 0x4>,
732 reg-names = "rev", "sysc", "syss";
733 ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
735 SYSC_OMAP2_ENAWAKEUP |
736 SYSC_OMAP2_SOFTRESET |
737 SYSC_OMAP2_AUTOIDLE)>;
738 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
742 clocks = <&gpt2_fck>, <&gpt2_ick>;
743 clock-names = "fck", "ick";
744 #address-cells = <1>;
746 ranges = <0x0 0x49032000 0x1000>;
749 compatible = "ti,omap3430-timer";
755 timer3: timer@49034000 {
756 compatible = "ti,omap3430-timer";
757 reg = <0x49034000 0x400>;
759 ti,hwmods = "timer3";
762 timer4: timer@49036000 {
763 compatible = "ti,omap3430-timer";
764 reg = <0x49036000 0x400>;
766 ti,hwmods = "timer4";
769 timer5: timer@49038000 {
770 compatible = "ti,omap3430-timer";
771 reg = <0x49038000 0x400>;
773 ti,hwmods = "timer5";
777 timer6: timer@4903a000 {
778 compatible = "ti,omap3430-timer";
779 reg = <0x4903a000 0x400>;
781 ti,hwmods = "timer6";
785 timer7: timer@4903c000 {
786 compatible = "ti,omap3430-timer";
787 reg = <0x4903c000 0x400>;
789 ti,hwmods = "timer7";
793 timer8: timer@4903e000 {
794 compatible = "ti,omap3430-timer";
795 reg = <0x4903e000 0x400>;
797 ti,hwmods = "timer8";
802 timer9: timer@49040000 {
803 compatible = "ti,omap3430-timer";
804 reg = <0x49040000 0x400>;
806 ti,hwmods = "timer9";
810 timer10: timer@48086000 {
811 compatible = "ti,omap3430-timer";
812 reg = <0x48086000 0x400>;
814 ti,hwmods = "timer10";
818 timer11: timer@48088000 {
819 compatible = "ti,omap3430-timer";
820 reg = <0x48088000 0x400>;
822 ti,hwmods = "timer11";
826 timer12_target: target-module@48304000 {
827 compatible = "ti,sysc-omap2-timer", "ti,sysc";
828 reg = <0x48304000 0x4>,
831 reg-names = "rev", "sysc", "syss";
832 ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
834 SYSC_OMAP2_ENAWAKEUP |
835 SYSC_OMAP2_SOFTRESET |
836 SYSC_OMAP2_AUTOIDLE)>;
837 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
841 clocks = <&gpt12_fck>, <&gpt12_ick>;
842 clock-names = "fck", "ick";
843 #address-cells = <1>;
845 ranges = <0x0 0x48304000 0x1000>;
848 compatible = "ti,omap3430-timer";
856 usbhstll: usbhstll@48062000 {
857 compatible = "ti,usbhs-tll";
858 reg = <0x48062000 0x1000>;
860 ti,hwmods = "usb_tll_hs";
863 usbhshost: usbhshost@48064000 {
864 compatible = "ti,usbhs-host";
865 reg = <0x48064000 0x400>;
866 ti,hwmods = "usb_host_hs";
867 #address-cells = <1>;
871 usbhsohci: ohci@48064400 {
872 compatible = "ti,ohci-omap3";
873 reg = <0x48064400 0x400>;
875 remote-wakeup-connected;
878 usbhsehci: ehci@48064800 {
879 compatible = "ti,ehci-omap";
880 reg = <0x48064800 0x400>;
885 gpmc: gpmc@6e000000 {
886 compatible = "ti,omap3430-gpmc";
888 reg = <0x6e000000 0x02d0>;
893 gpmc,num-waitpins = <4>;
894 #address-cells = <2>;
896 interrupt-controller;
897 #interrupt-cells = <2>;
902 usb_otg_hs: usb_otg_hs@480ab000 {
903 compatible = "ti,omap3-musb";
904 reg = <0x480ab000 0x1000>;
905 interrupts = <92>, <93>;
906 interrupt-names = "mc", "dma";
907 ti,hwmods = "usb_otg_hs";
914 compatible = "ti,omap3-dss";
915 reg = <0x48050000 0x200>;
917 ti,hwmods = "dss_core";
918 clocks = <&dss1_alwon_fck>;
920 #address-cells = <1>;
925 compatible = "ti,omap3-dispc";
926 reg = <0x48050400 0x400>;
928 ti,hwmods = "dss_dispc";
929 clocks = <&dss1_alwon_fck>;
933 dsi: encoder@4804fc00 {
934 compatible = "ti,omap3-dsi";
935 reg = <0x4804fc00 0x200>,
938 reg-names = "proto", "phy", "pll";
941 ti,hwmods = "dss_dsi1";
942 clocks = <&dss1_alwon_fck>, <&dss2_alwon_fck>;
943 clock-names = "fck", "sys_clk";
945 #address-cells = <1>;
949 rfbi: encoder@48050800 {
950 compatible = "ti,omap3-rfbi";
951 reg = <0x48050800 0x100>;
953 ti,hwmods = "dss_rfbi";
954 clocks = <&dss1_alwon_fck>, <&dss_ick>;
955 clock-names = "fck", "ick";
958 venc: encoder@48050c00 {
959 compatible = "ti,omap3-venc";
960 reg = <0x48050c00 0x100>;
962 ti,hwmods = "dss_venc";
963 clocks = <&dss_tv_fck>;
968 ssi: ssi-controller@48058000 {
969 compatible = "ti,omap3-ssi";
974 reg = <0x48058000 0x1000>,
980 interrupt-names = "gdd_mpu";
982 #address-cells = <1>;
986 ssi_port1: ssi-port@4805a000 {
987 compatible = "ti,omap3-ssi-port";
989 reg = <0x4805a000 0x800>,
998 ssi_port2: ssi-port@4805b000 {
999 compatible = "ti,omap3-ssi-port";
1001 reg = <0x4805b000 0x800>,
1013 #include "omap3xxx-clocks.dtsi"
1015 /* Preferred always-on timer for clockevent. Some boards must use dmtimer12 */
1017 ti,no-reset-on-init;
1020 assigned-clocks = <&gpt1_fck>;
1021 assigned-clock-parents = <&omap_32k_fck>;