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 {
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,am33xx-ecap";
684 reg = <0x48300100 0x80>;
686 interrupt-names = "ecap0";
691 ehrpwm0: ehrpwm@48300200 {
692 compatible = "ti,am33xx-ehrpwm";
694 reg = <0x48300200 0x80>;
695 ti,hwmods = "ehrpwm0";
700 epwmss1: epwmss@48302000 {
701 compatible = "ti,am33xx-pwmss";
702 reg = <0x48302000 0x10>;
703 ti,hwmods = "epwmss1";
704 #address-cells = <1>;
707 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
708 0x48302180 0x48302180 0x80 /* EQEP */
709 0x48302200 0x48302200 0x80>; /* EHRPWM */
711 ecap1: ecap@48302100 {
712 compatible = "ti,am33xx-ecap";
714 reg = <0x48302100 0x80>;
716 interrupt-names = "ecap1";
721 ehrpwm1: ehrpwm@48302200 {
722 compatible = "ti,am33xx-ehrpwm";
724 reg = <0x48302200 0x80>;
725 ti,hwmods = "ehrpwm1";
730 epwmss2: epwmss@48304000 {
731 compatible = "ti,am33xx-pwmss";
732 reg = <0x48304000 0x10>;
733 ti,hwmods = "epwmss2";
734 #address-cells = <1>;
737 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
738 0x48304180 0x48304180 0x80 /* EQEP */
739 0x48304200 0x48304200 0x80>; /* EHRPWM */
741 ecap2: ecap@48304100 {
742 compatible = "ti,am33xx-ecap";
744 reg = <0x48304100 0x80>;
746 interrupt-names = "ecap2";
751 ehrpwm2: ehrpwm@48304200 {
752 compatible = "ti,am33xx-ehrpwm";
754 reg = <0x48304200 0x80>;
755 ti,hwmods = "ehrpwm2";
760 mac: ethernet@4a100000 {
761 compatible = "ti,am335x-cpsw","ti,cpsw";
762 ti,hwmods = "cpgmac0";
763 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
764 clock-names = "fck", "cpts";
765 cpdma_channels = <8>;
766 ale_entries = <1024>;
767 bd_ram_size = <0x2000>;
770 mac_control = <0x20>;
773 cpts_clock_mult = <0x80000000>;
774 cpts_clock_shift = <29>;
775 reg = <0x4a100000 0x800
777 #address-cells = <1>;
779 interrupt-parent = <&intc>;
786 interrupts = <40 41 42 43>;
788 syscon = <&scm_conf>;
791 davinci_mdio: mdio@4a101000 {
792 compatible = "ti,davinci_mdio";
793 #address-cells = <1>;
795 ti,hwmods = "davinci_mdio";
796 bus_freq = <1000000>;
797 reg = <0x4a101000 0x100>;
801 cpsw_emac0: slave@4a100200 {
802 /* Filled in by U-Boot */
803 mac-address = [ 00 00 00 00 00 00 ];
806 cpsw_emac1: slave@4a100300 {
807 /* Filled in by U-Boot */
808 mac-address = [ 00 00 00 00 00 00 ];
811 phy_sel: cpsw-phy-sel@44e10650 {
812 compatible = "ti,am3352-cpsw-phy-sel";
813 reg= <0x44e10650 0x4>;
814 reg-names = "gmii-sel";
818 ocmcram: ocmcram@40300000 {
819 compatible = "mmio-sram";
820 reg = <0x40300000 0x10000>; /* 64k */
824 compatible = "ti,am3352-elm";
825 reg = <0x48080000 0x2000>;
831 lcdc: lcdc@4830e000 {
832 compatible = "ti,am33xx-tilcdc";
833 reg = <0x4830e000 0x1000>;
834 interrupt-parent = <&intc>;
840 tscadc: tscadc@44e0d000 {
841 compatible = "ti,am3359-tscadc";
842 reg = <0x44e0d000 0x1000>;
843 interrupt-parent = <&intc>;
845 ti,hwmods = "adc_tsc";
849 compatible = "ti,am3359-tsc";
852 #io-channel-cells = <1>;
853 compatible = "ti,am3359-adc";
857 gpmc: gpmc@50000000 {
858 compatible = "ti,am3352-gpmc";
861 reg = <0x50000000 0x2000>;
866 gpmc,num-waitpins = <2>;
867 #address-cells = <2>;
869 interrupt-controller;
870 #interrupt-cells = <2>;
874 sham: sham@53100000 {
875 compatible = "ti,omap4-sham";
877 reg = <0x53100000 0x200>;
884 compatible = "ti,omap4-aes";
886 reg = <0x53500000 0xa0>;
890 dma-names = "tx", "rx";
893 mcasp0: mcasp@48038000 {
894 compatible = "ti,am33xx-mcasp-audio";
895 ti,hwmods = "mcasp0";
896 reg = <0x48038000 0x2000>,
897 <0x46000000 0x400000>;
898 reg-names = "mpu", "dat";
899 interrupts = <80>, <81>;
900 interrupt-names = "tx", "rx";
904 dma-names = "tx", "rx";
907 mcasp1: mcasp@4803C000 {
908 compatible = "ti,am33xx-mcasp-audio";
909 ti,hwmods = "mcasp1";
910 reg = <0x4803C000 0x2000>,
911 <0x46400000 0x400000>;
912 reg-names = "mpu", "dat";
913 interrupts = <82>, <83>;
914 interrupt-names = "tx", "rx";
918 dma-names = "tx", "rx";
922 compatible = "ti,omap4-rng";
924 reg = <0x48310000 0x2000>;
930 /include/ "am33xx-clocks.dtsi"