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";
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>;
107 compatible = "ti,am3-prcm";
108 reg = <0x200000 0x4000>;
110 prcm_clocks: clocks {
111 #address-cells = <1>;
115 prcm_clockdomains: clockdomains {
120 compatible = "ti,am3-scm", "simple-bus";
121 reg = <0x210000 0x2000>;
122 #address-cells = <1>;
124 ranges = <0 0x210000 0x2000>;
126 am33xx_pinmux: pinmux@800 {
127 compatible = "pinctrl-single";
129 #address-cells = <1>;
131 pinctrl-single,register-width = <32>;
132 pinctrl-single,function-mask = <0x7f>;
135 scm_conf: scm_conf@0 {
136 compatible = "syscon";
138 #address-cells = <1>;
142 #address-cells = <1>;
147 scm_clockdomains: clockdomains {
152 intc: interrupt-controller@48200000 {
153 compatible = "ti,am33xx-intc";
154 interrupt-controller;
155 #interrupt-cells = <1>;
156 reg = <0x48200000 0x1000>;
159 edma: edma@49000000 {
160 compatible = "ti,edma3";
161 ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2";
162 reg = <0x49000000 0x10000>,
164 interrupts = <12 13 14>;
168 gpio0: gpio@44e07000 {
169 compatible = "ti,omap4-gpio";
173 interrupt-controller;
174 #interrupt-cells = <2>;
175 reg = <0x44e07000 0x1000>;
179 gpio1: gpio@4804c000 {
180 compatible = "ti,omap4-gpio";
184 interrupt-controller;
185 #interrupt-cells = <2>;
186 reg = <0x4804c000 0x1000>;
190 gpio2: gpio@481ac000 {
191 compatible = "ti,omap4-gpio";
195 interrupt-controller;
196 #interrupt-cells = <2>;
197 reg = <0x481ac000 0x1000>;
201 gpio3: gpio@481ae000 {
202 compatible = "ti,omap4-gpio";
206 interrupt-controller;
207 #interrupt-cells = <2>;
208 reg = <0x481ae000 0x1000>;
212 uart0: serial@44e09000 {
213 compatible = "ti,omap3-uart";
215 clock-frequency = <48000000>;
216 reg = <0x44e09000 0x2000>;
219 dmas = <&edma 26>, <&edma 27>;
220 dma-names = "tx", "rx";
223 uart1: serial@48022000 {
224 compatible = "ti,omap3-uart";
226 clock-frequency = <48000000>;
227 reg = <0x48022000 0x2000>;
230 dmas = <&edma 28>, <&edma 29>;
231 dma-names = "tx", "rx";
234 uart2: serial@48024000 {
235 compatible = "ti,omap3-uart";
237 clock-frequency = <48000000>;
238 reg = <0x48024000 0x2000>;
241 dmas = <&edma 30>, <&edma 31>;
242 dma-names = "tx", "rx";
245 uart3: serial@481a6000 {
246 compatible = "ti,omap3-uart";
248 clock-frequency = <48000000>;
249 reg = <0x481a6000 0x2000>;
254 uart4: serial@481a8000 {
255 compatible = "ti,omap3-uart";
257 clock-frequency = <48000000>;
258 reg = <0x481a8000 0x2000>;
263 uart5: serial@481aa000 {
264 compatible = "ti,omap3-uart";
266 clock-frequency = <48000000>;
267 reg = <0x481aa000 0x2000>;
273 compatible = "ti,omap4-i2c";
274 #address-cells = <1>;
277 reg = <0x44e0b000 0x1000>;
283 compatible = "ti,omap4-i2c";
284 #address-cells = <1>;
287 reg = <0x4802a000 0x1000>;
293 compatible = "ti,omap4-i2c";
294 #address-cells = <1>;
297 reg = <0x4819c000 0x1000>;
303 compatible = "ti,omap4-hsmmc";
306 ti,needs-special-reset;
307 ti,needs-special-hs-handling;
310 dma-names = "tx", "rx";
312 interrupt-parent = <&intc>;
313 reg = <0x48060000 0x1000>;
318 compatible = "ti,omap4-hsmmc";
320 ti,needs-special-reset;
323 dma-names = "tx", "rx";
325 interrupt-parent = <&intc>;
326 reg = <0x481d8000 0x1000>;
331 compatible = "ti,omap4-hsmmc";
333 ti,needs-special-reset;
335 interrupt-parent = <&intc>;
336 reg = <0x47810000 0x1000>;
340 hwspinlock: spinlock@480ca000 {
341 compatible = "ti,omap4-hwspinlock";
342 reg = <0x480ca000 0x1000>;
343 ti,hwmods = "spinlock";
348 compatible = "ti,omap3-wdt";
349 ti,hwmods = "wd_timer2";
350 reg = <0x44e35000 0x1000>;
354 dcan0: can@481cc000 {
355 compatible = "ti,am3352-d_can";
356 ti,hwmods = "d_can0";
357 reg = <0x481cc000 0x2000>;
358 clocks = <&dcan0_fck>;
360 syscon-raminit = <&scm_conf 0x644 0>;
365 dcan1: can@481d0000 {
366 compatible = "ti,am3352-d_can";
367 ti,hwmods = "d_can1";
368 reg = <0x481d0000 0x2000>;
369 clocks = <&dcan1_fck>;
371 syscon-raminit = <&scm_conf 0x644 1>;
376 mailbox: mailbox@480C8000 {
377 compatible = "ti,omap4-mailbox";
378 reg = <0x480C8000 0x200>;
380 ti,hwmods = "mailbox";
382 ti,mbox-num-users = <4>;
383 ti,mbox-num-fifos = <8>;
384 mbox_wkupm3: wkup_m3 {
385 ti,mbox-tx = <0 0 0>;
386 ti,mbox-rx = <0 0 3>;
390 timer1: timer@44e31000 {
391 compatible = "ti,am335x-timer-1ms";
392 reg = <0x44e31000 0x400>;
394 ti,hwmods = "timer1";
398 timer2: timer@48040000 {
399 compatible = "ti,am335x-timer";
400 reg = <0x48040000 0x400>;
402 ti,hwmods = "timer2";
405 timer3: timer@48042000 {
406 compatible = "ti,am335x-timer";
407 reg = <0x48042000 0x400>;
409 ti,hwmods = "timer3";
412 timer4: timer@48044000 {
413 compatible = "ti,am335x-timer";
414 reg = <0x48044000 0x400>;
416 ti,hwmods = "timer4";
420 timer5: timer@48046000 {
421 compatible = "ti,am335x-timer";
422 reg = <0x48046000 0x400>;
424 ti,hwmods = "timer5";
428 timer6: timer@48048000 {
429 compatible = "ti,am335x-timer";
430 reg = <0x48048000 0x400>;
432 ti,hwmods = "timer6";
436 timer7: timer@4804a000 {
437 compatible = "ti,am335x-timer";
438 reg = <0x4804a000 0x400>;
440 ti,hwmods = "timer7";
445 compatible = "ti,am3352-rtc", "ti,da830-rtc";
446 reg = <0x44e3e000 0x1000>;
453 compatible = "ti,omap4-mcspi";
454 #address-cells = <1>;
456 reg = <0x48030000 0x400>;
464 dma-names = "tx0", "rx0", "tx1", "rx1";
469 compatible = "ti,omap4-mcspi";
470 #address-cells = <1>;
472 reg = <0x481a0000 0x400>;
480 dma-names = "tx0", "rx0", "tx1", "rx1";
485 compatible = "ti,am33xx-usb";
486 reg = <0x47400000 0x1000>;
488 #address-cells = <1>;
490 ti,hwmods = "usb_otg_hs";
493 usb_ctrl_mod: control@44e10620 {
494 compatible = "ti,am335x-usb-ctrl-module";
495 reg = <0x44e10620 0x10
497 reg-names = "phy_ctrl", "wakeup";
501 usb0_phy: usb-phy@47401300 {
502 compatible = "ti,am335x-usb-phy";
503 reg = <0x47401300 0x100>;
506 ti,ctrl_mod = <&usb_ctrl_mod>;
510 compatible = "ti,musb-am33xx";
512 reg = <0x47401400 0x400
514 reg-names = "mc", "control";
517 interrupt-names = "mc";
519 mentor,multipoint = <1>;
520 mentor,num-eps = <16>;
521 mentor,ram-bits = <12>;
522 mentor,power = <500>;
525 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
526 &cppi41dma 2 0 &cppi41dma 3 0
527 &cppi41dma 4 0 &cppi41dma 5 0
528 &cppi41dma 6 0 &cppi41dma 7 0
529 &cppi41dma 8 0 &cppi41dma 9 0
530 &cppi41dma 10 0 &cppi41dma 11 0
531 &cppi41dma 12 0 &cppi41dma 13 0
532 &cppi41dma 14 0 &cppi41dma 0 1
533 &cppi41dma 1 1 &cppi41dma 2 1
534 &cppi41dma 3 1 &cppi41dma 4 1
535 &cppi41dma 5 1 &cppi41dma 6 1
536 &cppi41dma 7 1 &cppi41dma 8 1
537 &cppi41dma 9 1 &cppi41dma 10 1
538 &cppi41dma 11 1 &cppi41dma 12 1
539 &cppi41dma 13 1 &cppi41dma 14 1>;
541 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
542 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
544 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
545 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
549 usb1_phy: usb-phy@47401b00 {
550 compatible = "ti,am335x-usb-phy";
551 reg = <0x47401b00 0x100>;
554 ti,ctrl_mod = <&usb_ctrl_mod>;
558 compatible = "ti,musb-am33xx";
560 reg = <0x47401c00 0x400
562 reg-names = "mc", "control";
564 interrupt-names = "mc";
566 mentor,multipoint = <1>;
567 mentor,num-eps = <16>;
568 mentor,ram-bits = <12>;
569 mentor,power = <500>;
572 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
573 &cppi41dma 17 0 &cppi41dma 18 0
574 &cppi41dma 19 0 &cppi41dma 20 0
575 &cppi41dma 21 0 &cppi41dma 22 0
576 &cppi41dma 23 0 &cppi41dma 24 0
577 &cppi41dma 25 0 &cppi41dma 26 0
578 &cppi41dma 27 0 &cppi41dma 28 0
579 &cppi41dma 29 0 &cppi41dma 15 1
580 &cppi41dma 16 1 &cppi41dma 17 1
581 &cppi41dma 18 1 &cppi41dma 19 1
582 &cppi41dma 20 1 &cppi41dma 21 1
583 &cppi41dma 22 1 &cppi41dma 23 1
584 &cppi41dma 24 1 &cppi41dma 25 1
585 &cppi41dma 26 1 &cppi41dma 27 1
586 &cppi41dma 28 1 &cppi41dma 29 1>;
588 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
589 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
591 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
592 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
596 cppi41dma: dma-controller@47402000 {
597 compatible = "ti,am3359-cppi41";
598 reg = <0x47400000 0x1000
602 reg-names = "glue", "controller", "scheduler", "queuemgr";
604 interrupt-names = "glue";
606 #dma-channels = <30>;
607 #dma-requests = <256>;
612 epwmss0: epwmss@48300000 {
613 compatible = "ti,am33xx-pwmss";
614 reg = <0x48300000 0x10>;
615 ti,hwmods = "epwmss0";
616 #address-cells = <1>;
619 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
620 0x48300180 0x48300180 0x80 /* EQEP */
621 0x48300200 0x48300200 0x80>; /* EHRPWM */
623 ecap0: ecap@48300100 {
624 compatible = "ti,am33xx-ecap";
626 reg = <0x48300100 0x80>;
628 interrupt-names = "ecap0";
633 ehrpwm0: ehrpwm@48300200 {
634 compatible = "ti,am33xx-ehrpwm";
636 reg = <0x48300200 0x80>;
637 ti,hwmods = "ehrpwm0";
642 epwmss1: epwmss@48302000 {
643 compatible = "ti,am33xx-pwmss";
644 reg = <0x48302000 0x10>;
645 ti,hwmods = "epwmss1";
646 #address-cells = <1>;
649 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
650 0x48302180 0x48302180 0x80 /* EQEP */
651 0x48302200 0x48302200 0x80>; /* EHRPWM */
653 ecap1: ecap@48302100 {
654 compatible = "ti,am33xx-ecap";
656 reg = <0x48302100 0x80>;
658 interrupt-names = "ecap1";
663 ehrpwm1: ehrpwm@48302200 {
664 compatible = "ti,am33xx-ehrpwm";
666 reg = <0x48302200 0x80>;
667 ti,hwmods = "ehrpwm1";
672 epwmss2: epwmss@48304000 {
673 compatible = "ti,am33xx-pwmss";
674 reg = <0x48304000 0x10>;
675 ti,hwmods = "epwmss2";
676 #address-cells = <1>;
679 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
680 0x48304180 0x48304180 0x80 /* EQEP */
681 0x48304200 0x48304200 0x80>; /* EHRPWM */
683 ecap2: ecap@48304100 {
684 compatible = "ti,am33xx-ecap";
686 reg = <0x48304100 0x80>;
688 interrupt-names = "ecap2";
693 ehrpwm2: ehrpwm@48304200 {
694 compatible = "ti,am33xx-ehrpwm";
696 reg = <0x48304200 0x80>;
697 ti,hwmods = "ehrpwm2";
702 mac: ethernet@4a100000 {
703 compatible = "ti,cpsw";
704 ti,hwmods = "cpgmac0";
705 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
706 clock-names = "fck", "cpts";
707 cpdma_channels = <8>;
708 ale_entries = <1024>;
709 bd_ram_size = <0x2000>;
712 mac_control = <0x20>;
715 cpts_clock_mult = <0x80000000>;
716 cpts_clock_shift = <29>;
717 reg = <0x4a100000 0x800
719 #address-cells = <1>;
721 interrupt-parent = <&intc>;
728 interrupts = <40 41 42 43>;
730 syscon = <&scm_conf>;
733 davinci_mdio: mdio@4a101000 {
734 compatible = "ti,davinci_mdio";
735 #address-cells = <1>;
737 ti,hwmods = "davinci_mdio";
738 bus_freq = <1000000>;
739 reg = <0x4a101000 0x100>;
743 cpsw_emac0: slave@4a100200 {
744 /* Filled in by U-Boot */
745 mac-address = [ 00 00 00 00 00 00 ];
748 cpsw_emac1: slave@4a100300 {
749 /* Filled in by U-Boot */
750 mac-address = [ 00 00 00 00 00 00 ];
753 phy_sel: cpsw-phy-sel@44e10650 {
754 compatible = "ti,am3352-cpsw-phy-sel";
755 reg= <0x44e10650 0x4>;
756 reg-names = "gmii-sel";
760 ocmcram: ocmcram@40300000 {
761 compatible = "mmio-sram";
762 reg = <0x40300000 0x10000>; /* 64k */
765 wkup_m3: wkup_m3@44d00000 {
766 compatible = "ti,am3353-wkup-m3";
767 reg = <0x44d00000 0x4000 /* M3 UMEM */
768 0x44d80000 0x2000>; /* M3 DMEM */
769 ti,hwmods = "wkup_m3";
774 compatible = "ti,am3352-elm";
775 reg = <0x48080000 0x2000>;
781 lcdc: lcdc@4830e000 {
782 compatible = "ti,am33xx-tilcdc";
783 reg = <0x4830e000 0x1000>;
784 interrupt-parent = <&intc>;
790 tscadc: tscadc@44e0d000 {
791 compatible = "ti,am3359-tscadc";
792 reg = <0x44e0d000 0x1000>;
793 interrupt-parent = <&intc>;
795 ti,hwmods = "adc_tsc";
799 compatible = "ti,am3359-tsc";
802 #io-channel-cells = <1>;
803 compatible = "ti,am3359-adc";
807 gpmc: gpmc@50000000 {
808 compatible = "ti,am3352-gpmc";
811 reg = <0x50000000 0x2000>;
814 gpmc,num-waitpins = <2>;
815 #address-cells = <2>;
820 sham: sham@53100000 {
821 compatible = "ti,omap4-sham";
823 reg = <0x53100000 0x200>;
830 compatible = "ti,omap4-aes";
832 reg = <0x53500000 0xa0>;
836 dma-names = "tx", "rx";
839 mcasp0: mcasp@48038000 {
840 compatible = "ti,am33xx-mcasp-audio";
841 ti,hwmods = "mcasp0";
842 reg = <0x48038000 0x2000>,
843 <0x46000000 0x400000>;
844 reg-names = "mpu", "dat";
845 interrupts = <80>, <81>;
846 interrupt-names = "tx", "rx";
850 dma-names = "tx", "rx";
853 mcasp1: mcasp@4803C000 {
854 compatible = "ti,am33xx-mcasp-audio";
855 ti,hwmods = "mcasp1";
856 reg = <0x4803C000 0x2000>,
857 <0x46400000 0x400000>;
858 reg-names = "mpu", "dat";
859 interrupts = <82>, <83>;
860 interrupt-names = "tx", "rx";
864 dma-names = "tx", "rx";
868 compatible = "ti,omap4-rng";
870 reg = <0x48310000 0x2000>;
876 /include/ "am33xx-clocks.dtsi"