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";
150 #address-cells = <1>;
154 #address-cells = <1>;
159 wkup_m3_ipc: wkup_m3_ipc@1324 {
160 compatible = "ti,am3352-wkup-m3-ipc";
163 ti,rproc = <&wkup_m3>;
164 mboxes = <&mailbox &mbox_wkupm3>;
167 edma_xbar: dma-router@f90 {
168 compatible = "ti,am335x-edma-crossbar";
172 dma-masters = <&edma>;
175 scm_clockdomains: clockdomains {
180 intc: interrupt-controller@48200000 {
181 compatible = "ti,am33xx-intc";
182 interrupt-controller;
183 #interrupt-cells = <1>;
184 reg = <0x48200000 0x1000>;
187 edma: edma@49000000 {
188 compatible = "ti,edma3-tpcc";
190 reg = <0x49000000 0x10000>;
191 reg-names = "edma3_cc";
192 interrupts = <12 13 14>;
193 interrupt-names = "edma3_ccint", "edma3_mperr",
198 ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
201 ti,edma-memcpy-channels = <20 21>;
204 edma_tptc0: tptc@49800000 {
205 compatible = "ti,edma3-tptc";
207 reg = <0x49800000 0x100000>;
209 interrupt-names = "edma3_tcerrint";
212 edma_tptc1: tptc@49900000 {
213 compatible = "ti,edma3-tptc";
215 reg = <0x49900000 0x100000>;
217 interrupt-names = "edma3_tcerrint";
220 edma_tptc2: tptc@49a00000 {
221 compatible = "ti,edma3-tptc";
223 reg = <0x49a00000 0x100000>;
225 interrupt-names = "edma3_tcerrint";
228 gpio0: gpio@44e07000 {
229 compatible = "ti,omap4-gpio";
233 interrupt-controller;
234 #interrupt-cells = <2>;
235 reg = <0x44e07000 0x1000>;
239 gpio1: gpio@4804c000 {
240 compatible = "ti,omap4-gpio";
244 interrupt-controller;
245 #interrupt-cells = <2>;
246 reg = <0x4804c000 0x1000>;
250 gpio2: gpio@481ac000 {
251 compatible = "ti,omap4-gpio";
255 interrupt-controller;
256 #interrupt-cells = <2>;
257 reg = <0x481ac000 0x1000>;
261 gpio3: gpio@481ae000 {
262 compatible = "ti,omap4-gpio";
266 interrupt-controller;
267 #interrupt-cells = <2>;
268 reg = <0x481ae000 0x1000>;
272 uart0: serial@44e09000 {
273 compatible = "ti,am3352-uart", "ti,omap3-uart";
275 clock-frequency = <48000000>;
276 reg = <0x44e09000 0x2000>;
279 dmas = <&edma 26 0>, <&edma 27 0>;
280 dma-names = "tx", "rx";
283 uart1: serial@48022000 {
284 compatible = "ti,am3352-uart", "ti,omap3-uart";
286 clock-frequency = <48000000>;
287 reg = <0x48022000 0x2000>;
290 dmas = <&edma 28 0>, <&edma 29 0>;
291 dma-names = "tx", "rx";
294 uart2: serial@48024000 {
295 compatible = "ti,am3352-uart", "ti,omap3-uart";
297 clock-frequency = <48000000>;
298 reg = <0x48024000 0x2000>;
301 dmas = <&edma 30 0>, <&edma 31 0>;
302 dma-names = "tx", "rx";
305 uart3: serial@481a6000 {
306 compatible = "ti,am3352-uart", "ti,omap3-uart";
308 clock-frequency = <48000000>;
309 reg = <0x481a6000 0x2000>;
314 uart4: serial@481a8000 {
315 compatible = "ti,am3352-uart", "ti,omap3-uart";
317 clock-frequency = <48000000>;
318 reg = <0x481a8000 0x2000>;
323 uart5: serial@481aa000 {
324 compatible = "ti,am3352-uart", "ti,omap3-uart";
326 clock-frequency = <48000000>;
327 reg = <0x481aa000 0x2000>;
333 compatible = "ti,omap4-i2c";
334 #address-cells = <1>;
337 reg = <0x44e0b000 0x1000>;
343 compatible = "ti,omap4-i2c";
344 #address-cells = <1>;
347 reg = <0x4802a000 0x1000>;
353 compatible = "ti,omap4-i2c";
354 #address-cells = <1>;
357 reg = <0x4819c000 0x1000>;
363 compatible = "ti,omap4-hsmmc";
366 ti,needs-special-reset;
367 ti,needs-special-hs-handling;
368 dmas = <&edma_xbar 24 0 0
370 dma-names = "tx", "rx";
372 interrupt-parent = <&intc>;
373 reg = <0x48060000 0x1000>;
378 compatible = "ti,omap4-hsmmc";
380 ti,needs-special-reset;
383 dma-names = "tx", "rx";
385 interrupt-parent = <&intc>;
386 reg = <0x481d8000 0x1000>;
391 compatible = "ti,omap4-hsmmc";
393 ti,needs-special-reset;
395 interrupt-parent = <&intc>;
396 reg = <0x47810000 0x1000>;
400 hwspinlock: spinlock@480ca000 {
401 compatible = "ti,omap4-hwspinlock";
402 reg = <0x480ca000 0x1000>;
403 ti,hwmods = "spinlock";
408 compatible = "ti,omap3-wdt";
409 ti,hwmods = "wd_timer2";
410 reg = <0x44e35000 0x1000>;
414 dcan0: can@481cc000 {
415 compatible = "ti,am3352-d_can";
416 ti,hwmods = "d_can0";
417 reg = <0x481cc000 0x2000>;
418 clocks = <&dcan0_fck>;
420 syscon-raminit = <&scm_conf 0x644 0>;
425 dcan1: can@481d0000 {
426 compatible = "ti,am3352-d_can";
427 ti,hwmods = "d_can1";
428 reg = <0x481d0000 0x2000>;
429 clocks = <&dcan1_fck>;
431 syscon-raminit = <&scm_conf 0x644 1>;
436 mailbox: mailbox@480C8000 {
437 compatible = "ti,omap4-mailbox";
438 reg = <0x480C8000 0x200>;
440 ti,hwmods = "mailbox";
442 ti,mbox-num-users = <4>;
443 ti,mbox-num-fifos = <8>;
444 mbox_wkupm3: wkup_m3 {
446 ti,mbox-tx = <0 0 0>;
447 ti,mbox-rx = <0 0 3>;
451 timer1: timer@44e31000 {
452 compatible = "ti,am335x-timer-1ms";
453 reg = <0x44e31000 0x400>;
455 ti,hwmods = "timer1";
459 timer2: timer@48040000 {
460 compatible = "ti,am335x-timer";
461 reg = <0x48040000 0x400>;
463 ti,hwmods = "timer2";
466 timer3: timer@48042000 {
467 compatible = "ti,am335x-timer";
468 reg = <0x48042000 0x400>;
470 ti,hwmods = "timer3";
473 timer4: timer@48044000 {
474 compatible = "ti,am335x-timer";
475 reg = <0x48044000 0x400>;
477 ti,hwmods = "timer4";
481 timer5: timer@48046000 {
482 compatible = "ti,am335x-timer";
483 reg = <0x48046000 0x400>;
485 ti,hwmods = "timer5";
489 timer6: timer@48048000 {
490 compatible = "ti,am335x-timer";
491 reg = <0x48048000 0x400>;
493 ti,hwmods = "timer6";
497 timer7: timer@4804a000 {
498 compatible = "ti,am335x-timer";
499 reg = <0x4804a000 0x400>;
501 ti,hwmods = "timer7";
506 compatible = "ti,am3352-rtc", "ti,da830-rtc";
507 reg = <0x44e3e000 0x1000>;
511 clocks = <&clkdiv32k_ick>;
512 clock-names = "int-clk";
516 compatible = "ti,omap4-mcspi";
517 #address-cells = <1>;
519 reg = <0x48030000 0x400>;
527 dma-names = "tx0", "rx0", "tx1", "rx1";
532 compatible = "ti,omap4-mcspi";
533 #address-cells = <1>;
535 reg = <0x481a0000 0x400>;
543 dma-names = "tx0", "rx0", "tx1", "rx1";
548 compatible = "ti,am33xx-usb";
549 reg = <0x47400000 0x1000>;
551 #address-cells = <1>;
553 ti,hwmods = "usb_otg_hs";
556 usb_ctrl_mod: control@44e10620 {
557 compatible = "ti,am335x-usb-ctrl-module";
558 reg = <0x44e10620 0x10
560 reg-names = "phy_ctrl", "wakeup";
564 usb0_phy: usb-phy@47401300 {
565 compatible = "ti,am335x-usb-phy";
566 reg = <0x47401300 0x100>;
569 ti,ctrl_mod = <&usb_ctrl_mod>;
573 compatible = "ti,musb-am33xx";
575 reg = <0x47401400 0x400
577 reg-names = "mc", "control";
580 interrupt-names = "mc";
582 mentor,multipoint = <1>;
583 mentor,num-eps = <16>;
584 mentor,ram-bits = <12>;
585 mentor,power = <500>;
588 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
589 &cppi41dma 2 0 &cppi41dma 3 0
590 &cppi41dma 4 0 &cppi41dma 5 0
591 &cppi41dma 6 0 &cppi41dma 7 0
592 &cppi41dma 8 0 &cppi41dma 9 0
593 &cppi41dma 10 0 &cppi41dma 11 0
594 &cppi41dma 12 0 &cppi41dma 13 0
595 &cppi41dma 14 0 &cppi41dma 0 1
596 &cppi41dma 1 1 &cppi41dma 2 1
597 &cppi41dma 3 1 &cppi41dma 4 1
598 &cppi41dma 5 1 &cppi41dma 6 1
599 &cppi41dma 7 1 &cppi41dma 8 1
600 &cppi41dma 9 1 &cppi41dma 10 1
601 &cppi41dma 11 1 &cppi41dma 12 1
602 &cppi41dma 13 1 &cppi41dma 14 1>;
604 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
605 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
607 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
608 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
612 usb1_phy: usb-phy@47401b00 {
613 compatible = "ti,am335x-usb-phy";
614 reg = <0x47401b00 0x100>;
617 ti,ctrl_mod = <&usb_ctrl_mod>;
621 compatible = "ti,musb-am33xx";
623 reg = <0x47401c00 0x400
625 reg-names = "mc", "control";
627 interrupt-names = "mc";
629 mentor,multipoint = <1>;
630 mentor,num-eps = <16>;
631 mentor,ram-bits = <12>;
632 mentor,power = <500>;
635 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
636 &cppi41dma 17 0 &cppi41dma 18 0
637 &cppi41dma 19 0 &cppi41dma 20 0
638 &cppi41dma 21 0 &cppi41dma 22 0
639 &cppi41dma 23 0 &cppi41dma 24 0
640 &cppi41dma 25 0 &cppi41dma 26 0
641 &cppi41dma 27 0 &cppi41dma 28 0
642 &cppi41dma 29 0 &cppi41dma 15 1
643 &cppi41dma 16 1 &cppi41dma 17 1
644 &cppi41dma 18 1 &cppi41dma 19 1
645 &cppi41dma 20 1 &cppi41dma 21 1
646 &cppi41dma 22 1 &cppi41dma 23 1
647 &cppi41dma 24 1 &cppi41dma 25 1
648 &cppi41dma 26 1 &cppi41dma 27 1
649 &cppi41dma 28 1 &cppi41dma 29 1>;
651 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
652 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
654 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
655 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
659 cppi41dma: dma-controller@47402000 {
660 compatible = "ti,am3359-cppi41";
661 reg = <0x47400000 0x1000
665 reg-names = "glue", "controller", "scheduler", "queuemgr";
667 interrupt-names = "glue";
669 #dma-channels = <30>;
670 #dma-requests = <256>;
675 epwmss0: epwmss@48300000 {
676 compatible = "ti,am33xx-pwmss";
677 reg = <0x48300000 0x10>;
678 ti,hwmods = "epwmss0";
679 #address-cells = <1>;
682 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
683 0x48300180 0x48300180 0x80 /* EQEP */
684 0x48300200 0x48300200 0x80>; /* EHRPWM */
686 ecap0: ecap@48300100 {
687 compatible = "ti,am3352-ecap",
690 reg = <0x48300100 0x80>;
691 clocks = <&l4ls_gclk>;
694 interrupt-names = "ecap0";
698 ehrpwm0: pwm@48300200 {
699 compatible = "ti,am3352-ehrpwm",
702 reg = <0x48300200 0x80>;
703 clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>;
704 clock-names = "tbclk", "fck";
709 epwmss1: epwmss@48302000 {
710 compatible = "ti,am33xx-pwmss";
711 reg = <0x48302000 0x10>;
712 ti,hwmods = "epwmss1";
713 #address-cells = <1>;
716 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
717 0x48302180 0x48302180 0x80 /* EQEP */
718 0x48302200 0x48302200 0x80>; /* EHRPWM */
720 ecap1: ecap@48302100 {
721 compatible = "ti,am3352-ecap",
724 reg = <0x48302100 0x80>;
725 clocks = <&l4ls_gclk>;
728 interrupt-names = "ecap1";
732 ehrpwm1: pwm@48302200 {
733 compatible = "ti,am3352-ehrpwm",
736 reg = <0x48302200 0x80>;
737 clocks = <&ehrpwm1_tbclk>, <&l4ls_gclk>;
738 clock-names = "tbclk", "fck";
743 epwmss2: epwmss@48304000 {
744 compatible = "ti,am33xx-pwmss";
745 reg = <0x48304000 0x10>;
746 ti,hwmods = "epwmss2";
747 #address-cells = <1>;
750 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
751 0x48304180 0x48304180 0x80 /* EQEP */
752 0x48304200 0x48304200 0x80>; /* EHRPWM */
754 ecap2: ecap@48304100 {
755 compatible = "ti,am3352-ecap",
758 reg = <0x48304100 0x80>;
759 clocks = <&l4ls_gclk>;
762 interrupt-names = "ecap2";
766 ehrpwm2: pwm@48304200 {
767 compatible = "ti,am3352-ehrpwm",
770 reg = <0x48304200 0x80>;
771 clocks = <&ehrpwm2_tbclk>, <&l4ls_gclk>;
772 clock-names = "tbclk", "fck";
777 mac: ethernet@4a100000 {
778 compatible = "ti,am335x-cpsw","ti,cpsw";
779 ti,hwmods = "cpgmac0";
780 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
781 clock-names = "fck", "cpts";
782 cpdma_channels = <8>;
783 ale_entries = <1024>;
784 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"