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";
139 * The soc node represents the soc top level view. It is used for IPs
140 * that are not memory mapped in the MPU view or for the MPU itself.
143 compatible = "ti,omap-infra";
145 compatible = "ti,omap3-mpu";
151 * XXX: Use a flat representation of the AM33XX interconnect.
152 * The real AM33XX interconnect network is quite complex. Since
153 * it will not bring real advantage to represent that in DT
154 * for the moment, just use a fake OCP bus entry to represent
155 * the whole bus hierarchy.
158 compatible = "simple-bus";
159 #address-cells = <1>;
162 ti,hwmods = "l3_main";
164 l4_wkup: l4_wkup@44c00000 {
165 compatible = "ti,am3-l4-wkup", "simple-bus";
166 #address-cells = <1>;
168 ranges = <0 0x44c00000 0x280000>;
170 wkup_m3: wkup_m3@100000 {
171 compatible = "ti,am3352-wkup-m3";
172 reg = <0x100000 0x4000>,
174 reg-names = "umem", "dmem";
175 ti,hwmods = "wkup_m3";
176 ti,pm-firmware = "am335x-pm-firmware.elf";
180 compatible = "ti,am3-prcm";
181 reg = <0x200000 0x4000>;
183 prcm_clocks: clocks {
184 #address-cells = <1>;
188 prcm_clockdomains: clockdomains {
193 compatible = "ti,am3-scm", "simple-bus";
194 reg = <0x210000 0x2000>;
195 #address-cells = <1>;
197 #pinctrl-cells = <1>;
198 ranges = <0 0x210000 0x2000>;
200 am33xx_pinmux: pinmux@800 {
201 compatible = "pinctrl-single";
203 #address-cells = <1>;
205 #pinctrl-cells = <1>;
206 pinctrl-single,register-width = <32>;
207 pinctrl-single,function-mask = <0x7f>;
210 scm_conf: scm_conf@0 {
211 compatible = "syscon", "simple-bus";
213 #address-cells = <1>;
215 ranges = <0 0 0x800>;
218 #address-cells = <1>;
223 wkup_m3_ipc: wkup_m3_ipc@1324 {
224 compatible = "ti,am3352-wkup-m3-ipc";
227 ti,rproc = <&wkup_m3>;
228 mboxes = <&mailbox &mbox_wkupm3>;
231 edma_xbar: dma-router@f90 {
232 compatible = "ti,am335x-edma-crossbar";
236 dma-masters = <&edma>;
239 scm_clockdomains: clockdomains {
244 intc: interrupt-controller@48200000 {
245 compatible = "ti,am33xx-intc";
246 interrupt-controller;
247 #interrupt-cells = <1>;
248 reg = <0x48200000 0x1000>;
251 edma: edma@49000000 {
252 compatible = "ti,edma3-tpcc";
254 reg = <0x49000000 0x10000>;
255 reg-names = "edma3_cc";
256 interrupts = <12 13 14>;
257 interrupt-names = "edma3_ccint", "edma3_mperr",
262 ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
265 ti,edma-memcpy-channels = <20 21>;
268 edma_tptc0: tptc@49800000 {
269 compatible = "ti,edma3-tptc";
271 reg = <0x49800000 0x100000>;
273 interrupt-names = "edma3_tcerrint";
276 edma_tptc1: tptc@49900000 {
277 compatible = "ti,edma3-tptc";
279 reg = <0x49900000 0x100000>;
281 interrupt-names = "edma3_tcerrint";
284 edma_tptc2: tptc@49a00000 {
285 compatible = "ti,edma3-tptc";
287 reg = <0x49a00000 0x100000>;
289 interrupt-names = "edma3_tcerrint";
292 gpio0: gpio@44e07000 {
293 compatible = "ti,omap4-gpio";
297 interrupt-controller;
298 #interrupt-cells = <2>;
299 reg = <0x44e07000 0x1000>;
303 gpio1: gpio@4804c000 {
304 compatible = "ti,omap4-gpio";
308 interrupt-controller;
309 #interrupt-cells = <2>;
310 reg = <0x4804c000 0x1000>;
314 gpio2: gpio@481ac000 {
315 compatible = "ti,omap4-gpio";
319 interrupt-controller;
320 #interrupt-cells = <2>;
321 reg = <0x481ac000 0x1000>;
325 gpio3: gpio@481ae000 {
326 compatible = "ti,omap4-gpio";
330 interrupt-controller;
331 #interrupt-cells = <2>;
332 reg = <0x481ae000 0x1000>;
336 uart0: serial@44e09000 {
337 compatible = "ti,am3352-uart", "ti,omap3-uart";
339 clock-frequency = <48000000>;
340 reg = <0x44e09000 0x2000>;
343 dmas = <&edma 26 0>, <&edma 27 0>;
344 dma-names = "tx", "rx";
347 uart1: serial@48022000 {
348 compatible = "ti,am3352-uart", "ti,omap3-uart";
350 clock-frequency = <48000000>;
351 reg = <0x48022000 0x2000>;
354 dmas = <&edma 28 0>, <&edma 29 0>;
355 dma-names = "tx", "rx";
358 uart2: serial@48024000 {
359 compatible = "ti,am3352-uart", "ti,omap3-uart";
361 clock-frequency = <48000000>;
362 reg = <0x48024000 0x2000>;
365 dmas = <&edma 30 0>, <&edma 31 0>;
366 dma-names = "tx", "rx";
369 uart3: serial@481a6000 {
370 compatible = "ti,am3352-uart", "ti,omap3-uart";
372 clock-frequency = <48000000>;
373 reg = <0x481a6000 0x2000>;
378 uart4: serial@481a8000 {
379 compatible = "ti,am3352-uart", "ti,omap3-uart";
381 clock-frequency = <48000000>;
382 reg = <0x481a8000 0x2000>;
387 uart5: serial@481aa000 {
388 compatible = "ti,am3352-uart", "ti,omap3-uart";
390 clock-frequency = <48000000>;
391 reg = <0x481aa000 0x2000>;
397 compatible = "ti,omap4-i2c";
398 #address-cells = <1>;
401 reg = <0x44e0b000 0x1000>;
407 compatible = "ti,omap4-i2c";
408 #address-cells = <1>;
411 reg = <0x4802a000 0x1000>;
417 compatible = "ti,omap4-i2c";
418 #address-cells = <1>;
421 reg = <0x4819c000 0x1000>;
427 compatible = "ti,omap4-hsmmc";
430 ti,needs-special-reset;
431 ti,needs-special-hs-handling;
432 dmas = <&edma_xbar 24 0 0
434 dma-names = "tx", "rx";
436 reg = <0x48060000 0x1000>;
441 compatible = "ti,omap4-hsmmc";
443 ti,needs-special-reset;
446 dma-names = "tx", "rx";
448 reg = <0x481d8000 0x1000>;
453 compatible = "ti,omap4-hsmmc";
455 ti,needs-special-reset;
457 reg = <0x47810000 0x1000>;
461 hwspinlock: spinlock@480ca000 {
462 compatible = "ti,omap4-hwspinlock";
463 reg = <0x480ca000 0x1000>;
464 ti,hwmods = "spinlock";
469 compatible = "ti,omap3-wdt";
470 ti,hwmods = "wd_timer2";
471 reg = <0x44e35000 0x1000>;
475 dcan0: can@481cc000 {
476 compatible = "ti,am3352-d_can";
477 ti,hwmods = "d_can0";
478 reg = <0x481cc000 0x2000>;
479 clocks = <&dcan0_fck>;
481 syscon-raminit = <&scm_conf 0x644 0>;
486 dcan1: can@481d0000 {
487 compatible = "ti,am3352-d_can";
488 ti,hwmods = "d_can1";
489 reg = <0x481d0000 0x2000>;
490 clocks = <&dcan1_fck>;
492 syscon-raminit = <&scm_conf 0x644 1>;
497 mailbox: mailbox@480C8000 {
498 compatible = "ti,omap4-mailbox";
499 reg = <0x480C8000 0x200>;
501 ti,hwmods = "mailbox";
503 ti,mbox-num-users = <4>;
504 ti,mbox-num-fifos = <8>;
505 mbox_wkupm3: wkup_m3 {
507 ti,mbox-tx = <0 0 0>;
508 ti,mbox-rx = <0 0 3>;
512 timer1: timer@44e31000 {
513 compatible = "ti,am335x-timer-1ms";
514 reg = <0x44e31000 0x400>;
516 ti,hwmods = "timer1";
520 timer2: timer@48040000 {
521 compatible = "ti,am335x-timer";
522 reg = <0x48040000 0x400>;
524 ti,hwmods = "timer2";
527 timer3: timer@48042000 {
528 compatible = "ti,am335x-timer";
529 reg = <0x48042000 0x400>;
531 ti,hwmods = "timer3";
534 timer4: timer@48044000 {
535 compatible = "ti,am335x-timer";
536 reg = <0x48044000 0x400>;
538 ti,hwmods = "timer4";
542 timer5: timer@48046000 {
543 compatible = "ti,am335x-timer";
544 reg = <0x48046000 0x400>;
546 ti,hwmods = "timer5";
550 timer6: timer@48048000 {
551 compatible = "ti,am335x-timer";
552 reg = <0x48048000 0x400>;
554 ti,hwmods = "timer6";
558 timer7: timer@4804a000 {
559 compatible = "ti,am335x-timer";
560 reg = <0x4804a000 0x400>;
562 ti,hwmods = "timer7";
567 compatible = "ti,am3352-rtc", "ti,da830-rtc";
568 reg = <0x44e3e000 0x1000>;
572 clocks = <&clkdiv32k_ick>;
573 clock-names = "int-clk";
577 compatible = "ti,omap4-mcspi";
578 #address-cells = <1>;
580 reg = <0x48030000 0x400>;
588 dma-names = "tx0", "rx0", "tx1", "rx1";
593 compatible = "ti,omap4-mcspi";
594 #address-cells = <1>;
596 reg = <0x481a0000 0x400>;
604 dma-names = "tx0", "rx0", "tx1", "rx1";
609 compatible = "ti,am33xx-usb";
610 reg = <0x47400000 0x1000>;
612 #address-cells = <1>;
614 ti,hwmods = "usb_otg_hs";
617 usb_ctrl_mod: control@44e10620 {
618 compatible = "ti,am335x-usb-ctrl-module";
619 reg = <0x44e10620 0x10
621 reg-names = "phy_ctrl", "wakeup";
625 usb0_phy: usb-phy@47401300 {
626 compatible = "ti,am335x-usb-phy";
627 reg = <0x47401300 0x100>;
630 ti,ctrl_mod = <&usb_ctrl_mod>;
634 compatible = "ti,musb-am33xx";
636 reg = <0x47401400 0x400
638 reg-names = "mc", "control";
641 interrupt-names = "mc";
643 mentor,multipoint = <1>;
644 mentor,num-eps = <16>;
645 mentor,ram-bits = <12>;
646 mentor,power = <500>;
649 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
650 &cppi41dma 2 0 &cppi41dma 3 0
651 &cppi41dma 4 0 &cppi41dma 5 0
652 &cppi41dma 6 0 &cppi41dma 7 0
653 &cppi41dma 8 0 &cppi41dma 9 0
654 &cppi41dma 10 0 &cppi41dma 11 0
655 &cppi41dma 12 0 &cppi41dma 13 0
656 &cppi41dma 14 0 &cppi41dma 0 1
657 &cppi41dma 1 1 &cppi41dma 2 1
658 &cppi41dma 3 1 &cppi41dma 4 1
659 &cppi41dma 5 1 &cppi41dma 6 1
660 &cppi41dma 7 1 &cppi41dma 8 1
661 &cppi41dma 9 1 &cppi41dma 10 1
662 &cppi41dma 11 1 &cppi41dma 12 1
663 &cppi41dma 13 1 &cppi41dma 14 1>;
665 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
666 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
668 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
669 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
673 usb1_phy: usb-phy@47401b00 {
674 compatible = "ti,am335x-usb-phy";
675 reg = <0x47401b00 0x100>;
678 ti,ctrl_mod = <&usb_ctrl_mod>;
682 compatible = "ti,musb-am33xx";
684 reg = <0x47401c00 0x400
686 reg-names = "mc", "control";
688 interrupt-names = "mc";
690 mentor,multipoint = <1>;
691 mentor,num-eps = <16>;
692 mentor,ram-bits = <12>;
693 mentor,power = <500>;
696 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
697 &cppi41dma 17 0 &cppi41dma 18 0
698 &cppi41dma 19 0 &cppi41dma 20 0
699 &cppi41dma 21 0 &cppi41dma 22 0
700 &cppi41dma 23 0 &cppi41dma 24 0
701 &cppi41dma 25 0 &cppi41dma 26 0
702 &cppi41dma 27 0 &cppi41dma 28 0
703 &cppi41dma 29 0 &cppi41dma 15 1
704 &cppi41dma 16 1 &cppi41dma 17 1
705 &cppi41dma 18 1 &cppi41dma 19 1
706 &cppi41dma 20 1 &cppi41dma 21 1
707 &cppi41dma 22 1 &cppi41dma 23 1
708 &cppi41dma 24 1 &cppi41dma 25 1
709 &cppi41dma 26 1 &cppi41dma 27 1
710 &cppi41dma 28 1 &cppi41dma 29 1>;
712 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
713 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
715 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
716 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
720 cppi41dma: dma-controller@47402000 {
721 compatible = "ti,am3359-cppi41";
722 reg = <0x47400000 0x1000
726 reg-names = "glue", "controller", "scheduler", "queuemgr";
728 interrupt-names = "glue";
730 #dma-channels = <30>;
731 #dma-requests = <256>;
736 epwmss0: epwmss@48300000 {
737 compatible = "ti,am33xx-pwmss";
738 reg = <0x48300000 0x10>;
739 ti,hwmods = "epwmss0";
740 #address-cells = <1>;
743 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
744 0x48300180 0x48300180 0x80 /* EQEP */
745 0x48300200 0x48300200 0x80>; /* EHRPWM */
747 ecap0: ecap@48300100 {
748 compatible = "ti,am3352-ecap",
751 reg = <0x48300100 0x80>;
752 clocks = <&l4ls_gclk>;
755 interrupt-names = "ecap0";
759 ehrpwm0: pwm@48300200 {
760 compatible = "ti,am3352-ehrpwm",
763 reg = <0x48300200 0x80>;
764 clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>;
765 clock-names = "tbclk", "fck";
770 epwmss1: epwmss@48302000 {
771 compatible = "ti,am33xx-pwmss";
772 reg = <0x48302000 0x10>;
773 ti,hwmods = "epwmss1";
774 #address-cells = <1>;
777 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
778 0x48302180 0x48302180 0x80 /* EQEP */
779 0x48302200 0x48302200 0x80>; /* EHRPWM */
781 ecap1: ecap@48302100 {
782 compatible = "ti,am3352-ecap",
785 reg = <0x48302100 0x80>;
786 clocks = <&l4ls_gclk>;
789 interrupt-names = "ecap1";
793 ehrpwm1: pwm@48302200 {
794 compatible = "ti,am3352-ehrpwm",
797 reg = <0x48302200 0x80>;
798 clocks = <&ehrpwm1_tbclk>, <&l4ls_gclk>;
799 clock-names = "tbclk", "fck";
804 epwmss2: epwmss@48304000 {
805 compatible = "ti,am33xx-pwmss";
806 reg = <0x48304000 0x10>;
807 ti,hwmods = "epwmss2";
808 #address-cells = <1>;
811 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
812 0x48304180 0x48304180 0x80 /* EQEP */
813 0x48304200 0x48304200 0x80>; /* EHRPWM */
815 ecap2: ecap@48304100 {
816 compatible = "ti,am3352-ecap",
819 reg = <0x48304100 0x80>;
820 clocks = <&l4ls_gclk>;
823 interrupt-names = "ecap2";
827 ehrpwm2: pwm@48304200 {
828 compatible = "ti,am3352-ehrpwm",
831 reg = <0x48304200 0x80>;
832 clocks = <&ehrpwm2_tbclk>, <&l4ls_gclk>;
833 clock-names = "tbclk", "fck";
838 mac: ethernet@4a100000 {
839 compatible = "ti,am335x-cpsw","ti,cpsw";
840 ti,hwmods = "cpgmac0";
841 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
842 clock-names = "fck", "cpts";
843 cpdma_channels = <8>;
844 ale_entries = <1024>;
845 bd_ram_size = <0x2000>;
846 mac_control = <0x20>;
849 cpts_clock_mult = <0x80000000>;
850 cpts_clock_shift = <29>;
851 reg = <0x4a100000 0x800
853 #address-cells = <1>;
861 interrupts = <40 41 42 43>;
863 syscon = <&scm_conf>;
866 davinci_mdio: mdio@4a101000 {
867 compatible = "ti,cpsw-mdio","ti,davinci_mdio";
868 #address-cells = <1>;
870 ti,hwmods = "davinci_mdio";
871 bus_freq = <1000000>;
872 reg = <0x4a101000 0x100>;
876 cpsw_emac0: slave@4a100200 {
877 /* Filled in by U-Boot */
878 mac-address = [ 00 00 00 00 00 00 ];
881 cpsw_emac1: slave@4a100300 {
882 /* Filled in by U-Boot */
883 mac-address = [ 00 00 00 00 00 00 ];
886 phy_sel: cpsw-phy-sel@44e10650 {
887 compatible = "ti,am3352-cpsw-phy-sel";
888 reg= <0x44e10650 0x4>;
889 reg-names = "gmii-sel";
893 ocmcram: ocmcram@40300000 {
894 compatible = "mmio-sram";
895 reg = <0x40300000 0x10000>; /* 64k */
899 compatible = "ti,am3352-elm";
900 reg = <0x48080000 0x2000>;
906 lcdc: lcdc@4830e000 {
907 compatible = "ti,am33xx-tilcdc";
908 reg = <0x4830e000 0x1000>;
914 tscadc: tscadc@44e0d000 {
915 compatible = "ti,am3359-tscadc";
916 reg = <0x44e0d000 0x1000>;
918 ti,hwmods = "adc_tsc";
920 dmas = <&edma 53 0>, <&edma 57 0>;
921 dma-names = "fifo0", "fifo1";
924 compatible = "ti,am3359-tsc";
927 #io-channel-cells = <1>;
928 compatible = "ti,am3359-adc";
932 gpmc: gpmc@50000000 {
933 compatible = "ti,am3352-gpmc";
936 reg = <0x50000000 0x2000>;
941 gpmc,num-waitpins = <2>;
942 #address-cells = <2>;
944 interrupt-controller;
945 #interrupt-cells = <2>;
951 sham: sham@53100000 {
952 compatible = "ti,omap4-sham";
954 reg = <0x53100000 0x200>;
961 compatible = "ti,omap4-aes";
963 reg = <0x53500000 0xa0>;
967 dma-names = "tx", "rx";
970 mcasp0: mcasp@48038000 {
971 compatible = "ti,am33xx-mcasp-audio";
972 ti,hwmods = "mcasp0";
973 reg = <0x48038000 0x2000>,
974 <0x46000000 0x400000>;
975 reg-names = "mpu", "dat";
976 interrupts = <80>, <81>;
977 interrupt-names = "tx", "rx";
981 dma-names = "tx", "rx";
984 mcasp1: mcasp@4803C000 {
985 compatible = "ti,am33xx-mcasp-audio";
986 ti,hwmods = "mcasp1";
987 reg = <0x4803C000 0x2000>,
988 <0x46400000 0x400000>;
989 reg-names = "mpu", "dat";
990 interrupts = <82>, <83>;
991 interrupt-names = "tx", "rx";
995 dma-names = "tx", "rx";
999 compatible = "ti,omap4-rng";
1001 reg = <0x48310000 0x2000>;
1007 /include/ "am33xx-clocks.dtsi"