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;
45 compatible = "arm,cortex-a8";
49 operating-points-v2 = <&cpu0_opp_table>;
51 clocks = <&dpll_mpu_ck>;
54 clock-latency = <300000>; /* From omap-cpufreq driver */
58 cpu0_opp_table: opp-table {
59 compatible = "operating-points-v2-ti-cpu";
63 * The three following nodes are marked with opp-suspend
64 * because the can not be enabled simultaneously on a
68 opp-hz = /bits/ 64 <300000000>;
69 opp-microvolt = <950000 931000 969000>;
70 opp-supported-hw = <0x06 0x0010>;
75 opp-hz = /bits/ 64 <275000000>;
76 opp-microvolt = <1100000 1078000 1122000>;
77 opp-supported-hw = <0x01 0x00FF>;
82 opp-hz = /bits/ 64 <300000000>;
83 opp-microvolt = <1100000 1078000 1122000>;
84 opp-supported-hw = <0x06 0x0020>;
89 opp-hz = /bits/ 64 <500000000>;
90 opp-microvolt = <1100000 1078000 1122000>;
91 opp-supported-hw = <0x01 0xFFFF>;
95 opp-hz = /bits/ 64 <600000000>;
96 opp-microvolt = <1100000 1078000 1122000>;
97 opp-supported-hw = <0x06 0x0040>;
101 opp-hz = /bits/ 64 <600000000>;
102 opp-microvolt = <1200000 1176000 1224000>;
103 opp-supported-hw = <0x01 0xFFFF>;
107 opp-hz = /bits/ 64 <720000000>;
108 opp-microvolt = <1200000 1176000 1224000>;
109 opp-supported-hw = <0x06 0x0080>;
113 opp-hz = /bits/ 64 <720000000>;
114 opp-microvolt = <1260000 1234800 1285200>;
115 opp-supported-hw = <0x01 0xFFFF>;
119 opp-hz = /bits/ 64 <800000000>;
120 opp-microvolt = <1260000 1234800 1285200>;
121 opp-supported-hw = <0x06 0x0100>;
124 oppnitro-1000000000 {
125 opp-hz = /bits/ 64 <1000000000>;
126 opp-microvolt = <1325000 1298500 1351500>;
127 opp-supported-hw = <0x04 0x0200>;
132 compatible = "arm,cortex-a8-pmu";
137 * The soc node represents the soc top level view. It is used for IPs
138 * that are not memory mapped in the MPU view or for the MPU itself.
141 compatible = "ti,omap-infra";
143 compatible = "ti,omap3-mpu";
149 * XXX: Use a flat representation of the AM33XX interconnect.
150 * The real AM33XX interconnect network is quite complex. Since
151 * it will not bring real advantage to represent that in DT
152 * for the moment, just use a fake OCP bus entry to represent
153 * the whole bus hierarchy.
156 compatible = "simple-bus";
157 #address-cells = <1>;
160 ti,hwmods = "l3_main";
162 l4_wkup: l4_wkup@44c00000 {
163 compatible = "ti,am3-l4-wkup", "simple-bus";
164 #address-cells = <1>;
166 ranges = <0 0x44c00000 0x280000>;
168 wkup_m3: wkup_m3@100000 {
169 compatible = "ti,am3352-wkup-m3";
170 reg = <0x100000 0x4000>,
172 reg-names = "umem", "dmem";
173 ti,hwmods = "wkup_m3";
174 ti,pm-firmware = "am335x-pm-firmware.elf";
178 compatible = "ti,am3-prcm";
179 reg = <0x200000 0x4000>;
181 prcm_clocks: clocks {
182 #address-cells = <1>;
186 prcm_clockdomains: clockdomains {
191 compatible = "ti,am3-scm", "simple-bus";
192 reg = <0x210000 0x2000>;
193 #address-cells = <1>;
195 #pinctrl-cells = <1>;
196 ranges = <0 0x210000 0x2000>;
198 am33xx_pinmux: pinmux@800 {
199 compatible = "pinctrl-single";
201 #address-cells = <1>;
203 #pinctrl-cells = <1>;
204 pinctrl-single,register-width = <32>;
205 pinctrl-single,function-mask = <0x7f>;
208 scm_conf: scm_conf@0 {
209 compatible = "syscon", "simple-bus";
211 #address-cells = <1>;
213 ranges = <0 0 0x800>;
216 #address-cells = <1>;
221 wkup_m3_ipc: wkup_m3_ipc@1324 {
222 compatible = "ti,am3352-wkup-m3-ipc";
225 ti,rproc = <&wkup_m3>;
226 mboxes = <&mailbox &mbox_wkupm3>;
229 edma_xbar: dma-router@f90 {
230 compatible = "ti,am335x-edma-crossbar";
234 dma-masters = <&edma>;
237 scm_clockdomains: clockdomains {
242 intc: interrupt-controller@48200000 {
243 compatible = "ti,am33xx-intc";
244 interrupt-controller;
245 #interrupt-cells = <1>;
246 reg = <0x48200000 0x1000>;
249 edma: edma@49000000 {
250 compatible = "ti,edma3-tpcc";
252 reg = <0x49000000 0x10000>;
253 reg-names = "edma3_cc";
254 interrupts = <12 13 14>;
255 interrupt-names = "edma3_ccint", "edma3_mperr",
260 ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
263 ti,edma-memcpy-channels = <20 21>;
266 edma_tptc0: tptc@49800000 {
267 compatible = "ti,edma3-tptc";
269 reg = <0x49800000 0x100000>;
271 interrupt-names = "edma3_tcerrint";
274 edma_tptc1: tptc@49900000 {
275 compatible = "ti,edma3-tptc";
277 reg = <0x49900000 0x100000>;
279 interrupt-names = "edma3_tcerrint";
282 edma_tptc2: tptc@49a00000 {
283 compatible = "ti,edma3-tptc";
285 reg = <0x49a00000 0x100000>;
287 interrupt-names = "edma3_tcerrint";
290 gpio0: gpio@44e07000 {
291 compatible = "ti,omap4-gpio";
295 interrupt-controller;
296 #interrupt-cells = <2>;
297 reg = <0x44e07000 0x1000>;
301 gpio1: gpio@4804c000 {
302 compatible = "ti,omap4-gpio";
306 interrupt-controller;
307 #interrupt-cells = <2>;
308 reg = <0x4804c000 0x1000>;
312 gpio2: gpio@481ac000 {
313 compatible = "ti,omap4-gpio";
317 interrupt-controller;
318 #interrupt-cells = <2>;
319 reg = <0x481ac000 0x1000>;
323 gpio3: gpio@481ae000 {
324 compatible = "ti,omap4-gpio";
328 interrupt-controller;
329 #interrupt-cells = <2>;
330 reg = <0x481ae000 0x1000>;
334 uart0: serial@44e09000 {
335 compatible = "ti,am3352-uart", "ti,omap3-uart";
337 clock-frequency = <48000000>;
338 reg = <0x44e09000 0x2000>;
341 dmas = <&edma 26 0>, <&edma 27 0>;
342 dma-names = "tx", "rx";
345 uart1: serial@48022000 {
346 compatible = "ti,am3352-uart", "ti,omap3-uart";
348 clock-frequency = <48000000>;
349 reg = <0x48022000 0x2000>;
352 dmas = <&edma 28 0>, <&edma 29 0>;
353 dma-names = "tx", "rx";
356 uart2: serial@48024000 {
357 compatible = "ti,am3352-uart", "ti,omap3-uart";
359 clock-frequency = <48000000>;
360 reg = <0x48024000 0x2000>;
363 dmas = <&edma 30 0>, <&edma 31 0>;
364 dma-names = "tx", "rx";
367 uart3: serial@481a6000 {
368 compatible = "ti,am3352-uart", "ti,omap3-uart";
370 clock-frequency = <48000000>;
371 reg = <0x481a6000 0x2000>;
376 uart4: serial@481a8000 {
377 compatible = "ti,am3352-uart", "ti,omap3-uart";
379 clock-frequency = <48000000>;
380 reg = <0x481a8000 0x2000>;
385 uart5: serial@481aa000 {
386 compatible = "ti,am3352-uart", "ti,omap3-uart";
388 clock-frequency = <48000000>;
389 reg = <0x481aa000 0x2000>;
395 compatible = "ti,omap4-i2c";
396 #address-cells = <1>;
399 reg = <0x44e0b000 0x1000>;
405 compatible = "ti,omap4-i2c";
406 #address-cells = <1>;
409 reg = <0x4802a000 0x1000>;
415 compatible = "ti,omap4-i2c";
416 #address-cells = <1>;
419 reg = <0x4819c000 0x1000>;
425 compatible = "ti,omap4-hsmmc";
428 ti,needs-special-reset;
429 ti,needs-special-hs-handling;
430 dmas = <&edma_xbar 24 0 0
432 dma-names = "tx", "rx";
434 reg = <0x48060000 0x1000>;
439 compatible = "ti,omap4-hsmmc";
441 ti,needs-special-reset;
444 dma-names = "tx", "rx";
446 reg = <0x481d8000 0x1000>;
451 compatible = "ti,omap4-hsmmc";
453 ti,needs-special-reset;
455 reg = <0x47810000 0x1000>;
459 hwspinlock: spinlock@480ca000 {
460 compatible = "ti,omap4-hwspinlock";
461 reg = <0x480ca000 0x1000>;
462 ti,hwmods = "spinlock";
467 compatible = "ti,omap3-wdt";
468 ti,hwmods = "wd_timer2";
469 reg = <0x44e35000 0x1000>;
473 dcan0: can@481cc000 {
474 compatible = "ti,am3352-d_can";
475 ti,hwmods = "d_can0";
476 reg = <0x481cc000 0x2000>;
477 clocks = <&dcan0_fck>;
479 syscon-raminit = <&scm_conf 0x644 0>;
484 dcan1: can@481d0000 {
485 compatible = "ti,am3352-d_can";
486 ti,hwmods = "d_can1";
487 reg = <0x481d0000 0x2000>;
488 clocks = <&dcan1_fck>;
490 syscon-raminit = <&scm_conf 0x644 1>;
495 mailbox: mailbox@480C8000 {
496 compatible = "ti,omap4-mailbox";
497 reg = <0x480C8000 0x200>;
499 ti,hwmods = "mailbox";
501 ti,mbox-num-users = <4>;
502 ti,mbox-num-fifos = <8>;
503 mbox_wkupm3: wkup_m3 {
505 ti,mbox-tx = <0 0 0>;
506 ti,mbox-rx = <0 0 3>;
510 timer1: timer@44e31000 {
511 compatible = "ti,am335x-timer-1ms";
512 reg = <0x44e31000 0x400>;
514 ti,hwmods = "timer1";
518 timer2: timer@48040000 {
519 compatible = "ti,am335x-timer";
520 reg = <0x48040000 0x400>;
522 ti,hwmods = "timer2";
525 timer3: timer@48042000 {
526 compatible = "ti,am335x-timer";
527 reg = <0x48042000 0x400>;
529 ti,hwmods = "timer3";
532 timer4: timer@48044000 {
533 compatible = "ti,am335x-timer";
534 reg = <0x48044000 0x400>;
536 ti,hwmods = "timer4";
540 timer5: timer@48046000 {
541 compatible = "ti,am335x-timer";
542 reg = <0x48046000 0x400>;
544 ti,hwmods = "timer5";
548 timer6: timer@48048000 {
549 compatible = "ti,am335x-timer";
550 reg = <0x48048000 0x400>;
552 ti,hwmods = "timer6";
556 timer7: timer@4804a000 {
557 compatible = "ti,am335x-timer";
558 reg = <0x4804a000 0x400>;
560 ti,hwmods = "timer7";
565 compatible = "ti,am3352-rtc", "ti,da830-rtc";
566 reg = <0x44e3e000 0x1000>;
570 clocks = <&clkdiv32k_ick>;
571 clock-names = "int-clk";
575 compatible = "ti,omap4-mcspi";
576 #address-cells = <1>;
578 reg = <0x48030000 0x400>;
586 dma-names = "tx0", "rx0", "tx1", "rx1";
591 compatible = "ti,omap4-mcspi";
592 #address-cells = <1>;
594 reg = <0x481a0000 0x400>;
602 dma-names = "tx0", "rx0", "tx1", "rx1";
607 compatible = "ti,am33xx-usb";
608 reg = <0x47400000 0x1000>;
610 #address-cells = <1>;
612 ti,hwmods = "usb_otg_hs";
615 usb_ctrl_mod: control@44e10620 {
616 compatible = "ti,am335x-usb-ctrl-module";
617 reg = <0x44e10620 0x10
619 reg-names = "phy_ctrl", "wakeup";
623 usb0_phy: usb-phy@47401300 {
624 compatible = "ti,am335x-usb-phy";
625 reg = <0x47401300 0x100>;
628 ti,ctrl_mod = <&usb_ctrl_mod>;
632 compatible = "ti,musb-am33xx";
634 reg = <0x47401400 0x400
636 reg-names = "mc", "control";
639 interrupt-names = "mc";
641 mentor,multipoint = <1>;
642 mentor,num-eps = <16>;
643 mentor,ram-bits = <12>;
644 mentor,power = <500>;
647 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
648 &cppi41dma 2 0 &cppi41dma 3 0
649 &cppi41dma 4 0 &cppi41dma 5 0
650 &cppi41dma 6 0 &cppi41dma 7 0
651 &cppi41dma 8 0 &cppi41dma 9 0
652 &cppi41dma 10 0 &cppi41dma 11 0
653 &cppi41dma 12 0 &cppi41dma 13 0
654 &cppi41dma 14 0 &cppi41dma 0 1
655 &cppi41dma 1 1 &cppi41dma 2 1
656 &cppi41dma 3 1 &cppi41dma 4 1
657 &cppi41dma 5 1 &cppi41dma 6 1
658 &cppi41dma 7 1 &cppi41dma 8 1
659 &cppi41dma 9 1 &cppi41dma 10 1
660 &cppi41dma 11 1 &cppi41dma 12 1
661 &cppi41dma 13 1 &cppi41dma 14 1>;
663 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
664 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
666 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
667 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
671 usb1_phy: usb-phy@47401b00 {
672 compatible = "ti,am335x-usb-phy";
673 reg = <0x47401b00 0x100>;
676 ti,ctrl_mod = <&usb_ctrl_mod>;
680 compatible = "ti,musb-am33xx";
682 reg = <0x47401c00 0x400
684 reg-names = "mc", "control";
686 interrupt-names = "mc";
688 mentor,multipoint = <1>;
689 mentor,num-eps = <16>;
690 mentor,ram-bits = <12>;
691 mentor,power = <500>;
694 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
695 &cppi41dma 17 0 &cppi41dma 18 0
696 &cppi41dma 19 0 &cppi41dma 20 0
697 &cppi41dma 21 0 &cppi41dma 22 0
698 &cppi41dma 23 0 &cppi41dma 24 0
699 &cppi41dma 25 0 &cppi41dma 26 0
700 &cppi41dma 27 0 &cppi41dma 28 0
701 &cppi41dma 29 0 &cppi41dma 15 1
702 &cppi41dma 16 1 &cppi41dma 17 1
703 &cppi41dma 18 1 &cppi41dma 19 1
704 &cppi41dma 20 1 &cppi41dma 21 1
705 &cppi41dma 22 1 &cppi41dma 23 1
706 &cppi41dma 24 1 &cppi41dma 25 1
707 &cppi41dma 26 1 &cppi41dma 27 1
708 &cppi41dma 28 1 &cppi41dma 29 1>;
710 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
711 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
713 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
714 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
718 cppi41dma: dma-controller@47402000 {
719 compatible = "ti,am3359-cppi41";
720 reg = <0x47400000 0x1000
724 reg-names = "glue", "controller", "scheduler", "queuemgr";
726 interrupt-names = "glue";
728 #dma-channels = <30>;
729 #dma-requests = <256>;
734 epwmss0: epwmss@48300000 {
735 compatible = "ti,am33xx-pwmss";
736 reg = <0x48300000 0x10>;
737 ti,hwmods = "epwmss0";
738 #address-cells = <1>;
741 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
742 0x48300180 0x48300180 0x80 /* EQEP */
743 0x48300200 0x48300200 0x80>; /* EHRPWM */
745 ecap0: ecap@48300100 {
746 compatible = "ti,am3352-ecap",
749 reg = <0x48300100 0x80>;
750 clocks = <&l4ls_gclk>;
753 interrupt-names = "ecap0";
757 ehrpwm0: pwm@48300200 {
758 compatible = "ti,am3352-ehrpwm",
761 reg = <0x48300200 0x80>;
762 clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>;
763 clock-names = "tbclk", "fck";
768 epwmss1: epwmss@48302000 {
769 compatible = "ti,am33xx-pwmss";
770 reg = <0x48302000 0x10>;
771 ti,hwmods = "epwmss1";
772 #address-cells = <1>;
775 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
776 0x48302180 0x48302180 0x80 /* EQEP */
777 0x48302200 0x48302200 0x80>; /* EHRPWM */
779 ecap1: ecap@48302100 {
780 compatible = "ti,am3352-ecap",
783 reg = <0x48302100 0x80>;
784 clocks = <&l4ls_gclk>;
787 interrupt-names = "ecap1";
791 ehrpwm1: pwm@48302200 {
792 compatible = "ti,am3352-ehrpwm",
795 reg = <0x48302200 0x80>;
796 clocks = <&ehrpwm1_tbclk>, <&l4ls_gclk>;
797 clock-names = "tbclk", "fck";
802 epwmss2: epwmss@48304000 {
803 compatible = "ti,am33xx-pwmss";
804 reg = <0x48304000 0x10>;
805 ti,hwmods = "epwmss2";
806 #address-cells = <1>;
809 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
810 0x48304180 0x48304180 0x80 /* EQEP */
811 0x48304200 0x48304200 0x80>; /* EHRPWM */
813 ecap2: ecap@48304100 {
814 compatible = "ti,am3352-ecap",
817 reg = <0x48304100 0x80>;
818 clocks = <&l4ls_gclk>;
821 interrupt-names = "ecap2";
825 ehrpwm2: pwm@48304200 {
826 compatible = "ti,am3352-ehrpwm",
829 reg = <0x48304200 0x80>;
830 clocks = <&ehrpwm2_tbclk>, <&l4ls_gclk>;
831 clock-names = "tbclk", "fck";
836 mac: ethernet@4a100000 {
837 compatible = "ti,am335x-cpsw","ti,cpsw";
838 ti,hwmods = "cpgmac0";
839 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
840 clock-names = "fck", "cpts";
841 cpdma_channels = <8>;
842 ale_entries = <1024>;
843 bd_ram_size = <0x2000>;
844 mac_control = <0x20>;
847 cpts_clock_mult = <0x80000000>;
848 cpts_clock_shift = <29>;
849 reg = <0x4a100000 0x800
851 #address-cells = <1>;
859 interrupts = <40 41 42 43>;
861 syscon = <&scm_conf>;
864 davinci_mdio: mdio@4a101000 {
865 compatible = "ti,cpsw-mdio","ti,davinci_mdio";
866 #address-cells = <1>;
868 ti,hwmods = "davinci_mdio";
869 bus_freq = <1000000>;
870 reg = <0x4a101000 0x100>;
874 cpsw_emac0: slave@4a100200 {
875 /* Filled in by U-Boot */
876 mac-address = [ 00 00 00 00 00 00 ];
879 cpsw_emac1: slave@4a100300 {
880 /* Filled in by U-Boot */
881 mac-address = [ 00 00 00 00 00 00 ];
884 phy_sel: cpsw-phy-sel@44e10650 {
885 compatible = "ti,am3352-cpsw-phy-sel";
886 reg= <0x44e10650 0x4>;
887 reg-names = "gmii-sel";
891 ocmcram: ocmcram@40300000 {
892 compatible = "mmio-sram";
893 reg = <0x40300000 0x10000>; /* 64k */
897 compatible = "ti,am3352-elm";
898 reg = <0x48080000 0x2000>;
904 lcdc: lcdc@4830e000 {
905 compatible = "ti,am33xx-tilcdc";
906 reg = <0x4830e000 0x1000>;
912 tscadc: tscadc@44e0d000 {
913 compatible = "ti,am3359-tscadc";
914 reg = <0x44e0d000 0x1000>;
916 ti,hwmods = "adc_tsc";
918 dmas = <&edma 53 0>, <&edma 57 0>;
919 dma-names = "fifo0", "fifo1";
922 compatible = "ti,am3359-tsc";
925 #io-channel-cells = <1>;
926 compatible = "ti,am3359-adc";
930 gpmc: gpmc@50000000 {
931 compatible = "ti,am3352-gpmc";
934 reg = <0x50000000 0x2000>;
939 gpmc,num-waitpins = <2>;
940 #address-cells = <2>;
942 interrupt-controller;
943 #interrupt-cells = <2>;
949 sham: sham@53100000 {
950 compatible = "ti,omap4-sham";
952 reg = <0x53100000 0x200>;
959 compatible = "ti,omap4-aes";
961 reg = <0x53500000 0xa0>;
965 dma-names = "tx", "rx";
968 mcasp0: mcasp@48038000 {
969 compatible = "ti,am33xx-mcasp-audio";
970 ti,hwmods = "mcasp0";
971 reg = <0x48038000 0x2000>,
972 <0x46000000 0x400000>;
973 reg-names = "mpu", "dat";
974 interrupts = <80>, <81>;
975 interrupt-names = "tx", "rx";
979 dma-names = "tx", "rx";
982 mcasp1: mcasp@4803C000 {
983 compatible = "ti,am33xx-mcasp-audio";
984 ti,hwmods = "mcasp1";
985 reg = <0x4803C000 0x2000>,
986 <0x46400000 0x400000>;
987 reg-names = "mpu", "dat";
988 interrupts = <82>, <83>;
989 interrupt-names = "tx", "rx";
993 dma-names = "tx", "rx";
997 compatible = "ti,omap4-rng";
999 reg = <0x48310000 0x2000>;
1005 /include/ "am33xx-clocks.dtsi"