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/bus/ti-sysc.h>
12 #include <dt-bindings/gpio/gpio.h>
13 #include <dt-bindings/pinctrl/am33xx.h>
14 #include <dt-bindings/clock/am3.h>
17 compatible = "ti,am33xx";
18 interrupt-parent = <&intc>;
39 ethernet0 = &cpsw_emac0;
40 ethernet1 = &cpsw_emac1;
49 compatible = "arm,cortex-a8";
50 enable-method = "ti,am3352";
54 operating-points-v2 = <&cpu0_opp_table>;
56 clocks = <&dpll_mpu_ck>;
59 clock-latency = <300000>; /* From omap-cpufreq driver */
60 cpu-idle-states = <&mpu_gate>;
65 compatible = "arm,idle-state";
66 entry-latency-us = <40>;
67 exit-latency-us = <90>;
68 min-residency-us = <300>;
74 cpu0_opp_table: opp-table {
75 compatible = "operating-points-v2-ti-cpu";
79 * The three following nodes are marked with opp-suspend
80 * because the can not be enabled simultaneously on a
84 opp-hz = /bits/ 64 <300000000>;
85 opp-microvolt = <950000 931000 969000>;
86 opp-supported-hw = <0x06 0x0010>;
91 opp-hz = /bits/ 64 <275000000>;
92 opp-microvolt = <1100000 1078000 1122000>;
93 opp-supported-hw = <0x01 0x00FF>;
98 opp-hz = /bits/ 64 <300000000>;
99 opp-microvolt = <1100000 1078000 1122000>;
100 opp-supported-hw = <0x06 0x0020>;
105 opp-hz = /bits/ 64 <500000000>;
106 opp-microvolt = <1100000 1078000 1122000>;
107 opp-supported-hw = <0x01 0xFFFF>;
111 opp-hz = /bits/ 64 <600000000>;
112 opp-microvolt = <1100000 1078000 1122000>;
113 opp-supported-hw = <0x06 0x0040>;
117 opp-hz = /bits/ 64 <600000000>;
118 opp-microvolt = <1200000 1176000 1224000>;
119 opp-supported-hw = <0x01 0xFFFF>;
123 opp-hz = /bits/ 64 <720000000>;
124 opp-microvolt = <1200000 1176000 1224000>;
125 opp-supported-hw = <0x06 0x0080>;
129 opp-hz = /bits/ 64 <720000000>;
130 opp-microvolt = <1260000 1234800 1285200>;
131 opp-supported-hw = <0x01 0xFFFF>;
135 opp-hz = /bits/ 64 <800000000>;
136 opp-microvolt = <1260000 1234800 1285200>;
137 opp-supported-hw = <0x06 0x0100>;
140 oppnitro-1000000000 {
141 opp-hz = /bits/ 64 <1000000000>;
142 opp-microvolt = <1325000 1298500 1351500>;
143 opp-supported-hw = <0x04 0x0200>;
148 compatible = "arm,cortex-a8-pmu";
150 reg = <0x4b000000 0x1000000>;
151 ti,hwmods = "debugss";
155 * The soc node represents the soc top level view. It is used for IPs
156 * that are not memory mapped in the MPU view or for the MPU itself.
159 compatible = "ti,omap-infra";
161 compatible = "ti,omap3-mpu";
163 pm-sram = <&pm_sram_code
169 * XXX: Use a flat representation of the AM33XX interconnect.
170 * The real AM33XX interconnect network is quite complex. Since
171 * it will not bring real advantage to represent that in DT
172 * for the moment, just use a fake OCP bus entry to represent
173 * the whole bus hierarchy.
176 compatible = "simple-bus";
177 #address-cells = <1>;
180 ti,hwmods = "l3_main";
182 l4_wkup: l4_wkup@44c00000 {
183 wkup_m3: wkup_m3@100000 {
184 compatible = "ti,am3352-wkup-m3";
185 reg = <0x100000 0x4000>,
187 reg-names = "umem", "dmem";
188 ti,hwmods = "wkup_m3";
189 ti,pm-firmware = "am335x-pm-firmware.elf";
192 l4_per: interconnect@48000000 {
194 l4_fw: interconnect@47c00000 {
196 l4_fast: interconnect@4a000000 {
198 l4_mpuss: interconnect@4b140000 {
201 intc: interrupt-controller@48200000 {
202 compatible = "ti,am33xx-intc";
203 interrupt-controller;
204 #interrupt-cells = <1>;
205 reg = <0x48200000 0x1000>;
208 target-module@49000000 {
209 compatible = "ti,sysc-omap4", "ti,sysc";
210 reg = <0x49000000 0x4>;
212 clocks = <&l3_clkctrl AM3_L3_TPCC_CLKCTRL 0>;
214 #address-cells = <1>;
216 ranges = <0x0 0x49000000 0x10000>;
219 compatible = "ti,edma3-tpcc";
221 reg-names = "edma3_cc";
222 interrupts = <12 13 14>;
223 interrupt-names = "edma3_ccint", "edma3_mperr",
228 ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
231 ti,edma-memcpy-channels = <20 21>;
235 target-module@49800000 {
236 compatible = "ti,sysc-omap4", "ti,sysc";
237 reg = <0x49800000 0x4>,
239 reg-names = "rev", "sysc";
240 ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
241 ti,sysc-midle = <SYSC_IDLE_FORCE>;
242 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
244 clocks = <&l3_clkctrl AM3_L3_TPTC0_CLKCTRL 0>;
246 #address-cells = <1>;
248 ranges = <0x0 0x49800000 0x100000>;
251 compatible = "ti,edma3-tptc";
254 interrupt-names = "edma3_tcerrint";
258 target-module@49900000 {
259 compatible = "ti,sysc-omap4", "ti,sysc";
260 reg = <0x49900000 0x4>,
262 reg-names = "rev", "sysc";
263 ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
264 ti,sysc-midle = <SYSC_IDLE_FORCE>;
265 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
267 clocks = <&l3_clkctrl AM3_L3_TPTC1_CLKCTRL 0>;
269 #address-cells = <1>;
271 ranges = <0x0 0x49900000 0x100000>;
274 compatible = "ti,edma3-tptc";
277 interrupt-names = "edma3_tcerrint";
281 target-module@49a00000 {
282 compatible = "ti,sysc-omap4", "ti,sysc";
283 reg = <0x49a00000 0x4>,
285 reg-names = "rev", "sysc";
286 ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
287 ti,sysc-midle = <SYSC_IDLE_FORCE>;
288 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
290 clocks = <&l3_clkctrl AM3_L3_TPTC2_CLKCTRL 0>;
292 #address-cells = <1>;
294 ranges = <0x0 0x49a00000 0x100000>;
297 compatible = "ti,edma3-tptc";
300 interrupt-names = "edma3_tcerrint";
305 compatible = "ti,omap4-i2c";
306 #address-cells = <1>;
309 reg = <0x44e0b000 0x1000>;
315 compatible = "ti,omap4-i2c";
316 #address-cells = <1>;
319 reg = <0x4802a000 0x1000>;
325 compatible = "ti,omap4-i2c";
326 #address-cells = <1>;
329 reg = <0x4819c000 0x1000>;
335 compatible = "ti,omap4-hsmmc";
338 ti,needs-special-reset;
339 ti,needs-special-hs-handling;
340 dmas = <&edma_xbar 24 0 0
342 dma-names = "tx", "rx";
344 reg = <0x48060000 0x1000>;
349 compatible = "ti,omap4-hsmmc";
351 ti,needs-special-reset;
354 dma-names = "tx", "rx";
356 reg = <0x481d8000 0x1000>;
361 compatible = "ti,omap4-hsmmc";
363 ti,needs-special-reset;
365 reg = <0x47810000 0x1000>;
370 compatible = "ti,omap3-wdt";
371 ti,hwmods = "wd_timer2";
372 reg = <0x44e35000 0x1000>;
377 compatible = "ti,am33xx-usb";
378 reg = <0x47400000 0x1000>;
380 #address-cells = <1>;
382 ti,hwmods = "usb_otg_hs";
385 usb_ctrl_mod: control@44e10620 {
386 compatible = "ti,am335x-usb-ctrl-module";
387 reg = <0x44e10620 0x10
389 reg-names = "phy_ctrl", "wakeup";
393 usb0_phy: usb-phy@47401300 {
394 compatible = "ti,am335x-usb-phy";
395 reg = <0x47401300 0x100>;
398 ti,ctrl_mod = <&usb_ctrl_mod>;
403 compatible = "ti,musb-am33xx";
405 reg = <0x47401400 0x400
407 reg-names = "mc", "control";
410 interrupt-names = "mc";
412 mentor,multipoint = <1>;
413 mentor,num-eps = <16>;
414 mentor,ram-bits = <12>;
415 mentor,power = <500>;
418 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
419 &cppi41dma 2 0 &cppi41dma 3 0
420 &cppi41dma 4 0 &cppi41dma 5 0
421 &cppi41dma 6 0 &cppi41dma 7 0
422 &cppi41dma 8 0 &cppi41dma 9 0
423 &cppi41dma 10 0 &cppi41dma 11 0
424 &cppi41dma 12 0 &cppi41dma 13 0
425 &cppi41dma 14 0 &cppi41dma 0 1
426 &cppi41dma 1 1 &cppi41dma 2 1
427 &cppi41dma 3 1 &cppi41dma 4 1
428 &cppi41dma 5 1 &cppi41dma 6 1
429 &cppi41dma 7 1 &cppi41dma 8 1
430 &cppi41dma 9 1 &cppi41dma 10 1
431 &cppi41dma 11 1 &cppi41dma 12 1
432 &cppi41dma 13 1 &cppi41dma 14 1>;
434 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
435 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
437 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
438 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
442 usb1_phy: usb-phy@47401b00 {
443 compatible = "ti,am335x-usb-phy";
444 reg = <0x47401b00 0x100>;
447 ti,ctrl_mod = <&usb_ctrl_mod>;
452 compatible = "ti,musb-am33xx";
454 reg = <0x47401c00 0x400
456 reg-names = "mc", "control";
458 interrupt-names = "mc";
460 mentor,multipoint = <1>;
461 mentor,num-eps = <16>;
462 mentor,ram-bits = <12>;
463 mentor,power = <500>;
466 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
467 &cppi41dma 17 0 &cppi41dma 18 0
468 &cppi41dma 19 0 &cppi41dma 20 0
469 &cppi41dma 21 0 &cppi41dma 22 0
470 &cppi41dma 23 0 &cppi41dma 24 0
471 &cppi41dma 25 0 &cppi41dma 26 0
472 &cppi41dma 27 0 &cppi41dma 28 0
473 &cppi41dma 29 0 &cppi41dma 15 1
474 &cppi41dma 16 1 &cppi41dma 17 1
475 &cppi41dma 18 1 &cppi41dma 19 1
476 &cppi41dma 20 1 &cppi41dma 21 1
477 &cppi41dma 22 1 &cppi41dma 23 1
478 &cppi41dma 24 1 &cppi41dma 25 1
479 &cppi41dma 26 1 &cppi41dma 27 1
480 &cppi41dma 28 1 &cppi41dma 29 1>;
482 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
483 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
485 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
486 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
490 cppi41dma: dma-controller@2000 {
491 compatible = "ti,am3359-cppi41";
492 reg = <0x0000 0x1000>,
496 reg-names = "glue", "controller", "scheduler", "queuemgr";
498 interrupt-names = "glue";
500 #dma-channels = <30>;
501 #dma-requests = <256>;
505 mac: ethernet@4a100000 {
506 compatible = "ti,am335x-cpsw","ti,cpsw";
507 ti,hwmods = "cpgmac0";
508 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
509 clock-names = "fck", "cpts";
510 cpdma_channels = <8>;
511 ale_entries = <1024>;
512 bd_ram_size = <0x2000>;
513 mac_control = <0x20>;
516 cpts_clock_mult = <0x80000000>;
517 cpts_clock_shift = <29>;
518 reg = <0x4a100000 0x800
520 #address-cells = <1>;
528 interrupts = <40 41 42 43>;
530 syscon = <&scm_conf>;
533 davinci_mdio: mdio@4a101000 {
534 compatible = "ti,cpsw-mdio","ti,davinci_mdio";
535 #address-cells = <1>;
537 ti,hwmods = "davinci_mdio";
538 bus_freq = <1000000>;
539 reg = <0x4a101000 0x100>;
543 cpsw_emac0: slave@4a100200 {
544 /* Filled in by U-Boot */
545 mac-address = [ 00 00 00 00 00 00 ];
548 cpsw_emac1: slave@4a100300 {
549 /* Filled in by U-Boot */
550 mac-address = [ 00 00 00 00 00 00 ];
553 phy_sel: cpsw-phy-sel@44e10650 {
554 compatible = "ti,am3352-cpsw-phy-sel";
555 reg= <0x44e10650 0x4>;
556 reg-names = "gmii-sel";
560 ocmcram: sram@40300000 {
561 compatible = "mmio-sram";
562 reg = <0x40300000 0x10000>; /* 64k */
563 ranges = <0x0 0x40300000 0x10000>;
564 #address-cells = <1>;
567 pm_sram_code: pm-code-sram@0 {
568 compatible = "ti,sram";
573 pm_sram_data: pm-data-sram@1000 {
574 compatible = "ti,sram";
575 reg = <0x1000 0x1000>;
580 emif: emif@4c000000 {
581 compatible = "ti,emif-am3352";
582 reg = <0x4c000000 0x1000000>;
585 sram = <&pm_sram_code
590 gpmc: gpmc@50000000 {
591 compatible = "ti,am3352-gpmc";
594 reg = <0x50000000 0x2000>;
599 gpmc,num-waitpins = <2>;
600 #address-cells = <2>;
602 interrupt-controller;
603 #interrupt-cells = <2>;
609 sham_target: target-module@53100000 {
610 compatible = "ti,sysc-omap3-sham", "ti,sysc";
611 reg = <0x53100100 0x4>,
614 reg-names = "rev", "sysc", "syss";
615 ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
616 SYSC_OMAP2_AUTOIDLE)>;
617 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
621 /* Domains (P, C): per_pwrdm, l3_clkdm */
622 clocks = <&l3_clkctrl AM3_L3_SHAM_CLKCTRL 0>;
624 #address-cells = <1>;
626 ranges = <0x0 0x53100000 0x1000>;
629 compatible = "ti,omap4-sham";
637 aes_target: target-module@53500000 {
638 compatible = "ti,sysc-omap2", "ti,sysc";
639 reg = <0x53500080 0x4>,
642 reg-names = "rev", "sysc", "syss";
643 ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
644 SYSC_OMAP2_AUTOIDLE)>;
645 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
648 <SYSC_IDLE_SMART_WKUP>;
650 /* Domains (P, C): per_pwrdm, l3_clkdm */
651 clocks = <&l3_clkctrl AM3_L3_AES_CLKCTRL 0>;
653 #address-cells = <1>;
655 ranges = <0x0 0x53500000 0x1000>;
658 compatible = "ti,omap4-aes";
663 dma-names = "tx", "rx";
667 target-module@56000000 {
668 compatible = "ti,sysc-omap4", "ti,sysc";
669 reg = <0x5600fe00 0x4>,
671 reg-names = "rev", "sysc";
672 ti,sysc-midle = <SYSC_IDLE_FORCE>,
675 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
678 clocks = <&gfx_l3_clkctrl AM3_GFX_L3_GFX_CLKCTRL 0>;
680 resets = <&prm_gfx 0>;
681 reset-names = "rstctrl";
682 #address-cells = <1>;
684 ranges = <0 0x56000000 0x1000000>;
687 * Closed source PowerVR driver, no child device
688 * binding or driver in mainline
694 #include "am33xx-l4.dtsi"
695 #include "am33xx-clocks.dtsi"
699 compatible = "ti,am3-prm-inst", "ti,omap-prm-inst";
705 compatible = "ti,am3-prm-inst", "ti,omap-prm-inst";
710 prm_device: prm@f00 {
711 compatible = "ti,am3-prm-inst", "ti,omap-prm-inst";
717 compatible = "ti,am3-prm-inst", "ti,omap-prm-inst";
718 reg = <0x1100 0x100>;