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 */
61 clock-latency = <300000>; /* From omap-cpufreq driver */
66 compatible = "arm,cortex-a8-pmu";
71 * The soc node represents the soc top level view. It is uses for IPs
72 * that are not memory mapped in the MPU view or for the MPU itself.
75 compatible = "ti,omap-infra";
77 compatible = "ti,omap3-mpu";
82 am33xx_pinmux: pinmux@44e10800 {
83 compatible = "pinctrl-single";
84 reg = <0x44e10800 0x0238>;
87 pinctrl-single,register-width = <32>;
88 pinctrl-single,function-mask = <0x7f>;
92 * XXX: Use a flat representation of the AM33XX interconnect.
93 * The real AM33XX interconnect network is quite complex.Since
94 * that will not bring real advantage to represent that in DT
95 * for the moment, just use a fake OCP bus entry to represent
96 * the whole bus hierarchy.
99 compatible = "simple-bus";
100 #address-cells = <1>;
103 ti,hwmods = "l3_main";
105 intc: interrupt-controller@48200000 {
106 compatible = "ti,omap2-intc";
107 interrupt-controller;
108 #interrupt-cells = <1>;
109 ti,intc-size = <128>;
110 reg = <0x48200000 0x1000>;
113 edma: edma@49000000 {
114 compatible = "ti,edma3";
115 ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2";
116 reg = <0x49000000 0x10000>,
118 interrupts = <12 13 14>;
121 ti,edma-regions = <4>;
122 ti,edma-slots = <256>;
125 gpio0: gpio@44e07000 {
126 compatible = "ti,omap4-gpio";
130 interrupt-controller;
131 #interrupt-cells = <2>;
132 reg = <0x44e07000 0x1000>;
136 gpio1: gpio@4804c000 {
137 compatible = "ti,omap4-gpio";
141 interrupt-controller;
142 #interrupt-cells = <2>;
143 reg = <0x4804c000 0x1000>;
147 gpio2: gpio@481ac000 {
148 compatible = "ti,omap4-gpio";
152 interrupt-controller;
153 #interrupt-cells = <2>;
154 reg = <0x481ac000 0x1000>;
158 gpio3: gpio@481ae000 {
159 compatible = "ti,omap4-gpio";
163 interrupt-controller;
164 #interrupt-cells = <2>;
165 reg = <0x481ae000 0x1000>;
169 uart0: serial@44e09000 {
170 compatible = "ti,omap3-uart";
172 clock-frequency = <48000000>;
173 reg = <0x44e09000 0x2000>;
178 uart1: serial@48022000 {
179 compatible = "ti,omap3-uart";
181 clock-frequency = <48000000>;
182 reg = <0x48022000 0x2000>;
187 uart2: serial@48024000 {
188 compatible = "ti,omap3-uart";
190 clock-frequency = <48000000>;
191 reg = <0x48024000 0x2000>;
196 uart3: serial@481a6000 {
197 compatible = "ti,omap3-uart";
199 clock-frequency = <48000000>;
200 reg = <0x481a6000 0x2000>;
205 uart4: serial@481a8000 {
206 compatible = "ti,omap3-uart";
208 clock-frequency = <48000000>;
209 reg = <0x481a8000 0x2000>;
214 uart5: serial@481aa000 {
215 compatible = "ti,omap3-uart";
217 clock-frequency = <48000000>;
218 reg = <0x481aa000 0x2000>;
224 compatible = "ti,omap4-i2c";
225 #address-cells = <1>;
228 reg = <0x44e0b000 0x1000>;
234 compatible = "ti,omap4-i2c";
235 #address-cells = <1>;
238 reg = <0x4802a000 0x1000>;
244 compatible = "ti,omap4-i2c";
245 #address-cells = <1>;
248 reg = <0x4819c000 0x1000>;
254 compatible = "ti,omap4-hsmmc";
257 ti,needs-special-reset;
258 ti,needs-special-hs-handling;
261 dma-names = "tx", "rx";
263 interrupt-parent = <&intc>;
264 reg = <0x48060000 0x1000>;
269 compatible = "ti,omap4-hsmmc";
271 ti,needs-special-reset;
274 dma-names = "tx", "rx";
276 interrupt-parent = <&intc>;
277 reg = <0x481d8000 0x1000>;
282 compatible = "ti,omap4-hsmmc";
284 ti,needs-special-reset;
286 interrupt-parent = <&intc>;
287 reg = <0x47810000 0x1000>;
292 compatible = "ti,omap3-wdt";
293 ti,hwmods = "wd_timer2";
294 reg = <0x44e35000 0x1000>;
298 dcan0: d_can@481cc000 {
299 compatible = "bosch,d_can";
300 ti,hwmods = "d_can0";
301 reg = <0x481cc000 0x2000
307 dcan1: d_can@481d0000 {
308 compatible = "bosch,d_can";
309 ti,hwmods = "d_can1";
310 reg = <0x481d0000 0x2000
316 timer1: timer@44e31000 {
317 compatible = "ti,am335x-timer-1ms";
318 reg = <0x44e31000 0x400>;
320 ti,hwmods = "timer1";
324 timer2: timer@48040000 {
325 compatible = "ti,am335x-timer";
326 reg = <0x48040000 0x400>;
328 ti,hwmods = "timer2";
331 timer3: timer@48042000 {
332 compatible = "ti,am335x-timer";
333 reg = <0x48042000 0x400>;
335 ti,hwmods = "timer3";
338 timer4: timer@48044000 {
339 compatible = "ti,am335x-timer";
340 reg = <0x48044000 0x400>;
342 ti,hwmods = "timer4";
346 timer5: timer@48046000 {
347 compatible = "ti,am335x-timer";
348 reg = <0x48046000 0x400>;
350 ti,hwmods = "timer5";
354 timer6: timer@48048000 {
355 compatible = "ti,am335x-timer";
356 reg = <0x48048000 0x400>;
358 ti,hwmods = "timer6";
362 timer7: timer@4804a000 {
363 compatible = "ti,am335x-timer";
364 reg = <0x4804a000 0x400>;
366 ti,hwmods = "timer7";
371 compatible = "ti,da830-rtc";
372 reg = <0x44e3e000 0x1000>;
379 compatible = "ti,omap4-mcspi";
380 #address-cells = <1>;
382 reg = <0x48030000 0x400>;
390 dma-names = "tx0", "rx0", "tx1", "rx1";
395 compatible = "ti,omap4-mcspi";
396 #address-cells = <1>;
398 reg = <0x481a0000 0x400>;
406 dma-names = "tx0", "rx0", "tx1", "rx1";
411 compatible = "ti,am33xx-usb";
412 reg = <0x47400000 0x1000>;
414 #address-cells = <1>;
416 ti,hwmods = "usb_otg_hs";
419 usb_ctrl_mod: control@44e10000 {
420 compatible = "ti,am335x-usb-ctrl-module";
421 reg = <0x44e10620 0x10
423 reg-names = "phy_ctrl", "wakeup";
427 usb0_phy: usb-phy@47401300 {
428 compatible = "ti,am335x-usb-phy";
429 reg = <0x47401300 0x100>;
432 ti,ctrl_mod = <&usb_ctrl_mod>;
436 compatible = "ti,musb-am33xx";
438 reg = <0x47401400 0x400
440 reg-names = "mc", "control";
443 interrupt-names = "mc";
445 mentor,multipoint = <1>;
446 mentor,num-eps = <16>;
447 mentor,ram-bits = <12>;
448 mentor,power = <500>;
451 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
452 &cppi41dma 2 0 &cppi41dma 3 0
453 &cppi41dma 4 0 &cppi41dma 5 0
454 &cppi41dma 6 0 &cppi41dma 7 0
455 &cppi41dma 8 0 &cppi41dma 9 0
456 &cppi41dma 10 0 &cppi41dma 11 0
457 &cppi41dma 12 0 &cppi41dma 13 0
458 &cppi41dma 14 0 &cppi41dma 0 1
459 &cppi41dma 1 1 &cppi41dma 2 1
460 &cppi41dma 3 1 &cppi41dma 4 1
461 &cppi41dma 5 1 &cppi41dma 6 1
462 &cppi41dma 7 1 &cppi41dma 8 1
463 &cppi41dma 9 1 &cppi41dma 10 1
464 &cppi41dma 11 1 &cppi41dma 12 1
465 &cppi41dma 13 1 &cppi41dma 14 1>;
467 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
468 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
470 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
471 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
475 usb1_phy: usb-phy@47401b00 {
476 compatible = "ti,am335x-usb-phy";
477 reg = <0x47401b00 0x100>;
480 ti,ctrl_mod = <&usb_ctrl_mod>;
484 compatible = "ti,musb-am33xx";
486 reg = <0x47401c00 0x400
488 reg-names = "mc", "control";
490 interrupt-names = "mc";
492 mentor,multipoint = <1>;
493 mentor,num-eps = <16>;
494 mentor,ram-bits = <12>;
495 mentor,power = <500>;
498 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
499 &cppi41dma 17 0 &cppi41dma 18 0
500 &cppi41dma 19 0 &cppi41dma 20 0
501 &cppi41dma 21 0 &cppi41dma 22 0
502 &cppi41dma 23 0 &cppi41dma 24 0
503 &cppi41dma 25 0 &cppi41dma 26 0
504 &cppi41dma 27 0 &cppi41dma 28 0
505 &cppi41dma 29 0 &cppi41dma 15 1
506 &cppi41dma 16 1 &cppi41dma 17 1
507 &cppi41dma 18 1 &cppi41dma 19 1
508 &cppi41dma 20 1 &cppi41dma 21 1
509 &cppi41dma 22 1 &cppi41dma 23 1
510 &cppi41dma 24 1 &cppi41dma 25 1
511 &cppi41dma 26 1 &cppi41dma 27 1
512 &cppi41dma 28 1 &cppi41dma 29 1>;
514 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
515 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
517 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
518 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
522 cppi41dma: dma-controller@07402000 {
523 compatible = "ti,am3359-cppi41";
524 reg = <0x47400000 0x1000
528 reg-names = "glue", "controller", "scheduler", "queuemgr";
530 interrupt-names = "glue";
532 #dma-channels = <30>;
533 #dma-requests = <256>;
538 epwmss0: epwmss@48300000 {
539 compatible = "ti,am33xx-pwmss";
540 reg = <0x48300000 0x10>;
541 ti,hwmods = "epwmss0";
542 #address-cells = <1>;
545 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
546 0x48300180 0x48300180 0x80 /* EQEP */
547 0x48300200 0x48300200 0x80>; /* EHRPWM */
549 ecap0: ecap@48300100 {
550 compatible = "ti,am33xx-ecap";
552 reg = <0x48300100 0x80>;
557 ehrpwm0: ehrpwm@48300200 {
558 compatible = "ti,am33xx-ehrpwm";
560 reg = <0x48300200 0x80>;
561 ti,hwmods = "ehrpwm0";
566 epwmss1: epwmss@48302000 {
567 compatible = "ti,am33xx-pwmss";
568 reg = <0x48302000 0x10>;
569 ti,hwmods = "epwmss1";
570 #address-cells = <1>;
573 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
574 0x48302180 0x48302180 0x80 /* EQEP */
575 0x48302200 0x48302200 0x80>; /* EHRPWM */
577 ecap1: ecap@48302100 {
578 compatible = "ti,am33xx-ecap";
580 reg = <0x48302100 0x80>;
585 ehrpwm1: ehrpwm@48302200 {
586 compatible = "ti,am33xx-ehrpwm";
588 reg = <0x48302200 0x80>;
589 ti,hwmods = "ehrpwm1";
594 epwmss2: epwmss@48304000 {
595 compatible = "ti,am33xx-pwmss";
596 reg = <0x48304000 0x10>;
597 ti,hwmods = "epwmss2";
598 #address-cells = <1>;
601 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
602 0x48304180 0x48304180 0x80 /* EQEP */
603 0x48304200 0x48304200 0x80>; /* EHRPWM */
605 ecap2: ecap@48304100 {
606 compatible = "ti,am33xx-ecap";
608 reg = <0x48304100 0x80>;
613 ehrpwm2: ehrpwm@48304200 {
614 compatible = "ti,am33xx-ehrpwm";
616 reg = <0x48304200 0x80>;
617 ti,hwmods = "ehrpwm2";
622 mac: ethernet@4a100000 {
623 compatible = "ti,cpsw";
624 ti,hwmods = "cpgmac0";
625 cpdma_channels = <8>;
626 ale_entries = <1024>;
627 bd_ram_size = <0x2000>;
630 mac_control = <0x20>;
633 cpts_clock_mult = <0x80000000>;
634 cpts_clock_shift = <29>;
635 reg = <0x4a100000 0x800
637 #address-cells = <1>;
639 interrupt-parent = <&intc>;
646 interrupts = <40 41 42 43>;
649 davinci_mdio: mdio@4a101000 {
650 compatible = "ti,davinci_mdio";
651 #address-cells = <1>;
653 ti,hwmods = "davinci_mdio";
654 bus_freq = <1000000>;
655 reg = <0x4a101000 0x100>;
658 cpsw_emac0: slave@4a100200 {
659 /* Filled in by U-Boot */
660 mac-address = [ 00 00 00 00 00 00 ];
663 cpsw_emac1: slave@4a100300 {
664 /* Filled in by U-Boot */
665 mac-address = [ 00 00 00 00 00 00 ];
669 ocmcram: ocmcram@40300000 {
670 compatible = "ti,am3352-ocmcram";
671 reg = <0x40300000 0x10000>;
672 ti,hwmods = "ocmcram";
675 wkup_m3: wkup_m3@44d00000 {
676 compatible = "ti,am3353-wkup-m3";
677 reg = <0x44d00000 0x4000 /* M3 UMEM */
678 0x44d80000 0x2000>; /* M3 DMEM */
679 ti,hwmods = "wkup_m3";
684 compatible = "ti,am3352-elm";
685 reg = <0x48080000 0x2000>;
691 lcdc: lcdc@4830e000 {
692 compatible = "ti,am33xx-tilcdc";
693 reg = <0x4830e000 0x1000>;
694 interrupt-parent = <&intc>;
700 tscadc: tscadc@44e0d000 {
701 compatible = "ti,am3359-tscadc";
702 reg = <0x44e0d000 0x1000>;
703 interrupt-parent = <&intc>;
705 ti,hwmods = "adc_tsc";
709 compatible = "ti,am3359-tsc";
712 #io-channel-cells = <1>;
713 compatible = "ti,am3359-adc";
717 gpmc: gpmc@50000000 {
718 compatible = "ti,am3352-gpmc";
721 reg = <0x50000000 0x2000>;
724 gpmc,num-waitpins = <2>;
725 #address-cells = <2>;
730 sham: sham@53100000 {
731 compatible = "ti,omap4-sham";
733 reg = <0x53100000 0x200>;
740 compatible = "ti,omap4-aes";
742 reg = <0x53500000 0xa0>;
746 dma-names = "tx", "rx";
749 mcasp0: mcasp@48038000 {
750 compatible = "ti,am33xx-mcasp-audio";
751 ti,hwmods = "mcasp0";
752 reg = <0x48038000 0x2000>,
753 <0x46000000 0x400000>;
754 reg-names = "mpu", "dat";
755 interrupts = <80>, <81>;
756 interrupts-names = "tx", "rx";
760 dma-names = "tx", "rx";
763 mcasp1: mcasp@4803C000 {
764 compatible = "ti,am33xx-mcasp-audio";
765 ti,hwmods = "mcasp1";
766 reg = <0x4803C000 0x2000>,
767 <0x46400000 0x400000>;
768 reg-names = "mpu", "dat";
769 interrupts = <82>, <83>;
770 interrupts-names = "tx", "rx";
774 dma-names = "tx", "rx";