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>;
220 dmas = <&edma 26>, <&edma 27>;
221 dma-names = "tx", "rx";
224 uart1: serial@48022000 {
225 compatible = "ti,omap3-uart";
227 clock-frequency = <48000000>;
228 reg = <0x48022000 0x2000>;
232 dmas = <&edma 28>, <&edma 29>;
233 dma-names = "tx", "rx";
236 uart2: serial@48024000 {
237 compatible = "ti,omap3-uart";
239 clock-frequency = <48000000>;
240 reg = <0x48024000 0x2000>;
244 dmas = <&edma 30>, <&edma 31>;
245 dma-names = "tx", "rx";
248 uart3: serial@481a6000 {
249 compatible = "ti,omap3-uart";
251 clock-frequency = <48000000>;
252 reg = <0x481a6000 0x2000>;
258 uart4: serial@481a8000 {
259 compatible = "ti,omap3-uart";
261 clock-frequency = <48000000>;
262 reg = <0x481a8000 0x2000>;
268 uart5: serial@481aa000 {
269 compatible = "ti,omap3-uart";
271 clock-frequency = <48000000>;
272 reg = <0x481aa000 0x2000>;
279 compatible = "ti,omap4-i2c";
280 #address-cells = <1>;
283 reg = <0x44e0b000 0x1000>;
289 compatible = "ti,omap4-i2c";
290 #address-cells = <1>;
293 reg = <0x4802a000 0x1000>;
299 compatible = "ti,omap4-i2c";
300 #address-cells = <1>;
303 reg = <0x4819c000 0x1000>;
309 compatible = "ti,omap4-hsmmc";
312 ti,needs-special-reset;
313 ti,needs-special-hs-handling;
316 dma-names = "tx", "rx";
318 interrupt-parent = <&intc>;
319 reg = <0x48060000 0x1000>;
324 compatible = "ti,omap4-hsmmc";
326 ti,needs-special-reset;
329 dma-names = "tx", "rx";
331 interrupt-parent = <&intc>;
332 reg = <0x481d8000 0x1000>;
337 compatible = "ti,omap4-hsmmc";
339 ti,needs-special-reset;
341 interrupt-parent = <&intc>;
342 reg = <0x47810000 0x1000>;
346 hwspinlock: spinlock@480ca000 {
347 compatible = "ti,omap4-hwspinlock";
348 reg = <0x480ca000 0x1000>;
349 ti,hwmods = "spinlock";
354 compatible = "ti,omap3-wdt";
355 ti,hwmods = "wd_timer2";
356 reg = <0x44e35000 0x1000>;
360 dcan0: can@481cc000 {
361 compatible = "ti,am3352-d_can";
362 ti,hwmods = "d_can0";
363 reg = <0x481cc000 0x2000>;
364 clocks = <&dcan0_fck>;
366 syscon-raminit = <&scm_conf 0x644 0>;
371 dcan1: can@481d0000 {
372 compatible = "ti,am3352-d_can";
373 ti,hwmods = "d_can1";
374 reg = <0x481d0000 0x2000>;
375 clocks = <&dcan1_fck>;
377 syscon-raminit = <&scm_conf 0x644 1>;
382 mailbox: mailbox@480C8000 {
383 compatible = "ti,omap4-mailbox";
384 reg = <0x480C8000 0x200>;
386 ti,hwmods = "mailbox";
388 ti,mbox-num-users = <4>;
389 ti,mbox-num-fifos = <8>;
390 mbox_wkupm3: wkup_m3 {
391 ti,mbox-tx = <0 0 0>;
392 ti,mbox-rx = <0 0 3>;
396 timer1: timer@44e31000 {
397 compatible = "ti,am335x-timer-1ms";
398 reg = <0x44e31000 0x400>;
400 ti,hwmods = "timer1";
404 timer2: timer@48040000 {
405 compatible = "ti,am335x-timer";
406 reg = <0x48040000 0x400>;
408 ti,hwmods = "timer2";
411 timer3: timer@48042000 {
412 compatible = "ti,am335x-timer";
413 reg = <0x48042000 0x400>;
415 ti,hwmods = "timer3";
418 timer4: timer@48044000 {
419 compatible = "ti,am335x-timer";
420 reg = <0x48044000 0x400>;
422 ti,hwmods = "timer4";
426 timer5: timer@48046000 {
427 compatible = "ti,am335x-timer";
428 reg = <0x48046000 0x400>;
430 ti,hwmods = "timer5";
434 timer6: timer@48048000 {
435 compatible = "ti,am335x-timer";
436 reg = <0x48048000 0x400>;
438 ti,hwmods = "timer6";
442 timer7: timer@4804a000 {
443 compatible = "ti,am335x-timer";
444 reg = <0x4804a000 0x400>;
446 ti,hwmods = "timer7";
451 compatible = "ti,am3352-rtc", "ti,da830-rtc";
452 reg = <0x44e3e000 0x1000>;
459 compatible = "ti,omap4-mcspi";
460 #address-cells = <1>;
462 reg = <0x48030000 0x400>;
470 dma-names = "tx0", "rx0", "tx1", "rx1";
475 compatible = "ti,omap4-mcspi";
476 #address-cells = <1>;
478 reg = <0x481a0000 0x400>;
486 dma-names = "tx0", "rx0", "tx1", "rx1";
491 compatible = "ti,am33xx-usb";
492 reg = <0x47400000 0x1000>;
494 #address-cells = <1>;
496 ti,hwmods = "usb_otg_hs";
499 usb_ctrl_mod: control@44e10620 {
500 compatible = "ti,am335x-usb-ctrl-module";
501 reg = <0x44e10620 0x10
503 reg-names = "phy_ctrl", "wakeup";
507 usb0_phy: usb-phy@47401300 {
508 compatible = "ti,am335x-usb-phy";
509 reg = <0x47401300 0x100>;
512 ti,ctrl_mod = <&usb_ctrl_mod>;
516 compatible = "ti,musb-am33xx";
518 reg = <0x47401400 0x400
520 reg-names = "mc", "control";
523 interrupt-names = "mc";
525 mentor,multipoint = <1>;
526 mentor,num-eps = <16>;
527 mentor,ram-bits = <12>;
528 mentor,power = <500>;
531 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
532 &cppi41dma 2 0 &cppi41dma 3 0
533 &cppi41dma 4 0 &cppi41dma 5 0
534 &cppi41dma 6 0 &cppi41dma 7 0
535 &cppi41dma 8 0 &cppi41dma 9 0
536 &cppi41dma 10 0 &cppi41dma 11 0
537 &cppi41dma 12 0 &cppi41dma 13 0
538 &cppi41dma 14 0 &cppi41dma 0 1
539 &cppi41dma 1 1 &cppi41dma 2 1
540 &cppi41dma 3 1 &cppi41dma 4 1
541 &cppi41dma 5 1 &cppi41dma 6 1
542 &cppi41dma 7 1 &cppi41dma 8 1
543 &cppi41dma 9 1 &cppi41dma 10 1
544 &cppi41dma 11 1 &cppi41dma 12 1
545 &cppi41dma 13 1 &cppi41dma 14 1>;
547 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
548 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
550 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
551 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
555 usb1_phy: usb-phy@47401b00 {
556 compatible = "ti,am335x-usb-phy";
557 reg = <0x47401b00 0x100>;
560 ti,ctrl_mod = <&usb_ctrl_mod>;
564 compatible = "ti,musb-am33xx";
566 reg = <0x47401c00 0x400
568 reg-names = "mc", "control";
570 interrupt-names = "mc";
572 mentor,multipoint = <1>;
573 mentor,num-eps = <16>;
574 mentor,ram-bits = <12>;
575 mentor,power = <500>;
578 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
579 &cppi41dma 17 0 &cppi41dma 18 0
580 &cppi41dma 19 0 &cppi41dma 20 0
581 &cppi41dma 21 0 &cppi41dma 22 0
582 &cppi41dma 23 0 &cppi41dma 24 0
583 &cppi41dma 25 0 &cppi41dma 26 0
584 &cppi41dma 27 0 &cppi41dma 28 0
585 &cppi41dma 29 0 &cppi41dma 15 1
586 &cppi41dma 16 1 &cppi41dma 17 1
587 &cppi41dma 18 1 &cppi41dma 19 1
588 &cppi41dma 20 1 &cppi41dma 21 1
589 &cppi41dma 22 1 &cppi41dma 23 1
590 &cppi41dma 24 1 &cppi41dma 25 1
591 &cppi41dma 26 1 &cppi41dma 27 1
592 &cppi41dma 28 1 &cppi41dma 29 1>;
594 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
595 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
597 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
598 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
602 cppi41dma: dma-controller@47402000 {
603 compatible = "ti,am3359-cppi41";
604 reg = <0x47400000 0x1000
608 reg-names = "glue", "controller", "scheduler", "queuemgr";
610 interrupt-names = "glue";
612 #dma-channels = <30>;
613 #dma-requests = <256>;
618 epwmss0: epwmss@48300000 {
619 compatible = "ti,am33xx-pwmss";
620 reg = <0x48300000 0x10>;
621 ti,hwmods = "epwmss0";
622 #address-cells = <1>;
625 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
626 0x48300180 0x48300180 0x80 /* EQEP */
627 0x48300200 0x48300200 0x80>; /* EHRPWM */
629 ecap0: ecap@48300100 {
630 compatible = "ti,am33xx-ecap";
632 reg = <0x48300100 0x80>;
634 interrupt-names = "ecap0";
639 ehrpwm0: ehrpwm@48300200 {
640 compatible = "ti,am33xx-ehrpwm";
642 reg = <0x48300200 0x80>;
643 ti,hwmods = "ehrpwm0";
648 epwmss1: epwmss@48302000 {
649 compatible = "ti,am33xx-pwmss";
650 reg = <0x48302000 0x10>;
651 ti,hwmods = "epwmss1";
652 #address-cells = <1>;
655 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
656 0x48302180 0x48302180 0x80 /* EQEP */
657 0x48302200 0x48302200 0x80>; /* EHRPWM */
659 ecap1: ecap@48302100 {
660 compatible = "ti,am33xx-ecap";
662 reg = <0x48302100 0x80>;
664 interrupt-names = "ecap1";
669 ehrpwm1: ehrpwm@48302200 {
670 compatible = "ti,am33xx-ehrpwm";
672 reg = <0x48302200 0x80>;
673 ti,hwmods = "ehrpwm1";
678 epwmss2: epwmss@48304000 {
679 compatible = "ti,am33xx-pwmss";
680 reg = <0x48304000 0x10>;
681 ti,hwmods = "epwmss2";
682 #address-cells = <1>;
685 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
686 0x48304180 0x48304180 0x80 /* EQEP */
687 0x48304200 0x48304200 0x80>; /* EHRPWM */
689 ecap2: ecap@48304100 {
690 compatible = "ti,am33xx-ecap";
692 reg = <0x48304100 0x80>;
694 interrupt-names = "ecap2";
699 ehrpwm2: ehrpwm@48304200 {
700 compatible = "ti,am33xx-ehrpwm";
702 reg = <0x48304200 0x80>;
703 ti,hwmods = "ehrpwm2";
708 mac: ethernet@4a100000 {
709 compatible = "ti,cpsw";
710 ti,hwmods = "cpgmac0";
711 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
712 clock-names = "fck", "cpts";
713 cpdma_channels = <8>;
714 ale_entries = <1024>;
715 bd_ram_size = <0x2000>;
718 mac_control = <0x20>;
721 cpts_clock_mult = <0x80000000>;
722 cpts_clock_shift = <29>;
723 reg = <0x4a100000 0x800
725 #address-cells = <1>;
727 interrupt-parent = <&intc>;
734 interrupts = <40 41 42 43>;
736 syscon = <&scm_conf>;
739 davinci_mdio: mdio@4a101000 {
740 compatible = "ti,davinci_mdio";
741 #address-cells = <1>;
743 ti,hwmods = "davinci_mdio";
744 bus_freq = <1000000>;
745 reg = <0x4a101000 0x100>;
749 cpsw_emac0: slave@4a100200 {
750 /* Filled in by U-Boot */
751 mac-address = [ 00 00 00 00 00 00 ];
754 cpsw_emac1: slave@4a100300 {
755 /* Filled in by U-Boot */
756 mac-address = [ 00 00 00 00 00 00 ];
759 phy_sel: cpsw-phy-sel@44e10650 {
760 compatible = "ti,am3352-cpsw-phy-sel";
761 reg= <0x44e10650 0x4>;
762 reg-names = "gmii-sel";
766 ocmcram: ocmcram@40300000 {
767 compatible = "mmio-sram";
768 reg = <0x40300000 0x10000>; /* 64k */
771 wkup_m3: wkup_m3@44d00000 {
772 compatible = "ti,am3353-wkup-m3";
773 reg = <0x44d00000 0x4000 /* M3 UMEM */
774 0x44d80000 0x2000>; /* M3 DMEM */
775 ti,hwmods = "wkup_m3";
780 compatible = "ti,am3352-elm";
781 reg = <0x48080000 0x2000>;
787 lcdc: lcdc@4830e000 {
788 compatible = "ti,am33xx-tilcdc";
789 reg = <0x4830e000 0x1000>;
790 interrupt-parent = <&intc>;
796 tscadc: tscadc@44e0d000 {
797 compatible = "ti,am3359-tscadc";
798 reg = <0x44e0d000 0x1000>;
799 interrupt-parent = <&intc>;
801 ti,hwmods = "adc_tsc";
805 compatible = "ti,am3359-tsc";
808 #io-channel-cells = <1>;
809 compatible = "ti,am3359-adc";
813 gpmc: gpmc@50000000 {
814 compatible = "ti,am3352-gpmc";
817 reg = <0x50000000 0x2000>;
820 gpmc,num-waitpins = <2>;
821 #address-cells = <2>;
826 sham: sham@53100000 {
827 compatible = "ti,omap4-sham";
829 reg = <0x53100000 0x200>;
836 compatible = "ti,omap4-aes";
838 reg = <0x53500000 0xa0>;
842 dma-names = "tx", "rx";
845 mcasp0: mcasp@48038000 {
846 compatible = "ti,am33xx-mcasp-audio";
847 ti,hwmods = "mcasp0";
848 reg = <0x48038000 0x2000>,
849 <0x46000000 0x400000>;
850 reg-names = "mpu", "dat";
851 interrupts = <80>, <81>;
852 interrupt-names = "tx", "rx";
856 dma-names = "tx", "rx";
859 mcasp1: mcasp@4803C000 {
860 compatible = "ti,am33xx-mcasp-audio";
861 ti,hwmods = "mcasp1";
862 reg = <0x4803C000 0x2000>,
863 <0x46400000 0x400000>;
864 reg-names = "mpu", "dat";
865 interrupts = <82>, <83>;
866 interrupt-names = "tx", "rx";
870 dma-names = "tx", "rx";
874 compatible = "ti,omap4-rng";
876 reg = <0x48310000 0x2000>;
882 /include/ "am33xx-clocks.dtsi"