2 * Device Tree Source for AM33XX SoC
4 * Copyright (C) 2012 Texas Instruments Incorporated - http://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/gpio/gpio.h>
12 #include <dt-bindings/pinctrl/am33xx.h>
13 #include <dt-bindings/clock/am3.h>
16 compatible = "ti,am33xx";
17 interrupt-parent = <&intc>;
38 ethernet0 = &cpsw_emac0;
39 ethernet1 = &cpsw_emac1;
48 compatible = "arm,cortex-a8";
52 operating-points-v2 = <&cpu0_opp_table>;
54 clocks = <&dpll_mpu_ck>;
57 clock-latency = <300000>; /* From omap-cpufreq driver */
61 cpu0_opp_table: opp-table {
62 compatible = "operating-points-v2-ti-cpu";
66 * The three following nodes are marked with opp-suspend
67 * because the can not be enabled simultaneously on a
71 opp-hz = /bits/ 64 <300000000>;
72 opp-microvolt = <950000 931000 969000>;
73 opp-supported-hw = <0x06 0x0010>;
78 opp-hz = /bits/ 64 <275000000>;
79 opp-microvolt = <1100000 1078000 1122000>;
80 opp-supported-hw = <0x01 0x00FF>;
85 opp-hz = /bits/ 64 <300000000>;
86 opp-microvolt = <1100000 1078000 1122000>;
87 opp-supported-hw = <0x06 0x0020>;
92 opp-hz = /bits/ 64 <500000000>;
93 opp-microvolt = <1100000 1078000 1122000>;
94 opp-supported-hw = <0x01 0xFFFF>;
98 opp-hz = /bits/ 64 <600000000>;
99 opp-microvolt = <1100000 1078000 1122000>;
100 opp-supported-hw = <0x06 0x0040>;
104 opp-hz = /bits/ 64 <600000000>;
105 opp-microvolt = <1200000 1176000 1224000>;
106 opp-supported-hw = <0x01 0xFFFF>;
110 opp-hz = /bits/ 64 <720000000>;
111 opp-microvolt = <1200000 1176000 1224000>;
112 opp-supported-hw = <0x06 0x0080>;
116 opp-hz = /bits/ 64 <720000000>;
117 opp-microvolt = <1260000 1234800 1285200>;
118 opp-supported-hw = <0x01 0xFFFF>;
122 opp-hz = /bits/ 64 <800000000>;
123 opp-microvolt = <1260000 1234800 1285200>;
124 opp-supported-hw = <0x06 0x0100>;
127 oppnitro-1000000000 {
128 opp-hz = /bits/ 64 <1000000000>;
129 opp-microvolt = <1325000 1298500 1351500>;
130 opp-supported-hw = <0x04 0x0200>;
135 compatible = "arm,cortex-a8-pmu";
137 reg = <0x4b000000 0x1000000>;
138 ti,hwmods = "debugss";
142 * The soc node represents the soc top level view. It is used for IPs
143 * that are not memory mapped in the MPU view or for the MPU itself.
146 compatible = "ti,omap-infra";
148 compatible = "ti,omap3-mpu";
154 * XXX: Use a flat representation of the AM33XX interconnect.
155 * The real AM33XX interconnect network is quite complex. Since
156 * it will not bring real advantage to represent that in DT
157 * for the moment, just use a fake OCP bus entry to represent
158 * the whole bus hierarchy.
161 compatible = "simple-bus";
162 #address-cells = <1>;
165 ti,hwmods = "l3_main";
167 l4_wkup: l4_wkup@44c00000 {
168 compatible = "ti,am3-l4-wkup", "simple-bus";
169 #address-cells = <1>;
171 ranges = <0 0x44c00000 0x280000>;
173 wkup_m3: wkup_m3@100000 {
174 compatible = "ti,am3352-wkup-m3";
175 reg = <0x100000 0x4000>,
177 reg-names = "umem", "dmem";
178 ti,hwmods = "wkup_m3";
179 ti,pm-firmware = "am335x-pm-firmware.elf";
183 compatible = "ti,am3-prcm", "simple-bus";
184 reg = <0x200000 0x4000>;
185 #address-cells = <1>;
187 ranges = <0 0x200000 0x4000>;
189 prcm_clocks: clocks {
190 #address-cells = <1>;
194 prcm_clockdomains: clockdomains {
199 compatible = "ti,am3-scm", "simple-bus";
200 reg = <0x210000 0x2000>;
201 #address-cells = <1>;
203 #pinctrl-cells = <1>;
204 ranges = <0 0x210000 0x2000>;
206 am33xx_pinmux: pinmux@800 {
207 compatible = "pinctrl-single";
209 #address-cells = <1>;
211 #pinctrl-cells = <1>;
212 pinctrl-single,register-width = <32>;
213 pinctrl-single,function-mask = <0x7f>;
216 scm_conf: scm_conf@0 {
217 compatible = "syscon", "simple-bus";
219 #address-cells = <1>;
221 ranges = <0 0 0x800>;
224 #address-cells = <1>;
229 wkup_m3_ipc: wkup_m3_ipc@1324 {
230 compatible = "ti,am3352-wkup-m3-ipc";
233 ti,rproc = <&wkup_m3>;
234 mboxes = <&mailbox &mbox_wkupm3>;
237 edma_xbar: dma-router@f90 {
238 compatible = "ti,am335x-edma-crossbar";
242 dma-masters = <&edma>;
245 scm_clockdomains: clockdomains {
250 intc: interrupt-controller@48200000 {
251 compatible = "ti,am33xx-intc";
252 interrupt-controller;
253 #interrupt-cells = <1>;
254 reg = <0x48200000 0x1000>;
257 edma: edma@49000000 {
258 compatible = "ti,edma3-tpcc";
260 reg = <0x49000000 0x10000>;
261 reg-names = "edma3_cc";
262 interrupts = <12 13 14>;
263 interrupt-names = "edma3_ccint", "edma3_mperr",
268 ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
271 ti,edma-memcpy-channels = <20 21>;
274 edma_tptc0: tptc@49800000 {
275 compatible = "ti,edma3-tptc";
277 reg = <0x49800000 0x100000>;
279 interrupt-names = "edma3_tcerrint";
282 edma_tptc1: tptc@49900000 {
283 compatible = "ti,edma3-tptc";
285 reg = <0x49900000 0x100000>;
287 interrupt-names = "edma3_tcerrint";
290 edma_tptc2: tptc@49a00000 {
291 compatible = "ti,edma3-tptc";
293 reg = <0x49a00000 0x100000>;
295 interrupt-names = "edma3_tcerrint";
298 gpio0: gpio@44e07000 {
299 compatible = "ti,omap4-gpio";
303 interrupt-controller;
304 #interrupt-cells = <2>;
305 reg = <0x44e07000 0x1000>;
309 gpio1: gpio@4804c000 {
310 compatible = "ti,omap4-gpio";
314 interrupt-controller;
315 #interrupt-cells = <2>;
316 reg = <0x4804c000 0x1000>;
320 gpio2: gpio@481ac000 {
321 compatible = "ti,omap4-gpio";
325 interrupt-controller;
326 #interrupt-cells = <2>;
327 reg = <0x481ac000 0x1000>;
331 gpio3: gpio@481ae000 {
332 compatible = "ti,omap4-gpio";
336 interrupt-controller;
337 #interrupt-cells = <2>;
338 reg = <0x481ae000 0x1000>;
342 uart0: serial@44e09000 {
343 compatible = "ti,am3352-uart", "ti,omap3-uart";
345 clock-frequency = <48000000>;
346 reg = <0x44e09000 0x2000>;
349 dmas = <&edma 26 0>, <&edma 27 0>;
350 dma-names = "tx", "rx";
353 uart1: serial@48022000 {
354 compatible = "ti,am3352-uart", "ti,omap3-uart";
356 clock-frequency = <48000000>;
357 reg = <0x48022000 0x2000>;
360 dmas = <&edma 28 0>, <&edma 29 0>;
361 dma-names = "tx", "rx";
364 uart2: serial@48024000 {
365 compatible = "ti,am3352-uart", "ti,omap3-uart";
367 clock-frequency = <48000000>;
368 reg = <0x48024000 0x2000>;
371 dmas = <&edma 30 0>, <&edma 31 0>;
372 dma-names = "tx", "rx";
375 uart3: serial@481a6000 {
376 compatible = "ti,am3352-uart", "ti,omap3-uart";
378 clock-frequency = <48000000>;
379 reg = <0x481a6000 0x2000>;
384 uart4: serial@481a8000 {
385 compatible = "ti,am3352-uart", "ti,omap3-uart";
387 clock-frequency = <48000000>;
388 reg = <0x481a8000 0x2000>;
393 uart5: serial@481aa000 {
394 compatible = "ti,am3352-uart", "ti,omap3-uart";
396 clock-frequency = <48000000>;
397 reg = <0x481aa000 0x2000>;
403 compatible = "ti,omap4-i2c";
404 #address-cells = <1>;
407 reg = <0x44e0b000 0x1000>;
413 compatible = "ti,omap4-i2c";
414 #address-cells = <1>;
417 reg = <0x4802a000 0x1000>;
423 compatible = "ti,omap4-i2c";
424 #address-cells = <1>;
427 reg = <0x4819c000 0x1000>;
433 compatible = "ti,omap4-hsmmc";
436 ti,needs-special-reset;
437 ti,needs-special-hs-handling;
438 dmas = <&edma_xbar 24 0 0
440 dma-names = "tx", "rx";
442 reg = <0x48060000 0x1000>;
447 compatible = "ti,omap4-hsmmc";
449 ti,needs-special-reset;
452 dma-names = "tx", "rx";
454 reg = <0x481d8000 0x1000>;
459 compatible = "ti,omap4-hsmmc";
461 ti,needs-special-reset;
463 reg = <0x47810000 0x1000>;
467 hwspinlock: spinlock@480ca000 {
468 compatible = "ti,omap4-hwspinlock";
469 reg = <0x480ca000 0x1000>;
470 ti,hwmods = "spinlock";
475 compatible = "ti,omap3-wdt";
476 ti,hwmods = "wd_timer2";
477 reg = <0x44e35000 0x1000>;
481 dcan0: can@481cc000 {
482 compatible = "ti,am3352-d_can";
483 ti,hwmods = "d_can0";
484 reg = <0x481cc000 0x2000>;
485 clocks = <&dcan0_fck>;
487 syscon-raminit = <&scm_conf 0x644 0>;
492 dcan1: can@481d0000 {
493 compatible = "ti,am3352-d_can";
494 ti,hwmods = "d_can1";
495 reg = <0x481d0000 0x2000>;
496 clocks = <&dcan1_fck>;
498 syscon-raminit = <&scm_conf 0x644 1>;
503 mailbox: mailbox@480c8000 {
504 compatible = "ti,omap4-mailbox";
505 reg = <0x480C8000 0x200>;
507 ti,hwmods = "mailbox";
509 ti,mbox-num-users = <4>;
510 ti,mbox-num-fifos = <8>;
511 mbox_wkupm3: wkup_m3 {
513 ti,mbox-tx = <0 0 0>;
514 ti,mbox-rx = <0 0 3>;
518 timer1: timer@44e31000 {
519 compatible = "ti,am335x-timer-1ms";
520 reg = <0x44e31000 0x400>;
522 ti,hwmods = "timer1";
524 clocks = <&timer1_fck>;
528 timer2: timer@48040000 {
529 compatible = "ti,am335x-timer";
530 reg = <0x48040000 0x400>;
532 ti,hwmods = "timer2";
533 clocks = <&timer2_fck>;
537 timer3: timer@48042000 {
538 compatible = "ti,am335x-timer";
539 reg = <0x48042000 0x400>;
541 ti,hwmods = "timer3";
544 timer4: timer@48044000 {
545 compatible = "ti,am335x-timer";
546 reg = <0x48044000 0x400>;
548 ti,hwmods = "timer4";
552 timer5: timer@48046000 {
553 compatible = "ti,am335x-timer";
554 reg = <0x48046000 0x400>;
556 ti,hwmods = "timer5";
560 timer6: timer@48048000 {
561 compatible = "ti,am335x-timer";
562 reg = <0x48048000 0x400>;
564 ti,hwmods = "timer6";
568 timer7: timer@4804a000 {
569 compatible = "ti,am335x-timer";
570 reg = <0x4804a000 0x400>;
572 ti,hwmods = "timer7";
577 compatible = "ti,am3352-rtc", "ti,da830-rtc";
578 reg = <0x44e3e000 0x1000>;
582 clocks = <&l4_per_clkctrl AM3_CLKDIV32K_CLKCTRL 0>;
583 clock-names = "int-clk";
587 compatible = "ti,omap4-mcspi";
588 #address-cells = <1>;
590 reg = <0x48030000 0x400>;
598 dma-names = "tx0", "rx0", "tx1", "rx1";
603 compatible = "ti,omap4-mcspi";
604 #address-cells = <1>;
606 reg = <0x481a0000 0x400>;
614 dma-names = "tx0", "rx0", "tx1", "rx1";
619 compatible = "ti,am33xx-usb";
620 reg = <0x47400000 0x1000>;
622 #address-cells = <1>;
624 ti,hwmods = "usb_otg_hs";
627 usb_ctrl_mod: control@44e10620 {
628 compatible = "ti,am335x-usb-ctrl-module";
629 reg = <0x44e10620 0x10
631 reg-names = "phy_ctrl", "wakeup";
635 usb0_phy: usb-phy@47401300 {
636 compatible = "ti,am335x-usb-phy";
637 reg = <0x47401300 0x100>;
640 ti,ctrl_mod = <&usb_ctrl_mod>;
645 compatible = "ti,musb-am33xx";
647 reg = <0x47401400 0x400
649 reg-names = "mc", "control";
652 interrupt-names = "mc";
654 mentor,multipoint = <1>;
655 mentor,num-eps = <16>;
656 mentor,ram-bits = <12>;
657 mentor,power = <500>;
660 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
661 &cppi41dma 2 0 &cppi41dma 3 0
662 &cppi41dma 4 0 &cppi41dma 5 0
663 &cppi41dma 6 0 &cppi41dma 7 0
664 &cppi41dma 8 0 &cppi41dma 9 0
665 &cppi41dma 10 0 &cppi41dma 11 0
666 &cppi41dma 12 0 &cppi41dma 13 0
667 &cppi41dma 14 0 &cppi41dma 0 1
668 &cppi41dma 1 1 &cppi41dma 2 1
669 &cppi41dma 3 1 &cppi41dma 4 1
670 &cppi41dma 5 1 &cppi41dma 6 1
671 &cppi41dma 7 1 &cppi41dma 8 1
672 &cppi41dma 9 1 &cppi41dma 10 1
673 &cppi41dma 11 1 &cppi41dma 12 1
674 &cppi41dma 13 1 &cppi41dma 14 1>;
676 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
677 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
679 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
680 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
684 usb1_phy: usb-phy@47401b00 {
685 compatible = "ti,am335x-usb-phy";
686 reg = <0x47401b00 0x100>;
689 ti,ctrl_mod = <&usb_ctrl_mod>;
694 compatible = "ti,musb-am33xx";
696 reg = <0x47401c00 0x400
698 reg-names = "mc", "control";
700 interrupt-names = "mc";
702 mentor,multipoint = <1>;
703 mentor,num-eps = <16>;
704 mentor,ram-bits = <12>;
705 mentor,power = <500>;
708 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
709 &cppi41dma 17 0 &cppi41dma 18 0
710 &cppi41dma 19 0 &cppi41dma 20 0
711 &cppi41dma 21 0 &cppi41dma 22 0
712 &cppi41dma 23 0 &cppi41dma 24 0
713 &cppi41dma 25 0 &cppi41dma 26 0
714 &cppi41dma 27 0 &cppi41dma 28 0
715 &cppi41dma 29 0 &cppi41dma 15 1
716 &cppi41dma 16 1 &cppi41dma 17 1
717 &cppi41dma 18 1 &cppi41dma 19 1
718 &cppi41dma 20 1 &cppi41dma 21 1
719 &cppi41dma 22 1 &cppi41dma 23 1
720 &cppi41dma 24 1 &cppi41dma 25 1
721 &cppi41dma 26 1 &cppi41dma 27 1
722 &cppi41dma 28 1 &cppi41dma 29 1>;
724 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
725 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
727 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
728 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
732 cppi41dma: dma-controller@47402000 {
733 compatible = "ti,am3359-cppi41";
734 reg = <0x47400000 0x1000
738 reg-names = "glue", "controller", "scheduler", "queuemgr";
740 interrupt-names = "glue";
742 #dma-channels = <30>;
743 #dma-requests = <256>;
748 epwmss0: epwmss@48300000 {
749 compatible = "ti,am33xx-pwmss";
750 reg = <0x48300000 0x10>;
751 ti,hwmods = "epwmss0";
752 #address-cells = <1>;
755 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
756 0x48300180 0x48300180 0x80 /* EQEP */
757 0x48300200 0x48300200 0x80>; /* EHRPWM */
759 ecap0: ecap@48300100 {
760 compatible = "ti,am3352-ecap",
763 reg = <0x48300100 0x80>;
764 clocks = <&l4ls_gclk>;
767 interrupt-names = "ecap0";
771 ehrpwm0: pwm@48300200 {
772 compatible = "ti,am3352-ehrpwm",
775 reg = <0x48300200 0x80>;
776 clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>;
777 clock-names = "tbclk", "fck";
782 epwmss1: epwmss@48302000 {
783 compatible = "ti,am33xx-pwmss";
784 reg = <0x48302000 0x10>;
785 ti,hwmods = "epwmss1";
786 #address-cells = <1>;
789 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
790 0x48302180 0x48302180 0x80 /* EQEP */
791 0x48302200 0x48302200 0x80>; /* EHRPWM */
793 ecap1: ecap@48302100 {
794 compatible = "ti,am3352-ecap",
797 reg = <0x48302100 0x80>;
798 clocks = <&l4ls_gclk>;
801 interrupt-names = "ecap1";
805 ehrpwm1: pwm@48302200 {
806 compatible = "ti,am3352-ehrpwm",
809 reg = <0x48302200 0x80>;
810 clocks = <&ehrpwm1_tbclk>, <&l4ls_gclk>;
811 clock-names = "tbclk", "fck";
816 epwmss2: epwmss@48304000 {
817 compatible = "ti,am33xx-pwmss";
818 reg = <0x48304000 0x10>;
819 ti,hwmods = "epwmss2";
820 #address-cells = <1>;
823 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
824 0x48304180 0x48304180 0x80 /* EQEP */
825 0x48304200 0x48304200 0x80>; /* EHRPWM */
827 ecap2: ecap@48304100 {
828 compatible = "ti,am3352-ecap",
831 reg = <0x48304100 0x80>;
832 clocks = <&l4ls_gclk>;
835 interrupt-names = "ecap2";
839 ehrpwm2: pwm@48304200 {
840 compatible = "ti,am3352-ehrpwm",
843 reg = <0x48304200 0x80>;
844 clocks = <&ehrpwm2_tbclk>, <&l4ls_gclk>;
845 clock-names = "tbclk", "fck";
850 mac: ethernet@4a100000 {
851 compatible = "ti,am335x-cpsw","ti,cpsw";
852 ti,hwmods = "cpgmac0";
853 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
854 clock-names = "fck", "cpts";
855 cpdma_channels = <8>;
856 ale_entries = <1024>;
857 bd_ram_size = <0x2000>;
858 mac_control = <0x20>;
861 cpts_clock_mult = <0x80000000>;
862 cpts_clock_shift = <29>;
863 reg = <0x4a100000 0x800
865 #address-cells = <1>;
873 interrupts = <40 41 42 43>;
875 syscon = <&scm_conf>;
878 davinci_mdio: mdio@4a101000 {
879 compatible = "ti,cpsw-mdio","ti,davinci_mdio";
880 #address-cells = <1>;
882 ti,hwmods = "davinci_mdio";
883 bus_freq = <1000000>;
884 reg = <0x4a101000 0x100>;
888 cpsw_emac0: slave@4a100200 {
889 /* Filled in by U-Boot */
890 mac-address = [ 00 00 00 00 00 00 ];
893 cpsw_emac1: slave@4a100300 {
894 /* Filled in by U-Boot */
895 mac-address = [ 00 00 00 00 00 00 ];
898 phy_sel: cpsw-phy-sel@44e10650 {
899 compatible = "ti,am3352-cpsw-phy-sel";
900 reg= <0x44e10650 0x4>;
901 reg-names = "gmii-sel";
905 ocmcram: ocmcram@40300000 {
906 compatible = "mmio-sram";
907 reg = <0x40300000 0x10000>; /* 64k */
911 compatible = "ti,am3352-elm";
912 reg = <0x48080000 0x2000>;
918 lcdc: lcdc@4830e000 {
919 compatible = "ti,am33xx-tilcdc";
920 reg = <0x4830e000 0x1000>;
926 tscadc: tscadc@44e0d000 {
927 compatible = "ti,am3359-tscadc";
928 reg = <0x44e0d000 0x1000>;
930 ti,hwmods = "adc_tsc";
932 dmas = <&edma 53 0>, <&edma 57 0>;
933 dma-names = "fifo0", "fifo1";
936 compatible = "ti,am3359-tsc";
939 #io-channel-cells = <1>;
940 compatible = "ti,am3359-adc";
944 emif: emif@4c000000 {
945 compatible = "ti,emif-am3352";
946 reg = <0x4c000000 0x1000000>;
950 gpmc: gpmc@50000000 {
951 compatible = "ti,am3352-gpmc";
954 reg = <0x50000000 0x2000>;
959 gpmc,num-waitpins = <2>;
960 #address-cells = <2>;
962 interrupt-controller;
963 #interrupt-cells = <2>;
969 sham: sham@53100000 {
970 compatible = "ti,omap4-sham";
972 reg = <0x53100000 0x200>;
979 compatible = "ti,omap4-aes";
981 reg = <0x53500000 0xa0>;
985 dma-names = "tx", "rx";
988 mcasp0: mcasp@48038000 {
989 compatible = "ti,am33xx-mcasp-audio";
990 ti,hwmods = "mcasp0";
991 reg = <0x48038000 0x2000>,
992 <0x46000000 0x400000>;
993 reg-names = "mpu", "dat";
994 interrupts = <80>, <81>;
995 interrupt-names = "tx", "rx";
999 dma-names = "tx", "rx";
1002 mcasp1: mcasp@4803c000 {
1003 compatible = "ti,am33xx-mcasp-audio";
1004 ti,hwmods = "mcasp1";
1005 reg = <0x4803C000 0x2000>,
1006 <0x46400000 0x400000>;
1007 reg-names = "mpu", "dat";
1008 interrupts = <82>, <83>;
1009 interrupt-names = "tx", "rx";
1010 status = "disabled";
1011 dmas = <&edma 10 2>,
1013 dma-names = "tx", "rx";
1017 compatible = "ti,omap4-rng";
1019 reg = <0x48310000 0x2000>;
1025 #include "am33xx-clocks.dtsi"