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>;
636 compatible = "ti,musb-am33xx";
638 reg = <0x47401400 0x400
640 reg-names = "mc", "control";
643 interrupt-names = "mc";
645 mentor,multipoint = <1>;
646 mentor,num-eps = <16>;
647 mentor,ram-bits = <12>;
648 mentor,power = <500>;
651 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
652 &cppi41dma 2 0 &cppi41dma 3 0
653 &cppi41dma 4 0 &cppi41dma 5 0
654 &cppi41dma 6 0 &cppi41dma 7 0
655 &cppi41dma 8 0 &cppi41dma 9 0
656 &cppi41dma 10 0 &cppi41dma 11 0
657 &cppi41dma 12 0 &cppi41dma 13 0
658 &cppi41dma 14 0 &cppi41dma 0 1
659 &cppi41dma 1 1 &cppi41dma 2 1
660 &cppi41dma 3 1 &cppi41dma 4 1
661 &cppi41dma 5 1 &cppi41dma 6 1
662 &cppi41dma 7 1 &cppi41dma 8 1
663 &cppi41dma 9 1 &cppi41dma 10 1
664 &cppi41dma 11 1 &cppi41dma 12 1
665 &cppi41dma 13 1 &cppi41dma 14 1>;
667 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
668 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
670 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
671 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
675 usb1_phy: usb-phy@47401b00 {
676 compatible = "ti,am335x-usb-phy";
677 reg = <0x47401b00 0x100>;
680 ti,ctrl_mod = <&usb_ctrl_mod>;
684 compatible = "ti,musb-am33xx";
686 reg = <0x47401c00 0x400
688 reg-names = "mc", "control";
690 interrupt-names = "mc";
692 mentor,multipoint = <1>;
693 mentor,num-eps = <16>;
694 mentor,ram-bits = <12>;
695 mentor,power = <500>;
698 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
699 &cppi41dma 17 0 &cppi41dma 18 0
700 &cppi41dma 19 0 &cppi41dma 20 0
701 &cppi41dma 21 0 &cppi41dma 22 0
702 &cppi41dma 23 0 &cppi41dma 24 0
703 &cppi41dma 25 0 &cppi41dma 26 0
704 &cppi41dma 27 0 &cppi41dma 28 0
705 &cppi41dma 29 0 &cppi41dma 15 1
706 &cppi41dma 16 1 &cppi41dma 17 1
707 &cppi41dma 18 1 &cppi41dma 19 1
708 &cppi41dma 20 1 &cppi41dma 21 1
709 &cppi41dma 22 1 &cppi41dma 23 1
710 &cppi41dma 24 1 &cppi41dma 25 1
711 &cppi41dma 26 1 &cppi41dma 27 1
712 &cppi41dma 28 1 &cppi41dma 29 1>;
714 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
715 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
717 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
718 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
722 cppi41dma: dma-controller@47402000 {
723 compatible = "ti,am3359-cppi41";
724 reg = <0x47400000 0x1000
728 reg-names = "glue", "controller", "scheduler", "queuemgr";
730 interrupt-names = "glue";
732 #dma-channels = <30>;
733 #dma-requests = <256>;
738 epwmss0: epwmss@48300000 {
739 compatible = "ti,am33xx-pwmss";
740 reg = <0x48300000 0x10>;
741 ti,hwmods = "epwmss0";
742 #address-cells = <1>;
745 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
746 0x48300180 0x48300180 0x80 /* EQEP */
747 0x48300200 0x48300200 0x80>; /* EHRPWM */
749 ecap0: ecap@48300100 {
750 compatible = "ti,am3352-ecap",
753 reg = <0x48300100 0x80>;
754 clocks = <&l4ls_gclk>;
757 interrupt-names = "ecap0";
761 ehrpwm0: pwm@48300200 {
762 compatible = "ti,am3352-ehrpwm",
765 reg = <0x48300200 0x80>;
766 clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>;
767 clock-names = "tbclk", "fck";
772 epwmss1: epwmss@48302000 {
773 compatible = "ti,am33xx-pwmss";
774 reg = <0x48302000 0x10>;
775 ti,hwmods = "epwmss1";
776 #address-cells = <1>;
779 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
780 0x48302180 0x48302180 0x80 /* EQEP */
781 0x48302200 0x48302200 0x80>; /* EHRPWM */
783 ecap1: ecap@48302100 {
784 compatible = "ti,am3352-ecap",
787 reg = <0x48302100 0x80>;
788 clocks = <&l4ls_gclk>;
791 interrupt-names = "ecap1";
795 ehrpwm1: pwm@48302200 {
796 compatible = "ti,am3352-ehrpwm",
799 reg = <0x48302200 0x80>;
800 clocks = <&ehrpwm1_tbclk>, <&l4ls_gclk>;
801 clock-names = "tbclk", "fck";
806 epwmss2: epwmss@48304000 {
807 compatible = "ti,am33xx-pwmss";
808 reg = <0x48304000 0x10>;
809 ti,hwmods = "epwmss2";
810 #address-cells = <1>;
813 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
814 0x48304180 0x48304180 0x80 /* EQEP */
815 0x48304200 0x48304200 0x80>; /* EHRPWM */
817 ecap2: ecap@48304100 {
818 compatible = "ti,am3352-ecap",
821 reg = <0x48304100 0x80>;
822 clocks = <&l4ls_gclk>;
825 interrupt-names = "ecap2";
829 ehrpwm2: pwm@48304200 {
830 compatible = "ti,am3352-ehrpwm",
833 reg = <0x48304200 0x80>;
834 clocks = <&ehrpwm2_tbclk>, <&l4ls_gclk>;
835 clock-names = "tbclk", "fck";
840 mac: ethernet@4a100000 {
841 compatible = "ti,am335x-cpsw","ti,cpsw";
842 ti,hwmods = "cpgmac0";
843 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
844 clock-names = "fck", "cpts";
845 cpdma_channels = <8>;
846 ale_entries = <1024>;
847 bd_ram_size = <0x2000>;
848 mac_control = <0x20>;
851 cpts_clock_mult = <0x80000000>;
852 cpts_clock_shift = <29>;
853 reg = <0x4a100000 0x800
855 #address-cells = <1>;
863 interrupts = <40 41 42 43>;
865 syscon = <&scm_conf>;
868 davinci_mdio: mdio@4a101000 {
869 compatible = "ti,cpsw-mdio","ti,davinci_mdio";
870 #address-cells = <1>;
872 ti,hwmods = "davinci_mdio";
873 bus_freq = <1000000>;
874 reg = <0x4a101000 0x100>;
878 cpsw_emac0: slave@4a100200 {
879 /* Filled in by U-Boot */
880 mac-address = [ 00 00 00 00 00 00 ];
883 cpsw_emac1: slave@4a100300 {
884 /* Filled in by U-Boot */
885 mac-address = [ 00 00 00 00 00 00 ];
888 phy_sel: cpsw-phy-sel@44e10650 {
889 compatible = "ti,am3352-cpsw-phy-sel";
890 reg= <0x44e10650 0x4>;
891 reg-names = "gmii-sel";
895 ocmcram: ocmcram@40300000 {
896 compatible = "mmio-sram";
897 reg = <0x40300000 0x10000>; /* 64k */
901 compatible = "ti,am3352-elm";
902 reg = <0x48080000 0x2000>;
908 lcdc: lcdc@4830e000 {
909 compatible = "ti,am33xx-tilcdc";
910 reg = <0x4830e000 0x1000>;
916 tscadc: tscadc@44e0d000 {
917 compatible = "ti,am3359-tscadc";
918 reg = <0x44e0d000 0x1000>;
920 ti,hwmods = "adc_tsc";
922 dmas = <&edma 53 0>, <&edma 57 0>;
923 dma-names = "fifo0", "fifo1";
926 compatible = "ti,am3359-tsc";
929 #io-channel-cells = <1>;
930 compatible = "ti,am3359-adc";
934 emif: emif@4c000000 {
935 compatible = "ti,emif-am3352";
936 reg = <0x4c000000 0x1000000>;
940 gpmc: gpmc@50000000 {
941 compatible = "ti,am3352-gpmc";
944 reg = <0x50000000 0x2000>;
949 gpmc,num-waitpins = <2>;
950 #address-cells = <2>;
952 interrupt-controller;
953 #interrupt-cells = <2>;
959 sham: sham@53100000 {
960 compatible = "ti,omap4-sham";
962 reg = <0x53100000 0x200>;
969 compatible = "ti,omap4-aes";
971 reg = <0x53500000 0xa0>;
975 dma-names = "tx", "rx";
978 mcasp0: mcasp@48038000 {
979 compatible = "ti,am33xx-mcasp-audio";
980 ti,hwmods = "mcasp0";
981 reg = <0x48038000 0x2000>,
982 <0x46000000 0x400000>;
983 reg-names = "mpu", "dat";
984 interrupts = <80>, <81>;
985 interrupt-names = "tx", "rx";
989 dma-names = "tx", "rx";
992 mcasp1: mcasp@4803C000 {
993 compatible = "ti,am33xx-mcasp-audio";
994 ti,hwmods = "mcasp1";
995 reg = <0x4803C000 0x2000>,
996 <0x46400000 0x400000>;
997 reg-names = "mpu", "dat";
998 interrupts = <82>, <83>;
999 interrupt-names = "tx", "rx";
1000 status = "disabled";
1001 dmas = <&edma 10 2>,
1003 dma-names = "tx", "rx";
1007 compatible = "ti,omap4-rng";
1009 reg = <0x48310000 0x2000>;
1015 /include/ "am33xx-clocks.dtsi"