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 interrupt-parent = <&intc>;
435 reg = <0x48060000 0x1000>;
440 compatible = "ti,omap4-hsmmc";
442 ti,needs-special-reset;
445 dma-names = "tx", "rx";
447 interrupt-parent = <&intc>;
448 reg = <0x481d8000 0x1000>;
453 compatible = "ti,omap4-hsmmc";
455 ti,needs-special-reset;
457 interrupt-parent = <&intc>;
458 reg = <0x47810000 0x1000>;
462 hwspinlock: spinlock@480ca000 {
463 compatible = "ti,omap4-hwspinlock";
464 reg = <0x480ca000 0x1000>;
465 ti,hwmods = "spinlock";
470 compatible = "ti,omap3-wdt";
471 ti,hwmods = "wd_timer2";
472 reg = <0x44e35000 0x1000>;
476 dcan0: can@481cc000 {
477 compatible = "ti,am3352-d_can";
478 ti,hwmods = "d_can0";
479 reg = <0x481cc000 0x2000>;
480 clocks = <&dcan0_fck>;
482 syscon-raminit = <&scm_conf 0x644 0>;
487 dcan1: can@481d0000 {
488 compatible = "ti,am3352-d_can";
489 ti,hwmods = "d_can1";
490 reg = <0x481d0000 0x2000>;
491 clocks = <&dcan1_fck>;
493 syscon-raminit = <&scm_conf 0x644 1>;
498 mailbox: mailbox@480C8000 {
499 compatible = "ti,omap4-mailbox";
500 reg = <0x480C8000 0x200>;
502 ti,hwmods = "mailbox";
504 ti,mbox-num-users = <4>;
505 ti,mbox-num-fifos = <8>;
506 mbox_wkupm3: wkup_m3 {
508 ti,mbox-tx = <0 0 0>;
509 ti,mbox-rx = <0 0 3>;
513 timer1: timer@44e31000 {
514 compatible = "ti,am335x-timer-1ms";
515 reg = <0x44e31000 0x400>;
517 ti,hwmods = "timer1";
521 timer2: timer@48040000 {
522 compatible = "ti,am335x-timer";
523 reg = <0x48040000 0x400>;
525 ti,hwmods = "timer2";
528 timer3: timer@48042000 {
529 compatible = "ti,am335x-timer";
530 reg = <0x48042000 0x400>;
532 ti,hwmods = "timer3";
535 timer4: timer@48044000 {
536 compatible = "ti,am335x-timer";
537 reg = <0x48044000 0x400>;
539 ti,hwmods = "timer4";
543 timer5: timer@48046000 {
544 compatible = "ti,am335x-timer";
545 reg = <0x48046000 0x400>;
547 ti,hwmods = "timer5";
551 timer6: timer@48048000 {
552 compatible = "ti,am335x-timer";
553 reg = <0x48048000 0x400>;
555 ti,hwmods = "timer6";
559 timer7: timer@4804a000 {
560 compatible = "ti,am335x-timer";
561 reg = <0x4804a000 0x400>;
563 ti,hwmods = "timer7";
568 compatible = "ti,am3352-rtc", "ti,da830-rtc";
569 reg = <0x44e3e000 0x1000>;
573 clocks = <&clkdiv32k_ick>;
574 clock-names = "int-clk";
578 compatible = "ti,omap4-mcspi";
579 #address-cells = <1>;
581 reg = <0x48030000 0x400>;
589 dma-names = "tx0", "rx0", "tx1", "rx1";
594 compatible = "ti,omap4-mcspi";
595 #address-cells = <1>;
597 reg = <0x481a0000 0x400>;
605 dma-names = "tx0", "rx0", "tx1", "rx1";
610 compatible = "ti,am33xx-usb";
611 reg = <0x47400000 0x1000>;
613 #address-cells = <1>;
615 ti,hwmods = "usb_otg_hs";
618 usb_ctrl_mod: control@44e10620 {
619 compatible = "ti,am335x-usb-ctrl-module";
620 reg = <0x44e10620 0x10
622 reg-names = "phy_ctrl", "wakeup";
626 usb0_phy: usb-phy@47401300 {
627 compatible = "ti,am335x-usb-phy";
628 reg = <0x47401300 0x100>;
631 ti,ctrl_mod = <&usb_ctrl_mod>;
635 compatible = "ti,musb-am33xx";
637 reg = <0x47401400 0x400
639 reg-names = "mc", "control";
642 interrupt-names = "mc";
644 mentor,multipoint = <1>;
645 mentor,num-eps = <16>;
646 mentor,ram-bits = <12>;
647 mentor,power = <500>;
650 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
651 &cppi41dma 2 0 &cppi41dma 3 0
652 &cppi41dma 4 0 &cppi41dma 5 0
653 &cppi41dma 6 0 &cppi41dma 7 0
654 &cppi41dma 8 0 &cppi41dma 9 0
655 &cppi41dma 10 0 &cppi41dma 11 0
656 &cppi41dma 12 0 &cppi41dma 13 0
657 &cppi41dma 14 0 &cppi41dma 0 1
658 &cppi41dma 1 1 &cppi41dma 2 1
659 &cppi41dma 3 1 &cppi41dma 4 1
660 &cppi41dma 5 1 &cppi41dma 6 1
661 &cppi41dma 7 1 &cppi41dma 8 1
662 &cppi41dma 9 1 &cppi41dma 10 1
663 &cppi41dma 11 1 &cppi41dma 12 1
664 &cppi41dma 13 1 &cppi41dma 14 1>;
666 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
667 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
669 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
670 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
674 usb1_phy: usb-phy@47401b00 {
675 compatible = "ti,am335x-usb-phy";
676 reg = <0x47401b00 0x100>;
679 ti,ctrl_mod = <&usb_ctrl_mod>;
683 compatible = "ti,musb-am33xx";
685 reg = <0x47401c00 0x400
687 reg-names = "mc", "control";
689 interrupt-names = "mc";
691 mentor,multipoint = <1>;
692 mentor,num-eps = <16>;
693 mentor,ram-bits = <12>;
694 mentor,power = <500>;
697 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
698 &cppi41dma 17 0 &cppi41dma 18 0
699 &cppi41dma 19 0 &cppi41dma 20 0
700 &cppi41dma 21 0 &cppi41dma 22 0
701 &cppi41dma 23 0 &cppi41dma 24 0
702 &cppi41dma 25 0 &cppi41dma 26 0
703 &cppi41dma 27 0 &cppi41dma 28 0
704 &cppi41dma 29 0 &cppi41dma 15 1
705 &cppi41dma 16 1 &cppi41dma 17 1
706 &cppi41dma 18 1 &cppi41dma 19 1
707 &cppi41dma 20 1 &cppi41dma 21 1
708 &cppi41dma 22 1 &cppi41dma 23 1
709 &cppi41dma 24 1 &cppi41dma 25 1
710 &cppi41dma 26 1 &cppi41dma 27 1
711 &cppi41dma 28 1 &cppi41dma 29 1>;
713 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
714 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
716 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
717 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
721 cppi41dma: dma-controller@47402000 {
722 compatible = "ti,am3359-cppi41";
723 reg = <0x47400000 0x1000
727 reg-names = "glue", "controller", "scheduler", "queuemgr";
729 interrupt-names = "glue";
731 #dma-channels = <30>;
732 #dma-requests = <256>;
737 epwmss0: epwmss@48300000 {
738 compatible = "ti,am33xx-pwmss";
739 reg = <0x48300000 0x10>;
740 ti,hwmods = "epwmss0";
741 #address-cells = <1>;
744 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
745 0x48300180 0x48300180 0x80 /* EQEP */
746 0x48300200 0x48300200 0x80>; /* EHRPWM */
748 ecap0: ecap@48300100 {
749 compatible = "ti,am3352-ecap",
752 reg = <0x48300100 0x80>;
753 clocks = <&l4ls_gclk>;
756 interrupt-names = "ecap0";
760 ehrpwm0: pwm@48300200 {
761 compatible = "ti,am3352-ehrpwm",
764 reg = <0x48300200 0x80>;
765 clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>;
766 clock-names = "tbclk", "fck";
771 epwmss1: epwmss@48302000 {
772 compatible = "ti,am33xx-pwmss";
773 reg = <0x48302000 0x10>;
774 ti,hwmods = "epwmss1";
775 #address-cells = <1>;
778 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
779 0x48302180 0x48302180 0x80 /* EQEP */
780 0x48302200 0x48302200 0x80>; /* EHRPWM */
782 ecap1: ecap@48302100 {
783 compatible = "ti,am3352-ecap",
786 reg = <0x48302100 0x80>;
787 clocks = <&l4ls_gclk>;
790 interrupt-names = "ecap1";
794 ehrpwm1: pwm@48302200 {
795 compatible = "ti,am3352-ehrpwm",
798 reg = <0x48302200 0x80>;
799 clocks = <&ehrpwm1_tbclk>, <&l4ls_gclk>;
800 clock-names = "tbclk", "fck";
805 epwmss2: epwmss@48304000 {
806 compatible = "ti,am33xx-pwmss";
807 reg = <0x48304000 0x10>;
808 ti,hwmods = "epwmss2";
809 #address-cells = <1>;
812 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
813 0x48304180 0x48304180 0x80 /* EQEP */
814 0x48304200 0x48304200 0x80>; /* EHRPWM */
816 ecap2: ecap@48304100 {
817 compatible = "ti,am3352-ecap",
820 reg = <0x48304100 0x80>;
821 clocks = <&l4ls_gclk>;
824 interrupt-names = "ecap2";
828 ehrpwm2: pwm@48304200 {
829 compatible = "ti,am3352-ehrpwm",
832 reg = <0x48304200 0x80>;
833 clocks = <&ehrpwm2_tbclk>, <&l4ls_gclk>;
834 clock-names = "tbclk", "fck";
839 mac: ethernet@4a100000 {
840 compatible = "ti,am335x-cpsw","ti,cpsw";
841 ti,hwmods = "cpgmac0";
842 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
843 clock-names = "fck", "cpts";
844 cpdma_channels = <8>;
845 ale_entries = <1024>;
846 bd_ram_size = <0x2000>;
847 mac_control = <0x20>;
850 cpts_clock_mult = <0x80000000>;
851 cpts_clock_shift = <29>;
852 reg = <0x4a100000 0x800
854 #address-cells = <1>;
856 interrupt-parent = <&intc>;
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>;
911 interrupt-parent = <&intc>;
917 tscadc: tscadc@44e0d000 {
918 compatible = "ti,am3359-tscadc";
919 reg = <0x44e0d000 0x1000>;
920 interrupt-parent = <&intc>;
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 gpmc: gpmc@50000000 {
937 compatible = "ti,am3352-gpmc";
940 reg = <0x50000000 0x2000>;
945 gpmc,num-waitpins = <2>;
946 #address-cells = <2>;
948 interrupt-controller;
949 #interrupt-cells = <2>;
955 sham: sham@53100000 {
956 compatible = "ti,omap4-sham";
958 reg = <0x53100000 0x200>;
965 compatible = "ti,omap4-aes";
967 reg = <0x53500000 0xa0>;
971 dma-names = "tx", "rx";
974 mcasp0: mcasp@48038000 {
975 compatible = "ti,am33xx-mcasp-audio";
976 ti,hwmods = "mcasp0";
977 reg = <0x48038000 0x2000>,
978 <0x46000000 0x400000>;
979 reg-names = "mpu", "dat";
980 interrupts = <80>, <81>;
981 interrupt-names = "tx", "rx";
985 dma-names = "tx", "rx";
988 mcasp1: mcasp@4803C000 {
989 compatible = "ti,am33xx-mcasp-audio";
990 ti,hwmods = "mcasp1";
991 reg = <0x4803C000 0x2000>,
992 <0x46400000 0x400000>;
993 reg-names = "mpu", "dat";
994 interrupts = <82>, <83>;
995 interrupt-names = "tx", "rx";
999 dma-names = "tx", "rx";
1003 compatible = "ti,omap4-rng";
1005 reg = <0x48310000 0x2000>;
1011 /include/ "am33xx-clocks.dtsi"