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>
14 #include "skeleton.dtsi"
17 compatible = "ti,am33xx";
18 interrupt-parent = <&intc>;
36 ethernet0 = &cpsw_emac0;
37 ethernet1 = &cpsw_emac1;
44 compatible = "arm,cortex-a8";
48 operating-points-v2 = <&cpu0_opp_table>;
49 ti,syscon-efuse = <&scm_conf 0x7fc 0x1fff 0>;
50 ti,syscon-rev = <&scm_conf 0x600>;
52 clocks = <&dpll_mpu_ck>;
55 clock-latency = <300000>; /* From omap-cpufreq driver */
59 cpu0_opp_table: opp_table0 {
60 compatible = "operating-points-v2";
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 ranges = <0 0x210000 0x2000>;
197 am33xx_pinmux: pinmux@800 {
198 compatible = "pinctrl-single";
200 #address-cells = <1>;
202 pinctrl-single,register-width = <32>;
203 pinctrl-single,function-mask = <0x7f>;
206 scm_conf: scm_conf@0 {
207 compatible = "syscon";
209 #address-cells = <1>;
213 #address-cells = <1>;
218 wkup_m3_ipc: wkup_m3_ipc@1324 {
219 compatible = "ti,am3352-wkup-m3-ipc";
222 ti,rproc = <&wkup_m3>;
223 mboxes = <&mailbox &mbox_wkupm3>;
226 edma_xbar: dma-router@f90 {
227 compatible = "ti,am335x-edma-crossbar";
231 dma-masters = <&edma>;
234 scm_clockdomains: clockdomains {
239 intc: interrupt-controller@48200000 {
240 compatible = "ti,am33xx-intc";
241 interrupt-controller;
242 #interrupt-cells = <1>;
243 reg = <0x48200000 0x1000>;
246 edma: edma@49000000 {
247 compatible = "ti,edma3-tpcc";
249 reg = <0x49000000 0x10000>;
250 reg-names = "edma3_cc";
251 interrupts = <12 13 14>;
252 interrupt-names = "edma3_ccint", "edma3_mperr",
257 ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
260 ti,edma-memcpy-channels = <20 21>;
263 edma_tptc0: tptc@49800000 {
264 compatible = "ti,edma3-tptc";
266 reg = <0x49800000 0x100000>;
268 interrupt-names = "edma3_tcerrint";
271 edma_tptc1: tptc@49900000 {
272 compatible = "ti,edma3-tptc";
274 reg = <0x49900000 0x100000>;
276 interrupt-names = "edma3_tcerrint";
279 edma_tptc2: tptc@49a00000 {
280 compatible = "ti,edma3-tptc";
282 reg = <0x49a00000 0x100000>;
284 interrupt-names = "edma3_tcerrint";
287 gpio0: gpio@44e07000 {
288 compatible = "ti,omap4-gpio";
292 interrupt-controller;
293 #interrupt-cells = <2>;
294 reg = <0x44e07000 0x1000>;
298 gpio1: gpio@4804c000 {
299 compatible = "ti,omap4-gpio";
303 interrupt-controller;
304 #interrupt-cells = <2>;
305 reg = <0x4804c000 0x1000>;
309 gpio2: gpio@481ac000 {
310 compatible = "ti,omap4-gpio";
314 interrupt-controller;
315 #interrupt-cells = <2>;
316 reg = <0x481ac000 0x1000>;
320 gpio3: gpio@481ae000 {
321 compatible = "ti,omap4-gpio";
325 interrupt-controller;
326 #interrupt-cells = <2>;
327 reg = <0x481ae000 0x1000>;
331 uart0: serial@44e09000 {
332 compatible = "ti,am3352-uart", "ti,omap3-uart";
334 clock-frequency = <48000000>;
335 reg = <0x44e09000 0x2000>;
338 dmas = <&edma 26 0>, <&edma 27 0>;
339 dma-names = "tx", "rx";
342 uart1: serial@48022000 {
343 compatible = "ti,am3352-uart", "ti,omap3-uart";
345 clock-frequency = <48000000>;
346 reg = <0x48022000 0x2000>;
349 dmas = <&edma 28 0>, <&edma 29 0>;
350 dma-names = "tx", "rx";
353 uart2: serial@48024000 {
354 compatible = "ti,am3352-uart", "ti,omap3-uart";
356 clock-frequency = <48000000>;
357 reg = <0x48024000 0x2000>;
360 dmas = <&edma 30 0>, <&edma 31 0>;
361 dma-names = "tx", "rx";
364 uart3: serial@481a6000 {
365 compatible = "ti,am3352-uart", "ti,omap3-uart";
367 clock-frequency = <48000000>;
368 reg = <0x481a6000 0x2000>;
373 uart4: serial@481a8000 {
374 compatible = "ti,am3352-uart", "ti,omap3-uart";
376 clock-frequency = <48000000>;
377 reg = <0x481a8000 0x2000>;
382 uart5: serial@481aa000 {
383 compatible = "ti,am3352-uart", "ti,omap3-uart";
385 clock-frequency = <48000000>;
386 reg = <0x481aa000 0x2000>;
392 compatible = "ti,omap4-i2c";
393 #address-cells = <1>;
396 reg = <0x44e0b000 0x1000>;
402 compatible = "ti,omap4-i2c";
403 #address-cells = <1>;
406 reg = <0x4802a000 0x1000>;
412 compatible = "ti,omap4-i2c";
413 #address-cells = <1>;
416 reg = <0x4819c000 0x1000>;
422 compatible = "ti,omap4-hsmmc";
425 ti,needs-special-reset;
426 ti,needs-special-hs-handling;
427 dmas = <&edma_xbar 24 0 0
429 dma-names = "tx", "rx";
431 interrupt-parent = <&intc>;
432 reg = <0x48060000 0x1000>;
437 compatible = "ti,omap4-hsmmc";
439 ti,needs-special-reset;
442 dma-names = "tx", "rx";
444 interrupt-parent = <&intc>;
445 reg = <0x481d8000 0x1000>;
450 compatible = "ti,omap4-hsmmc";
452 ti,needs-special-reset;
454 interrupt-parent = <&intc>;
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>;
573 compatible = "ti,omap4-mcspi";
574 #address-cells = <1>;
576 reg = <0x48030000 0x400>;
584 dma-names = "tx0", "rx0", "tx1", "rx1";
589 compatible = "ti,omap4-mcspi";
590 #address-cells = <1>;
592 reg = <0x481a0000 0x400>;
600 dma-names = "tx0", "rx0", "tx1", "rx1";
605 compatible = "ti,am33xx-usb";
606 reg = <0x47400000 0x1000>;
608 #address-cells = <1>;
610 ti,hwmods = "usb_otg_hs";
613 usb_ctrl_mod: control@44e10620 {
614 compatible = "ti,am335x-usb-ctrl-module";
615 reg = <0x44e10620 0x10
617 reg-names = "phy_ctrl", "wakeup";
621 usb0_phy: usb-phy@47401300 {
622 compatible = "ti,am335x-usb-phy";
623 reg = <0x47401300 0x100>;
626 ti,ctrl_mod = <&usb_ctrl_mod>;
630 compatible = "ti,musb-am33xx";
632 reg = <0x47401400 0x400
634 reg-names = "mc", "control";
637 interrupt-names = "mc";
639 mentor,multipoint = <1>;
640 mentor,num-eps = <16>;
641 mentor,ram-bits = <12>;
642 mentor,power = <500>;
645 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
646 &cppi41dma 2 0 &cppi41dma 3 0
647 &cppi41dma 4 0 &cppi41dma 5 0
648 &cppi41dma 6 0 &cppi41dma 7 0
649 &cppi41dma 8 0 &cppi41dma 9 0
650 &cppi41dma 10 0 &cppi41dma 11 0
651 &cppi41dma 12 0 &cppi41dma 13 0
652 &cppi41dma 14 0 &cppi41dma 0 1
653 &cppi41dma 1 1 &cppi41dma 2 1
654 &cppi41dma 3 1 &cppi41dma 4 1
655 &cppi41dma 5 1 &cppi41dma 6 1
656 &cppi41dma 7 1 &cppi41dma 8 1
657 &cppi41dma 9 1 &cppi41dma 10 1
658 &cppi41dma 11 1 &cppi41dma 12 1
659 &cppi41dma 13 1 &cppi41dma 14 1>;
661 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
662 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
664 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
665 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
669 usb1_phy: usb-phy@47401b00 {
670 compatible = "ti,am335x-usb-phy";
671 reg = <0x47401b00 0x100>;
674 ti,ctrl_mod = <&usb_ctrl_mod>;
678 compatible = "ti,musb-am33xx";
680 reg = <0x47401c00 0x400
682 reg-names = "mc", "control";
684 interrupt-names = "mc";
686 mentor,multipoint = <1>;
687 mentor,num-eps = <16>;
688 mentor,ram-bits = <12>;
689 mentor,power = <500>;
692 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
693 &cppi41dma 17 0 &cppi41dma 18 0
694 &cppi41dma 19 0 &cppi41dma 20 0
695 &cppi41dma 21 0 &cppi41dma 22 0
696 &cppi41dma 23 0 &cppi41dma 24 0
697 &cppi41dma 25 0 &cppi41dma 26 0
698 &cppi41dma 27 0 &cppi41dma 28 0
699 &cppi41dma 29 0 &cppi41dma 15 1
700 &cppi41dma 16 1 &cppi41dma 17 1
701 &cppi41dma 18 1 &cppi41dma 19 1
702 &cppi41dma 20 1 &cppi41dma 21 1
703 &cppi41dma 22 1 &cppi41dma 23 1
704 &cppi41dma 24 1 &cppi41dma 25 1
705 &cppi41dma 26 1 &cppi41dma 27 1
706 &cppi41dma 28 1 &cppi41dma 29 1>;
708 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
709 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
711 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
712 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
716 cppi41dma: dma-controller@47402000 {
717 compatible = "ti,am3359-cppi41";
718 reg = <0x47400000 0x1000
722 reg-names = "glue", "controller", "scheduler", "queuemgr";
724 interrupt-names = "glue";
726 #dma-channels = <30>;
727 #dma-requests = <256>;
732 epwmss0: epwmss@48300000 {
733 compatible = "ti,am33xx-pwmss";
734 reg = <0x48300000 0x10>;
735 ti,hwmods = "epwmss0";
736 #address-cells = <1>;
739 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
740 0x48300180 0x48300180 0x80 /* EQEP */
741 0x48300200 0x48300200 0x80>; /* EHRPWM */
743 ecap0: ecap@48300100 {
744 compatible = "ti,am3352-ecap",
747 reg = <0x48300100 0x80>;
748 clocks = <&l4ls_gclk>;
751 interrupt-names = "ecap0";
755 ehrpwm0: pwm@48300200 {
756 compatible = "ti,am3352-ehrpwm",
759 reg = <0x48300200 0x80>;
760 clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>;
761 clock-names = "tbclk", "fck";
766 epwmss1: epwmss@48302000 {
767 compatible = "ti,am33xx-pwmss";
768 reg = <0x48302000 0x10>;
769 ti,hwmods = "epwmss1";
770 #address-cells = <1>;
773 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
774 0x48302180 0x48302180 0x80 /* EQEP */
775 0x48302200 0x48302200 0x80>; /* EHRPWM */
777 ecap1: ecap@48302100 {
778 compatible = "ti,am3352-ecap",
781 reg = <0x48302100 0x80>;
782 clocks = <&l4ls_gclk>;
785 interrupt-names = "ecap1";
789 ehrpwm1: pwm@48302200 {
790 compatible = "ti,am3352-ehrpwm",
793 reg = <0x48302200 0x80>;
794 clocks = <&ehrpwm1_tbclk>, <&l4ls_gclk>;
795 clock-names = "tbclk", "fck";
800 epwmss2: epwmss@48304000 {
801 compatible = "ti,am33xx-pwmss";
802 reg = <0x48304000 0x10>;
803 ti,hwmods = "epwmss2";
804 #address-cells = <1>;
807 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
808 0x48304180 0x48304180 0x80 /* EQEP */
809 0x48304200 0x48304200 0x80>; /* EHRPWM */
811 ecap2: ecap@48304100 {
812 compatible = "ti,am3352-ecap",
815 reg = <0x48304100 0x80>;
816 clocks = <&l4ls_gclk>;
819 interrupt-names = "ecap2";
823 ehrpwm2: pwm@48304200 {
824 compatible = "ti,am3352-ehrpwm",
827 reg = <0x48304200 0x80>;
828 clocks = <&ehrpwm2_tbclk>, <&l4ls_gclk>;
829 clock-names = "tbclk", "fck";
834 mac: ethernet@4a100000 {
835 compatible = "ti,am335x-cpsw","ti,cpsw";
836 ti,hwmods = "cpgmac0";
837 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
838 clock-names = "fck", "cpts";
839 cpdma_channels = <8>;
840 ale_entries = <1024>;
841 bd_ram_size = <0x2000>;
843 mac_control = <0x20>;
846 cpts_clock_mult = <0x80000000>;
847 cpts_clock_shift = <29>;
848 reg = <0x4a100000 0x800
850 #address-cells = <1>;
852 interrupt-parent = <&intc>;
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>;
907 interrupt-parent = <&intc>;
913 tscadc: tscadc@44e0d000 {
914 compatible = "ti,am3359-tscadc";
915 reg = <0x44e0d000 0x1000>;
916 interrupt-parent = <&intc>;
918 ti,hwmods = "adc_tsc";
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"