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";
178 ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2";
179 reg = <0x49000000 0x10000>,
181 interrupts = <12 13 14>;
185 gpio0: gpio@44e07000 {
186 compatible = "ti,omap4-gpio";
190 interrupt-controller;
191 #interrupt-cells = <2>;
192 reg = <0x44e07000 0x1000>;
196 gpio1: gpio@4804c000 {
197 compatible = "ti,omap4-gpio";
201 interrupt-controller;
202 #interrupt-cells = <2>;
203 reg = <0x4804c000 0x1000>;
207 gpio2: gpio@481ac000 {
208 compatible = "ti,omap4-gpio";
212 interrupt-controller;
213 #interrupt-cells = <2>;
214 reg = <0x481ac000 0x1000>;
218 gpio3: gpio@481ae000 {
219 compatible = "ti,omap4-gpio";
223 interrupt-controller;
224 #interrupt-cells = <2>;
225 reg = <0x481ae000 0x1000>;
229 uart0: serial@44e09000 {
230 compatible = "ti,am3352-uart", "ti,omap3-uart";
232 clock-frequency = <48000000>;
233 reg = <0x44e09000 0x2000>;
236 dmas = <&edma 26>, <&edma 27>;
237 dma-names = "tx", "rx";
240 uart1: serial@48022000 {
241 compatible = "ti,am3352-uart", "ti,omap3-uart";
243 clock-frequency = <48000000>;
244 reg = <0x48022000 0x2000>;
247 dmas = <&edma 28>, <&edma 29>;
248 dma-names = "tx", "rx";
251 uart2: serial@48024000 {
252 compatible = "ti,am3352-uart", "ti,omap3-uart";
254 clock-frequency = <48000000>;
255 reg = <0x48024000 0x2000>;
258 dmas = <&edma 30>, <&edma 31>;
259 dma-names = "tx", "rx";
262 uart3: serial@481a6000 {
263 compatible = "ti,am3352-uart", "ti,omap3-uart";
265 clock-frequency = <48000000>;
266 reg = <0x481a6000 0x2000>;
271 uart4: serial@481a8000 {
272 compatible = "ti,am3352-uart", "ti,omap3-uart";
274 clock-frequency = <48000000>;
275 reg = <0x481a8000 0x2000>;
280 uart5: serial@481aa000 {
281 compatible = "ti,am3352-uart", "ti,omap3-uart";
283 clock-frequency = <48000000>;
284 reg = <0x481aa000 0x2000>;
290 compatible = "ti,omap4-i2c";
291 #address-cells = <1>;
294 reg = <0x44e0b000 0x1000>;
300 compatible = "ti,omap4-i2c";
301 #address-cells = <1>;
304 reg = <0x4802a000 0x1000>;
310 compatible = "ti,omap4-i2c";
311 #address-cells = <1>;
314 reg = <0x4819c000 0x1000>;
320 compatible = "ti,omap4-hsmmc";
323 ti,needs-special-reset;
324 ti,needs-special-hs-handling;
327 dma-names = "tx", "rx";
329 interrupt-parent = <&intc>;
330 reg = <0x48060000 0x1000>;
335 compatible = "ti,omap4-hsmmc";
337 ti,needs-special-reset;
340 dma-names = "tx", "rx";
342 interrupt-parent = <&intc>;
343 reg = <0x481d8000 0x1000>;
348 compatible = "ti,omap4-hsmmc";
350 ti,needs-special-reset;
352 interrupt-parent = <&intc>;
353 reg = <0x47810000 0x1000>;
357 hwspinlock: spinlock@480ca000 {
358 compatible = "ti,omap4-hwspinlock";
359 reg = <0x480ca000 0x1000>;
360 ti,hwmods = "spinlock";
365 compatible = "ti,omap3-wdt";
366 ti,hwmods = "wd_timer2";
367 reg = <0x44e35000 0x1000>;
371 dcan0: can@481cc000 {
372 compatible = "ti,am3352-d_can";
373 ti,hwmods = "d_can0";
374 reg = <0x481cc000 0x2000>;
375 clocks = <&dcan0_fck>;
377 syscon-raminit = <&scm_conf 0x644 0>;
382 dcan1: can@481d0000 {
383 compatible = "ti,am3352-d_can";
384 ti,hwmods = "d_can1";
385 reg = <0x481d0000 0x2000>;
386 clocks = <&dcan1_fck>;
388 syscon-raminit = <&scm_conf 0x644 1>;
393 mailbox: mailbox@480C8000 {
394 compatible = "ti,omap4-mailbox";
395 reg = <0x480C8000 0x200>;
397 ti,hwmods = "mailbox";
399 ti,mbox-num-users = <4>;
400 ti,mbox-num-fifos = <8>;
401 mbox_wkupm3: wkup_m3 {
402 ti,mbox-tx = <0 0 0>;
403 ti,mbox-rx = <0 0 3>;
407 timer1: timer@44e31000 {
408 compatible = "ti,am335x-timer-1ms";
409 reg = <0x44e31000 0x400>;
411 ti,hwmods = "timer1";
415 timer2: timer@48040000 {
416 compatible = "ti,am335x-timer";
417 reg = <0x48040000 0x400>;
419 ti,hwmods = "timer2";
422 timer3: timer@48042000 {
423 compatible = "ti,am335x-timer";
424 reg = <0x48042000 0x400>;
426 ti,hwmods = "timer3";
429 timer4: timer@48044000 {
430 compatible = "ti,am335x-timer";
431 reg = <0x48044000 0x400>;
433 ti,hwmods = "timer4";
437 timer5: timer@48046000 {
438 compatible = "ti,am335x-timer";
439 reg = <0x48046000 0x400>;
441 ti,hwmods = "timer5";
445 timer6: timer@48048000 {
446 compatible = "ti,am335x-timer";
447 reg = <0x48048000 0x400>;
449 ti,hwmods = "timer6";
453 timer7: timer@4804a000 {
454 compatible = "ti,am335x-timer";
455 reg = <0x4804a000 0x400>;
457 ti,hwmods = "timer7";
462 compatible = "ti,am3352-rtc", "ti,da830-rtc";
463 reg = <0x44e3e000 0x1000>;
470 compatible = "ti,omap4-mcspi";
471 #address-cells = <1>;
473 reg = <0x48030000 0x400>;
481 dma-names = "tx0", "rx0", "tx1", "rx1";
486 compatible = "ti,omap4-mcspi";
487 #address-cells = <1>;
489 reg = <0x481a0000 0x400>;
497 dma-names = "tx0", "rx0", "tx1", "rx1";
502 compatible = "ti,am33xx-usb";
503 reg = <0x47400000 0x1000>;
505 #address-cells = <1>;
507 ti,hwmods = "usb_otg_hs";
510 usb_ctrl_mod: control@44e10620 {
511 compatible = "ti,am335x-usb-ctrl-module";
512 reg = <0x44e10620 0x10
514 reg-names = "phy_ctrl", "wakeup";
518 usb0_phy: usb-phy@47401300 {
519 compatible = "ti,am335x-usb-phy";
520 reg = <0x47401300 0x100>;
523 ti,ctrl_mod = <&usb_ctrl_mod>;
527 compatible = "ti,musb-am33xx";
529 reg = <0x47401400 0x400
531 reg-names = "mc", "control";
534 interrupt-names = "mc";
536 mentor,multipoint = <1>;
537 mentor,num-eps = <16>;
538 mentor,ram-bits = <12>;
539 mentor,power = <500>;
542 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
543 &cppi41dma 2 0 &cppi41dma 3 0
544 &cppi41dma 4 0 &cppi41dma 5 0
545 &cppi41dma 6 0 &cppi41dma 7 0
546 &cppi41dma 8 0 &cppi41dma 9 0
547 &cppi41dma 10 0 &cppi41dma 11 0
548 &cppi41dma 12 0 &cppi41dma 13 0
549 &cppi41dma 14 0 &cppi41dma 0 1
550 &cppi41dma 1 1 &cppi41dma 2 1
551 &cppi41dma 3 1 &cppi41dma 4 1
552 &cppi41dma 5 1 &cppi41dma 6 1
553 &cppi41dma 7 1 &cppi41dma 8 1
554 &cppi41dma 9 1 &cppi41dma 10 1
555 &cppi41dma 11 1 &cppi41dma 12 1
556 &cppi41dma 13 1 &cppi41dma 14 1>;
558 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
559 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
561 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
562 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
566 usb1_phy: usb-phy@47401b00 {
567 compatible = "ti,am335x-usb-phy";
568 reg = <0x47401b00 0x100>;
571 ti,ctrl_mod = <&usb_ctrl_mod>;
575 compatible = "ti,musb-am33xx";
577 reg = <0x47401c00 0x400
579 reg-names = "mc", "control";
581 interrupt-names = "mc";
583 mentor,multipoint = <1>;
584 mentor,num-eps = <16>;
585 mentor,ram-bits = <12>;
586 mentor,power = <500>;
589 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
590 &cppi41dma 17 0 &cppi41dma 18 0
591 &cppi41dma 19 0 &cppi41dma 20 0
592 &cppi41dma 21 0 &cppi41dma 22 0
593 &cppi41dma 23 0 &cppi41dma 24 0
594 &cppi41dma 25 0 &cppi41dma 26 0
595 &cppi41dma 27 0 &cppi41dma 28 0
596 &cppi41dma 29 0 &cppi41dma 15 1
597 &cppi41dma 16 1 &cppi41dma 17 1
598 &cppi41dma 18 1 &cppi41dma 19 1
599 &cppi41dma 20 1 &cppi41dma 21 1
600 &cppi41dma 22 1 &cppi41dma 23 1
601 &cppi41dma 24 1 &cppi41dma 25 1
602 &cppi41dma 26 1 &cppi41dma 27 1
603 &cppi41dma 28 1 &cppi41dma 29 1>;
605 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
606 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
608 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
609 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
613 cppi41dma: dma-controller@47402000 {
614 compatible = "ti,am3359-cppi41";
615 reg = <0x47400000 0x1000
619 reg-names = "glue", "controller", "scheduler", "queuemgr";
621 interrupt-names = "glue";
623 #dma-channels = <30>;
624 #dma-requests = <256>;
629 epwmss0: epwmss@48300000 {
630 compatible = "ti,am33xx-pwmss";
631 reg = <0x48300000 0x10>;
632 ti,hwmods = "epwmss0";
633 #address-cells = <1>;
636 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
637 0x48300180 0x48300180 0x80 /* EQEP */
638 0x48300200 0x48300200 0x80>; /* EHRPWM */
640 ecap0: ecap@48300100 {
641 compatible = "ti,am33xx-ecap";
643 reg = <0x48300100 0x80>;
645 interrupt-names = "ecap0";
650 ehrpwm0: ehrpwm@48300200 {
651 compatible = "ti,am33xx-ehrpwm";
653 reg = <0x48300200 0x80>;
654 ti,hwmods = "ehrpwm0";
659 epwmss1: epwmss@48302000 {
660 compatible = "ti,am33xx-pwmss";
661 reg = <0x48302000 0x10>;
662 ti,hwmods = "epwmss1";
663 #address-cells = <1>;
666 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
667 0x48302180 0x48302180 0x80 /* EQEP */
668 0x48302200 0x48302200 0x80>; /* EHRPWM */
670 ecap1: ecap@48302100 {
671 compatible = "ti,am33xx-ecap";
673 reg = <0x48302100 0x80>;
675 interrupt-names = "ecap1";
680 ehrpwm1: ehrpwm@48302200 {
681 compatible = "ti,am33xx-ehrpwm";
683 reg = <0x48302200 0x80>;
684 ti,hwmods = "ehrpwm1";
689 epwmss2: epwmss@48304000 {
690 compatible = "ti,am33xx-pwmss";
691 reg = <0x48304000 0x10>;
692 ti,hwmods = "epwmss2";
693 #address-cells = <1>;
696 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
697 0x48304180 0x48304180 0x80 /* EQEP */
698 0x48304200 0x48304200 0x80>; /* EHRPWM */
700 ecap2: ecap@48304100 {
701 compatible = "ti,am33xx-ecap";
703 reg = <0x48304100 0x80>;
705 interrupt-names = "ecap2";
710 ehrpwm2: ehrpwm@48304200 {
711 compatible = "ti,am33xx-ehrpwm";
713 reg = <0x48304200 0x80>;
714 ti,hwmods = "ehrpwm2";
719 mac: ethernet@4a100000 {
720 compatible = "ti,am335x-cpsw","ti,cpsw";
721 ti,hwmods = "cpgmac0";
722 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
723 clock-names = "fck", "cpts";
724 cpdma_channels = <8>;
725 ale_entries = <1024>;
726 bd_ram_size = <0x2000>;
729 mac_control = <0x20>;
732 cpts_clock_mult = <0x80000000>;
733 cpts_clock_shift = <29>;
734 reg = <0x4a100000 0x800
736 #address-cells = <1>;
738 interrupt-parent = <&intc>;
745 interrupts = <40 41 42 43>;
747 syscon = <&scm_conf>;
750 davinci_mdio: mdio@4a101000 {
751 compatible = "ti,davinci_mdio";
752 #address-cells = <1>;
754 ti,hwmods = "davinci_mdio";
755 bus_freq = <1000000>;
756 reg = <0x4a101000 0x100>;
760 cpsw_emac0: slave@4a100200 {
761 /* Filled in by U-Boot */
762 mac-address = [ 00 00 00 00 00 00 ];
765 cpsw_emac1: slave@4a100300 {
766 /* Filled in by U-Boot */
767 mac-address = [ 00 00 00 00 00 00 ];
770 phy_sel: cpsw-phy-sel@44e10650 {
771 compatible = "ti,am3352-cpsw-phy-sel";
772 reg= <0x44e10650 0x4>;
773 reg-names = "gmii-sel";
777 ocmcram: ocmcram@40300000 {
778 compatible = "mmio-sram";
779 reg = <0x40300000 0x10000>; /* 64k */
783 compatible = "ti,am3352-elm";
784 reg = <0x48080000 0x2000>;
790 lcdc: lcdc@4830e000 {
791 compatible = "ti,am33xx-tilcdc";
792 reg = <0x4830e000 0x1000>;
793 interrupt-parent = <&intc>;
799 tscadc: tscadc@44e0d000 {
800 compatible = "ti,am3359-tscadc";
801 reg = <0x44e0d000 0x1000>;
802 interrupt-parent = <&intc>;
804 ti,hwmods = "adc_tsc";
808 compatible = "ti,am3359-tsc";
811 #io-channel-cells = <1>;
812 compatible = "ti,am3359-adc";
816 gpmc: gpmc@50000000 {
817 compatible = "ti,am3352-gpmc";
820 reg = <0x50000000 0x2000>;
823 gpmc,num-waitpins = <2>;
824 #address-cells = <2>;
829 sham: sham@53100000 {
830 compatible = "ti,omap4-sham";
832 reg = <0x53100000 0x200>;
839 compatible = "ti,omap4-aes";
841 reg = <0x53500000 0xa0>;
845 dma-names = "tx", "rx";
848 mcasp0: mcasp@48038000 {
849 compatible = "ti,am33xx-mcasp-audio";
850 ti,hwmods = "mcasp0";
851 reg = <0x48038000 0x2000>,
852 <0x46000000 0x400000>;
853 reg-names = "mpu", "dat";
854 interrupts = <80>, <81>;
855 interrupt-names = "tx", "rx";
859 dma-names = "tx", "rx";
862 mcasp1: mcasp@4803C000 {
863 compatible = "ti,am33xx-mcasp-audio";
864 ti,hwmods = "mcasp1";
865 reg = <0x4803C000 0x2000>,
866 <0x46400000 0x400000>;
867 reg-names = "mpu", "dat";
868 interrupts = <82>, <83>;
869 interrupt-names = "tx", "rx";
873 dma-names = "tx", "rx";
877 compatible = "ti,omap4-rng";
879 reg = <0x48310000 0x2000>;
885 /include/ "am33xx-clocks.dtsi"