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>;
33 ethernet0 = &cpsw_emac0;
34 ethernet1 = &cpsw_emac1;
41 compatible = "arm,cortex-a8";
46 * To consider voltage drop between PMIC and SoC,
47 * tolerance value is reduced to 2% from 4% and
48 * voltage value is increased as a precaution.
57 voltage-tolerance = <2>; /* 2 percentage */
58 clock-latency = <300000>; /* From omap-cpufreq driver */
63 compatible = "arm,cortex-a8-pmu";
68 * The soc node represents the soc top level view. It is uses for IPs
69 * that are not memory mapped in the MPU view or for the MPU itself.
72 compatible = "ti,omap-infra";
74 compatible = "ti,omap3-mpu";
79 am33xx_pinmux: pinmux@44e10800 {
80 compatible = "pinctrl-single";
81 reg = <0x44e10800 0x0238>;
84 pinctrl-single,register-width = <32>;
85 pinctrl-single,function-mask = <0x7f>;
89 * XXX: Use a flat representation of the AM33XX interconnect.
90 * The real AM33XX interconnect network is quite complex.Since
91 * that will not bring real advantage to represent that in DT
92 * for the moment, just use a fake OCP bus entry to represent
93 * the whole bus hierarchy.
96 compatible = "simple-bus";
100 ti,hwmods = "l3_main";
102 intc: interrupt-controller@48200000 {
103 compatible = "ti,omap2-intc";
104 interrupt-controller;
105 #interrupt-cells = <1>;
106 ti,intc-size = <128>;
107 reg = <0x48200000 0x1000>;
110 edma: edma@49000000 {
111 compatible = "ti,edma3";
112 ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2";
113 reg = <0x49000000 0x10000>,
115 interrupts = <12 13 14>;
118 ti,edma-regions = <4>;
119 ti,edma-slots = <256>;
122 gpio0: gpio@44e07000 {
123 compatible = "ti,omap4-gpio";
127 interrupt-controller;
128 #interrupt-cells = <2>;
129 reg = <0x44e07000 0x1000>;
133 gpio1: gpio@4804c000 {
134 compatible = "ti,omap4-gpio";
138 interrupt-controller;
139 #interrupt-cells = <2>;
140 reg = <0x4804c000 0x1000>;
144 gpio2: gpio@481ac000 {
145 compatible = "ti,omap4-gpio";
149 interrupt-controller;
150 #interrupt-cells = <2>;
151 reg = <0x481ac000 0x1000>;
155 gpio3: gpio@481ae000 {
156 compatible = "ti,omap4-gpio";
160 interrupt-controller;
161 #interrupt-cells = <2>;
162 reg = <0x481ae000 0x1000>;
166 uart0: serial@44e09000 {
167 compatible = "ti,omap3-uart";
169 clock-frequency = <48000000>;
170 reg = <0x44e09000 0x2000>;
175 uart1: serial@48022000 {
176 compatible = "ti,omap3-uart";
178 clock-frequency = <48000000>;
179 reg = <0x48022000 0x2000>;
184 uart2: serial@48024000 {
185 compatible = "ti,omap3-uart";
187 clock-frequency = <48000000>;
188 reg = <0x48024000 0x2000>;
193 uart3: serial@481a6000 {
194 compatible = "ti,omap3-uart";
196 clock-frequency = <48000000>;
197 reg = <0x481a6000 0x2000>;
202 uart4: serial@481a8000 {
203 compatible = "ti,omap3-uart";
205 clock-frequency = <48000000>;
206 reg = <0x481a8000 0x2000>;
211 uart5: serial@481aa000 {
212 compatible = "ti,omap3-uart";
214 clock-frequency = <48000000>;
215 reg = <0x481aa000 0x2000>;
221 compatible = "ti,omap4-i2c";
222 #address-cells = <1>;
225 reg = <0x44e0b000 0x1000>;
231 compatible = "ti,omap4-i2c";
232 #address-cells = <1>;
235 reg = <0x4802a000 0x1000>;
241 compatible = "ti,omap4-i2c";
242 #address-cells = <1>;
245 reg = <0x4819c000 0x1000>;
251 compatible = "ti,omap4-hsmmc";
254 ti,needs-special-reset;
255 ti,needs-special-hs-handling;
258 dma-names = "tx", "rx";
260 interrupt-parent = <&intc>;
261 reg = <0x48060000 0x1000>;
266 compatible = "ti,omap4-hsmmc";
268 ti,needs-special-reset;
271 dma-names = "tx", "rx";
273 interrupt-parent = <&intc>;
274 reg = <0x481d8000 0x1000>;
279 compatible = "ti,omap4-hsmmc";
281 ti,needs-special-reset;
283 interrupt-parent = <&intc>;
284 reg = <0x47810000 0x1000>;
289 compatible = "ti,omap3-wdt";
290 ti,hwmods = "wd_timer2";
291 reg = <0x44e35000 0x1000>;
295 dcan0: d_can@481cc000 {
296 compatible = "bosch,d_can";
297 ti,hwmods = "d_can0";
298 reg = <0x481cc000 0x2000
304 dcan1: d_can@481d0000 {
305 compatible = "bosch,d_can";
306 ti,hwmods = "d_can1";
307 reg = <0x481d0000 0x2000
313 timer1: timer@44e31000 {
314 compatible = "ti,am335x-timer-1ms";
315 reg = <0x44e31000 0x400>;
317 ti,hwmods = "timer1";
321 timer2: timer@48040000 {
322 compatible = "ti,am335x-timer";
323 reg = <0x48040000 0x400>;
325 ti,hwmods = "timer2";
328 timer3: timer@48042000 {
329 compatible = "ti,am335x-timer";
330 reg = <0x48042000 0x400>;
332 ti,hwmods = "timer3";
335 timer4: timer@48044000 {
336 compatible = "ti,am335x-timer";
337 reg = <0x48044000 0x400>;
339 ti,hwmods = "timer4";
343 timer5: timer@48046000 {
344 compatible = "ti,am335x-timer";
345 reg = <0x48046000 0x400>;
347 ti,hwmods = "timer5";
351 timer6: timer@48048000 {
352 compatible = "ti,am335x-timer";
353 reg = <0x48048000 0x400>;
355 ti,hwmods = "timer6";
359 timer7: timer@4804a000 {
360 compatible = "ti,am335x-timer";
361 reg = <0x4804a000 0x400>;
363 ti,hwmods = "timer7";
368 compatible = "ti,da830-rtc";
369 reg = <0x44e3e000 0x1000>;
376 compatible = "ti,omap4-mcspi";
377 #address-cells = <1>;
379 reg = <0x48030000 0x400>;
387 dma-names = "tx0", "rx0", "tx1", "rx1";
392 compatible = "ti,omap4-mcspi";
393 #address-cells = <1>;
395 reg = <0x481a0000 0x400>;
403 dma-names = "tx0", "rx0", "tx1", "rx1";
408 compatible = "ti,am33xx-usb";
409 reg = <0x47400000 0x1000>;
411 #address-cells = <1>;
413 ti,hwmods = "usb_otg_hs";
416 ctrl_mod: control@44e10000 {
417 compatible = "ti,am335x-usb-ctrl-module";
418 reg = <0x44e10620 0x10
420 reg-names = "phy_ctrl", "wakeup";
424 usb0_phy: usb-phy@47401300 {
425 compatible = "ti,am335x-usb-phy";
426 reg = <0x47401300 0x100>;
429 ti,ctrl_mod = <&ctrl_mod>;
433 compatible = "ti,musb-am33xx";
435 reg = <0x47401400 0x400
437 reg-names = "mc", "control";
440 interrupt-names = "mc";
442 mentor,multipoint = <1>;
443 mentor,num-eps = <16>;
444 mentor,ram-bits = <12>;
445 mentor,power = <500>;
448 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
449 &cppi41dma 2 0 &cppi41dma 3 0
450 &cppi41dma 4 0 &cppi41dma 5 0
451 &cppi41dma 6 0 &cppi41dma 7 0
452 &cppi41dma 8 0 &cppi41dma 9 0
453 &cppi41dma 10 0 &cppi41dma 11 0
454 &cppi41dma 12 0 &cppi41dma 13 0
455 &cppi41dma 14 0 &cppi41dma 0 1
456 &cppi41dma 1 1 &cppi41dma 2 1
457 &cppi41dma 3 1 &cppi41dma 4 1
458 &cppi41dma 5 1 &cppi41dma 6 1
459 &cppi41dma 7 1 &cppi41dma 8 1
460 &cppi41dma 9 1 &cppi41dma 10 1
461 &cppi41dma 11 1 &cppi41dma 12 1
462 &cppi41dma 13 1 &cppi41dma 14 1>;
464 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
465 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
467 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
468 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
472 usb1_phy: usb-phy@47401b00 {
473 compatible = "ti,am335x-usb-phy";
474 reg = <0x47401b00 0x100>;
477 ti,ctrl_mod = <&ctrl_mod>;
481 compatible = "ti,musb-am33xx";
483 reg = <0x47401c00 0x400
485 reg-names = "mc", "control";
487 interrupt-names = "mc";
489 mentor,multipoint = <1>;
490 mentor,num-eps = <16>;
491 mentor,ram-bits = <12>;
492 mentor,power = <500>;
495 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
496 &cppi41dma 17 0 &cppi41dma 18 0
497 &cppi41dma 19 0 &cppi41dma 20 0
498 &cppi41dma 21 0 &cppi41dma 22 0
499 &cppi41dma 23 0 &cppi41dma 24 0
500 &cppi41dma 25 0 &cppi41dma 26 0
501 &cppi41dma 27 0 &cppi41dma 28 0
502 &cppi41dma 29 0 &cppi41dma 15 1
503 &cppi41dma 16 1 &cppi41dma 17 1
504 &cppi41dma 18 1 &cppi41dma 19 1
505 &cppi41dma 20 1 &cppi41dma 21 1
506 &cppi41dma 22 1 &cppi41dma 23 1
507 &cppi41dma 24 1 &cppi41dma 25 1
508 &cppi41dma 26 1 &cppi41dma 27 1
509 &cppi41dma 28 1 &cppi41dma 29 1>;
511 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
512 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
514 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
515 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
519 cppi41dma: dma-controller@07402000 {
520 compatible = "ti,am3359-cppi41";
521 reg = <0x47400000 0x1000
525 reg-names = "glue", "controller", "scheduler", "queuemgr";
527 interrupt-names = "glue";
529 #dma-channels = <30>;
530 #dma-requests = <256>;
535 epwmss0: epwmss@48300000 {
536 compatible = "ti,am33xx-pwmss";
537 reg = <0x48300000 0x10>;
538 ti,hwmods = "epwmss0";
539 #address-cells = <1>;
542 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
543 0x48300180 0x48300180 0x80 /* EQEP */
544 0x48300200 0x48300200 0x80>; /* EHRPWM */
546 ecap0: ecap@48300100 {
547 compatible = "ti,am33xx-ecap";
549 reg = <0x48300100 0x80>;
554 ehrpwm0: ehrpwm@48300200 {
555 compatible = "ti,am33xx-ehrpwm";
557 reg = <0x48300200 0x80>;
558 ti,hwmods = "ehrpwm0";
563 epwmss1: epwmss@48302000 {
564 compatible = "ti,am33xx-pwmss";
565 reg = <0x48302000 0x10>;
566 ti,hwmods = "epwmss1";
567 #address-cells = <1>;
570 ranges = <0x48302100 0x48302100 0x80 /* ECAP */
571 0x48302180 0x48302180 0x80 /* EQEP */
572 0x48302200 0x48302200 0x80>; /* EHRPWM */
574 ecap1: ecap@48302100 {
575 compatible = "ti,am33xx-ecap";
577 reg = <0x48302100 0x80>;
582 ehrpwm1: ehrpwm@48302200 {
583 compatible = "ti,am33xx-ehrpwm";
585 reg = <0x48302200 0x80>;
586 ti,hwmods = "ehrpwm1";
591 epwmss2: epwmss@48304000 {
592 compatible = "ti,am33xx-pwmss";
593 reg = <0x48304000 0x10>;
594 ti,hwmods = "epwmss2";
595 #address-cells = <1>;
598 ranges = <0x48304100 0x48304100 0x80 /* ECAP */
599 0x48304180 0x48304180 0x80 /* EQEP */
600 0x48304200 0x48304200 0x80>; /* EHRPWM */
602 ecap2: ecap@48304100 {
603 compatible = "ti,am33xx-ecap";
605 reg = <0x48304100 0x80>;
610 ehrpwm2: ehrpwm@48304200 {
611 compatible = "ti,am33xx-ehrpwm";
613 reg = <0x48304200 0x80>;
614 ti,hwmods = "ehrpwm2";
619 mac: ethernet@4a100000 {
620 compatible = "ti,cpsw";
621 ti,hwmods = "cpgmac0";
622 cpdma_channels = <8>;
623 ale_entries = <1024>;
624 bd_ram_size = <0x2000>;
627 mac_control = <0x20>;
630 cpts_clock_mult = <0x80000000>;
631 cpts_clock_shift = <29>;
632 reg = <0x4a100000 0x800
634 #address-cells = <1>;
636 interrupt-parent = <&intc>;
643 interrupts = <40 41 42 43>;
646 davinci_mdio: mdio@4a101000 {
647 compatible = "ti,davinci_mdio";
648 #address-cells = <1>;
650 ti,hwmods = "davinci_mdio";
651 bus_freq = <1000000>;
652 reg = <0x4a101000 0x100>;
655 cpsw_emac0: slave@4a100200 {
656 /* Filled in by U-Boot */
657 mac-address = [ 00 00 00 00 00 00 ];
660 cpsw_emac1: slave@4a100300 {
661 /* Filled in by U-Boot */
662 mac-address = [ 00 00 00 00 00 00 ];
666 ocmcram: ocmcram@40300000 {
667 compatible = "ti,am3352-ocmcram";
668 reg = <0x40300000 0x10000>;
669 ti,hwmods = "ocmcram";
672 wkup_m3: wkup_m3@44d00000 {
673 compatible = "ti,am3353-wkup-m3";
674 reg = <0x44d00000 0x4000 /* M3 UMEM */
675 0x44d80000 0x2000>; /* M3 DMEM */
676 ti,hwmods = "wkup_m3";
680 compatible = "ti,am3352-elm";
681 reg = <0x48080000 0x2000>;
687 tscadc: tscadc@44e0d000 {
688 compatible = "ti,am3359-tscadc";
689 reg = <0x44e0d000 0x1000>;
690 interrupt-parent = <&intc>;
692 ti,hwmods = "adc_tsc";
696 compatible = "ti,am3359-tsc";
699 #io-channel-cells = <1>;
700 compatible = "ti,am3359-adc";
704 gpmc: gpmc@50000000 {
705 compatible = "ti,am3352-gpmc";
707 reg = <0x50000000 0x2000>;
710 gpmc,num-waitpins = <2>;
711 #address-cells = <2>;
716 sham: sham@53100000 {
717 compatible = "ti,omap4-sham";
719 reg = <0x53100000 0x200>;
726 compatible = "ti,omap4-aes";
728 reg = <0x53500000 0xa0>;
732 dma-names = "tx", "rx";