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";
520 clocks = <&timer1_fck>;
524 timer2: timer@48040000 {
525 compatible = "ti,am335x-timer";
526 reg = <0x48040000 0x400>;
528 ti,hwmods = "timer2";
529 clocks = <&timer2_fck>;
533 timer3: timer@48042000 {
534 compatible = "ti,am335x-timer";
535 reg = <0x48042000 0x400>;
537 ti,hwmods = "timer3";
540 timer4: timer@48044000 {
541 compatible = "ti,am335x-timer";
542 reg = <0x48044000 0x400>;
544 ti,hwmods = "timer4";
548 timer5: timer@48046000 {
549 compatible = "ti,am335x-timer";
550 reg = <0x48046000 0x400>;
552 ti,hwmods = "timer5";
556 timer6: timer@48048000 {
557 compatible = "ti,am335x-timer";
558 reg = <0x48048000 0x400>;
560 ti,hwmods = "timer6";
564 timer7: timer@4804a000 {
565 compatible = "ti,am335x-timer";
566 reg = <0x4804a000 0x400>;
568 ti,hwmods = "timer7";
573 compatible = "ti,am3352-rtc", "ti,da830-rtc";
574 reg = <0x44e3e000 0x1000>;
578 clocks = <&clkdiv32k_ick>;
579 clock-names = "int-clk";
583 compatible = "ti,omap4-mcspi";
584 #address-cells = <1>;
586 reg = <0x48030000 0x400>;
594 dma-names = "tx0", "rx0", "tx1", "rx1";
599 compatible = "ti,omap4-mcspi";
600 #address-cells = <1>;
602 reg = <0x481a0000 0x400>;
610 dma-names = "tx0", "rx0", "tx1", "rx1";
615 compatible = "ti,am33xx-usb";
616 reg = <0x47400000 0x1000>;
618 #address-cells = <1>;
620 ti,hwmods = "usb_otg_hs";
623 usb_ctrl_mod: control@44e10620 {
624 compatible = "ti,am335x-usb-ctrl-module";
625 reg = <0x44e10620 0x10
627 reg-names = "phy_ctrl", "wakeup";
631 usb0_phy: usb-phy@47401300 {
632 compatible = "ti,am335x-usb-phy";
633 reg = <0x47401300 0x100>;
636 ti,ctrl_mod = <&usb_ctrl_mod>;
640 compatible = "ti,musb-am33xx";
642 reg = <0x47401400 0x400
644 reg-names = "mc", "control";
647 interrupt-names = "mc";
649 mentor,multipoint = <1>;
650 mentor,num-eps = <16>;
651 mentor,ram-bits = <12>;
652 mentor,power = <500>;
655 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
656 &cppi41dma 2 0 &cppi41dma 3 0
657 &cppi41dma 4 0 &cppi41dma 5 0
658 &cppi41dma 6 0 &cppi41dma 7 0
659 &cppi41dma 8 0 &cppi41dma 9 0
660 &cppi41dma 10 0 &cppi41dma 11 0
661 &cppi41dma 12 0 &cppi41dma 13 0
662 &cppi41dma 14 0 &cppi41dma 0 1
663 &cppi41dma 1 1 &cppi41dma 2 1
664 &cppi41dma 3 1 &cppi41dma 4 1
665 &cppi41dma 5 1 &cppi41dma 6 1
666 &cppi41dma 7 1 &cppi41dma 8 1
667 &cppi41dma 9 1 &cppi41dma 10 1
668 &cppi41dma 11 1 &cppi41dma 12 1
669 &cppi41dma 13 1 &cppi41dma 14 1>;
671 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
672 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
674 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
675 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
679 usb1_phy: usb-phy@47401b00 {
680 compatible = "ti,am335x-usb-phy";
681 reg = <0x47401b00 0x100>;
684 ti,ctrl_mod = <&usb_ctrl_mod>;
688 compatible = "ti,musb-am33xx";
690 reg = <0x47401c00 0x400
692 reg-names = "mc", "control";
694 interrupt-names = "mc";
696 mentor,multipoint = <1>;
697 mentor,num-eps = <16>;
698 mentor,ram-bits = <12>;
699 mentor,power = <500>;
702 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
703 &cppi41dma 17 0 &cppi41dma 18 0
704 &cppi41dma 19 0 &cppi41dma 20 0
705 &cppi41dma 21 0 &cppi41dma 22 0
706 &cppi41dma 23 0 &cppi41dma 24 0
707 &cppi41dma 25 0 &cppi41dma 26 0
708 &cppi41dma 27 0 &cppi41dma 28 0
709 &cppi41dma 29 0 &cppi41dma 15 1
710 &cppi41dma 16 1 &cppi41dma 17 1
711 &cppi41dma 18 1 &cppi41dma 19 1
712 &cppi41dma 20 1 &cppi41dma 21 1
713 &cppi41dma 22 1 &cppi41dma 23 1
714 &cppi41dma 24 1 &cppi41dma 25 1
715 &cppi41dma 26 1 &cppi41dma 27 1
716 &cppi41dma 28 1 &cppi41dma 29 1>;
718 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
719 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
721 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
722 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
726 cppi41dma: dma-controller@47402000 {
727 compatible = "ti,am3359-cppi41";
728 reg = <0x47400000 0x1000
732 reg-names = "glue", "controller", "scheduler", "queuemgr";
734 interrupt-names = "glue";
736 #dma-channels = <30>;
737 #dma-requests = <256>;
742 epwmss0: epwmss@48300000 {
743 compatible = "ti,am33xx-pwmss";
744 reg = <0x48300000 0x10>;
745 ti,hwmods = "epwmss0";
746 #address-cells = <1>;
749 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
750 0x48300180 0x48300180 0x80 /* EQEP */
751 0x48300200 0x48300200 0x80>; /* EHRPWM */
753 ecap0: ecap@48300100 {
754 compatible = "ti,am3352-ecap",
757 reg = <0x48300100 0x80>;
758 clocks = <&l4ls_gclk>;
761 interrupt-names = "ecap0";
765 ehrpwm0: pwm@48300200 {
766 compatible = "ti,am3352-ehrpwm",
769 reg = <0x48300200 0x80>;
770 clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>;
771 clock-names = "tbclk", "fck";
776 epwmss1: epwmss@48302000 {
777 compatible = "ti,am33xx-pwmss";
778 reg = <0x48302000 0x10>;
779 ti,hwmods = "epwmss1";
780 #address-cells = <1>;
783 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
784 0x48302180 0x48302180 0x80 /* EQEP */
785 0x48302200 0x48302200 0x80>; /* EHRPWM */
787 ecap1: ecap@48302100 {
788 compatible = "ti,am3352-ecap",
791 reg = <0x48302100 0x80>;
792 clocks = <&l4ls_gclk>;
795 interrupt-names = "ecap1";
799 ehrpwm1: pwm@48302200 {
800 compatible = "ti,am3352-ehrpwm",
803 reg = <0x48302200 0x80>;
804 clocks = <&ehrpwm1_tbclk>, <&l4ls_gclk>;
805 clock-names = "tbclk", "fck";
810 epwmss2: epwmss@48304000 {
811 compatible = "ti,am33xx-pwmss";
812 reg = <0x48304000 0x10>;
813 ti,hwmods = "epwmss2";
814 #address-cells = <1>;
817 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
818 0x48304180 0x48304180 0x80 /* EQEP */
819 0x48304200 0x48304200 0x80>; /* EHRPWM */
821 ecap2: ecap@48304100 {
822 compatible = "ti,am3352-ecap",
825 reg = <0x48304100 0x80>;
826 clocks = <&l4ls_gclk>;
829 interrupt-names = "ecap2";
833 ehrpwm2: pwm@48304200 {
834 compatible = "ti,am3352-ehrpwm",
837 reg = <0x48304200 0x80>;
838 clocks = <&ehrpwm2_tbclk>, <&l4ls_gclk>;
839 clock-names = "tbclk", "fck";
844 mac: ethernet@4a100000 {
845 compatible = "ti,am335x-cpsw","ti,cpsw";
846 ti,hwmods = "cpgmac0";
847 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
848 clock-names = "fck", "cpts";
849 cpdma_channels = <8>;
850 ale_entries = <1024>;
851 bd_ram_size = <0x2000>;
852 mac_control = <0x20>;
855 cpts_clock_mult = <0x80000000>;
856 cpts_clock_shift = <29>;
857 reg = <0x4a100000 0x800
859 #address-cells = <1>;
867 interrupts = <40 41 42 43>;
869 syscon = <&scm_conf>;
872 davinci_mdio: mdio@4a101000 {
873 compatible = "ti,cpsw-mdio","ti,davinci_mdio";
874 #address-cells = <1>;
876 ti,hwmods = "davinci_mdio";
877 bus_freq = <1000000>;
878 reg = <0x4a101000 0x100>;
882 cpsw_emac0: slave@4a100200 {
883 /* Filled in by U-Boot */
884 mac-address = [ 00 00 00 00 00 00 ];
887 cpsw_emac1: slave@4a100300 {
888 /* Filled in by U-Boot */
889 mac-address = [ 00 00 00 00 00 00 ];
892 phy_sel: cpsw-phy-sel@44e10650 {
893 compatible = "ti,am3352-cpsw-phy-sel";
894 reg= <0x44e10650 0x4>;
895 reg-names = "gmii-sel";
899 ocmcram: ocmcram@40300000 {
900 compatible = "mmio-sram";
901 reg = <0x40300000 0x10000>; /* 64k */
905 compatible = "ti,am3352-elm";
906 reg = <0x48080000 0x2000>;
912 lcdc: lcdc@4830e000 {
913 compatible = "ti,am33xx-tilcdc";
914 reg = <0x4830e000 0x1000>;
920 tscadc: tscadc@44e0d000 {
921 compatible = "ti,am3359-tscadc";
922 reg = <0x44e0d000 0x1000>;
924 ti,hwmods = "adc_tsc";
926 dmas = <&edma 53 0>, <&edma 57 0>;
927 dma-names = "fifo0", "fifo1";
930 compatible = "ti,am3359-tsc";
933 #io-channel-cells = <1>;
934 compatible = "ti,am3359-adc";
938 emif: emif@4c000000 {
939 compatible = "ti,emif-am3352";
940 reg = <0x4c000000 0x1000000>;
944 gpmc: gpmc@50000000 {
945 compatible = "ti,am3352-gpmc";
948 reg = <0x50000000 0x2000>;
953 gpmc,num-waitpins = <2>;
954 #address-cells = <2>;
956 interrupt-controller;
957 #interrupt-cells = <2>;
963 sham: sham@53100000 {
964 compatible = "ti,omap4-sham";
966 reg = <0x53100000 0x200>;
973 compatible = "ti,omap4-aes";
975 reg = <0x53500000 0xa0>;
979 dma-names = "tx", "rx";
982 mcasp0: mcasp@48038000 {
983 compatible = "ti,am33xx-mcasp-audio";
984 ti,hwmods = "mcasp0";
985 reg = <0x48038000 0x2000>,
986 <0x46000000 0x400000>;
987 reg-names = "mpu", "dat";
988 interrupts = <80>, <81>;
989 interrupt-names = "tx", "rx";
993 dma-names = "tx", "rx";
996 mcasp1: mcasp@4803C000 {
997 compatible = "ti,am33xx-mcasp-audio";
998 ti,hwmods = "mcasp1";
999 reg = <0x4803C000 0x2000>,
1000 <0x46400000 0x400000>;
1001 reg-names = "mpu", "dat";
1002 interrupts = <82>, <83>;
1003 interrupt-names = "tx", "rx";
1004 status = "disabled";
1005 dmas = <&edma 10 2>,
1007 dma-names = "tx", "rx";
1011 compatible = "ti,omap4-rng";
1013 reg = <0x48310000 0x2000>;
1019 /include/ "am33xx-clocks.dtsi"