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>;
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", "emda3_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 {
442 ti,mbox-tx = <0 0 0>;
443 ti,mbox-rx = <0 0 3>;
447 timer1: timer@44e31000 {
448 compatible = "ti,am335x-timer-1ms";
449 reg = <0x44e31000 0x400>;
451 ti,hwmods = "timer1";
455 timer2: timer@48040000 {
456 compatible = "ti,am335x-timer";
457 reg = <0x48040000 0x400>;
459 ti,hwmods = "timer2";
462 timer3: timer@48042000 {
463 compatible = "ti,am335x-timer";
464 reg = <0x48042000 0x400>;
466 ti,hwmods = "timer3";
469 timer4: timer@48044000 {
470 compatible = "ti,am335x-timer";
471 reg = <0x48044000 0x400>;
473 ti,hwmods = "timer4";
477 timer5: timer@48046000 {
478 compatible = "ti,am335x-timer";
479 reg = <0x48046000 0x400>;
481 ti,hwmods = "timer5";
485 timer6: timer@48048000 {
486 compatible = "ti,am335x-timer";
487 reg = <0x48048000 0x400>;
489 ti,hwmods = "timer6";
493 timer7: timer@4804a000 {
494 compatible = "ti,am335x-timer";
495 reg = <0x4804a000 0x400>;
497 ti,hwmods = "timer7";
502 compatible = "ti,am3352-rtc", "ti,da830-rtc";
503 reg = <0x44e3e000 0x1000>;
510 compatible = "ti,omap4-mcspi";
511 #address-cells = <1>;
513 reg = <0x48030000 0x400>;
521 dma-names = "tx0", "rx0", "tx1", "rx1";
526 compatible = "ti,omap4-mcspi";
527 #address-cells = <1>;
529 reg = <0x481a0000 0x400>;
537 dma-names = "tx0", "rx0", "tx1", "rx1";
542 compatible = "ti,am33xx-usb";
543 reg = <0x47400000 0x1000>;
545 #address-cells = <1>;
547 ti,hwmods = "usb_otg_hs";
550 usb_ctrl_mod: control@44e10620 {
551 compatible = "ti,am335x-usb-ctrl-module";
552 reg = <0x44e10620 0x10
554 reg-names = "phy_ctrl", "wakeup";
558 usb0_phy: usb-phy@47401300 {
559 compatible = "ti,am335x-usb-phy";
560 reg = <0x47401300 0x100>;
563 ti,ctrl_mod = <&usb_ctrl_mod>;
567 compatible = "ti,musb-am33xx";
569 reg = <0x47401400 0x400
571 reg-names = "mc", "control";
574 interrupt-names = "mc";
576 mentor,multipoint = <1>;
577 mentor,num-eps = <16>;
578 mentor,ram-bits = <12>;
579 mentor,power = <500>;
582 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
583 &cppi41dma 2 0 &cppi41dma 3 0
584 &cppi41dma 4 0 &cppi41dma 5 0
585 &cppi41dma 6 0 &cppi41dma 7 0
586 &cppi41dma 8 0 &cppi41dma 9 0
587 &cppi41dma 10 0 &cppi41dma 11 0
588 &cppi41dma 12 0 &cppi41dma 13 0
589 &cppi41dma 14 0 &cppi41dma 0 1
590 &cppi41dma 1 1 &cppi41dma 2 1
591 &cppi41dma 3 1 &cppi41dma 4 1
592 &cppi41dma 5 1 &cppi41dma 6 1
593 &cppi41dma 7 1 &cppi41dma 8 1
594 &cppi41dma 9 1 &cppi41dma 10 1
595 &cppi41dma 11 1 &cppi41dma 12 1
596 &cppi41dma 13 1 &cppi41dma 14 1>;
598 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
599 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
601 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
602 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
606 usb1_phy: usb-phy@47401b00 {
607 compatible = "ti,am335x-usb-phy";
608 reg = <0x47401b00 0x100>;
611 ti,ctrl_mod = <&usb_ctrl_mod>;
615 compatible = "ti,musb-am33xx";
617 reg = <0x47401c00 0x400
619 reg-names = "mc", "control";
621 interrupt-names = "mc";
623 mentor,multipoint = <1>;
624 mentor,num-eps = <16>;
625 mentor,ram-bits = <12>;
626 mentor,power = <500>;
629 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
630 &cppi41dma 17 0 &cppi41dma 18 0
631 &cppi41dma 19 0 &cppi41dma 20 0
632 &cppi41dma 21 0 &cppi41dma 22 0
633 &cppi41dma 23 0 &cppi41dma 24 0
634 &cppi41dma 25 0 &cppi41dma 26 0
635 &cppi41dma 27 0 &cppi41dma 28 0
636 &cppi41dma 29 0 &cppi41dma 15 1
637 &cppi41dma 16 1 &cppi41dma 17 1
638 &cppi41dma 18 1 &cppi41dma 19 1
639 &cppi41dma 20 1 &cppi41dma 21 1
640 &cppi41dma 22 1 &cppi41dma 23 1
641 &cppi41dma 24 1 &cppi41dma 25 1
642 &cppi41dma 26 1 &cppi41dma 27 1
643 &cppi41dma 28 1 &cppi41dma 29 1>;
645 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
646 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
648 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
649 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
653 cppi41dma: dma-controller@47402000 {
654 compatible = "ti,am3359-cppi41";
655 reg = <0x47400000 0x1000
659 reg-names = "glue", "controller", "scheduler", "queuemgr";
661 interrupt-names = "glue";
663 #dma-channels = <30>;
664 #dma-requests = <256>;
669 epwmss0: epwmss@48300000 {
670 compatible = "ti,am33xx-pwmss";
671 reg = <0x48300000 0x10>;
672 ti,hwmods = "epwmss0";
673 #address-cells = <1>;
676 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
677 0x48300180 0x48300180 0x80 /* EQEP */
678 0x48300200 0x48300200 0x80>; /* EHRPWM */
680 ecap0: ecap@48300100 {
681 compatible = "ti,am33xx-ecap";
683 reg = <0x48300100 0x80>;
685 interrupt-names = "ecap0";
690 ehrpwm0: ehrpwm@48300200 {
691 compatible = "ti,am33xx-ehrpwm";
693 reg = <0x48300200 0x80>;
694 ti,hwmods = "ehrpwm0";
699 epwmss1: epwmss@48302000 {
700 compatible = "ti,am33xx-pwmss";
701 reg = <0x48302000 0x10>;
702 ti,hwmods = "epwmss1";
703 #address-cells = <1>;
706 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
707 0x48302180 0x48302180 0x80 /* EQEP */
708 0x48302200 0x48302200 0x80>; /* EHRPWM */
710 ecap1: ecap@48302100 {
711 compatible = "ti,am33xx-ecap";
713 reg = <0x48302100 0x80>;
715 interrupt-names = "ecap1";
720 ehrpwm1: ehrpwm@48302200 {
721 compatible = "ti,am33xx-ehrpwm";
723 reg = <0x48302200 0x80>;
724 ti,hwmods = "ehrpwm1";
729 epwmss2: epwmss@48304000 {
730 compatible = "ti,am33xx-pwmss";
731 reg = <0x48304000 0x10>;
732 ti,hwmods = "epwmss2";
733 #address-cells = <1>;
736 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
737 0x48304180 0x48304180 0x80 /* EQEP */
738 0x48304200 0x48304200 0x80>; /* EHRPWM */
740 ecap2: ecap@48304100 {
741 compatible = "ti,am33xx-ecap";
743 reg = <0x48304100 0x80>;
745 interrupt-names = "ecap2";
750 ehrpwm2: ehrpwm@48304200 {
751 compatible = "ti,am33xx-ehrpwm";
753 reg = <0x48304200 0x80>;
754 ti,hwmods = "ehrpwm2";
759 mac: ethernet@4a100000 {
760 compatible = "ti,am335x-cpsw","ti,cpsw";
761 ti,hwmods = "cpgmac0";
762 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
763 clock-names = "fck", "cpts";
764 cpdma_channels = <8>;
765 ale_entries = <1024>;
766 bd_ram_size = <0x2000>;
769 mac_control = <0x20>;
772 cpts_clock_mult = <0x80000000>;
773 cpts_clock_shift = <29>;
774 reg = <0x4a100000 0x800
776 #address-cells = <1>;
778 interrupt-parent = <&intc>;
785 interrupts = <40 41 42 43>;
787 syscon = <&scm_conf>;
790 davinci_mdio: mdio@4a101000 {
791 compatible = "ti,davinci_mdio";
792 #address-cells = <1>;
794 ti,hwmods = "davinci_mdio";
795 bus_freq = <1000000>;
796 reg = <0x4a101000 0x100>;
800 cpsw_emac0: slave@4a100200 {
801 /* Filled in by U-Boot */
802 mac-address = [ 00 00 00 00 00 00 ];
805 cpsw_emac1: slave@4a100300 {
806 /* Filled in by U-Boot */
807 mac-address = [ 00 00 00 00 00 00 ];
810 phy_sel: cpsw-phy-sel@44e10650 {
811 compatible = "ti,am3352-cpsw-phy-sel";
812 reg= <0x44e10650 0x4>;
813 reg-names = "gmii-sel";
817 ocmcram: ocmcram@40300000 {
818 compatible = "mmio-sram";
819 reg = <0x40300000 0x10000>; /* 64k */
823 compatible = "ti,am3352-elm";
824 reg = <0x48080000 0x2000>;
830 lcdc: lcdc@4830e000 {
831 compatible = "ti,am33xx-tilcdc";
832 reg = <0x4830e000 0x1000>;
833 interrupt-parent = <&intc>;
839 tscadc: tscadc@44e0d000 {
840 compatible = "ti,am3359-tscadc";
841 reg = <0x44e0d000 0x1000>;
842 interrupt-parent = <&intc>;
844 ti,hwmods = "adc_tsc";
848 compatible = "ti,am3359-tsc";
851 #io-channel-cells = <1>;
852 compatible = "ti,am3359-adc";
856 gpmc: gpmc@50000000 {
857 compatible = "ti,am3352-gpmc";
860 reg = <0x50000000 0x2000>;
865 gpmc,num-waitpins = <2>;
866 #address-cells = <2>;
871 sham: sham@53100000 {
872 compatible = "ti,omap4-sham";
874 reg = <0x53100000 0x200>;
881 compatible = "ti,omap4-aes";
883 reg = <0x53500000 0xa0>;
887 dma-names = "tx", "rx";
890 mcasp0: mcasp@48038000 {
891 compatible = "ti,am33xx-mcasp-audio";
892 ti,hwmods = "mcasp0";
893 reg = <0x48038000 0x2000>,
894 <0x46000000 0x400000>;
895 reg-names = "mpu", "dat";
896 interrupts = <80>, <81>;
897 interrupt-names = "tx", "rx";
901 dma-names = "tx", "rx";
904 mcasp1: mcasp@4803C000 {
905 compatible = "ti,am33xx-mcasp-audio";
906 ti,hwmods = "mcasp1";
907 reg = <0x4803C000 0x2000>,
908 <0x46400000 0x400000>;
909 reg-names = "mpu", "dat";
910 interrupts = <82>, <83>;
911 interrupt-names = "tx", "rx";
915 dma-names = "tx", "rx";
919 compatible = "ti,omap4-rng";
921 reg = <0x48310000 0x2000>;
927 /include/ "am33xx-clocks.dtsi"