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>;
36 ethernet0 = &cpsw_emac0;
37 ethernet1 = &cpsw_emac1;
44 compatible = "arm,cortex-a8";
49 * To consider voltage drop between PMIC and SoC,
50 * tolerance value is reduced to 2% from 4% and
51 * voltage value is increased as a precaution.
60 voltage-tolerance = <2>; /* 2 percentage */
62 clocks = <&dpll_mpu_ck>;
65 clock-latency = <300000>; /* From omap-cpufreq driver */
70 compatible = "arm,cortex-a8-pmu";
75 * The soc node represents the soc top level view. It is used for IPs
76 * that are not memory mapped in the MPU view or for the MPU itself.
79 compatible = "ti,omap-infra";
81 compatible = "ti,omap3-mpu";
87 * XXX: Use a flat representation of the AM33XX interconnect.
88 * The real AM33XX interconnect network is quite complex. Since
89 * it will not bring real advantage to represent that in DT
90 * for the moment, just use a fake OCP bus entry to represent
91 * the whole bus hierarchy.
94 compatible = "simple-bus";
98 ti,hwmods = "l3_main";
100 l4_wkup: l4_wkup@44c00000 {
101 compatible = "ti,am3-l4-wkup", "simple-bus";
102 #address-cells = <1>;
104 ranges = <0 0x44c00000 0x280000>;
106 wkup_m3: wkup_m3@100000 {
107 compatible = "ti,am3352-wkup-m3";
108 reg = <0x100000 0x4000>,
110 reg-names = "umem", "dmem";
111 ti,hwmods = "wkup_m3";
112 ti,pm-firmware = "am335x-pm-firmware.elf";
116 compatible = "ti,am3-prcm";
117 reg = <0x200000 0x4000>;
119 prcm_clocks: clocks {
120 #address-cells = <1>;
124 prcm_clockdomains: clockdomains {
129 compatible = "ti,am3-scm", "simple-bus";
130 reg = <0x210000 0x2000>;
131 #address-cells = <1>;
133 ranges = <0 0x210000 0x2000>;
135 am33xx_pinmux: pinmux@800 {
136 compatible = "pinctrl-single";
138 #address-cells = <1>;
140 pinctrl-single,register-width = <32>;
141 pinctrl-single,function-mask = <0x7f>;
144 scm_conf: scm_conf@0 {
145 compatible = "syscon";
147 #address-cells = <1>;
151 #address-cells = <1>;
156 wkup_m3_ipc: wkup_m3_ipc@1324 {
157 compatible = "ti,am3352-wkup-m3-ipc";
160 ti,rproc = <&wkup_m3>;
161 mboxes = <&mailbox &mbox_wkupm3>;
164 edma_xbar: dma-router@f90 {
165 compatible = "ti,am335x-edma-crossbar";
169 dma-masters = <&edma>;
172 scm_clockdomains: clockdomains {
177 intc: interrupt-controller@48200000 {
178 compatible = "ti,am33xx-intc";
179 interrupt-controller;
180 #interrupt-cells = <1>;
181 reg = <0x48200000 0x1000>;
184 edma: edma@49000000 {
185 compatible = "ti,edma3-tpcc";
187 reg = <0x49000000 0x10000>;
188 reg-names = "edma3_cc";
189 interrupts = <12 13 14>;
190 interrupt-names = "edma3_ccint", "edma3_mperr",
195 ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
198 ti,edma-memcpy-channels = <20 21>;
201 edma_tptc0: tptc@49800000 {
202 compatible = "ti,edma3-tptc";
204 reg = <0x49800000 0x100000>;
206 interrupt-names = "edma3_tcerrint";
209 edma_tptc1: tptc@49900000 {
210 compatible = "ti,edma3-tptc";
212 reg = <0x49900000 0x100000>;
214 interrupt-names = "edma3_tcerrint";
217 edma_tptc2: tptc@49a00000 {
218 compatible = "ti,edma3-tptc";
220 reg = <0x49a00000 0x100000>;
222 interrupt-names = "edma3_tcerrint";
225 gpio0: gpio@44e07000 {
226 compatible = "ti,omap4-gpio";
230 interrupt-controller;
231 #interrupt-cells = <2>;
232 reg = <0x44e07000 0x1000>;
236 gpio1: gpio@4804c000 {
237 compatible = "ti,omap4-gpio";
241 interrupt-controller;
242 #interrupt-cells = <2>;
243 reg = <0x4804c000 0x1000>;
247 gpio2: gpio@481ac000 {
248 compatible = "ti,omap4-gpio";
252 interrupt-controller;
253 #interrupt-cells = <2>;
254 reg = <0x481ac000 0x1000>;
258 gpio3: gpio@481ae000 {
259 compatible = "ti,omap4-gpio";
263 interrupt-controller;
264 #interrupt-cells = <2>;
265 reg = <0x481ae000 0x1000>;
269 uart0: serial@44e09000 {
270 compatible = "ti,am3352-uart", "ti,omap3-uart";
272 clock-frequency = <48000000>;
273 reg = <0x44e09000 0x2000>;
276 dmas = <&edma 26 0>, <&edma 27 0>;
277 dma-names = "tx", "rx";
280 uart1: serial@48022000 {
281 compatible = "ti,am3352-uart", "ti,omap3-uart";
283 clock-frequency = <48000000>;
284 reg = <0x48022000 0x2000>;
287 dmas = <&edma 28 0>, <&edma 29 0>;
288 dma-names = "tx", "rx";
291 uart2: serial@48024000 {
292 compatible = "ti,am3352-uart", "ti,omap3-uart";
294 clock-frequency = <48000000>;
295 reg = <0x48024000 0x2000>;
298 dmas = <&edma 30 0>, <&edma 31 0>;
299 dma-names = "tx", "rx";
302 uart3: serial@481a6000 {
303 compatible = "ti,am3352-uart", "ti,omap3-uart";
305 clock-frequency = <48000000>;
306 reg = <0x481a6000 0x2000>;
311 uart4: serial@481a8000 {
312 compatible = "ti,am3352-uart", "ti,omap3-uart";
314 clock-frequency = <48000000>;
315 reg = <0x481a8000 0x2000>;
320 uart5: serial@481aa000 {
321 compatible = "ti,am3352-uart", "ti,omap3-uart";
323 clock-frequency = <48000000>;
324 reg = <0x481aa000 0x2000>;
330 compatible = "ti,omap4-i2c";
331 #address-cells = <1>;
334 reg = <0x44e0b000 0x1000>;
340 compatible = "ti,omap4-i2c";
341 #address-cells = <1>;
344 reg = <0x4802a000 0x1000>;
350 compatible = "ti,omap4-i2c";
351 #address-cells = <1>;
354 reg = <0x4819c000 0x1000>;
360 compatible = "ti,omap4-hsmmc";
363 ti,needs-special-reset;
364 ti,needs-special-hs-handling;
365 dmas = <&edma_xbar 24 0 0
367 dma-names = "tx", "rx";
369 interrupt-parent = <&intc>;
370 reg = <0x48060000 0x1000>;
375 compatible = "ti,omap4-hsmmc";
377 ti,needs-special-reset;
380 dma-names = "tx", "rx";
382 interrupt-parent = <&intc>;
383 reg = <0x481d8000 0x1000>;
388 compatible = "ti,omap4-hsmmc";
390 ti,needs-special-reset;
392 interrupt-parent = <&intc>;
393 reg = <0x47810000 0x1000>;
397 hwspinlock: spinlock@480ca000 {
398 compatible = "ti,omap4-hwspinlock";
399 reg = <0x480ca000 0x1000>;
400 ti,hwmods = "spinlock";
405 compatible = "ti,omap3-wdt";
406 ti,hwmods = "wd_timer2";
407 reg = <0x44e35000 0x1000>;
411 dcan0: can@481cc000 {
412 compatible = "ti,am3352-d_can";
413 ti,hwmods = "d_can0";
414 reg = <0x481cc000 0x2000>;
415 clocks = <&dcan0_fck>;
417 syscon-raminit = <&scm_conf 0x644 0>;
422 dcan1: can@481d0000 {
423 compatible = "ti,am3352-d_can";
424 ti,hwmods = "d_can1";
425 reg = <0x481d0000 0x2000>;
426 clocks = <&dcan1_fck>;
428 syscon-raminit = <&scm_conf 0x644 1>;
433 mailbox: mailbox@480C8000 {
434 compatible = "ti,omap4-mailbox";
435 reg = <0x480C8000 0x200>;
437 ti,hwmods = "mailbox";
439 ti,mbox-num-users = <4>;
440 ti,mbox-num-fifos = <8>;
441 mbox_wkupm3: wkup_m3 {
443 ti,mbox-tx = <0 0 0>;
444 ti,mbox-rx = <0 0 3>;
448 timer1: timer@44e31000 {
449 compatible = "ti,am335x-timer-1ms";
450 reg = <0x44e31000 0x400>;
452 ti,hwmods = "timer1";
456 timer2: timer@48040000 {
457 compatible = "ti,am335x-timer";
458 reg = <0x48040000 0x400>;
460 ti,hwmods = "timer2";
463 timer3: timer@48042000 {
464 compatible = "ti,am335x-timer";
465 reg = <0x48042000 0x400>;
467 ti,hwmods = "timer3";
470 timer4: timer@48044000 {
471 compatible = "ti,am335x-timer";
472 reg = <0x48044000 0x400>;
474 ti,hwmods = "timer4";
478 timer5: timer@48046000 {
479 compatible = "ti,am335x-timer";
480 reg = <0x48046000 0x400>;
482 ti,hwmods = "timer5";
486 timer6: timer@48048000 {
487 compatible = "ti,am335x-timer";
488 reg = <0x48048000 0x400>;
490 ti,hwmods = "timer6";
494 timer7: timer@4804a000 {
495 compatible = "ti,am335x-timer";
496 reg = <0x4804a000 0x400>;
498 ti,hwmods = "timer7";
503 compatible = "ti,am3352-rtc", "ti,da830-rtc";
504 reg = <0x44e3e000 0x1000>;
511 compatible = "ti,omap4-mcspi";
512 #address-cells = <1>;
514 reg = <0x48030000 0x400>;
522 dma-names = "tx0", "rx0", "tx1", "rx1";
527 compatible = "ti,omap4-mcspi";
528 #address-cells = <1>;
530 reg = <0x481a0000 0x400>;
538 dma-names = "tx0", "rx0", "tx1", "rx1";
543 compatible = "ti,am33xx-usb";
544 reg = <0x47400000 0x1000>;
546 #address-cells = <1>;
548 ti,hwmods = "usb_otg_hs";
551 usb_ctrl_mod: control@44e10620 {
552 compatible = "ti,am335x-usb-ctrl-module";
553 reg = <0x44e10620 0x10
555 reg-names = "phy_ctrl", "wakeup";
559 usb0_phy: usb-phy@47401300 {
560 compatible = "ti,am335x-usb-phy";
561 reg = <0x47401300 0x100>;
564 ti,ctrl_mod = <&usb_ctrl_mod>;
568 compatible = "ti,musb-am33xx";
570 reg = <0x47401400 0x400
572 reg-names = "mc", "control";
575 interrupt-names = "mc";
577 mentor,multipoint = <1>;
578 mentor,num-eps = <16>;
579 mentor,ram-bits = <12>;
580 mentor,power = <500>;
583 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
584 &cppi41dma 2 0 &cppi41dma 3 0
585 &cppi41dma 4 0 &cppi41dma 5 0
586 &cppi41dma 6 0 &cppi41dma 7 0
587 &cppi41dma 8 0 &cppi41dma 9 0
588 &cppi41dma 10 0 &cppi41dma 11 0
589 &cppi41dma 12 0 &cppi41dma 13 0
590 &cppi41dma 14 0 &cppi41dma 0 1
591 &cppi41dma 1 1 &cppi41dma 2 1
592 &cppi41dma 3 1 &cppi41dma 4 1
593 &cppi41dma 5 1 &cppi41dma 6 1
594 &cppi41dma 7 1 &cppi41dma 8 1
595 &cppi41dma 9 1 &cppi41dma 10 1
596 &cppi41dma 11 1 &cppi41dma 12 1
597 &cppi41dma 13 1 &cppi41dma 14 1>;
599 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
600 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
602 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
603 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
607 usb1_phy: usb-phy@47401b00 {
608 compatible = "ti,am335x-usb-phy";
609 reg = <0x47401b00 0x100>;
612 ti,ctrl_mod = <&usb_ctrl_mod>;
616 compatible = "ti,musb-am33xx";
618 reg = <0x47401c00 0x400
620 reg-names = "mc", "control";
622 interrupt-names = "mc";
624 mentor,multipoint = <1>;
625 mentor,num-eps = <16>;
626 mentor,ram-bits = <12>;
627 mentor,power = <500>;
630 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
631 &cppi41dma 17 0 &cppi41dma 18 0
632 &cppi41dma 19 0 &cppi41dma 20 0
633 &cppi41dma 21 0 &cppi41dma 22 0
634 &cppi41dma 23 0 &cppi41dma 24 0
635 &cppi41dma 25 0 &cppi41dma 26 0
636 &cppi41dma 27 0 &cppi41dma 28 0
637 &cppi41dma 29 0 &cppi41dma 15 1
638 &cppi41dma 16 1 &cppi41dma 17 1
639 &cppi41dma 18 1 &cppi41dma 19 1
640 &cppi41dma 20 1 &cppi41dma 21 1
641 &cppi41dma 22 1 &cppi41dma 23 1
642 &cppi41dma 24 1 &cppi41dma 25 1
643 &cppi41dma 26 1 &cppi41dma 27 1
644 &cppi41dma 28 1 &cppi41dma 29 1>;
646 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
647 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
649 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
650 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
654 cppi41dma: dma-controller@47402000 {
655 compatible = "ti,am3359-cppi41";
656 reg = <0x47400000 0x1000
660 reg-names = "glue", "controller", "scheduler", "queuemgr";
662 interrupt-names = "glue";
664 #dma-channels = <30>;
665 #dma-requests = <256>;
670 epwmss0: epwmss@48300000 {
671 compatible = "ti,am33xx-pwmss";
672 reg = <0x48300000 0x10>;
673 ti,hwmods = "epwmss0";
674 #address-cells = <1>;
677 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
678 0x48300180 0x48300180 0x80 /* EQEP */
679 0x48300200 0x48300200 0x80>; /* EHRPWM */
681 ecap0: ecap@48300100 {
682 compatible = "ti,am3352-ecap",
685 reg = <0x48300100 0x80>;
686 clocks = <&l4ls_gclk>;
689 interrupt-names = "ecap0";
693 ehrpwm0: pwm@48300200 {
694 compatible = "ti,am3352-ehrpwm",
697 reg = <0x48300200 0x80>;
698 clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>;
699 clock-names = "tbclk", "fck";
704 epwmss1: epwmss@48302000 {
705 compatible = "ti,am33xx-pwmss";
706 reg = <0x48302000 0x10>;
707 ti,hwmods = "epwmss1";
708 #address-cells = <1>;
711 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
712 0x48302180 0x48302180 0x80 /* EQEP */
713 0x48302200 0x48302200 0x80>; /* EHRPWM */
715 ecap1: ecap@48302100 {
716 compatible = "ti,am3352-ecap",
719 reg = <0x48302100 0x80>;
720 clocks = <&l4ls_gclk>;
723 interrupt-names = "ecap1";
727 ehrpwm1: pwm@48302200 {
728 compatible = "ti,am3352-ehrpwm",
731 reg = <0x48302200 0x80>;
732 clocks = <&ehrpwm1_tbclk>, <&l4ls_gclk>;
733 clock-names = "tbclk", "fck";
738 epwmss2: epwmss@48304000 {
739 compatible = "ti,am33xx-pwmss";
740 reg = <0x48304000 0x10>;
741 ti,hwmods = "epwmss2";
742 #address-cells = <1>;
745 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
746 0x48304180 0x48304180 0x80 /* EQEP */
747 0x48304200 0x48304200 0x80>; /* EHRPWM */
749 ecap2: ecap@48304100 {
750 compatible = "ti,am3352-ecap",
753 reg = <0x48304100 0x80>;
754 clocks = <&l4ls_gclk>;
757 interrupt-names = "ecap2";
761 ehrpwm2: pwm@48304200 {
762 compatible = "ti,am3352-ehrpwm",
765 reg = <0x48304200 0x80>;
766 clocks = <&ehrpwm2_tbclk>, <&l4ls_gclk>;
767 clock-names = "tbclk", "fck";
772 mac: ethernet@4a100000 {
773 compatible = "ti,am335x-cpsw","ti,cpsw";
774 ti,hwmods = "cpgmac0";
775 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
776 clock-names = "fck", "cpts";
777 cpdma_channels = <8>;
778 ale_entries = <1024>;
779 bd_ram_size = <0x2000>;
781 mac_control = <0x20>;
784 cpts_clock_mult = <0x80000000>;
785 cpts_clock_shift = <29>;
786 reg = <0x4a100000 0x800
788 #address-cells = <1>;
790 interrupt-parent = <&intc>;
797 interrupts = <40 41 42 43>;
799 syscon = <&scm_conf>;
802 davinci_mdio: mdio@4a101000 {
803 compatible = "ti,cpsw-mdio","ti,davinci_mdio";
804 #address-cells = <1>;
806 ti,hwmods = "davinci_mdio";
807 bus_freq = <1000000>;
808 reg = <0x4a101000 0x100>;
812 cpsw_emac0: slave@4a100200 {
813 /* Filled in by U-Boot */
814 mac-address = [ 00 00 00 00 00 00 ];
817 cpsw_emac1: slave@4a100300 {
818 /* Filled in by U-Boot */
819 mac-address = [ 00 00 00 00 00 00 ];
822 phy_sel: cpsw-phy-sel@44e10650 {
823 compatible = "ti,am3352-cpsw-phy-sel";
824 reg= <0x44e10650 0x4>;
825 reg-names = "gmii-sel";
829 ocmcram: ocmcram@40300000 {
830 compatible = "mmio-sram";
831 reg = <0x40300000 0x10000>; /* 64k */
835 compatible = "ti,am3352-elm";
836 reg = <0x48080000 0x2000>;
842 lcdc: lcdc@4830e000 {
843 compatible = "ti,am33xx-tilcdc";
844 reg = <0x4830e000 0x1000>;
845 interrupt-parent = <&intc>;
851 tscadc: tscadc@44e0d000 {
852 compatible = "ti,am3359-tscadc";
853 reg = <0x44e0d000 0x1000>;
854 interrupt-parent = <&intc>;
856 ti,hwmods = "adc_tsc";
860 compatible = "ti,am3359-tsc";
863 #io-channel-cells = <1>;
864 compatible = "ti,am3359-adc";
868 gpmc: gpmc@50000000 {
869 compatible = "ti,am3352-gpmc";
872 reg = <0x50000000 0x2000>;
877 gpmc,num-waitpins = <2>;
878 #address-cells = <2>;
880 interrupt-controller;
881 #interrupt-cells = <2>;
887 sham: sham@53100000 {
888 compatible = "ti,omap4-sham";
890 reg = <0x53100000 0x200>;
897 compatible = "ti,omap4-aes";
899 reg = <0x53500000 0xa0>;
903 dma-names = "tx", "rx";
906 mcasp0: mcasp@48038000 {
907 compatible = "ti,am33xx-mcasp-audio";
908 ti,hwmods = "mcasp0";
909 reg = <0x48038000 0x2000>,
910 <0x46000000 0x400000>;
911 reg-names = "mpu", "dat";
912 interrupts = <80>, <81>;
913 interrupt-names = "tx", "rx";
917 dma-names = "tx", "rx";
920 mcasp1: mcasp@4803C000 {
921 compatible = "ti,am33xx-mcasp-audio";
922 ti,hwmods = "mcasp1";
923 reg = <0x4803C000 0x2000>,
924 <0x46400000 0x400000>;
925 reg-names = "mpu", "dat";
926 interrupts = <82>, <83>;
927 interrupt-names = "tx", "rx";
931 dma-names = "tx", "rx";
935 compatible = "ti,omap4-rng";
937 reg = <0x48310000 0x2000>;
943 /include/ "am33xx-clocks.dtsi"