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>
15 compatible = "ti,am33xx";
16 interrupt-parent = <&intc>;
37 ethernet0 = &cpsw_emac0;
38 ethernet1 = &cpsw_emac1;
47 compatible = "arm,cortex-a8";
51 operating-points-v2 = <&cpu0_opp_table>;
53 clocks = <&dpll_mpu_ck>;
56 clock-latency = <300000>; /* From omap-cpufreq driver */
60 cpu0_opp_table: opp-table {
61 compatible = "operating-points-v2-ti-cpu";
65 * The three following nodes are marked with opp-suspend
66 * because the can not be enabled simultaneously on a
70 opp-hz = /bits/ 64 <300000000>;
71 opp-microvolt = <950000 931000 969000>;
72 opp-supported-hw = <0x06 0x0010>;
77 opp-hz = /bits/ 64 <275000000>;
78 opp-microvolt = <1100000 1078000 1122000>;
79 opp-supported-hw = <0x01 0x00FF>;
84 opp-hz = /bits/ 64 <300000000>;
85 opp-microvolt = <1100000 1078000 1122000>;
86 opp-supported-hw = <0x06 0x0020>;
91 opp-hz = /bits/ 64 <500000000>;
92 opp-microvolt = <1100000 1078000 1122000>;
93 opp-supported-hw = <0x01 0xFFFF>;
97 opp-hz = /bits/ 64 <600000000>;
98 opp-microvolt = <1100000 1078000 1122000>;
99 opp-supported-hw = <0x06 0x0040>;
103 opp-hz = /bits/ 64 <600000000>;
104 opp-microvolt = <1200000 1176000 1224000>;
105 opp-supported-hw = <0x01 0xFFFF>;
109 opp-hz = /bits/ 64 <720000000>;
110 opp-microvolt = <1200000 1176000 1224000>;
111 opp-supported-hw = <0x06 0x0080>;
115 opp-hz = /bits/ 64 <720000000>;
116 opp-microvolt = <1260000 1234800 1285200>;
117 opp-supported-hw = <0x01 0xFFFF>;
121 opp-hz = /bits/ 64 <800000000>;
122 opp-microvolt = <1260000 1234800 1285200>;
123 opp-supported-hw = <0x06 0x0100>;
126 oppnitro-1000000000 {
127 opp-hz = /bits/ 64 <1000000000>;
128 opp-microvolt = <1325000 1298500 1351500>;
129 opp-supported-hw = <0x04 0x0200>;
134 compatible = "arm,cortex-a8-pmu";
136 reg = <0x4b000000 0x1000000>;
137 ti,hwmods = "debugss";
141 * The soc node represents the soc top level view. It is used for IPs
142 * that are not memory mapped in the MPU view or for the MPU itself.
145 compatible = "ti,omap-infra";
147 compatible = "ti,omap3-mpu";
153 * XXX: Use a flat representation of the AM33XX interconnect.
154 * The real AM33XX interconnect network is quite complex. Since
155 * it will not bring real advantage to represent that in DT
156 * for the moment, just use a fake OCP bus entry to represent
157 * the whole bus hierarchy.
160 compatible = "simple-bus";
161 #address-cells = <1>;
164 ti,hwmods = "l3_main";
166 l4_wkup: l4_wkup@44c00000 {
167 compatible = "ti,am3-l4-wkup", "simple-bus";
168 #address-cells = <1>;
170 ranges = <0 0x44c00000 0x280000>;
172 wkup_m3: wkup_m3@100000 {
173 compatible = "ti,am3352-wkup-m3";
174 reg = <0x100000 0x4000>,
176 reg-names = "umem", "dmem";
177 ti,hwmods = "wkup_m3";
178 ti,pm-firmware = "am335x-pm-firmware.elf";
182 compatible = "ti,am3-prcm";
183 reg = <0x200000 0x4000>;
185 prcm_clocks: clocks {
186 #address-cells = <1>;
190 prcm_clockdomains: clockdomains {
195 compatible = "ti,am3-scm", "simple-bus";
196 reg = <0x210000 0x2000>;
197 #address-cells = <1>;
199 #pinctrl-cells = <1>;
200 ranges = <0 0x210000 0x2000>;
202 am33xx_pinmux: pinmux@800 {
203 compatible = "pinctrl-single";
205 #address-cells = <1>;
207 #pinctrl-cells = <1>;
208 pinctrl-single,register-width = <32>;
209 pinctrl-single,function-mask = <0x7f>;
212 scm_conf: scm_conf@0 {
213 compatible = "syscon", "simple-bus";
215 #address-cells = <1>;
217 ranges = <0 0 0x800>;
220 #address-cells = <1>;
225 wkup_m3_ipc: wkup_m3_ipc@1324 {
226 compatible = "ti,am3352-wkup-m3-ipc";
229 ti,rproc = <&wkup_m3>;
230 mboxes = <&mailbox &mbox_wkupm3>;
233 edma_xbar: dma-router@f90 {
234 compatible = "ti,am335x-edma-crossbar";
238 dma-masters = <&edma>;
241 scm_clockdomains: clockdomains {
246 intc: interrupt-controller@48200000 {
247 compatible = "ti,am33xx-intc";
248 interrupt-controller;
249 #interrupt-cells = <1>;
250 reg = <0x48200000 0x1000>;
253 edma: edma@49000000 {
254 compatible = "ti,edma3-tpcc";
256 reg = <0x49000000 0x10000>;
257 reg-names = "edma3_cc";
258 interrupts = <12 13 14>;
259 interrupt-names = "edma3_ccint", "edma3_mperr",
264 ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
267 ti,edma-memcpy-channels = <20 21>;
270 edma_tptc0: tptc@49800000 {
271 compatible = "ti,edma3-tptc";
273 reg = <0x49800000 0x100000>;
275 interrupt-names = "edma3_tcerrint";
278 edma_tptc1: tptc@49900000 {
279 compatible = "ti,edma3-tptc";
281 reg = <0x49900000 0x100000>;
283 interrupt-names = "edma3_tcerrint";
286 edma_tptc2: tptc@49a00000 {
287 compatible = "ti,edma3-tptc";
289 reg = <0x49a00000 0x100000>;
291 interrupt-names = "edma3_tcerrint";
294 gpio0: gpio@44e07000 {
295 compatible = "ti,omap4-gpio";
299 interrupt-controller;
300 #interrupt-cells = <2>;
301 reg = <0x44e07000 0x1000>;
305 gpio1: gpio@4804c000 {
306 compatible = "ti,omap4-gpio";
310 interrupt-controller;
311 #interrupt-cells = <2>;
312 reg = <0x4804c000 0x1000>;
316 gpio2: gpio@481ac000 {
317 compatible = "ti,omap4-gpio";
321 interrupt-controller;
322 #interrupt-cells = <2>;
323 reg = <0x481ac000 0x1000>;
327 gpio3: gpio@481ae000 {
328 compatible = "ti,omap4-gpio";
332 interrupt-controller;
333 #interrupt-cells = <2>;
334 reg = <0x481ae000 0x1000>;
338 uart0: serial@44e09000 {
339 compatible = "ti,am3352-uart", "ti,omap3-uart";
341 clock-frequency = <48000000>;
342 reg = <0x44e09000 0x2000>;
345 dmas = <&edma 26 0>, <&edma 27 0>;
346 dma-names = "tx", "rx";
349 uart1: serial@48022000 {
350 compatible = "ti,am3352-uart", "ti,omap3-uart";
352 clock-frequency = <48000000>;
353 reg = <0x48022000 0x2000>;
356 dmas = <&edma 28 0>, <&edma 29 0>;
357 dma-names = "tx", "rx";
360 uart2: serial@48024000 {
361 compatible = "ti,am3352-uart", "ti,omap3-uart";
363 clock-frequency = <48000000>;
364 reg = <0x48024000 0x2000>;
367 dmas = <&edma 30 0>, <&edma 31 0>;
368 dma-names = "tx", "rx";
371 uart3: serial@481a6000 {
372 compatible = "ti,am3352-uart", "ti,omap3-uart";
374 clock-frequency = <48000000>;
375 reg = <0x481a6000 0x2000>;
380 uart4: serial@481a8000 {
381 compatible = "ti,am3352-uart", "ti,omap3-uart";
383 clock-frequency = <48000000>;
384 reg = <0x481a8000 0x2000>;
389 uart5: serial@481aa000 {
390 compatible = "ti,am3352-uart", "ti,omap3-uart";
392 clock-frequency = <48000000>;
393 reg = <0x481aa000 0x2000>;
399 compatible = "ti,omap4-i2c";
400 #address-cells = <1>;
403 reg = <0x44e0b000 0x1000>;
409 compatible = "ti,omap4-i2c";
410 #address-cells = <1>;
413 reg = <0x4802a000 0x1000>;
419 compatible = "ti,omap4-i2c";
420 #address-cells = <1>;
423 reg = <0x4819c000 0x1000>;
429 compatible = "ti,omap4-hsmmc";
432 ti,needs-special-reset;
433 ti,needs-special-hs-handling;
434 dmas = <&edma_xbar 24 0 0
436 dma-names = "tx", "rx";
438 reg = <0x48060000 0x1000>;
443 compatible = "ti,omap4-hsmmc";
445 ti,needs-special-reset;
448 dma-names = "tx", "rx";
450 reg = <0x481d8000 0x1000>;
455 compatible = "ti,omap4-hsmmc";
457 ti,needs-special-reset;
459 reg = <0x47810000 0x1000>;
463 hwspinlock: spinlock@480ca000 {
464 compatible = "ti,omap4-hwspinlock";
465 reg = <0x480ca000 0x1000>;
466 ti,hwmods = "spinlock";
471 compatible = "ti,omap3-wdt";
472 ti,hwmods = "wd_timer2";
473 reg = <0x44e35000 0x1000>;
477 dcan0: can@481cc000 {
478 compatible = "ti,am3352-d_can";
479 ti,hwmods = "d_can0";
480 reg = <0x481cc000 0x2000>;
481 clocks = <&dcan0_fck>;
483 syscon-raminit = <&scm_conf 0x644 0>;
488 dcan1: can@481d0000 {
489 compatible = "ti,am3352-d_can";
490 ti,hwmods = "d_can1";
491 reg = <0x481d0000 0x2000>;
492 clocks = <&dcan1_fck>;
494 syscon-raminit = <&scm_conf 0x644 1>;
499 mailbox: mailbox@480C8000 {
500 compatible = "ti,omap4-mailbox";
501 reg = <0x480C8000 0x200>;
503 ti,hwmods = "mailbox";
505 ti,mbox-num-users = <4>;
506 ti,mbox-num-fifos = <8>;
507 mbox_wkupm3: wkup_m3 {
509 ti,mbox-tx = <0 0 0>;
510 ti,mbox-rx = <0 0 3>;
514 timer1: timer@44e31000 {
515 compatible = "ti,am335x-timer-1ms";
516 reg = <0x44e31000 0x400>;
518 ti,hwmods = "timer1";
522 timer2: timer@48040000 {
523 compatible = "ti,am335x-timer";
524 reg = <0x48040000 0x400>;
526 ti,hwmods = "timer2";
529 timer3: timer@48042000 {
530 compatible = "ti,am335x-timer";
531 reg = <0x48042000 0x400>;
533 ti,hwmods = "timer3";
536 timer4: timer@48044000 {
537 compatible = "ti,am335x-timer";
538 reg = <0x48044000 0x400>;
540 ti,hwmods = "timer4";
544 timer5: timer@48046000 {
545 compatible = "ti,am335x-timer";
546 reg = <0x48046000 0x400>;
548 ti,hwmods = "timer5";
552 timer6: timer@48048000 {
553 compatible = "ti,am335x-timer";
554 reg = <0x48048000 0x400>;
556 ti,hwmods = "timer6";
560 timer7: timer@4804a000 {
561 compatible = "ti,am335x-timer";
562 reg = <0x4804a000 0x400>;
564 ti,hwmods = "timer7";
569 compatible = "ti,am3352-rtc", "ti,da830-rtc";
570 reg = <0x44e3e000 0x1000>;
574 clocks = <&clkdiv32k_ick>;
575 clock-names = "int-clk";
579 compatible = "ti,omap4-mcspi";
580 #address-cells = <1>;
582 reg = <0x48030000 0x400>;
590 dma-names = "tx0", "rx0", "tx1", "rx1";
595 compatible = "ti,omap4-mcspi";
596 #address-cells = <1>;
598 reg = <0x481a0000 0x400>;
606 dma-names = "tx0", "rx0", "tx1", "rx1";
611 compatible = "ti,am33xx-usb";
612 reg = <0x47400000 0x1000>;
614 #address-cells = <1>;
616 ti,hwmods = "usb_otg_hs";
619 usb_ctrl_mod: control@44e10620 {
620 compatible = "ti,am335x-usb-ctrl-module";
621 reg = <0x44e10620 0x10
623 reg-names = "phy_ctrl", "wakeup";
627 usb0_phy: usb-phy@47401300 {
628 compatible = "ti,am335x-usb-phy";
629 reg = <0x47401300 0x100>;
632 ti,ctrl_mod = <&usb_ctrl_mod>;
637 compatible = "ti,musb-am33xx";
639 reg = <0x47401400 0x400
641 reg-names = "mc", "control";
644 interrupt-names = "mc";
646 mentor,multipoint = <1>;
647 mentor,num-eps = <16>;
648 mentor,ram-bits = <12>;
649 mentor,power = <500>;
652 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
653 &cppi41dma 2 0 &cppi41dma 3 0
654 &cppi41dma 4 0 &cppi41dma 5 0
655 &cppi41dma 6 0 &cppi41dma 7 0
656 &cppi41dma 8 0 &cppi41dma 9 0
657 &cppi41dma 10 0 &cppi41dma 11 0
658 &cppi41dma 12 0 &cppi41dma 13 0
659 &cppi41dma 14 0 &cppi41dma 0 1
660 &cppi41dma 1 1 &cppi41dma 2 1
661 &cppi41dma 3 1 &cppi41dma 4 1
662 &cppi41dma 5 1 &cppi41dma 6 1
663 &cppi41dma 7 1 &cppi41dma 8 1
664 &cppi41dma 9 1 &cppi41dma 10 1
665 &cppi41dma 11 1 &cppi41dma 12 1
666 &cppi41dma 13 1 &cppi41dma 14 1>;
668 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
669 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
671 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
672 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
676 usb1_phy: usb-phy@47401b00 {
677 compatible = "ti,am335x-usb-phy";
678 reg = <0x47401b00 0x100>;
681 ti,ctrl_mod = <&usb_ctrl_mod>;
686 compatible = "ti,musb-am33xx";
688 reg = <0x47401c00 0x400
690 reg-names = "mc", "control";
692 interrupt-names = "mc";
694 mentor,multipoint = <1>;
695 mentor,num-eps = <16>;
696 mentor,ram-bits = <12>;
697 mentor,power = <500>;
700 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
701 &cppi41dma 17 0 &cppi41dma 18 0
702 &cppi41dma 19 0 &cppi41dma 20 0
703 &cppi41dma 21 0 &cppi41dma 22 0
704 &cppi41dma 23 0 &cppi41dma 24 0
705 &cppi41dma 25 0 &cppi41dma 26 0
706 &cppi41dma 27 0 &cppi41dma 28 0
707 &cppi41dma 29 0 &cppi41dma 15 1
708 &cppi41dma 16 1 &cppi41dma 17 1
709 &cppi41dma 18 1 &cppi41dma 19 1
710 &cppi41dma 20 1 &cppi41dma 21 1
711 &cppi41dma 22 1 &cppi41dma 23 1
712 &cppi41dma 24 1 &cppi41dma 25 1
713 &cppi41dma 26 1 &cppi41dma 27 1
714 &cppi41dma 28 1 &cppi41dma 29 1>;
716 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
717 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
719 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
720 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
724 cppi41dma: dma-controller@47402000 {
725 compatible = "ti,am3359-cppi41";
726 reg = <0x47400000 0x1000
730 reg-names = "glue", "controller", "scheduler", "queuemgr";
732 interrupt-names = "glue";
734 #dma-channels = <30>;
735 #dma-requests = <256>;
740 epwmss0: epwmss@48300000 {
741 compatible = "ti,am33xx-pwmss";
742 reg = <0x48300000 0x10>;
743 ti,hwmods = "epwmss0";
744 #address-cells = <1>;
747 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
748 0x48300180 0x48300180 0x80 /* EQEP */
749 0x48300200 0x48300200 0x80>; /* EHRPWM */
751 ecap0: ecap@48300100 {
752 compatible = "ti,am3352-ecap",
755 reg = <0x48300100 0x80>;
756 clocks = <&l4ls_gclk>;
759 interrupt-names = "ecap0";
763 ehrpwm0: pwm@48300200 {
764 compatible = "ti,am3352-ehrpwm",
767 reg = <0x48300200 0x80>;
768 clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>;
769 clock-names = "tbclk", "fck";
774 epwmss1: epwmss@48302000 {
775 compatible = "ti,am33xx-pwmss";
776 reg = <0x48302000 0x10>;
777 ti,hwmods = "epwmss1";
778 #address-cells = <1>;
781 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
782 0x48302180 0x48302180 0x80 /* EQEP */
783 0x48302200 0x48302200 0x80>; /* EHRPWM */
785 ecap1: ecap@48302100 {
786 compatible = "ti,am3352-ecap",
789 reg = <0x48302100 0x80>;
790 clocks = <&l4ls_gclk>;
793 interrupt-names = "ecap1";
797 ehrpwm1: pwm@48302200 {
798 compatible = "ti,am3352-ehrpwm",
801 reg = <0x48302200 0x80>;
802 clocks = <&ehrpwm1_tbclk>, <&l4ls_gclk>;
803 clock-names = "tbclk", "fck";
808 epwmss2: epwmss@48304000 {
809 compatible = "ti,am33xx-pwmss";
810 reg = <0x48304000 0x10>;
811 ti,hwmods = "epwmss2";
812 #address-cells = <1>;
815 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
816 0x48304180 0x48304180 0x80 /* EQEP */
817 0x48304200 0x48304200 0x80>; /* EHRPWM */
819 ecap2: ecap@48304100 {
820 compatible = "ti,am3352-ecap",
823 reg = <0x48304100 0x80>;
824 clocks = <&l4ls_gclk>;
827 interrupt-names = "ecap2";
831 ehrpwm2: pwm@48304200 {
832 compatible = "ti,am3352-ehrpwm",
835 reg = <0x48304200 0x80>;
836 clocks = <&ehrpwm2_tbclk>, <&l4ls_gclk>;
837 clock-names = "tbclk", "fck";
842 mac: ethernet@4a100000 {
843 compatible = "ti,am335x-cpsw","ti,cpsw";
844 ti,hwmods = "cpgmac0";
845 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
846 clock-names = "fck", "cpts";
847 cpdma_channels = <8>;
848 ale_entries = <1024>;
849 bd_ram_size = <0x2000>;
850 mac_control = <0x20>;
853 cpts_clock_mult = <0x80000000>;
854 cpts_clock_shift = <29>;
855 reg = <0x4a100000 0x800
857 #address-cells = <1>;
865 interrupts = <40 41 42 43>;
867 syscon = <&scm_conf>;
870 davinci_mdio: mdio@4a101000 {
871 compatible = "ti,cpsw-mdio","ti,davinci_mdio";
872 #address-cells = <1>;
874 ti,hwmods = "davinci_mdio";
875 bus_freq = <1000000>;
876 reg = <0x4a101000 0x100>;
880 cpsw_emac0: slave@4a100200 {
881 /* Filled in by U-Boot */
882 mac-address = [ 00 00 00 00 00 00 ];
885 cpsw_emac1: slave@4a100300 {
886 /* Filled in by U-Boot */
887 mac-address = [ 00 00 00 00 00 00 ];
890 phy_sel: cpsw-phy-sel@44e10650 {
891 compatible = "ti,am3352-cpsw-phy-sel";
892 reg= <0x44e10650 0x4>;
893 reg-names = "gmii-sel";
897 ocmcram: ocmcram@40300000 {
898 compatible = "mmio-sram";
899 reg = <0x40300000 0x10000>; /* 64k */
903 compatible = "ti,am3352-elm";
904 reg = <0x48080000 0x2000>;
910 lcdc: lcdc@4830e000 {
911 compatible = "ti,am33xx-tilcdc";
912 reg = <0x4830e000 0x1000>;
918 tscadc: tscadc@44e0d000 {
919 compatible = "ti,am3359-tscadc";
920 reg = <0x44e0d000 0x1000>;
922 ti,hwmods = "adc_tsc";
924 dmas = <&edma 53 0>, <&edma 57 0>;
925 dma-names = "fifo0", "fifo1";
928 compatible = "ti,am3359-tsc";
931 #io-channel-cells = <1>;
932 compatible = "ti,am3359-adc";
936 emif: emif@4c000000 {
937 compatible = "ti,emif-am3352";
938 reg = <0x4c000000 0x1000000>;
942 gpmc: gpmc@50000000 {
943 compatible = "ti,am3352-gpmc";
946 reg = <0x50000000 0x2000>;
951 gpmc,num-waitpins = <2>;
952 #address-cells = <2>;
954 interrupt-controller;
955 #interrupt-cells = <2>;
961 sham: sham@53100000 {
962 compatible = "ti,omap4-sham";
964 reg = <0x53100000 0x200>;
971 compatible = "ti,omap4-aes";
973 reg = <0x53500000 0xa0>;
977 dma-names = "tx", "rx";
980 mcasp0: mcasp@48038000 {
981 compatible = "ti,am33xx-mcasp-audio";
982 ti,hwmods = "mcasp0";
983 reg = <0x48038000 0x2000>,
984 <0x46000000 0x400000>;
985 reg-names = "mpu", "dat";
986 interrupts = <80>, <81>;
987 interrupt-names = "tx", "rx";
991 dma-names = "tx", "rx";
994 mcasp1: mcasp@4803C000 {
995 compatible = "ti,am33xx-mcasp-audio";
996 ti,hwmods = "mcasp1";
997 reg = <0x4803C000 0x2000>,
998 <0x46400000 0x400000>;
999 reg-names = "mpu", "dat";
1000 interrupts = <82>, <83>;
1001 interrupt-names = "tx", "rx";
1002 status = "disabled";
1003 dmas = <&edma 10 2>,
1005 dma-names = "tx", "rx";
1009 compatible = "ti,omap4-rng";
1011 reg = <0x48310000 0x2000>;
1017 /include/ "am33xx-clocks.dtsi"