0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003 * Device Tree Source for AM4372 SoC
0004 *
0005 * Copyright (C) 2013 Texas Instruments Incorporated - https://www.ti.com/
0006 */
0007
0008 #include <dt-bindings/bus/ti-sysc.h>
0009 #include <dt-bindings/gpio/gpio.h>
0010 #include <dt-bindings/interrupt-controller/arm-gic.h>
0011 #include <dt-bindings/clock/am4.h>
0012
0013 / {
0014 compatible = "ti,am4372", "ti,am43";
0015 interrupt-parent = <&wakeupgen>;
0016 #address-cells = <1>;
0017 #size-cells = <1>;
0018 chosen { };
0019
0020 memory@0 {
0021 device_type = "memory";
0022 reg = <0 0>;
0023 };
0024
0025 aliases {
0026 i2c0 = &i2c0;
0027 i2c1 = &i2c1;
0028 i2c2 = &i2c2;
0029 serial0 = &uart0;
0030 serial1 = &uart1;
0031 serial2 = &uart2;
0032 serial3 = &uart3;
0033 serial4 = &uart4;
0034 serial5 = &uart5;
0035 ethernet0 = &cpsw_port1;
0036 ethernet1 = &cpsw_port2;
0037 spi0 = &qspi;
0038 };
0039
0040 cpus {
0041 #address-cells = <1>;
0042 #size-cells = <0>;
0043 cpu: cpu@0 {
0044 compatible = "arm,cortex-a9";
0045 enable-method = "ti,am4372";
0046 device_type = "cpu";
0047 reg = <0>;
0048
0049 clocks = <&dpll_mpu_ck>;
0050 clock-names = "cpu";
0051
0052 operating-points-v2 = <&cpu0_opp_table>;
0053
0054 clock-latency = <300000>; /* From omap-cpufreq driver */
0055 cpu-idle-states = <&mpu_gate>;
0056 };
0057
0058 idle-states {
0059 mpu_gate: mpu_gate {
0060 compatible = "arm,idle-state";
0061 entry-latency-us = <40>;
0062 exit-latency-us = <100>;
0063 min-residency-us = <300>;
0064 local-timer-stop;
0065 };
0066 };
0067 };
0068
0069 cpu0_opp_table: opp-table {
0070 compatible = "operating-points-v2-ti-cpu";
0071 syscon = <&scm_conf>;
0072
0073 opp50-300000000 {
0074 opp-hz = /bits/ 64 <300000000>;
0075 opp-microvolt = <950000 931000 969000>;
0076 opp-supported-hw = <0xFF 0x01>;
0077 opp-suspend;
0078 };
0079
0080 opp100-600000000 {
0081 opp-hz = /bits/ 64 <600000000>;
0082 opp-microvolt = <1100000 1078000 1122000>;
0083 opp-supported-hw = <0xFF 0x04>;
0084 };
0085
0086 opp120-720000000 {
0087 opp-hz = /bits/ 64 <720000000>;
0088 opp-microvolt = <1200000 1176000 1224000>;
0089 opp-supported-hw = <0xFF 0x08>;
0090 };
0091
0092 oppturbo-800000000 {
0093 opp-hz = /bits/ 64 <800000000>;
0094 opp-microvolt = <1260000 1234800 1285200>;
0095 opp-supported-hw = <0xFF 0x10>;
0096 };
0097
0098 oppnitro-1000000000 {
0099 opp-hz = /bits/ 64 <1000000000>;
0100 opp-microvolt = <1325000 1298500 1351500>;
0101 opp-supported-hw = <0xFF 0x20>;
0102 };
0103 };
0104
0105 soc {
0106 compatible = "ti,omap-infra";
0107 };
0108
0109 gic: interrupt-controller@48241000 {
0110 compatible = "arm,cortex-a9-gic";
0111 interrupt-controller;
0112 #interrupt-cells = <3>;
0113 reg = <0x48241000 0x1000>,
0114 <0x48240100 0x0100>;
0115 interrupt-parent = <&gic>;
0116 };
0117
0118 wakeupgen: interrupt-controller@48281000 {
0119 compatible = "ti,omap4-wugen-mpu";
0120 interrupt-controller;
0121 #interrupt-cells = <3>;
0122 reg = <0x48281000 0x1000>;
0123 interrupt-parent = <&gic>;
0124 };
0125
0126 scu: scu@48240000 {
0127 compatible = "arm,cortex-a9-scu";
0128 reg = <0x48240000 0x100>;
0129 };
0130
0131 global_timer: timer@48240200 {
0132 compatible = "arm,cortex-a9-global-timer";
0133 reg = <0x48240200 0x100>;
0134 interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>;
0135 interrupt-parent = <&gic>;
0136 clocks = <&mpu_periphclk>;
0137 };
0138
0139 local_timer: timer@48240600 {
0140 compatible = "arm,cortex-a9-twd-timer";
0141 reg = <0x48240600 0x100>;
0142 interrupts = <GIC_PPI 13 IRQ_TYPE_EDGE_RISING>;
0143 interrupt-parent = <&gic>;
0144 clocks = <&mpu_periphclk>;
0145 };
0146
0147 cache-controller@48242000 {
0148 compatible = "arm,pl310-cache";
0149 reg = <0x48242000 0x1000>;
0150 cache-unified;
0151 cache-level = <2>;
0152 };
0153
0154 ocp@44000000 {
0155 compatible = "simple-pm-bus";
0156 power-domains = <&prm_per>;
0157 clocks = <&l3_clkctrl AM4_L3_L3_MAIN_CLKCTRL 0>;
0158 clock-names = "fck";
0159 #address-cells = <1>;
0160 #size-cells = <1>;
0161 ranges;
0162 ti,no-idle;
0163
0164 l3-noc@44000000 {
0165 compatible = "ti,am4372-l3-noc";
0166 reg = <0x44000000 0x400000>,
0167 <0x44800000 0x400000>;
0168 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
0169 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
0170 };
0171
0172 l4_wkup: interconnect@44c00000 {
0173 };
0174 l4_per: interconnect@48000000 {
0175 };
0176 l4_fast: interconnect@4a000000 {
0177 };
0178
0179 target-module@4c000000 {
0180 compatible = "ti,sysc-omap4-simple", "ti,sysc";
0181 reg = <0x4c000000 0x4>;
0182 reg-names = "rev";
0183 clocks = <&emif_clkctrl AM4_EMIF_EMIF_CLKCTRL 0>;
0184 clock-names = "fck";
0185 ti,no-idle;
0186 #address-cells = <1>;
0187 #size-cells = <1>;
0188 ranges = <0x0 0x4c000000 0x1000000>;
0189
0190 emif: emif@0 {
0191 compatible = "ti,emif-am4372";
0192 reg = <0 0x1000000>;
0193 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
0194 sram = <&pm_sram_code
0195 &pm_sram_data>;
0196 };
0197 };
0198
0199 target-module@49000000 {
0200 compatible = "ti,sysc-omap4", "ti,sysc";
0201 reg = <0x49000000 0x4>;
0202 reg-names = "rev";
0203 clocks = <&l3_clkctrl AM4_L3_TPCC_CLKCTRL 0>;
0204 clock-names = "fck";
0205 #address-cells = <1>;
0206 #size-cells = <1>;
0207 ranges = <0x0 0x49000000 0x10000>;
0208
0209 edma: dma@0 {
0210 compatible = "ti,edma3-tpcc";
0211 reg = <0 0x10000>;
0212 reg-names = "edma3_cc";
0213 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
0214 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
0215 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
0216 interrupt-names = "edma3_ccint", "edma3_mperr",
0217 "edma3_ccerrint";
0218 dma-requests = <64>;
0219 #dma-cells = <2>;
0220
0221 ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
0222 <&edma_tptc2 0>;
0223
0224 ti,edma-memcpy-channels = <58 59>;
0225 };
0226 };
0227
0228 target-module@49800000 {
0229 compatible = "ti,sysc-omap4", "ti,sysc";
0230 reg = <0x49800000 0x4>,
0231 <0x49800010 0x4>;
0232 reg-names = "rev", "sysc";
0233 ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
0234 ti,sysc-midle = <SYSC_IDLE_FORCE>;
0235 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
0236 <SYSC_IDLE_SMART>;
0237 clocks = <&l3_clkctrl AM4_L3_TPTC0_CLKCTRL 0>;
0238 clock-names = "fck";
0239 #address-cells = <1>;
0240 #size-cells = <1>;
0241 ranges = <0x0 0x49800000 0x100000>;
0242
0243 edma_tptc0: dma@0 {
0244 compatible = "ti,edma3-tptc";
0245 reg = <0 0x100000>;
0246 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
0247 interrupt-names = "edma3_tcerrint";
0248 };
0249 };
0250
0251 target-module@49900000 {
0252 compatible = "ti,sysc-omap4", "ti,sysc";
0253 reg = <0x49900000 0x4>,
0254 <0x49900010 0x4>;
0255 reg-names = "rev", "sysc";
0256 ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
0257 ti,sysc-midle = <SYSC_IDLE_FORCE>;
0258 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
0259 <SYSC_IDLE_SMART>;
0260 clocks = <&l3_clkctrl AM4_L3_TPTC1_CLKCTRL 0>;
0261 clock-names = "fck";
0262 #address-cells = <1>;
0263 #size-cells = <1>;
0264 ranges = <0x0 0x49900000 0x100000>;
0265
0266 edma_tptc1: dma@0 {
0267 compatible = "ti,edma3-tptc";
0268 reg = <0 0x100000>;
0269 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
0270 interrupt-names = "edma3_tcerrint";
0271 };
0272 };
0273
0274 target-module@49a00000 {
0275 compatible = "ti,sysc-omap4", "ti,sysc";
0276 reg = <0x49a00000 0x4>,
0277 <0x49a00010 0x4>;
0278 reg-names = "rev", "sysc";
0279 ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
0280 ti,sysc-midle = <SYSC_IDLE_FORCE>;
0281 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
0282 <SYSC_IDLE_SMART>;
0283 clocks = <&l3_clkctrl AM4_L3_TPTC2_CLKCTRL 0>;
0284 clock-names = "fck";
0285 #address-cells = <1>;
0286 #size-cells = <1>;
0287 ranges = <0x0 0x49a00000 0x100000>;
0288
0289 edma_tptc2: dma@0 {
0290 compatible = "ti,edma3-tptc";
0291 reg = <0 0x100000>;
0292 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
0293 interrupt-names = "edma3_tcerrint";
0294 };
0295 };
0296
0297 target-module@47810000 {
0298 compatible = "ti,sysc-omap2", "ti,sysc";
0299 reg = <0x478102fc 0x4>,
0300 <0x47810110 0x4>,
0301 <0x47810114 0x4>;
0302 reg-names = "rev", "sysc", "syss";
0303 ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
0304 SYSC_OMAP2_ENAWAKEUP |
0305 SYSC_OMAP2_SOFTRESET |
0306 SYSC_OMAP2_AUTOIDLE)>;
0307 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
0308 <SYSC_IDLE_NO>,
0309 <SYSC_IDLE_SMART>;
0310 ti,syss-mask = <1>;
0311 clocks = <&l3s_clkctrl AM4_L3S_MMC3_CLKCTRL 0>;
0312 clock-names = "fck";
0313 #address-cells = <1>;
0314 #size-cells = <1>;
0315 ranges = <0x0 0x47810000 0x1000>;
0316
0317 mmc3: mmc@0 {
0318 compatible = "ti,am437-sdhci";
0319 ti,needs-special-reset;
0320 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
0321 reg = <0x0 0x1000>;
0322 status = "disabled";
0323 };
0324 };
0325
0326 sham_target: target-module@53100000 {
0327 compatible = "ti,sysc-omap3-sham", "ti,sysc";
0328 reg = <0x53100100 0x4>,
0329 <0x53100110 0x4>,
0330 <0x53100114 0x4>;
0331 reg-names = "rev", "sysc", "syss";
0332 ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
0333 SYSC_OMAP2_AUTOIDLE)>;
0334 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
0335 <SYSC_IDLE_NO>,
0336 <SYSC_IDLE_SMART>;
0337 ti,syss-mask = <1>;
0338 /* Domains (P, C): per_pwrdm, l3_clkdm */
0339 clocks = <&l3_clkctrl AM4_L3_SHAM_CLKCTRL 0>;
0340 clock-names = "fck";
0341 #address-cells = <1>;
0342 #size-cells = <1>;
0343 ranges = <0x0 0x53100000 0x1000>;
0344
0345 sham: sham@0 {
0346 compatible = "ti,omap5-sham";
0347 reg = <0 0x300>;
0348 dmas = <&edma 36 0>;
0349 dma-names = "rx";
0350 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
0351 };
0352 };
0353
0354 aes_target: target-module@53501000 {
0355 compatible = "ti,sysc-omap2", "ti,sysc";
0356 reg = <0x53501080 0x4>,
0357 <0x53501084 0x4>,
0358 <0x53501088 0x4>;
0359 reg-names = "rev", "sysc", "syss";
0360 ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
0361 SYSC_OMAP2_AUTOIDLE)>;
0362 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
0363 <SYSC_IDLE_NO>,
0364 <SYSC_IDLE_SMART>,
0365 <SYSC_IDLE_SMART_WKUP>;
0366 ti,syss-mask = <1>;
0367 /* Domains (P, C): per_pwrdm, l3_clkdm */
0368 clocks = <&l3_clkctrl AM4_L3_AES_CLKCTRL 0>;
0369 clock-names = "fck";
0370 #address-cells = <1>;
0371 #size-cells = <1>;
0372 ranges = <0x0 0x53501000 0x1000>;
0373
0374 aes: aes@0 {
0375 compatible = "ti,omap4-aes";
0376 reg = <0 0xa0>;
0377 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
0378 dmas = <&edma 6 0>,
0379 <&edma 5 0>;
0380 dma-names = "tx", "rx";
0381 };
0382 };
0383
0384 des_target: target-module@53701000 {
0385 compatible = "ti,sysc-omap2", "ti,sysc";
0386 reg = <0x53701030 0x4>,
0387 <0x53701034 0x4>,
0388 <0x53701038 0x4>;
0389 reg-names = "rev", "sysc", "syss";
0390 ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
0391 SYSC_OMAP2_AUTOIDLE)>;
0392 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
0393 <SYSC_IDLE_NO>,
0394 <SYSC_IDLE_SMART>,
0395 <SYSC_IDLE_SMART_WKUP>;
0396 ti,syss-mask = <1>;
0397 /* Domains (P, C): per_pwrdm, l3_clkdm */
0398 clocks = <&l3_clkctrl AM4_L3_DES_CLKCTRL 0>;
0399 clock-names = "fck";
0400 #address-cells = <1>;
0401 #size-cells = <1>;
0402 ranges = <0 0x53701000 0x1000>;
0403
0404 des: des@0 {
0405 compatible = "ti,omap4-des";
0406 reg = <0 0xa0>;
0407 interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
0408 dmas = <&edma 34 0>,
0409 <&edma 33 0>;
0410 dma-names = "tx", "rx";
0411 };
0412 };
0413
0414 pruss_tm: target-module@54400000 {
0415 compatible = "ti,sysc-pruss", "ti,sysc";
0416 reg = <0x54426000 0x4>,
0417 <0x54426004 0x4>;
0418 reg-names = "rev", "sysc";
0419 ti,sysc-mask = <(SYSC_PRUSS_STANDBY_INIT |
0420 SYSC_PRUSS_SUB_MWAIT)>;
0421 ti,sysc-midle = <SYSC_IDLE_FORCE>,
0422 <SYSC_IDLE_NO>,
0423 <SYSC_IDLE_SMART>;
0424 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
0425 <SYSC_IDLE_NO>,
0426 <SYSC_IDLE_SMART>;
0427 clocks = <&pruss_ocp_clkctrl AM4_PRUSS_OCP_PRUSS_CLKCTRL 0>;
0428 clock-names = "fck";
0429 resets = <&prm_per 1>;
0430 reset-names = "rstctrl";
0431 #address-cells = <1>;
0432 #size-cells = <1>;
0433 ranges = <0x0 0x54400000 0x80000>;
0434
0435 pruss1: pruss@0 {
0436 compatible = "ti,am4376-pruss1";
0437 reg = <0x0 0x40000>;
0438 #address-cells = <1>;
0439 #size-cells = <1>;
0440 ranges;
0441
0442 pruss1_mem: memories@0 {
0443 reg = <0x0 0x2000>,
0444 <0x2000 0x2000>,
0445 <0x10000 0x8000>;
0446 reg-names = "dram0", "dram1",
0447 "shrdram2";
0448 };
0449
0450 pruss1_cfg: cfg@26000 {
0451 compatible = "ti,pruss-cfg", "syscon";
0452 reg = <0x26000 0x2000>;
0453 #address-cells = <1>;
0454 #size-cells = <1>;
0455 ranges = <0x0 0x26000 0x2000>;
0456
0457 clocks {
0458 #address-cells = <1>;
0459 #size-cells = <0>;
0460
0461 pruss1_iepclk_mux: iepclk-mux@30 {
0462 reg = <0x30>;
0463 #clock-cells = <0>;
0464 clocks = <&sysclk_div>, /* icss_iep_gclk */
0465 <&pruss_ocp_gclk>; /* icss_ocp_gclk */
0466 };
0467 };
0468 };
0469
0470 pruss1_mii_rt: mii-rt@32000 {
0471 compatible = "ti,pruss-mii", "syscon";
0472 reg = <0x32000 0x58>;
0473 };
0474
0475 pruss1_intc: interrupt-controller@20000 {
0476 compatible = "ti,pruss-intc";
0477 reg = <0x20000 0x2000>;
0478 interrupt-controller;
0479 #interrupt-cells = <3>;
0480 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
0481 <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
0482 <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
0483 <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
0484 <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
0485 <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
0486 <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
0487 interrupt-names = "host_intr0", "host_intr1",
0488 "host_intr2", "host_intr3",
0489 "host_intr4",
0490 "host_intr6", "host_intr7";
0491 ti,irqs-reserved = /bits/ 8 <0x20>; /* BIT(5) */
0492 };
0493
0494 pru1_0: pru@34000 {
0495 compatible = "ti,am4376-pru";
0496 reg = <0x34000 0x3000>,
0497 <0x22000 0x400>,
0498 <0x22400 0x100>;
0499 reg-names = "iram", "control", "debug";
0500 firmware-name = "am437x-pru1_0-fw";
0501 };
0502
0503 pru1_1: pru@38000 {
0504 compatible = "ti,am4376-pru";
0505 reg = <0x38000 0x3000>,
0506 <0x24000 0x400>,
0507 <0x24400 0x100>;
0508 reg-names = "iram", "control", "debug";
0509 firmware-name = "am437x-pru1_1-fw";
0510 };
0511
0512 pruss1_mdio: mdio@32400 {
0513 compatible = "ti,davinci_mdio";
0514 reg = <0x32400 0x90>;
0515 clocks = <&dpll_core_m4_ck>;
0516 clock-names = "fck";
0517 bus_freq = <1000000>;
0518 #address-cells = <1>;
0519 #size-cells = <0>;
0520 };
0521 };
0522
0523 pruss0: pruss@40000 {
0524 compatible = "ti,am4376-pruss0";
0525 reg = <0x40000 0x40000>;
0526 #address-cells = <1>;
0527 #size-cells = <1>;
0528 ranges;
0529
0530 pruss0_mem: memories@40000 {
0531 reg = <0x40000 0x1000>,
0532 <0x42000 0x1000>;
0533 reg-names = "dram0", "dram1";
0534 };
0535
0536 pruss0_cfg: cfg@66000 {
0537 compatible = "ti,pruss-cfg", "syscon";
0538 reg = <0x66000 0x2000>;
0539 #address-cells = <1>;
0540 #size-cells = <1>;
0541 ranges = <0x0 0x66000 0x2000>;
0542
0543 clocks {
0544 #address-cells = <1>;
0545 #size-cells = <0>;
0546
0547 pruss0_iepclk_mux: iepclk-mux@30 {
0548 reg = <0x30>;
0549 #clock-cells = <0>;
0550 clocks = <&sysclk_div>, /* icss_iep_gclk */
0551 <&pruss_ocp_gclk>; /* icss_ocp_gclk */
0552 };
0553 };
0554 };
0555
0556 pruss0_mii_rt: mii-rt@72000 {
0557 compatible = "ti,pruss-mii", "syscon";
0558 reg = <0x72000 0x58>;
0559 status = "disabled";
0560 };
0561
0562 pruss0_intc: interrupt-controller@60000 {
0563 compatible = "ti,pruss-intc";
0564 reg = <0x60000 0x2000>;
0565 interrupt-controller;
0566 #interrupt-cells = <3>;
0567 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
0568 <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
0569 <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
0570 <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
0571 <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
0572 <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
0573 <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
0574 interrupt-names = "host_intr0", "host_intr1",
0575 "host_intr2", "host_intr3",
0576 "host_intr4",
0577 "host_intr6", "host_intr7";
0578 ti,irqs-reserved = /bits/ 8 <0x20>; /* BIT(5) */
0579 };
0580
0581 pru0_0: pru@74000 {
0582 compatible = "ti,am4376-pru";
0583 reg = <0x74000 0x1000>,
0584 <0x62000 0x400>,
0585 <0x62400 0x100>;
0586 reg-names = "iram", "control", "debug";
0587 firmware-name = "am437x-pru0_0-fw";
0588 };
0589
0590 pru0_1: pru@78000 {
0591 compatible = "ti,am4376-pru";
0592 reg = <0x78000 0x1000>,
0593 <0x64000 0x400>,
0594 <0x64400 0x100>;
0595 reg-names = "iram", "control", "debug";
0596 firmware-name = "am437x-pru0_1-fw";
0597 };
0598 };
0599 };
0600
0601 target-module@50000000 {
0602 compatible = "ti,sysc-omap2", "ti,sysc";
0603 reg = <0x50000000 4>,
0604 <0x50000010 4>,
0605 <0x50000014 4>;
0606 reg-names = "rev", "sysc", "syss";
0607 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
0608 <SYSC_IDLE_NO>,
0609 <SYSC_IDLE_SMART>;
0610 ti,syss-mask = <1>;
0611 clocks = <&l3s_clkctrl AM4_L3S_GPMC_CLKCTRL 0>;
0612 clock-names = "fck";
0613 #address-cells = <1>;
0614 #size-cells = <1>;
0615 ranges = <0x50000000 0x50000000 0x00001000>, /* regs */
0616 <0x00000000 0x00000000 0x40000000>; /* data */
0617
0618 gpmc: gpmc@50000000 {
0619 compatible = "ti,am3352-gpmc";
0620 dmas = <&edma 52 0>;
0621 dma-names = "rxtx";
0622 clocks = <&l3s_gclk>;
0623 clock-names = "fck";
0624 reg = <0x50000000 0x2000>;
0625 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
0626 gpmc,num-cs = <7>;
0627 gpmc,num-waitpins = <2>;
0628 #address-cells = <2>;
0629 #size-cells = <1>;
0630 interrupt-controller;
0631 #interrupt-cells = <2>;
0632 gpio-controller;
0633 #gpio-cells = <2>;
0634 status = "disabled";
0635 };
0636 };
0637
0638 target-module@47900000 {
0639 compatible = "ti,sysc-omap4", "ti,sysc";
0640 reg = <0x47900000 0x4>,
0641 <0x47900010 0x4>;
0642 reg-names = "rev", "sysc";
0643 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
0644 <SYSC_IDLE_NO>,
0645 <SYSC_IDLE_SMART>,
0646 <SYSC_IDLE_SMART_WKUP>;
0647 clocks = <&l3s_clkctrl AM4_L3S_QSPI_CLKCTRL 0>;
0648 clock-names = "fck";
0649 #address-cells = <1>;
0650 #size-cells = <1>;
0651 ranges = <0x0 0x47900000 0x1000>,
0652 <0x30000000 0x30000000 0x4000000>;
0653
0654 qspi: spi@0 {
0655 compatible = "ti,am4372-qspi";
0656 reg = <0 0x100>,
0657 <0x30000000 0x4000000>;
0658 reg-names = "qspi_base", "qspi_mmap";
0659 clocks = <&dpll_per_m2_div4_ck>;
0660 clock-names = "fck";
0661 #address-cells = <1>;
0662 #size-cells = <0>;
0663 interrupts = <0 138 0x4>;
0664 num-cs = <4>;
0665 };
0666 };
0667
0668 target-module@40300000 {
0669 compatible = "ti,sysc-omap4-simple", "ti,sysc";
0670 clocks = <&l3_clkctrl AM4_L3_OCMCRAM_CLKCTRL 0>;
0671 clock-names = "fck";
0672 ti,no-idle;
0673 #address-cells = <1>;
0674 #size-cells = <1>;
0675 ranges = <0 0x40300000 0x40000>;
0676
0677 ocmcram: sram@0 {
0678 compatible = "mmio-sram";
0679 reg = <0 0x40000>; /* 256k */
0680 ranges = <0 0 0x40000>;
0681 #address-cells = <1>;
0682 #size-cells = <1>;
0683
0684 pm_sram_code: pm-code-sram@0 {
0685 compatible = "ti,sram";
0686 reg = <0x0 0x1000>;
0687 protect-exec;
0688 };
0689
0690 pm_sram_data: pm-data-sram@1000 {
0691 compatible = "ti,sram";
0692 reg = <0x1000 0x1000>;
0693 pool;
0694 };
0695 };
0696 };
0697
0698 target-module@56000000 {
0699 compatible = "ti,sysc-omap4", "ti,sysc";
0700 reg = <0x5600fe00 0x4>,
0701 <0x5600fe10 0x4>;
0702 reg-names = "rev", "sysc";
0703 ti,sysc-midle = <SYSC_IDLE_FORCE>,
0704 <SYSC_IDLE_NO>,
0705 <SYSC_IDLE_SMART>;
0706 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
0707 <SYSC_IDLE_NO>,
0708 <SYSC_IDLE_SMART>;
0709 clocks = <&gfx_l3_clkctrl AM4_GFX_L3_GFX_CLKCTRL 0>;
0710 clock-names = "fck";
0711 power-domains = <&prm_gfx>;
0712 resets = <&prm_gfx 0>;
0713 reset-names = "rstctrl";
0714 #address-cells = <1>;
0715 #size-cells = <1>;
0716 ranges = <0 0x56000000 0x1000000>;
0717 };
0718 };
0719 };
0720
0721 #include "am437x-l4.dtsi"
0722 #include "am43xx-clocks.dtsi"
0723
0724 &prcm {
0725 prm_mpu: prm@300 {
0726 compatible = "ti,am4-prm-inst", "ti,omap-prm-inst";
0727 reg = <0x300 0x100>;
0728 #power-domain-cells = <0>;
0729 };
0730
0731 prm_gfx: prm@400 {
0732 compatible = "ti,am4-prm-inst", "ti,omap-prm-inst";
0733 reg = <0x400 0x100>;
0734 #power-domain-cells = <0>;
0735 #reset-cells = <1>;
0736 };
0737
0738 prm_rtc: prm@500 {
0739 compatible = "ti,am4-prm-inst", "ti,omap-prm-inst";
0740 reg = <0x500 0x100>;
0741 #power-domain-cells = <0>;
0742 };
0743
0744 prm_tamper: prm@600 {
0745 compatible = "ti,am4-prm-inst", "ti,omap-prm-inst";
0746 reg = <0x600 0x100>;
0747 #power-domain-cells = <0>;
0748 };
0749
0750 prm_cefuse: prm@700 {
0751 compatible = "ti,am4-prm-inst", "ti,omap-prm-inst";
0752 reg = <0x700 0x100>;
0753 #power-domain-cells = <0>;
0754 };
0755
0756 prm_per: prm@800 {
0757 compatible = "ti,am4-prm-inst", "ti,omap-prm-inst";
0758 reg = <0x800 0x100>;
0759 #reset-cells = <1>;
0760 #power-domain-cells = <0>;
0761 };
0762
0763 prm_wkup: prm@2000 {
0764 compatible = "ti,am4-prm-inst", "ti,omap-prm-inst";
0765 reg = <0x2000 0x100>;
0766 #reset-cells = <1>;
0767 #power-domain-cells = <0>;
0768 };
0769
0770 prm_device: prm@4000 {
0771 compatible = "ti,am4-prm-inst", "ti,omap-prm-inst";
0772 reg = <0x4000 0x100>;
0773 #reset-cells = <1>;
0774 };
0775 };
0776
0777 /* Preferred always-on timer for clocksource */
0778 &timer1_target {
0779 ti,no-reset-on-init;
0780 ti,no-idle;
0781 clocks = <&l4_wkup_clkctrl AM4_L4_WKUP_TIMER1_CLKCTRL 0>,
0782 <&l4_wkup_clkctrl AM4_L4_WKUP_L4_WKUP_CLKCTRL 0>;
0783 clock-names = "fck", "ick";
0784 timer@0 {
0785 assigned-clocks = <&timer1_fck>;
0786 assigned-clock-parents = <&sys_clkin_ck>;
0787 };
0788 };
0789
0790 /* Preferred timer for clockevent */
0791 &timer2_target {
0792 ti,no-reset-on-init;
0793 ti,no-idle;
0794 clocks = <&l4ls_clkctrl AM4_L4LS_TIMER2_CLKCTRL 0>,
0795 <&l4ls_clkctrl AM4_L4LS_L4_LS_CLKCTRL 0>;
0796 clock-names = "fck", "ick";
0797 timer@0 {
0798 assigned-clocks = <&timer2_fck>;
0799 assigned-clock-parents = <&sys_clkin_ck>;
0800 };
0801 };