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>;
40 compatible = "arm,cortex-a8";
47 clock-latency = <300000>; /* From omap-cpufreq driver */
52 compatible = "arm,cortex-a8-pmu";
53 reg = <0x54000000 0x800000>;
55 ti,hwmods = "debugss";
59 * The soc node represents the soc top level view. It is used for IPs
60 * that are not memory mapped in the MPU view or for the MPU itself.
63 compatible = "ti,omap-infra";
65 compatible = "ti,omap3-mpu";
70 compatible = "ti,iva2.2";
74 compatible = "ti,omap3-c64";
80 * XXX: Use a flat representation of the OMAP3 interconnect.
81 * The real OMAP interconnect network is quite complex.
82 * Since it will not bring real advantage to represent that in DT for
83 * the moment, just use a fake OCP bus entry to represent the whole bus
87 compatible = "ti,omap3-l3-smx", "simple-bus";
88 reg = <0x68000000 0x10000>;
93 ti,hwmods = "l3_main";
95 l4_core: l4@48000000 {
96 compatible = "ti,omap3-l4-core", "simple-bus";
99 ranges = <0 0x48000000 0x1000000>;
102 compatible = "ti,omap3-scm", "simple-bus";
103 reg = <0x2000 0x2000>;
104 #address-cells = <1>;
106 ranges = <0 0x2000 0x2000>;
108 omap3_pmx_core: pinmux@30 {
109 compatible = "ti,omap3-padconf",
112 #address-cells = <1>;
114 #pinctrl-cells = <1>;
115 #interrupt-cells = <1>;
116 interrupt-controller;
117 pinctrl-single,register-width = <16>;
118 pinctrl-single,function-mask = <0xff1f>;
121 scm_conf: scm_conf@270 {
122 compatible = "syscon", "simple-bus";
124 #address-cells = <1>;
126 ranges = <0 0x270 0x330>;
128 pbias_regulator: pbias_regulator@2b0 {
129 compatible = "ti,pbias-omap3", "ti,pbias-omap";
131 syscon = <&scm_conf>;
132 pbias_mmc_reg: pbias_mmc_omap2430 {
133 regulator-name = "pbias_mmc_omap2430";
134 regulator-min-microvolt = <1800000>;
135 regulator-max-microvolt = <3000000>;
140 #address-cells = <1>;
145 scm_clockdomains: clockdomains {
148 omap3_pmx_wkup: pinmux@a00 {
149 compatible = "ti,omap3-padconf",
152 #address-cells = <1>;
154 #pinctrl-cells = <1>;
155 #interrupt-cells = <1>;
156 interrupt-controller;
157 pinctrl-single,register-width = <16>;
158 pinctrl-single,function-mask = <0xff1f>;
163 aes1_target: target-module@480a6000 {
164 compatible = "ti,sysc-omap2", "ti,sysc";
165 reg = <0x480a6044 0x4>,
168 reg-names = "rev", "sysc", "syss";
169 ti,sysc-mask = <(SYSC_OMAP2_AUTOIDLE)>;
170 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
174 clocks = <&aes1_ick>;
176 #address-cells = <1>;
178 ranges = <0 0x480a6000 0x2000>;
181 compatible = "ti,omap3-aes";
184 dmas = <&sdma 9 &sdma 10>;
185 dma-names = "tx", "rx";
189 aes2_target: target-module@480c5000 {
190 compatible = "ti,sysc-omap2", "ti,sysc";
191 reg = <0x480c5044 0x4>,
194 reg-names = "rev", "sysc", "syss";
195 ti,sysc-mask = <(SYSC_OMAP2_AUTOIDLE)>;
196 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
200 clocks = <&aes2_ick>;
202 #address-cells = <1>;
204 ranges = <0 0x480c5000 0x2000>;
207 compatible = "ti,omap3-aes";
210 dmas = <&sdma 65 &sdma 66>;
211 dma-names = "tx", "rx";
216 compatible = "ti,omap3-prm";
217 reg = <0x48306000 0x4000>;
221 #address-cells = <1>;
225 prm_clockdomains: clockdomains {
230 compatible = "ti,omap3-cm";
231 reg = <0x48004000 0x4000>;
234 #address-cells = <1>;
238 cm_clockdomains: clockdomains {
242 target-module@48320000 {
243 compatible = "ti,sysc-omap2", "ti,sysc";
244 reg = <0x48320000 0x4>,
246 reg-names = "rev", "sysc";
247 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
249 clocks = <&wkup_32k_fck>, <&omap_32ksync_ick>;
250 clock-names = "fck", "ick";
251 #address-cells = <1>;
253 ranges = <0x0 0x48320000 0x1000>;
255 counter32k: counter@0 {
256 compatible = "ti,omap-counter32k";
261 intc: interrupt-controller@48200000 {
262 compatible = "ti,omap3-intc";
263 interrupt-controller;
264 #interrupt-cells = <1>;
265 reg = <0x48200000 0x1000>;
268 target-module@48056000 {
269 compatible = "ti,sysc-omap2", "ti,sysc";
270 reg = <0x48056000 0x4>,
273 reg-names = "rev", "sysc", "syss";
274 ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
276 SYSC_OMAP2_SOFTRESET |
277 SYSC_OMAP2_AUTOIDLE)>;
278 ti,sysc-midle = <SYSC_IDLE_FORCE>,
281 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
285 /* Domains (V, P, C): core, core_pwrdm, core_l3_clkdm */
286 clocks = <&core_l3_ick>;
288 #address-cells = <1>;
290 ranges = <0 0x48056000 0x1000>;
292 sdma: dma-controller@0 {
293 compatible = "ti,omap3430-sdma", "ti,omap-sdma";
305 gpio1: gpio@48310000 {
306 compatible = "ti,omap3-gpio";
307 reg = <0x48310000 0x200>;
313 interrupt-controller;
314 #interrupt-cells = <2>;
317 gpio2: gpio@49050000 {
318 compatible = "ti,omap3-gpio";
319 reg = <0x49050000 0x200>;
324 interrupt-controller;
325 #interrupt-cells = <2>;
328 gpio3: gpio@49052000 {
329 compatible = "ti,omap3-gpio";
330 reg = <0x49052000 0x200>;
335 interrupt-controller;
336 #interrupt-cells = <2>;
339 gpio4: gpio@49054000 {
340 compatible = "ti,omap3-gpio";
341 reg = <0x49054000 0x200>;
346 interrupt-controller;
347 #interrupt-cells = <2>;
350 gpio5: gpio@49056000 {
351 compatible = "ti,omap3-gpio";
352 reg = <0x49056000 0x200>;
357 interrupt-controller;
358 #interrupt-cells = <2>;
361 gpio6: gpio@49058000 {
362 compatible = "ti,omap3-gpio";
363 reg = <0x49058000 0x200>;
368 interrupt-controller;
369 #interrupt-cells = <2>;
372 uart1: serial@4806a000 {
373 compatible = "ti,omap3-uart";
374 reg = <0x4806a000 0x2000>;
375 interrupts-extended = <&intc 72>;
376 dmas = <&sdma 49 &sdma 50>;
377 dma-names = "tx", "rx";
379 clock-frequency = <48000000>;
382 uart2: serial@4806c000 {
383 compatible = "ti,omap3-uart";
384 reg = <0x4806c000 0x400>;
385 interrupts-extended = <&intc 73>;
386 dmas = <&sdma 51 &sdma 52>;
387 dma-names = "tx", "rx";
389 clock-frequency = <48000000>;
392 uart3: serial@49020000 {
393 compatible = "ti,omap3-uart";
394 reg = <0x49020000 0x400>;
395 interrupts-extended = <&intc 74>;
396 dmas = <&sdma 53 &sdma 54>;
397 dma-names = "tx", "rx";
399 clock-frequency = <48000000>;
403 compatible = "ti,omap3-i2c";
404 reg = <0x48070000 0x80>;
406 dmas = <&sdma 27 &sdma 28>;
407 dma-names = "tx", "rx";
408 #address-cells = <1>;
414 compatible = "ti,omap3-i2c";
415 reg = <0x48072000 0x80>;
417 dmas = <&sdma 29 &sdma 30>;
418 dma-names = "tx", "rx";
419 #address-cells = <1>;
425 compatible = "ti,omap3-i2c";
426 reg = <0x48060000 0x80>;
428 dmas = <&sdma 25 &sdma 26>;
429 dma-names = "tx", "rx";
430 #address-cells = <1>;
435 mailbox: mailbox@48094000 {
436 compatible = "ti,omap3-mailbox";
437 ti,hwmods = "mailbox";
438 reg = <0x48094000 0x200>;
441 ti,mbox-num-users = <2>;
442 ti,mbox-num-fifos = <2>;
444 ti,mbox-tx = <0 0 0>;
445 ti,mbox-rx = <1 0 0>;
449 mcspi1: spi@48098000 {
450 compatible = "ti,omap2-mcspi";
451 reg = <0x48098000 0x100>;
453 #address-cells = <1>;
455 ti,hwmods = "mcspi1";
465 dma-names = "tx0", "rx0", "tx1", "rx1",
466 "tx2", "rx2", "tx3", "rx3";
469 mcspi2: spi@4809a000 {
470 compatible = "ti,omap2-mcspi";
471 reg = <0x4809a000 0x100>;
473 #address-cells = <1>;
475 ti,hwmods = "mcspi2";
481 dma-names = "tx0", "rx0", "tx1", "rx1";
484 mcspi3: spi@480b8000 {
485 compatible = "ti,omap2-mcspi";
486 reg = <0x480b8000 0x100>;
488 #address-cells = <1>;
490 ti,hwmods = "mcspi3";
496 dma-names = "tx0", "rx0", "tx1", "rx1";
499 mcspi4: spi@480ba000 {
500 compatible = "ti,omap2-mcspi";
501 reg = <0x480ba000 0x100>;
503 #address-cells = <1>;
505 ti,hwmods = "mcspi4";
507 dmas = <&sdma 70>, <&sdma 71>;
508 dma-names = "tx0", "rx0";
511 hdqw1w: 1w@480b2000 {
512 compatible = "ti,omap3-1w";
513 reg = <0x480b2000 0x1000>;
519 compatible = "ti,omap3-hsmmc";
520 reg = <0x4809c000 0x200>;
524 dmas = <&sdma 61>, <&sdma 62>;
525 dma-names = "tx", "rx";
526 pbias-supply = <&pbias_mmc_reg>;
530 compatible = "ti,omap3-hsmmc";
531 reg = <0x480b4000 0x200>;
534 dmas = <&sdma 47>, <&sdma 48>;
535 dma-names = "tx", "rx";
539 compatible = "ti,omap3-hsmmc";
540 reg = <0x480ad000 0x200>;
543 dmas = <&sdma 77>, <&sdma 78>;
544 dma-names = "tx", "rx";
547 mmu_isp: mmu@480bd400 {
549 compatible = "ti,omap2-iommu";
550 reg = <0x480bd400 0x80>;
552 ti,hwmods = "mmu_isp";
553 ti,#tlb-entries = <8>;
556 mmu_iva: mmu@5d000000 {
558 compatible = "ti,omap2-iommu";
559 reg = <0x5d000000 0x80>;
561 ti,hwmods = "mmu_iva";
566 compatible = "ti,omap3-wdt";
567 reg = <0x48314000 0x80>;
568 ti,hwmods = "wd_timer2";
571 mcbsp1: mcbsp@48074000 {
572 compatible = "ti,omap3-mcbsp";
573 reg = <0x48074000 0xff>;
575 interrupts = <16>, /* OCP compliant interrupt */
576 <59>, /* TX interrupt */
577 <60>; /* RX interrupt */
578 interrupt-names = "common", "tx", "rx";
579 ti,buffer-size = <128>;
580 ti,hwmods = "mcbsp1";
583 dma-names = "tx", "rx";
584 clocks = <&mcbsp1_fck>;
589 /* Likely needs to be tagged disabled on HS devices */
590 rng_target: target-module@480a0000 {
591 compatible = "ti,sysc-omap2", "ti,sysc";
592 reg = <0x480a003c 0x4>,
595 reg-names = "rev", "sysc", "syss";
596 ti,sysc-mask = <(SYSC_OMAP2_AUTOIDLE)>;
597 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
602 #address-cells = <1>;
604 ranges = <0 0x480a0000 0x2000>;
607 compatible = "ti,omap2-rng";
613 mcbsp2: mcbsp@49022000 {
614 compatible = "ti,omap3-mcbsp";
615 reg = <0x49022000 0xff>,
617 reg-names = "mpu", "sidetone";
618 interrupts = <17>, /* OCP compliant interrupt */
619 <62>, /* TX interrupt */
620 <63>, /* RX interrupt */
622 interrupt-names = "common", "tx", "rx", "sidetone";
623 ti,buffer-size = <1280>;
624 ti,hwmods = "mcbsp2", "mcbsp2_sidetone";
627 dma-names = "tx", "rx";
628 clocks = <&mcbsp2_fck>, <&mcbsp2_ick>;
629 clock-names = "fck", "ick";
633 mcbsp3: mcbsp@49024000 {
634 compatible = "ti,omap3-mcbsp";
635 reg = <0x49024000 0xff>,
637 reg-names = "mpu", "sidetone";
638 interrupts = <22>, /* OCP compliant interrupt */
639 <89>, /* TX interrupt */
640 <90>, /* RX interrupt */
642 interrupt-names = "common", "tx", "rx", "sidetone";
643 ti,buffer-size = <128>;
644 ti,hwmods = "mcbsp3", "mcbsp3_sidetone";
647 dma-names = "tx", "rx";
648 clocks = <&mcbsp3_fck>, <&mcbsp3_ick>;
649 clock-names = "fck", "ick";
653 mcbsp4: mcbsp@49026000 {
654 compatible = "ti,omap3-mcbsp";
655 reg = <0x49026000 0xff>;
657 interrupts = <23>, /* OCP compliant interrupt */
658 <54>, /* TX interrupt */
659 <55>; /* RX interrupt */
660 interrupt-names = "common", "tx", "rx";
661 ti,buffer-size = <128>;
662 ti,hwmods = "mcbsp4";
665 dma-names = "tx", "rx";
666 clocks = <&mcbsp4_fck>;
668 #sound-dai-cells = <0>;
672 mcbsp5: mcbsp@48096000 {
673 compatible = "ti,omap3-mcbsp";
674 reg = <0x48096000 0xff>;
676 interrupts = <27>, /* OCP compliant interrupt */
677 <81>, /* TX interrupt */
678 <82>; /* RX interrupt */
679 interrupt-names = "common", "tx", "rx";
680 ti,buffer-size = <128>;
681 ti,hwmods = "mcbsp5";
684 dma-names = "tx", "rx";
685 clocks = <&mcbsp5_fck>;
690 sham: sham@480c3000 {
691 compatible = "ti,omap3-sham";
693 reg = <0x480c3000 0x64>;
699 timer1_target: target-module@48318000 {
700 compatible = "ti,sysc-omap2-timer", "ti,sysc";
701 reg = <0x48318000 0x4>,
704 reg-names = "rev", "sysc", "syss";
705 ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
707 SYSC_OMAP2_ENAWAKEUP |
708 SYSC_OMAP2_SOFTRESET |
709 SYSC_OMAP2_AUTOIDLE)>;
710 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
714 clocks = <&gpt1_fck>, <&gpt1_ick>;
715 clock-names = "fck", "ick";
716 #address-cells = <1>;
718 ranges = <0x0 0x48318000 0x1000>;
721 compatible = "ti,omap3430-timer";
723 clocks = <&gpt1_fck>;
730 timer2_target: target-module@49032000 {
731 compatible = "ti,sysc-omap2-timer", "ti,sysc";
732 reg = <0x49032000 0x4>,
735 reg-names = "rev", "sysc", "syss";
736 ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
738 SYSC_OMAP2_ENAWAKEUP |
739 SYSC_OMAP2_SOFTRESET |
740 SYSC_OMAP2_AUTOIDLE)>;
741 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
745 clocks = <&gpt2_fck>, <&gpt2_ick>;
746 clock-names = "fck", "ick";
747 #address-cells = <1>;
749 ranges = <0x0 0x49032000 0x1000>;
752 compatible = "ti,omap3430-timer";
758 timer3: timer@49034000 {
759 compatible = "ti,omap3430-timer";
760 reg = <0x49034000 0x400>;
762 ti,hwmods = "timer3";
765 timer4: timer@49036000 {
766 compatible = "ti,omap3430-timer";
767 reg = <0x49036000 0x400>;
769 ti,hwmods = "timer4";
772 timer5: timer@49038000 {
773 compatible = "ti,omap3430-timer";
774 reg = <0x49038000 0x400>;
776 ti,hwmods = "timer5";
780 timer6: timer@4903a000 {
781 compatible = "ti,omap3430-timer";
782 reg = <0x4903a000 0x400>;
784 ti,hwmods = "timer6";
788 timer7: timer@4903c000 {
789 compatible = "ti,omap3430-timer";
790 reg = <0x4903c000 0x400>;
792 ti,hwmods = "timer7";
796 timer8: timer@4903e000 {
797 compatible = "ti,omap3430-timer";
798 reg = <0x4903e000 0x400>;
800 ti,hwmods = "timer8";
805 timer9: timer@49040000 {
806 compatible = "ti,omap3430-timer";
807 reg = <0x49040000 0x400>;
809 ti,hwmods = "timer9";
813 timer10: timer@48086000 {
814 compatible = "ti,omap3430-timer";
815 reg = <0x48086000 0x400>;
817 ti,hwmods = "timer10";
821 timer11: timer@48088000 {
822 compatible = "ti,omap3430-timer";
823 reg = <0x48088000 0x400>;
825 ti,hwmods = "timer11";
829 timer12_target: target-module@48304000 {
830 compatible = "ti,sysc-omap2-timer", "ti,sysc";
831 reg = <0x48304000 0x4>,
834 reg-names = "rev", "sysc", "syss";
835 ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
837 SYSC_OMAP2_ENAWAKEUP |
838 SYSC_OMAP2_SOFTRESET |
839 SYSC_OMAP2_AUTOIDLE)>;
840 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
844 clocks = <&gpt12_fck>, <&gpt12_ick>;
845 clock-names = "fck", "ick";
846 #address-cells = <1>;
848 ranges = <0x0 0x48304000 0x1000>;
851 compatible = "ti,omap3430-timer";
859 usbhstll: usbhstll@48062000 {
860 compatible = "ti,usbhs-tll";
861 reg = <0x48062000 0x1000>;
863 ti,hwmods = "usb_tll_hs";
866 usbhshost: usbhshost@48064000 {
867 compatible = "ti,usbhs-host";
868 reg = <0x48064000 0x400>;
869 ti,hwmods = "usb_host_hs";
870 #address-cells = <1>;
874 usbhsohci: ohci@48064400 {
875 compatible = "ti,ohci-omap3";
876 reg = <0x48064400 0x400>;
878 remote-wakeup-connected;
881 usbhsehci: ehci@48064800 {
882 compatible = "ti,ehci-omap";
883 reg = <0x48064800 0x400>;
888 gpmc: gpmc@6e000000 {
889 compatible = "ti,omap3430-gpmc";
891 reg = <0x6e000000 0x02d0>;
896 gpmc,num-waitpins = <4>;
897 #address-cells = <2>;
899 interrupt-controller;
900 #interrupt-cells = <2>;
905 usb_otg_hs: usb_otg_hs@480ab000 {
906 compatible = "ti,omap3-musb";
907 reg = <0x480ab000 0x1000>;
908 interrupts = <92>, <93>;
909 interrupt-names = "mc", "dma";
910 ti,hwmods = "usb_otg_hs";
917 compatible = "ti,omap3-dss";
918 reg = <0x48050000 0x200>;
920 ti,hwmods = "dss_core";
921 clocks = <&dss1_alwon_fck>;
923 #address-cells = <1>;
928 compatible = "ti,omap3-dispc";
929 reg = <0x48050400 0x400>;
931 ti,hwmods = "dss_dispc";
932 clocks = <&dss1_alwon_fck>;
936 dsi: encoder@4804fc00 {
937 compatible = "ti,omap3-dsi";
938 reg = <0x4804fc00 0x200>,
941 reg-names = "proto", "phy", "pll";
944 ti,hwmods = "dss_dsi1";
945 clocks = <&dss1_alwon_fck>, <&dss2_alwon_fck>;
946 clock-names = "fck", "sys_clk";
948 #address-cells = <1>;
952 rfbi: encoder@48050800 {
953 compatible = "ti,omap3-rfbi";
954 reg = <0x48050800 0x100>;
956 ti,hwmods = "dss_rfbi";
957 clocks = <&dss1_alwon_fck>, <&dss_ick>;
958 clock-names = "fck", "ick";
961 venc: encoder@48050c00 {
962 compatible = "ti,omap3-venc";
963 reg = <0x48050c00 0x100>;
965 ti,hwmods = "dss_venc";
966 clocks = <&dss_tv_fck>;
971 ssi: ssi-controller@48058000 {
972 compatible = "ti,omap3-ssi";
977 reg = <0x48058000 0x1000>,
983 interrupt-names = "gdd_mpu";
985 #address-cells = <1>;
989 ssi_port1: ssi-port@4805a000 {
990 compatible = "ti,omap3-ssi-port";
992 reg = <0x4805a000 0x800>,
1001 ssi_port2: ssi-port@4805b000 {
1002 compatible = "ti,omap3-ssi-port";
1004 reg = <0x4805b000 0x800>,
1016 #include "omap3xxx-clocks.dtsi"
1018 /* Preferred always-on timer for clockevent. Some boards must use dmtimer12 */
1020 ti,no-reset-on-init;
1023 assigned-clocks = <&gpt1_fck>;
1024 assigned-clock-parents = <&omap_32k_fck>;