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";
50 * To consider voltage drop between PMIC and SoC,
51 * tolerance value is reduced to 2% from 4% and
52 * voltage value is increased as a precaution.
61 voltage-tolerance = <2>; /* 2 percentage */
63 clocks = <&dpll_mpu_ck>;
66 clock-latency = <300000>; /* From omap-cpufreq driver */
71 compatible = "arm,cortex-a8-pmu";
76 * The soc node represents the soc top level view. It is used for IPs
77 * that are not memory mapped in the MPU view or for the MPU itself.
80 compatible = "ti,omap-infra";
82 compatible = "ti,omap3-mpu";
88 * XXX: Use a flat representation of the AM33XX interconnect.
89 * The real AM33XX interconnect network is quite complex. Since
90 * it will not bring real advantage to represent that in DT
91 * for the moment, just use a fake OCP bus entry to represent
92 * the whole bus hierarchy.
95 compatible = "simple-bus";
99 ti,hwmods = "l3_main";
101 l4_wkup: l4_wkup@44c00000 {
102 compatible = "ti,am3-l4-wkup", "simple-bus";
103 #address-cells = <1>;
105 ranges = <0 0x44c00000 0x280000>;
107 wkup_m3: wkup_m3@100000 {
108 compatible = "ti,am3352-wkup-m3";
109 reg = <0x100000 0x4000>,
111 reg-names = "umem", "dmem";
112 ti,hwmods = "wkup_m3";
113 ti,pm-firmware = "am335x-pm-firmware.elf";
117 compatible = "ti,am3-prcm";
118 reg = <0x200000 0x4000>;
120 prcm_clocks: clocks {
121 #address-cells = <1>;
125 prcm_clockdomains: clockdomains {
130 compatible = "ti,am3-scm", "simple-bus";
131 reg = <0x210000 0x2000>;
132 #address-cells = <1>;
134 #pinctrl-cells = <1>;
135 ranges = <0 0x210000 0x2000>;
137 am33xx_pinmux: pinmux@800 {
138 compatible = "pinctrl-single";
140 #address-cells = <1>;
142 #pinctrl-cells = <1>;
143 pinctrl-single,register-width = <32>;
144 pinctrl-single,function-mask = <0x7f>;
147 scm_conf: scm_conf@0 {
148 compatible = "syscon", "simple-bus";
150 #address-cells = <1>;
152 ranges = <0 0 0x800>;
155 #address-cells = <1>;
160 wkup_m3_ipc: wkup_m3_ipc@1324 {
161 compatible = "ti,am3352-wkup-m3-ipc";
164 ti,rproc = <&wkup_m3>;
165 mboxes = <&mailbox &mbox_wkupm3>;
168 edma_xbar: dma-router@f90 {
169 compatible = "ti,am335x-edma-crossbar";
173 dma-masters = <&edma>;
176 scm_clockdomains: clockdomains {
181 intc: interrupt-controller@48200000 {
182 compatible = "ti,am33xx-intc";
183 interrupt-controller;
184 #interrupt-cells = <1>;
185 reg = <0x48200000 0x1000>;
188 edma: edma@49000000 {
189 compatible = "ti,edma3-tpcc";
191 reg = <0x49000000 0x10000>;
192 reg-names = "edma3_cc";
193 interrupts = <12 13 14>;
194 interrupt-names = "edma3_ccint", "edma3_mperr",
199 ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
202 ti,edma-memcpy-channels = <20 21>;
205 edma_tptc0: tptc@49800000 {
206 compatible = "ti,edma3-tptc";
208 reg = <0x49800000 0x100000>;
210 interrupt-names = "edma3_tcerrint";
213 edma_tptc1: tptc@49900000 {
214 compatible = "ti,edma3-tptc";
216 reg = <0x49900000 0x100000>;
218 interrupt-names = "edma3_tcerrint";
221 edma_tptc2: tptc@49a00000 {
222 compatible = "ti,edma3-tptc";
224 reg = <0x49a00000 0x100000>;
226 interrupt-names = "edma3_tcerrint";
229 gpio0: gpio@44e07000 {
230 compatible = "ti,omap4-gpio";
234 interrupt-controller;
235 #interrupt-cells = <2>;
236 reg = <0x44e07000 0x1000>;
240 gpio1: gpio@4804c000 {
241 compatible = "ti,omap4-gpio";
245 interrupt-controller;
246 #interrupt-cells = <2>;
247 reg = <0x4804c000 0x1000>;
251 gpio2: gpio@481ac000 {
252 compatible = "ti,omap4-gpio";
256 interrupt-controller;
257 #interrupt-cells = <2>;
258 reg = <0x481ac000 0x1000>;
262 gpio3: gpio@481ae000 {
263 compatible = "ti,omap4-gpio";
267 interrupt-controller;
268 #interrupt-cells = <2>;
269 reg = <0x481ae000 0x1000>;
273 uart0: serial@44e09000 {
274 compatible = "ti,am3352-uart", "ti,omap3-uart";
276 clock-frequency = <48000000>;
277 reg = <0x44e09000 0x2000>;
280 dmas = <&edma 26 0>, <&edma 27 0>;
281 dma-names = "tx", "rx";
284 uart1: serial@48022000 {
285 compatible = "ti,am3352-uart", "ti,omap3-uart";
287 clock-frequency = <48000000>;
288 reg = <0x48022000 0x2000>;
291 dmas = <&edma 28 0>, <&edma 29 0>;
292 dma-names = "tx", "rx";
295 uart2: serial@48024000 {
296 compatible = "ti,am3352-uart", "ti,omap3-uart";
298 clock-frequency = <48000000>;
299 reg = <0x48024000 0x2000>;
302 dmas = <&edma 30 0>, <&edma 31 0>;
303 dma-names = "tx", "rx";
306 uart3: serial@481a6000 {
307 compatible = "ti,am3352-uart", "ti,omap3-uart";
309 clock-frequency = <48000000>;
310 reg = <0x481a6000 0x2000>;
315 uart4: serial@481a8000 {
316 compatible = "ti,am3352-uart", "ti,omap3-uart";
318 clock-frequency = <48000000>;
319 reg = <0x481a8000 0x2000>;
324 uart5: serial@481aa000 {
325 compatible = "ti,am3352-uart", "ti,omap3-uart";
327 clock-frequency = <48000000>;
328 reg = <0x481aa000 0x2000>;
334 compatible = "ti,omap4-i2c";
335 #address-cells = <1>;
338 reg = <0x44e0b000 0x1000>;
344 compatible = "ti,omap4-i2c";
345 #address-cells = <1>;
348 reg = <0x4802a000 0x1000>;
354 compatible = "ti,omap4-i2c";
355 #address-cells = <1>;
358 reg = <0x4819c000 0x1000>;
364 compatible = "ti,omap4-hsmmc";
367 ti,needs-special-reset;
368 ti,needs-special-hs-handling;
369 dmas = <&edma_xbar 24 0 0
371 dma-names = "tx", "rx";
373 interrupt-parent = <&intc>;
374 reg = <0x48060000 0x1000>;
379 compatible = "ti,omap4-hsmmc";
381 ti,needs-special-reset;
384 dma-names = "tx", "rx";
386 interrupt-parent = <&intc>;
387 reg = <0x481d8000 0x1000>;
392 compatible = "ti,omap4-hsmmc";
394 ti,needs-special-reset;
396 interrupt-parent = <&intc>;
397 reg = <0x47810000 0x1000>;
401 hwspinlock: spinlock@480ca000 {
402 compatible = "ti,omap4-hwspinlock";
403 reg = <0x480ca000 0x1000>;
404 ti,hwmods = "spinlock";
409 compatible = "ti,omap3-wdt";
410 ti,hwmods = "wd_timer2";
411 reg = <0x44e35000 0x1000>;
415 dcan0: can@481cc000 {
416 compatible = "ti,am3352-d_can";
417 ti,hwmods = "d_can0";
418 reg = <0x481cc000 0x2000>;
419 clocks = <&dcan0_fck>;
421 syscon-raminit = <&scm_conf 0x644 0>;
426 dcan1: can@481d0000 {
427 compatible = "ti,am3352-d_can";
428 ti,hwmods = "d_can1";
429 reg = <0x481d0000 0x2000>;
430 clocks = <&dcan1_fck>;
432 syscon-raminit = <&scm_conf 0x644 1>;
437 mailbox: mailbox@480C8000 {
438 compatible = "ti,omap4-mailbox";
439 reg = <0x480C8000 0x200>;
441 ti,hwmods = "mailbox";
443 ti,mbox-num-users = <4>;
444 ti,mbox-num-fifos = <8>;
445 mbox_wkupm3: wkup_m3 {
447 ti,mbox-tx = <0 0 0>;
448 ti,mbox-rx = <0 0 3>;
452 timer1: timer@44e31000 {
453 compatible = "ti,am335x-timer-1ms";
454 reg = <0x44e31000 0x400>;
456 ti,hwmods = "timer1";
460 timer2: timer@48040000 {
461 compatible = "ti,am335x-timer";
462 reg = <0x48040000 0x400>;
464 ti,hwmods = "timer2";
467 timer3: timer@48042000 {
468 compatible = "ti,am335x-timer";
469 reg = <0x48042000 0x400>;
471 ti,hwmods = "timer3";
474 timer4: timer@48044000 {
475 compatible = "ti,am335x-timer";
476 reg = <0x48044000 0x400>;
478 ti,hwmods = "timer4";
482 timer5: timer@48046000 {
483 compatible = "ti,am335x-timer";
484 reg = <0x48046000 0x400>;
486 ti,hwmods = "timer5";
490 timer6: timer@48048000 {
491 compatible = "ti,am335x-timer";
492 reg = <0x48048000 0x400>;
494 ti,hwmods = "timer6";
498 timer7: timer@4804a000 {
499 compatible = "ti,am335x-timer";
500 reg = <0x4804a000 0x400>;
502 ti,hwmods = "timer7";
507 compatible = "ti,am3352-rtc", "ti,da830-rtc";
508 reg = <0x44e3e000 0x1000>;
512 clocks = <&clkdiv32k_ick>;
513 clock-names = "int-clk";
517 compatible = "ti,omap4-mcspi";
518 #address-cells = <1>;
520 reg = <0x48030000 0x400>;
528 dma-names = "tx0", "rx0", "tx1", "rx1";
533 compatible = "ti,omap4-mcspi";
534 #address-cells = <1>;
536 reg = <0x481a0000 0x400>;
544 dma-names = "tx0", "rx0", "tx1", "rx1";
549 compatible = "ti,am33xx-usb";
550 reg = <0x47400000 0x1000>;
552 #address-cells = <1>;
554 ti,hwmods = "usb_otg_hs";
557 usb_ctrl_mod: control@44e10620 {
558 compatible = "ti,am335x-usb-ctrl-module";
559 reg = <0x44e10620 0x10
561 reg-names = "phy_ctrl", "wakeup";
565 usb0_phy: usb-phy@47401300 {
566 compatible = "ti,am335x-usb-phy";
567 reg = <0x47401300 0x100>;
570 ti,ctrl_mod = <&usb_ctrl_mod>;
574 compatible = "ti,musb-am33xx";
576 reg = <0x47401400 0x400
578 reg-names = "mc", "control";
581 interrupt-names = "mc";
583 mentor,multipoint = <1>;
584 mentor,num-eps = <16>;
585 mentor,ram-bits = <12>;
586 mentor,power = <500>;
589 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
590 &cppi41dma 2 0 &cppi41dma 3 0
591 &cppi41dma 4 0 &cppi41dma 5 0
592 &cppi41dma 6 0 &cppi41dma 7 0
593 &cppi41dma 8 0 &cppi41dma 9 0
594 &cppi41dma 10 0 &cppi41dma 11 0
595 &cppi41dma 12 0 &cppi41dma 13 0
596 &cppi41dma 14 0 &cppi41dma 0 1
597 &cppi41dma 1 1 &cppi41dma 2 1
598 &cppi41dma 3 1 &cppi41dma 4 1
599 &cppi41dma 5 1 &cppi41dma 6 1
600 &cppi41dma 7 1 &cppi41dma 8 1
601 &cppi41dma 9 1 &cppi41dma 10 1
602 &cppi41dma 11 1 &cppi41dma 12 1
603 &cppi41dma 13 1 &cppi41dma 14 1>;
605 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
606 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
608 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
609 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
613 usb1_phy: usb-phy@47401b00 {
614 compatible = "ti,am335x-usb-phy";
615 reg = <0x47401b00 0x100>;
618 ti,ctrl_mod = <&usb_ctrl_mod>;
622 compatible = "ti,musb-am33xx";
624 reg = <0x47401c00 0x400
626 reg-names = "mc", "control";
628 interrupt-names = "mc";
630 mentor,multipoint = <1>;
631 mentor,num-eps = <16>;
632 mentor,ram-bits = <12>;
633 mentor,power = <500>;
636 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
637 &cppi41dma 17 0 &cppi41dma 18 0
638 &cppi41dma 19 0 &cppi41dma 20 0
639 &cppi41dma 21 0 &cppi41dma 22 0
640 &cppi41dma 23 0 &cppi41dma 24 0
641 &cppi41dma 25 0 &cppi41dma 26 0
642 &cppi41dma 27 0 &cppi41dma 28 0
643 &cppi41dma 29 0 &cppi41dma 15 1
644 &cppi41dma 16 1 &cppi41dma 17 1
645 &cppi41dma 18 1 &cppi41dma 19 1
646 &cppi41dma 20 1 &cppi41dma 21 1
647 &cppi41dma 22 1 &cppi41dma 23 1
648 &cppi41dma 24 1 &cppi41dma 25 1
649 &cppi41dma 26 1 &cppi41dma 27 1
650 &cppi41dma 28 1 &cppi41dma 29 1>;
652 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
653 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
655 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
656 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
660 cppi41dma: dma-controller@47402000 {
661 compatible = "ti,am3359-cppi41";
662 reg = <0x47400000 0x1000
666 reg-names = "glue", "controller", "scheduler", "queuemgr";
668 interrupt-names = "glue";
670 #dma-channels = <30>;
671 #dma-requests = <256>;
676 epwmss0: epwmss@48300000 {
677 compatible = "ti,am33xx-pwmss";
678 reg = <0x48300000 0x10>;
679 ti,hwmods = "epwmss0";
680 #address-cells = <1>;
683 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
684 0x48300180 0x48300180 0x80 /* EQEP */
685 0x48300200 0x48300200 0x80>; /* EHRPWM */
687 ecap0: ecap@48300100 {
688 compatible = "ti,am3352-ecap",
691 reg = <0x48300100 0x80>;
692 clocks = <&l4ls_gclk>;
695 interrupt-names = "ecap0";
699 ehrpwm0: pwm@48300200 {
700 compatible = "ti,am3352-ehrpwm",
703 reg = <0x48300200 0x80>;
704 clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>;
705 clock-names = "tbclk", "fck";
710 epwmss1: epwmss@48302000 {
711 compatible = "ti,am33xx-pwmss";
712 reg = <0x48302000 0x10>;
713 ti,hwmods = "epwmss1";
714 #address-cells = <1>;
717 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
718 0x48302180 0x48302180 0x80 /* EQEP */
719 0x48302200 0x48302200 0x80>; /* EHRPWM */
721 ecap1: ecap@48302100 {
722 compatible = "ti,am3352-ecap",
725 reg = <0x48302100 0x80>;
726 clocks = <&l4ls_gclk>;
729 interrupt-names = "ecap1";
733 ehrpwm1: pwm@48302200 {
734 compatible = "ti,am3352-ehrpwm",
737 reg = <0x48302200 0x80>;
738 clocks = <&ehrpwm1_tbclk>, <&l4ls_gclk>;
739 clock-names = "tbclk", "fck";
744 epwmss2: epwmss@48304000 {
745 compatible = "ti,am33xx-pwmss";
746 reg = <0x48304000 0x10>;
747 ti,hwmods = "epwmss2";
748 #address-cells = <1>;
751 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
752 0x48304180 0x48304180 0x80 /* EQEP */
753 0x48304200 0x48304200 0x80>; /* EHRPWM */
755 ecap2: ecap@48304100 {
756 compatible = "ti,am3352-ecap",
759 reg = <0x48304100 0x80>;
760 clocks = <&l4ls_gclk>;
763 interrupt-names = "ecap2";
767 ehrpwm2: pwm@48304200 {
768 compatible = "ti,am3352-ehrpwm",
771 reg = <0x48304200 0x80>;
772 clocks = <&ehrpwm2_tbclk>, <&l4ls_gclk>;
773 clock-names = "tbclk", "fck";
778 mac: ethernet@4a100000 {
779 compatible = "ti,am335x-cpsw","ti,cpsw";
780 ti,hwmods = "cpgmac0";
781 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
782 clock-names = "fck", "cpts";
783 cpdma_channels = <8>;
784 ale_entries = <1024>;
785 bd_ram_size = <0x2000>;
786 mac_control = <0x20>;
789 cpts_clock_mult = <0x80000000>;
790 cpts_clock_shift = <29>;
791 reg = <0x4a100000 0x800
793 #address-cells = <1>;
795 interrupt-parent = <&intc>;
802 interrupts = <40 41 42 43>;
804 syscon = <&scm_conf>;
807 davinci_mdio: mdio@4a101000 {
808 compatible = "ti,cpsw-mdio","ti,davinci_mdio";
809 #address-cells = <1>;
811 ti,hwmods = "davinci_mdio";
812 bus_freq = <1000000>;
813 reg = <0x4a101000 0x100>;
817 cpsw_emac0: slave@4a100200 {
818 /* Filled in by U-Boot */
819 mac-address = [ 00 00 00 00 00 00 ];
822 cpsw_emac1: slave@4a100300 {
823 /* Filled in by U-Boot */
824 mac-address = [ 00 00 00 00 00 00 ];
827 phy_sel: cpsw-phy-sel@44e10650 {
828 compatible = "ti,am3352-cpsw-phy-sel";
829 reg= <0x44e10650 0x4>;
830 reg-names = "gmii-sel";
834 ocmcram: ocmcram@40300000 {
835 compatible = "mmio-sram";
836 reg = <0x40300000 0x10000>; /* 64k */
840 compatible = "ti,am3352-elm";
841 reg = <0x48080000 0x2000>;
847 lcdc: lcdc@4830e000 {
848 compatible = "ti,am33xx-tilcdc";
849 reg = <0x4830e000 0x1000>;
850 interrupt-parent = <&intc>;
856 tscadc: tscadc@44e0d000 {
857 compatible = "ti,am3359-tscadc";
858 reg = <0x44e0d000 0x1000>;
859 interrupt-parent = <&intc>;
861 ti,hwmods = "adc_tsc";
863 dmas = <&edma 53 0>, <&edma 57 0>;
864 dma-names = "fifo0", "fifo1";
867 compatible = "ti,am3359-tsc";
870 #io-channel-cells = <1>;
871 compatible = "ti,am3359-adc";
875 gpmc: gpmc@50000000 {
876 compatible = "ti,am3352-gpmc";
879 reg = <0x50000000 0x2000>;
884 gpmc,num-waitpins = <2>;
885 #address-cells = <2>;
887 interrupt-controller;
888 #interrupt-cells = <2>;
894 sham: sham@53100000 {
895 compatible = "ti,omap4-sham";
897 reg = <0x53100000 0x200>;
904 compatible = "ti,omap4-aes";
906 reg = <0x53500000 0xa0>;
910 dma-names = "tx", "rx";
913 mcasp0: mcasp@48038000 {
914 compatible = "ti,am33xx-mcasp-audio";
915 ti,hwmods = "mcasp0";
916 reg = <0x48038000 0x2000>,
917 <0x46000000 0x400000>;
918 reg-names = "mpu", "dat";
919 interrupts = <80>, <81>;
920 interrupt-names = "tx", "rx";
924 dma-names = "tx", "rx";
927 mcasp1: mcasp@4803C000 {
928 compatible = "ti,am33xx-mcasp-audio";
929 ti,hwmods = "mcasp1";
930 reg = <0x4803C000 0x2000>,
931 <0x46400000 0x400000>;
932 reg-names = "mpu", "dat";
933 interrupts = <82>, <83>;
934 interrupt-names = "tx", "rx";
938 dma-names = "tx", "rx";
942 compatible = "ti,omap4-rng";
944 reg = <0x48310000 0x2000>;
950 /include/ "am33xx-clocks.dtsi"