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 scm_clockdomains: clockdomains {
169 intc: interrupt-controller@48200000 {
170 compatible = "ti,am33xx-intc";
171 interrupt-controller;
172 #interrupt-cells = <1>;
173 reg = <0x48200000 0x1000>;
176 edma: edma@49000000 {
177 compatible = "ti,edma3-tpcc";
179 reg = <0x49000000 0x10000>;
180 reg-names = "edma3_cc";
181 interrupts = <12 13 14>;
182 interrupt-names = "edma3_ccint", "emda3_mperr",
187 ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
190 ti,edma-memcpy-channels = /bits/ 16 <20 21>;
193 edma_tptc0: tptc@49800000 {
194 compatible = "ti,edma3-tptc";
196 reg = <0x49800000 0x100000>;
198 interrupt-names = "edma3_tcerrint";
201 edma_tptc1: tptc@49900000 {
202 compatible = "ti,edma3-tptc";
204 reg = <0x49900000 0x100000>;
206 interrupt-names = "edma3_tcerrint";
209 edma_tptc2: tptc@49a00000 {
210 compatible = "ti,edma3-tptc";
212 reg = <0x49a00000 0x100000>;
214 interrupt-names = "edma3_tcerrint";
217 edma_xbar: dma-router@44e10f90 {
218 compatible = "ti,am335x-edma-crossbar";
219 reg = <0x44e10f90 0x40>;
224 dma-masters = <&edma>;
227 gpio0: gpio@44e07000 {
228 compatible = "ti,omap4-gpio";
232 interrupt-controller;
233 #interrupt-cells = <2>;
234 reg = <0x44e07000 0x1000>;
238 gpio1: gpio@4804c000 {
239 compatible = "ti,omap4-gpio";
243 interrupt-controller;
244 #interrupt-cells = <2>;
245 reg = <0x4804c000 0x1000>;
249 gpio2: gpio@481ac000 {
250 compatible = "ti,omap4-gpio";
254 interrupt-controller;
255 #interrupt-cells = <2>;
256 reg = <0x481ac000 0x1000>;
260 gpio3: gpio@481ae000 {
261 compatible = "ti,omap4-gpio";
265 interrupt-controller;
266 #interrupt-cells = <2>;
267 reg = <0x481ae000 0x1000>;
271 uart0: serial@44e09000 {
272 compatible = "ti,am3352-uart", "ti,omap3-uart";
274 clock-frequency = <48000000>;
275 reg = <0x44e09000 0x2000>;
278 dmas = <&edma 26 0>, <&edma 27 0>;
279 dma-names = "tx", "rx";
282 uart1: serial@48022000 {
283 compatible = "ti,am3352-uart", "ti,omap3-uart";
285 clock-frequency = <48000000>;
286 reg = <0x48022000 0x2000>;
289 dmas = <&edma 28 0>, <&edma 29 0>;
290 dma-names = "tx", "rx";
293 uart2: serial@48024000 {
294 compatible = "ti,am3352-uart", "ti,omap3-uart";
296 clock-frequency = <48000000>;
297 reg = <0x48024000 0x2000>;
300 dmas = <&edma 30 0>, <&edma 31 0>;
301 dma-names = "tx", "rx";
304 uart3: serial@481a6000 {
305 compatible = "ti,am3352-uart", "ti,omap3-uart";
307 clock-frequency = <48000000>;
308 reg = <0x481a6000 0x2000>;
313 uart4: serial@481a8000 {
314 compatible = "ti,am3352-uart", "ti,omap3-uart";
316 clock-frequency = <48000000>;
317 reg = <0x481a8000 0x2000>;
322 uart5: serial@481aa000 {
323 compatible = "ti,am3352-uart", "ti,omap3-uart";
325 clock-frequency = <48000000>;
326 reg = <0x481aa000 0x2000>;
332 compatible = "ti,omap4-i2c";
333 #address-cells = <1>;
336 reg = <0x44e0b000 0x1000>;
342 compatible = "ti,omap4-i2c";
343 #address-cells = <1>;
346 reg = <0x4802a000 0x1000>;
352 compatible = "ti,omap4-i2c";
353 #address-cells = <1>;
356 reg = <0x4819c000 0x1000>;
362 compatible = "ti,omap4-hsmmc";
365 ti,needs-special-reset;
366 ti,needs-special-hs-handling;
367 dmas = <&edma_xbar 24 0 0
369 dma-names = "tx", "rx";
371 interrupt-parent = <&intc>;
372 reg = <0x48060000 0x1000>;
377 compatible = "ti,omap4-hsmmc";
379 ti,needs-special-reset;
382 dma-names = "tx", "rx";
384 interrupt-parent = <&intc>;
385 reg = <0x481d8000 0x1000>;
390 compatible = "ti,omap4-hsmmc";
392 ti,needs-special-reset;
394 interrupt-parent = <&intc>;
395 reg = <0x47810000 0x1000>;
399 hwspinlock: spinlock@480ca000 {
400 compatible = "ti,omap4-hwspinlock";
401 reg = <0x480ca000 0x1000>;
402 ti,hwmods = "spinlock";
407 compatible = "ti,omap3-wdt";
408 ti,hwmods = "wd_timer2";
409 reg = <0x44e35000 0x1000>;
413 dcan0: can@481cc000 {
414 compatible = "ti,am3352-d_can";
415 ti,hwmods = "d_can0";
416 reg = <0x481cc000 0x2000>;
417 clocks = <&dcan0_fck>;
419 syscon-raminit = <&scm_conf 0x644 0>;
424 dcan1: can@481d0000 {
425 compatible = "ti,am3352-d_can";
426 ti,hwmods = "d_can1";
427 reg = <0x481d0000 0x2000>;
428 clocks = <&dcan1_fck>;
430 syscon-raminit = <&scm_conf 0x644 1>;
435 mailbox: mailbox@480C8000 {
436 compatible = "ti,omap4-mailbox";
437 reg = <0x480C8000 0x200>;
439 ti,hwmods = "mailbox";
441 ti,mbox-num-users = <4>;
442 ti,mbox-num-fifos = <8>;
443 mbox_wkupm3: wkup_m3 {
444 ti,mbox-tx = <0 0 0>;
445 ti,mbox-rx = <0 0 3>;
449 timer1: timer@44e31000 {
450 compatible = "ti,am335x-timer-1ms";
451 reg = <0x44e31000 0x400>;
453 ti,hwmods = "timer1";
457 timer2: timer@48040000 {
458 compatible = "ti,am335x-timer";
459 reg = <0x48040000 0x400>;
461 ti,hwmods = "timer2";
464 timer3: timer@48042000 {
465 compatible = "ti,am335x-timer";
466 reg = <0x48042000 0x400>;
468 ti,hwmods = "timer3";
471 timer4: timer@48044000 {
472 compatible = "ti,am335x-timer";
473 reg = <0x48044000 0x400>;
475 ti,hwmods = "timer4";
479 timer5: timer@48046000 {
480 compatible = "ti,am335x-timer";
481 reg = <0x48046000 0x400>;
483 ti,hwmods = "timer5";
487 timer6: timer@48048000 {
488 compatible = "ti,am335x-timer";
489 reg = <0x48048000 0x400>;
491 ti,hwmods = "timer6";
495 timer7: timer@4804a000 {
496 compatible = "ti,am335x-timer";
497 reg = <0x4804a000 0x400>;
499 ti,hwmods = "timer7";
504 compatible = "ti,am3352-rtc", "ti,da830-rtc";
505 reg = <0x44e3e000 0x1000>;
512 compatible = "ti,omap4-mcspi";
513 #address-cells = <1>;
515 reg = <0x48030000 0x400>;
523 dma-names = "tx0", "rx0", "tx1", "rx1";
528 compatible = "ti,omap4-mcspi";
529 #address-cells = <1>;
531 reg = <0x481a0000 0x400>;
539 dma-names = "tx0", "rx0", "tx1", "rx1";
544 compatible = "ti,am33xx-usb";
545 reg = <0x47400000 0x1000>;
547 #address-cells = <1>;
549 ti,hwmods = "usb_otg_hs";
552 usb_ctrl_mod: control@44e10620 {
553 compatible = "ti,am335x-usb-ctrl-module";
554 reg = <0x44e10620 0x10
556 reg-names = "phy_ctrl", "wakeup";
560 usb0_phy: usb-phy@47401300 {
561 compatible = "ti,am335x-usb-phy";
562 reg = <0x47401300 0x100>;
565 ti,ctrl_mod = <&usb_ctrl_mod>;
569 compatible = "ti,musb-am33xx";
571 reg = <0x47401400 0x400
573 reg-names = "mc", "control";
576 interrupt-names = "mc";
578 mentor,multipoint = <1>;
579 mentor,num-eps = <16>;
580 mentor,ram-bits = <12>;
581 mentor,power = <500>;
584 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
585 &cppi41dma 2 0 &cppi41dma 3 0
586 &cppi41dma 4 0 &cppi41dma 5 0
587 &cppi41dma 6 0 &cppi41dma 7 0
588 &cppi41dma 8 0 &cppi41dma 9 0
589 &cppi41dma 10 0 &cppi41dma 11 0
590 &cppi41dma 12 0 &cppi41dma 13 0
591 &cppi41dma 14 0 &cppi41dma 0 1
592 &cppi41dma 1 1 &cppi41dma 2 1
593 &cppi41dma 3 1 &cppi41dma 4 1
594 &cppi41dma 5 1 &cppi41dma 6 1
595 &cppi41dma 7 1 &cppi41dma 8 1
596 &cppi41dma 9 1 &cppi41dma 10 1
597 &cppi41dma 11 1 &cppi41dma 12 1
598 &cppi41dma 13 1 &cppi41dma 14 1>;
600 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
601 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
603 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
604 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
608 usb1_phy: usb-phy@47401b00 {
609 compatible = "ti,am335x-usb-phy";
610 reg = <0x47401b00 0x100>;
613 ti,ctrl_mod = <&usb_ctrl_mod>;
617 compatible = "ti,musb-am33xx";
619 reg = <0x47401c00 0x400
621 reg-names = "mc", "control";
623 interrupt-names = "mc";
625 mentor,multipoint = <1>;
626 mentor,num-eps = <16>;
627 mentor,ram-bits = <12>;
628 mentor,power = <500>;
631 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
632 &cppi41dma 17 0 &cppi41dma 18 0
633 &cppi41dma 19 0 &cppi41dma 20 0
634 &cppi41dma 21 0 &cppi41dma 22 0
635 &cppi41dma 23 0 &cppi41dma 24 0
636 &cppi41dma 25 0 &cppi41dma 26 0
637 &cppi41dma 27 0 &cppi41dma 28 0
638 &cppi41dma 29 0 &cppi41dma 15 1
639 &cppi41dma 16 1 &cppi41dma 17 1
640 &cppi41dma 18 1 &cppi41dma 19 1
641 &cppi41dma 20 1 &cppi41dma 21 1
642 &cppi41dma 22 1 &cppi41dma 23 1
643 &cppi41dma 24 1 &cppi41dma 25 1
644 &cppi41dma 26 1 &cppi41dma 27 1
645 &cppi41dma 28 1 &cppi41dma 29 1>;
647 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
648 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
650 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
651 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
655 cppi41dma: dma-controller@47402000 {
656 compatible = "ti,am3359-cppi41";
657 reg = <0x47400000 0x1000
661 reg-names = "glue", "controller", "scheduler", "queuemgr";
663 interrupt-names = "glue";
665 #dma-channels = <30>;
666 #dma-requests = <256>;
671 epwmss0: epwmss@48300000 {
672 compatible = "ti,am33xx-pwmss";
673 reg = <0x48300000 0x10>;
674 ti,hwmods = "epwmss0";
675 #address-cells = <1>;
678 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
679 0x48300180 0x48300180 0x80 /* EQEP */
680 0x48300200 0x48300200 0x80>; /* EHRPWM */
682 ecap0: ecap@48300100 {
683 compatible = "ti,am33xx-ecap";
685 reg = <0x48300100 0x80>;
687 interrupt-names = "ecap0";
692 ehrpwm0: ehrpwm@48300200 {
693 compatible = "ti,am33xx-ehrpwm";
695 reg = <0x48300200 0x80>;
696 ti,hwmods = "ehrpwm0";
701 epwmss1: epwmss@48302000 {
702 compatible = "ti,am33xx-pwmss";
703 reg = <0x48302000 0x10>;
704 ti,hwmods = "epwmss1";
705 #address-cells = <1>;
708 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
709 0x48302180 0x48302180 0x80 /* EQEP */
710 0x48302200 0x48302200 0x80>; /* EHRPWM */
712 ecap1: ecap@48302100 {
713 compatible = "ti,am33xx-ecap";
715 reg = <0x48302100 0x80>;
717 interrupt-names = "ecap1";
722 ehrpwm1: ehrpwm@48302200 {
723 compatible = "ti,am33xx-ehrpwm";
725 reg = <0x48302200 0x80>;
726 ti,hwmods = "ehrpwm1";
731 epwmss2: epwmss@48304000 {
732 compatible = "ti,am33xx-pwmss";
733 reg = <0x48304000 0x10>;
734 ti,hwmods = "epwmss2";
735 #address-cells = <1>;
738 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
739 0x48304180 0x48304180 0x80 /* EQEP */
740 0x48304200 0x48304200 0x80>; /* EHRPWM */
742 ecap2: ecap@48304100 {
743 compatible = "ti,am33xx-ecap";
745 reg = <0x48304100 0x80>;
747 interrupt-names = "ecap2";
752 ehrpwm2: ehrpwm@48304200 {
753 compatible = "ti,am33xx-ehrpwm";
755 reg = <0x48304200 0x80>;
756 ti,hwmods = "ehrpwm2";
761 mac: ethernet@4a100000 {
762 compatible = "ti,am335x-cpsw","ti,cpsw";
763 ti,hwmods = "cpgmac0";
764 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
765 clock-names = "fck", "cpts";
766 cpdma_channels = <8>;
767 ale_entries = <1024>;
768 bd_ram_size = <0x2000>;
771 mac_control = <0x20>;
774 cpts_clock_mult = <0x80000000>;
775 cpts_clock_shift = <29>;
776 reg = <0x4a100000 0x800
778 #address-cells = <1>;
780 interrupt-parent = <&intc>;
787 interrupts = <40 41 42 43>;
789 syscon = <&scm_conf>;
792 davinci_mdio: mdio@4a101000 {
793 compatible = "ti,davinci_mdio";
794 #address-cells = <1>;
796 ti,hwmods = "davinci_mdio";
797 bus_freq = <1000000>;
798 reg = <0x4a101000 0x100>;
802 cpsw_emac0: slave@4a100200 {
803 /* Filled in by U-Boot */
804 mac-address = [ 00 00 00 00 00 00 ];
807 cpsw_emac1: slave@4a100300 {
808 /* Filled in by U-Boot */
809 mac-address = [ 00 00 00 00 00 00 ];
812 phy_sel: cpsw-phy-sel@44e10650 {
813 compatible = "ti,am3352-cpsw-phy-sel";
814 reg= <0x44e10650 0x4>;
815 reg-names = "gmii-sel";
819 ocmcram: ocmcram@40300000 {
820 compatible = "mmio-sram";
821 reg = <0x40300000 0x10000>; /* 64k */
825 compatible = "ti,am3352-elm";
826 reg = <0x48080000 0x2000>;
832 lcdc: lcdc@4830e000 {
833 compatible = "ti,am33xx-tilcdc";
834 reg = <0x4830e000 0x1000>;
835 interrupt-parent = <&intc>;
841 tscadc: tscadc@44e0d000 {
842 compatible = "ti,am3359-tscadc";
843 reg = <0x44e0d000 0x1000>;
844 interrupt-parent = <&intc>;
846 ti,hwmods = "adc_tsc";
850 compatible = "ti,am3359-tsc";
853 #io-channel-cells = <1>;
854 compatible = "ti,am3359-adc";
858 gpmc: gpmc@50000000 {
859 compatible = "ti,am3352-gpmc";
862 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"