1*4882a593Smuzhiyun/* 2*4882a593Smuzhiyun * Device Tree Source for AM4372 SoC 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Copyright (C) 2013 Texas Instruments Incorporated - https://www.ti.com/ 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * This file is licensed under the terms of the GNU General Public License 7*4882a593Smuzhiyun * version 2. This program is licensed "as is" without any warranty of any 8*4882a593Smuzhiyun * kind, whether express or implied. 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun#include <dt-bindings/bus/ti-sysc.h> 12*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h> 13*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 14*4882a593Smuzhiyun#include <dt-bindings/clock/am4.h> 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun/ { 17*4882a593Smuzhiyun compatible = "ti,am4372", "ti,am43"; 18*4882a593Smuzhiyun interrupt-parent = <&wakeupgen>; 19*4882a593Smuzhiyun #address-cells = <1>; 20*4882a593Smuzhiyun #size-cells = <1>; 21*4882a593Smuzhiyun chosen { }; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun memory@0 { 24*4882a593Smuzhiyun device_type = "memory"; 25*4882a593Smuzhiyun reg = <0 0>; 26*4882a593Smuzhiyun }; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun aliases { 29*4882a593Smuzhiyun i2c0 = &i2c0; 30*4882a593Smuzhiyun i2c1 = &i2c1; 31*4882a593Smuzhiyun i2c2 = &i2c2; 32*4882a593Smuzhiyun serial0 = &uart0; 33*4882a593Smuzhiyun serial1 = &uart1; 34*4882a593Smuzhiyun serial2 = &uart2; 35*4882a593Smuzhiyun serial3 = &uart3; 36*4882a593Smuzhiyun serial4 = &uart4; 37*4882a593Smuzhiyun serial5 = &uart5; 38*4882a593Smuzhiyun ethernet0 = &cpsw_port1; 39*4882a593Smuzhiyun ethernet1 = &cpsw_port2; 40*4882a593Smuzhiyun spi0 = &qspi; 41*4882a593Smuzhiyun }; 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun cpus { 44*4882a593Smuzhiyun #address-cells = <1>; 45*4882a593Smuzhiyun #size-cells = <0>; 46*4882a593Smuzhiyun cpu: cpu@0 { 47*4882a593Smuzhiyun compatible = "arm,cortex-a9"; 48*4882a593Smuzhiyun enable-method = "ti,am4372"; 49*4882a593Smuzhiyun device_type = "cpu"; 50*4882a593Smuzhiyun reg = <0>; 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun clocks = <&dpll_mpu_ck>; 53*4882a593Smuzhiyun clock-names = "cpu"; 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun operating-points-v2 = <&cpu0_opp_table>; 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun clock-latency = <300000>; /* From omap-cpufreq driver */ 58*4882a593Smuzhiyun cpu-idle-states = <&mpu_gate>; 59*4882a593Smuzhiyun }; 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun idle-states { 62*4882a593Smuzhiyun mpu_gate: mpu_gate { 63*4882a593Smuzhiyun compatible = "arm,idle-state"; 64*4882a593Smuzhiyun entry-latency-us = <40>; 65*4882a593Smuzhiyun exit-latency-us = <100>; 66*4882a593Smuzhiyun min-residency-us = <300>; 67*4882a593Smuzhiyun local-timer-stop; 68*4882a593Smuzhiyun }; 69*4882a593Smuzhiyun }; 70*4882a593Smuzhiyun }; 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun cpu0_opp_table: opp-table { 73*4882a593Smuzhiyun compatible = "operating-points-v2-ti-cpu"; 74*4882a593Smuzhiyun syscon = <&scm_conf>; 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun opp50-300000000 { 77*4882a593Smuzhiyun opp-hz = /bits/ 64 <300000000>; 78*4882a593Smuzhiyun opp-microvolt = <950000 931000 969000>; 79*4882a593Smuzhiyun opp-supported-hw = <0xFF 0x01>; 80*4882a593Smuzhiyun opp-suspend; 81*4882a593Smuzhiyun }; 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun opp100-600000000 { 84*4882a593Smuzhiyun opp-hz = /bits/ 64 <600000000>; 85*4882a593Smuzhiyun opp-microvolt = <1100000 1078000 1122000>; 86*4882a593Smuzhiyun opp-supported-hw = <0xFF 0x04>; 87*4882a593Smuzhiyun }; 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun opp120-720000000 { 90*4882a593Smuzhiyun opp-hz = /bits/ 64 <720000000>; 91*4882a593Smuzhiyun opp-microvolt = <1200000 1176000 1224000>; 92*4882a593Smuzhiyun opp-supported-hw = <0xFF 0x08>; 93*4882a593Smuzhiyun }; 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun oppturbo-800000000 { 96*4882a593Smuzhiyun opp-hz = /bits/ 64 <800000000>; 97*4882a593Smuzhiyun opp-microvolt = <1260000 1234800 1285200>; 98*4882a593Smuzhiyun opp-supported-hw = <0xFF 0x10>; 99*4882a593Smuzhiyun }; 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun oppnitro-1000000000 { 102*4882a593Smuzhiyun opp-hz = /bits/ 64 <1000000000>; 103*4882a593Smuzhiyun opp-microvolt = <1325000 1298500 1351500>; 104*4882a593Smuzhiyun opp-supported-hw = <0xFF 0x20>; 105*4882a593Smuzhiyun }; 106*4882a593Smuzhiyun }; 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun soc { 109*4882a593Smuzhiyun compatible = "ti,omap-infra"; 110*4882a593Smuzhiyun mpu { 111*4882a593Smuzhiyun compatible = "ti,omap4-mpu"; 112*4882a593Smuzhiyun ti,hwmods = "mpu"; 113*4882a593Smuzhiyun pm-sram = <&pm_sram_code 114*4882a593Smuzhiyun &pm_sram_data>; 115*4882a593Smuzhiyun }; 116*4882a593Smuzhiyun }; 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun gic: interrupt-controller@48241000 { 119*4882a593Smuzhiyun compatible = "arm,cortex-a9-gic"; 120*4882a593Smuzhiyun interrupt-controller; 121*4882a593Smuzhiyun #interrupt-cells = <3>; 122*4882a593Smuzhiyun reg = <0x48241000 0x1000>, 123*4882a593Smuzhiyun <0x48240100 0x0100>; 124*4882a593Smuzhiyun interrupt-parent = <&gic>; 125*4882a593Smuzhiyun }; 126*4882a593Smuzhiyun 127*4882a593Smuzhiyun wakeupgen: interrupt-controller@48281000 { 128*4882a593Smuzhiyun compatible = "ti,omap4-wugen-mpu"; 129*4882a593Smuzhiyun interrupt-controller; 130*4882a593Smuzhiyun #interrupt-cells = <3>; 131*4882a593Smuzhiyun reg = <0x48281000 0x1000>; 132*4882a593Smuzhiyun interrupt-parent = <&gic>; 133*4882a593Smuzhiyun }; 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun scu: scu@48240000 { 136*4882a593Smuzhiyun compatible = "arm,cortex-a9-scu"; 137*4882a593Smuzhiyun reg = <0x48240000 0x100>; 138*4882a593Smuzhiyun }; 139*4882a593Smuzhiyun 140*4882a593Smuzhiyun global_timer: timer@48240200 { 141*4882a593Smuzhiyun compatible = "arm,cortex-a9-global-timer"; 142*4882a593Smuzhiyun reg = <0x48240200 0x100>; 143*4882a593Smuzhiyun interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>; 144*4882a593Smuzhiyun interrupt-parent = <&gic>; 145*4882a593Smuzhiyun clocks = <&mpu_periphclk>; 146*4882a593Smuzhiyun }; 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun local_timer: timer@48240600 { 149*4882a593Smuzhiyun compatible = "arm,cortex-a9-twd-timer"; 150*4882a593Smuzhiyun reg = <0x48240600 0x100>; 151*4882a593Smuzhiyun interrupts = <GIC_PPI 13 IRQ_TYPE_EDGE_RISING>; 152*4882a593Smuzhiyun interrupt-parent = <&gic>; 153*4882a593Smuzhiyun clocks = <&mpu_periphclk>; 154*4882a593Smuzhiyun }; 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun cache-controller@48242000 { 157*4882a593Smuzhiyun compatible = "arm,pl310-cache"; 158*4882a593Smuzhiyun reg = <0x48242000 0x1000>; 159*4882a593Smuzhiyun cache-unified; 160*4882a593Smuzhiyun cache-level = <2>; 161*4882a593Smuzhiyun }; 162*4882a593Smuzhiyun 163*4882a593Smuzhiyun ocp@44000000 { 164*4882a593Smuzhiyun compatible = "ti,am4372-l3-noc", "simple-bus"; 165*4882a593Smuzhiyun #address-cells = <1>; 166*4882a593Smuzhiyun #size-cells = <1>; 167*4882a593Smuzhiyun ranges; 168*4882a593Smuzhiyun ti,hwmods = "l3_main"; 169*4882a593Smuzhiyun ti,no-idle; 170*4882a593Smuzhiyun reg = <0x44000000 0x400000 171*4882a593Smuzhiyun 0x44800000 0x400000>; 172*4882a593Smuzhiyun interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, 173*4882a593Smuzhiyun <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 174*4882a593Smuzhiyun 175*4882a593Smuzhiyun l4_wkup: interconnect@44c00000 { 176*4882a593Smuzhiyun wkup_m3: wkup_m3@100000 { 177*4882a593Smuzhiyun compatible = "ti,am4372-wkup-m3"; 178*4882a593Smuzhiyun reg = <0x100000 0x4000>, 179*4882a593Smuzhiyun <0x180000 0x2000>; 180*4882a593Smuzhiyun reg-names = "umem", "dmem"; 181*4882a593Smuzhiyun ti,hwmods = "wkup_m3"; 182*4882a593Smuzhiyun ti,pm-firmware = "am335x-pm-firmware.elf"; 183*4882a593Smuzhiyun }; 184*4882a593Smuzhiyun }; 185*4882a593Smuzhiyun l4_per: interconnect@48000000 { 186*4882a593Smuzhiyun }; 187*4882a593Smuzhiyun l4_fast: interconnect@4a000000 { 188*4882a593Smuzhiyun }; 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun emif: emif@4c000000 { 191*4882a593Smuzhiyun compatible = "ti,emif-am4372"; 192*4882a593Smuzhiyun reg = <0x4c000000 0x1000000>; 193*4882a593Smuzhiyun ti,hwmods = "emif"; 194*4882a593Smuzhiyun interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 195*4882a593Smuzhiyun ti,no-idle; 196*4882a593Smuzhiyun sram = <&pm_sram_code 197*4882a593Smuzhiyun &pm_sram_data>; 198*4882a593Smuzhiyun }; 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun target-module@49000000 { 201*4882a593Smuzhiyun compatible = "ti,sysc-omap4", "ti,sysc"; 202*4882a593Smuzhiyun reg = <0x49000000 0x4>; 203*4882a593Smuzhiyun reg-names = "rev"; 204*4882a593Smuzhiyun clocks = <&l3_clkctrl AM4_L3_TPCC_CLKCTRL 0>; 205*4882a593Smuzhiyun clock-names = "fck"; 206*4882a593Smuzhiyun #address-cells = <1>; 207*4882a593Smuzhiyun #size-cells = <1>; 208*4882a593Smuzhiyun ranges = <0x0 0x49000000 0x10000>; 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun edma: dma@0 { 211*4882a593Smuzhiyun compatible = "ti,edma3-tpcc"; 212*4882a593Smuzhiyun reg = <0 0x10000>; 213*4882a593Smuzhiyun reg-names = "edma3_cc"; 214*4882a593Smuzhiyun interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 215*4882a593Smuzhiyun <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, 216*4882a593Smuzhiyun <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 217*4882a593Smuzhiyun interrupt-names = "edma3_ccint", "edma3_mperr", 218*4882a593Smuzhiyun "edma3_ccerrint"; 219*4882a593Smuzhiyun dma-requests = <64>; 220*4882a593Smuzhiyun #dma-cells = <2>; 221*4882a593Smuzhiyun 222*4882a593Smuzhiyun ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>, 223*4882a593Smuzhiyun <&edma_tptc2 0>; 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun ti,edma-memcpy-channels = <58 59>; 226*4882a593Smuzhiyun }; 227*4882a593Smuzhiyun }; 228*4882a593Smuzhiyun 229*4882a593Smuzhiyun target-module@49800000 { 230*4882a593Smuzhiyun compatible = "ti,sysc-omap4", "ti,sysc"; 231*4882a593Smuzhiyun reg = <0x49800000 0x4>, 232*4882a593Smuzhiyun <0x49800010 0x4>; 233*4882a593Smuzhiyun reg-names = "rev", "sysc"; 234*4882a593Smuzhiyun ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>; 235*4882a593Smuzhiyun ti,sysc-midle = <SYSC_IDLE_FORCE>; 236*4882a593Smuzhiyun ti,sysc-sidle = <SYSC_IDLE_FORCE>, 237*4882a593Smuzhiyun <SYSC_IDLE_SMART>; 238*4882a593Smuzhiyun clocks = <&l3_clkctrl AM4_L3_TPTC0_CLKCTRL 0>; 239*4882a593Smuzhiyun clock-names = "fck"; 240*4882a593Smuzhiyun #address-cells = <1>; 241*4882a593Smuzhiyun #size-cells = <1>; 242*4882a593Smuzhiyun ranges = <0x0 0x49800000 0x100000>; 243*4882a593Smuzhiyun 244*4882a593Smuzhiyun edma_tptc0: dma@0 { 245*4882a593Smuzhiyun compatible = "ti,edma3-tptc"; 246*4882a593Smuzhiyun reg = <0 0x100000>; 247*4882a593Smuzhiyun interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 248*4882a593Smuzhiyun interrupt-names = "edma3_tcerrint"; 249*4882a593Smuzhiyun }; 250*4882a593Smuzhiyun }; 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun target-module@49900000 { 253*4882a593Smuzhiyun compatible = "ti,sysc-omap4", "ti,sysc"; 254*4882a593Smuzhiyun reg = <0x49900000 0x4>, 255*4882a593Smuzhiyun <0x49900010 0x4>; 256*4882a593Smuzhiyun reg-names = "rev", "sysc"; 257*4882a593Smuzhiyun ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>; 258*4882a593Smuzhiyun ti,sysc-midle = <SYSC_IDLE_FORCE>; 259*4882a593Smuzhiyun ti,sysc-sidle = <SYSC_IDLE_FORCE>, 260*4882a593Smuzhiyun <SYSC_IDLE_SMART>; 261*4882a593Smuzhiyun clocks = <&l3_clkctrl AM4_L3_TPTC1_CLKCTRL 0>; 262*4882a593Smuzhiyun clock-names = "fck"; 263*4882a593Smuzhiyun #address-cells = <1>; 264*4882a593Smuzhiyun #size-cells = <1>; 265*4882a593Smuzhiyun ranges = <0x0 0x49900000 0x100000>; 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun edma_tptc1: dma@0 { 268*4882a593Smuzhiyun compatible = "ti,edma3-tptc"; 269*4882a593Smuzhiyun reg = <0 0x100000>; 270*4882a593Smuzhiyun interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; 271*4882a593Smuzhiyun interrupt-names = "edma3_tcerrint"; 272*4882a593Smuzhiyun }; 273*4882a593Smuzhiyun }; 274*4882a593Smuzhiyun 275*4882a593Smuzhiyun target-module@49a00000 { 276*4882a593Smuzhiyun compatible = "ti,sysc-omap4", "ti,sysc"; 277*4882a593Smuzhiyun reg = <0x49a00000 0x4>, 278*4882a593Smuzhiyun <0x49a00010 0x4>; 279*4882a593Smuzhiyun reg-names = "rev", "sysc"; 280*4882a593Smuzhiyun ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>; 281*4882a593Smuzhiyun ti,sysc-midle = <SYSC_IDLE_FORCE>; 282*4882a593Smuzhiyun ti,sysc-sidle = <SYSC_IDLE_FORCE>, 283*4882a593Smuzhiyun <SYSC_IDLE_SMART>; 284*4882a593Smuzhiyun clocks = <&l3_clkctrl AM4_L3_TPTC2_CLKCTRL 0>; 285*4882a593Smuzhiyun clock-names = "fck"; 286*4882a593Smuzhiyun #address-cells = <1>; 287*4882a593Smuzhiyun #size-cells = <1>; 288*4882a593Smuzhiyun ranges = <0x0 0x49a00000 0x100000>; 289*4882a593Smuzhiyun 290*4882a593Smuzhiyun edma_tptc2: dma@0 { 291*4882a593Smuzhiyun compatible = "ti,edma3-tptc"; 292*4882a593Smuzhiyun reg = <0 0x100000>; 293*4882a593Smuzhiyun interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; 294*4882a593Smuzhiyun interrupt-names = "edma3_tcerrint"; 295*4882a593Smuzhiyun }; 296*4882a593Smuzhiyun }; 297*4882a593Smuzhiyun 298*4882a593Smuzhiyun target-module@47810000 { 299*4882a593Smuzhiyun compatible = "ti,sysc-omap2", "ti,sysc"; 300*4882a593Smuzhiyun reg = <0x478102fc 0x4>, 301*4882a593Smuzhiyun <0x47810110 0x4>, 302*4882a593Smuzhiyun <0x47810114 0x4>; 303*4882a593Smuzhiyun reg-names = "rev", "sysc", "syss"; 304*4882a593Smuzhiyun ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY | 305*4882a593Smuzhiyun SYSC_OMAP2_ENAWAKEUP | 306*4882a593Smuzhiyun SYSC_OMAP2_SOFTRESET | 307*4882a593Smuzhiyun SYSC_OMAP2_AUTOIDLE)>; 308*4882a593Smuzhiyun ti,sysc-sidle = <SYSC_IDLE_FORCE>, 309*4882a593Smuzhiyun <SYSC_IDLE_NO>, 310*4882a593Smuzhiyun <SYSC_IDLE_SMART>; 311*4882a593Smuzhiyun ti,syss-mask = <1>; 312*4882a593Smuzhiyun clocks = <&l3s_clkctrl AM4_L3S_MMC3_CLKCTRL 0>; 313*4882a593Smuzhiyun clock-names = "fck"; 314*4882a593Smuzhiyun #address-cells = <1>; 315*4882a593Smuzhiyun #size-cells = <1>; 316*4882a593Smuzhiyun ranges = <0x0 0x47810000 0x1000>; 317*4882a593Smuzhiyun 318*4882a593Smuzhiyun mmc3: mmc@0 { 319*4882a593Smuzhiyun compatible = "ti,am437-sdhci"; 320*4882a593Smuzhiyun ti,needs-special-reset; 321*4882a593Smuzhiyun interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 322*4882a593Smuzhiyun reg = <0x0 0x1000>; 323*4882a593Smuzhiyun status = "disabled"; 324*4882a593Smuzhiyun }; 325*4882a593Smuzhiyun }; 326*4882a593Smuzhiyun 327*4882a593Smuzhiyun sham_target: target-module@53100000 { 328*4882a593Smuzhiyun compatible = "ti,sysc-omap3-sham", "ti,sysc"; 329*4882a593Smuzhiyun reg = <0x53100100 0x4>, 330*4882a593Smuzhiyun <0x53100110 0x4>, 331*4882a593Smuzhiyun <0x53100114 0x4>; 332*4882a593Smuzhiyun reg-names = "rev", "sysc", "syss"; 333*4882a593Smuzhiyun ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET | 334*4882a593Smuzhiyun SYSC_OMAP2_AUTOIDLE)>; 335*4882a593Smuzhiyun ti,sysc-sidle = <SYSC_IDLE_FORCE>, 336*4882a593Smuzhiyun <SYSC_IDLE_NO>, 337*4882a593Smuzhiyun <SYSC_IDLE_SMART>; 338*4882a593Smuzhiyun ti,syss-mask = <1>; 339*4882a593Smuzhiyun /* Domains (P, C): per_pwrdm, l3_clkdm */ 340*4882a593Smuzhiyun clocks = <&l3_clkctrl AM4_L3_SHAM_CLKCTRL 0>; 341*4882a593Smuzhiyun clock-names = "fck"; 342*4882a593Smuzhiyun #address-cells = <1>; 343*4882a593Smuzhiyun #size-cells = <1>; 344*4882a593Smuzhiyun ranges = <0x0 0x53100000 0x1000>; 345*4882a593Smuzhiyun 346*4882a593Smuzhiyun sham: sham@0 { 347*4882a593Smuzhiyun compatible = "ti,omap5-sham"; 348*4882a593Smuzhiyun reg = <0 0x300>; 349*4882a593Smuzhiyun dmas = <&edma 36 0>; 350*4882a593Smuzhiyun dma-names = "rx"; 351*4882a593Smuzhiyun interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 352*4882a593Smuzhiyun }; 353*4882a593Smuzhiyun }; 354*4882a593Smuzhiyun 355*4882a593Smuzhiyun aes_target: target-module@53501000 { 356*4882a593Smuzhiyun compatible = "ti,sysc-omap2", "ti,sysc"; 357*4882a593Smuzhiyun reg = <0x53501080 0x4>, 358*4882a593Smuzhiyun <0x53501084 0x4>, 359*4882a593Smuzhiyun <0x53501088 0x4>; 360*4882a593Smuzhiyun reg-names = "rev", "sysc", "syss"; 361*4882a593Smuzhiyun ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET | 362*4882a593Smuzhiyun SYSC_OMAP2_AUTOIDLE)>; 363*4882a593Smuzhiyun ti,sysc-sidle = <SYSC_IDLE_FORCE>, 364*4882a593Smuzhiyun <SYSC_IDLE_NO>, 365*4882a593Smuzhiyun <SYSC_IDLE_SMART>, 366*4882a593Smuzhiyun <SYSC_IDLE_SMART_WKUP>; 367*4882a593Smuzhiyun ti,syss-mask = <1>; 368*4882a593Smuzhiyun /* Domains (P, C): per_pwrdm, l3_clkdm */ 369*4882a593Smuzhiyun clocks = <&l3_clkctrl AM4_L3_AES_CLKCTRL 0>; 370*4882a593Smuzhiyun clock-names = "fck"; 371*4882a593Smuzhiyun #address-cells = <1>; 372*4882a593Smuzhiyun #size-cells = <1>; 373*4882a593Smuzhiyun ranges = <0x0 0x53501000 0x1000>; 374*4882a593Smuzhiyun 375*4882a593Smuzhiyun aes: aes@0 { 376*4882a593Smuzhiyun compatible = "ti,omap4-aes"; 377*4882a593Smuzhiyun reg = <0 0xa0>; 378*4882a593Smuzhiyun interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 379*4882a593Smuzhiyun dmas = <&edma 6 0>, 380*4882a593Smuzhiyun <&edma 5 0>; 381*4882a593Smuzhiyun dma-names = "tx", "rx"; 382*4882a593Smuzhiyun }; 383*4882a593Smuzhiyun }; 384*4882a593Smuzhiyun 385*4882a593Smuzhiyun des_target: target-module@53701000 { 386*4882a593Smuzhiyun compatible = "ti,sysc-omap2", "ti,sysc"; 387*4882a593Smuzhiyun reg = <0x53701030 0x4>, 388*4882a593Smuzhiyun <0x53701034 0x4>, 389*4882a593Smuzhiyun <0x53701038 0x4>; 390*4882a593Smuzhiyun reg-names = "rev", "sysc", "syss"; 391*4882a593Smuzhiyun ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET | 392*4882a593Smuzhiyun SYSC_OMAP2_AUTOIDLE)>; 393*4882a593Smuzhiyun ti,sysc-sidle = <SYSC_IDLE_FORCE>, 394*4882a593Smuzhiyun <SYSC_IDLE_NO>, 395*4882a593Smuzhiyun <SYSC_IDLE_SMART>, 396*4882a593Smuzhiyun <SYSC_IDLE_SMART_WKUP>; 397*4882a593Smuzhiyun ti,syss-mask = <1>; 398*4882a593Smuzhiyun /* Domains (P, C): per_pwrdm, l3_clkdm */ 399*4882a593Smuzhiyun clocks = <&l3_clkctrl AM4_L3_DES_CLKCTRL 0>; 400*4882a593Smuzhiyun clock-names = "fck"; 401*4882a593Smuzhiyun #address-cells = <1>; 402*4882a593Smuzhiyun #size-cells = <1>; 403*4882a593Smuzhiyun ranges = <0 0x53701000 0x1000>; 404*4882a593Smuzhiyun 405*4882a593Smuzhiyun des: des@0 { 406*4882a593Smuzhiyun compatible = "ti,omap4-des"; 407*4882a593Smuzhiyun reg = <0 0xa0>; 408*4882a593Smuzhiyun interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>; 409*4882a593Smuzhiyun dmas = <&edma 34 0>, 410*4882a593Smuzhiyun <&edma 33 0>; 411*4882a593Smuzhiyun dma-names = "tx", "rx"; 412*4882a593Smuzhiyun }; 413*4882a593Smuzhiyun }; 414*4882a593Smuzhiyun 415*4882a593Smuzhiyun pruss_tm: target-module@54400000 { 416*4882a593Smuzhiyun compatible = "ti,sysc-pruss", "ti,sysc"; 417*4882a593Smuzhiyun reg = <0x54426000 0x4>, 418*4882a593Smuzhiyun <0x54426004 0x4>; 419*4882a593Smuzhiyun reg-names = "rev", "sysc"; 420*4882a593Smuzhiyun ti,sysc-mask = <(SYSC_PRUSS_STANDBY_INIT | 421*4882a593Smuzhiyun SYSC_PRUSS_SUB_MWAIT)>; 422*4882a593Smuzhiyun ti,sysc-midle = <SYSC_IDLE_FORCE>, 423*4882a593Smuzhiyun <SYSC_IDLE_NO>, 424*4882a593Smuzhiyun <SYSC_IDLE_SMART>; 425*4882a593Smuzhiyun ti,sysc-sidle = <SYSC_IDLE_FORCE>, 426*4882a593Smuzhiyun <SYSC_IDLE_NO>, 427*4882a593Smuzhiyun <SYSC_IDLE_SMART>; 428*4882a593Smuzhiyun clocks = <&pruss_ocp_clkctrl AM4_PRUSS_OCP_PRUSS_CLKCTRL 0>; 429*4882a593Smuzhiyun clock-names = "fck"; 430*4882a593Smuzhiyun resets = <&prm_per 1>; 431*4882a593Smuzhiyun reset-names = "rstctrl"; 432*4882a593Smuzhiyun #address-cells = <1>; 433*4882a593Smuzhiyun #size-cells = <1>; 434*4882a593Smuzhiyun ranges = <0x0 0x54400000 0x80000>; 435*4882a593Smuzhiyun }; 436*4882a593Smuzhiyun 437*4882a593Smuzhiyun gpmc: gpmc@50000000 { 438*4882a593Smuzhiyun compatible = "ti,am3352-gpmc"; 439*4882a593Smuzhiyun ti,hwmods = "gpmc"; 440*4882a593Smuzhiyun dmas = <&edma 52 0>; 441*4882a593Smuzhiyun dma-names = "rxtx"; 442*4882a593Smuzhiyun clocks = <&l3s_gclk>; 443*4882a593Smuzhiyun clock-names = "fck"; 444*4882a593Smuzhiyun reg = <0x50000000 0x2000>; 445*4882a593Smuzhiyun interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 446*4882a593Smuzhiyun gpmc,num-cs = <7>; 447*4882a593Smuzhiyun gpmc,num-waitpins = <2>; 448*4882a593Smuzhiyun #address-cells = <2>; 449*4882a593Smuzhiyun #size-cells = <1>; 450*4882a593Smuzhiyun interrupt-controller; 451*4882a593Smuzhiyun #interrupt-cells = <2>; 452*4882a593Smuzhiyun gpio-controller; 453*4882a593Smuzhiyun #gpio-cells = <2>; 454*4882a593Smuzhiyun status = "disabled"; 455*4882a593Smuzhiyun }; 456*4882a593Smuzhiyun 457*4882a593Smuzhiyun target-module@47900000 { 458*4882a593Smuzhiyun compatible = "ti,sysc-omap4", "ti,sysc"; 459*4882a593Smuzhiyun reg = <0x47900000 0x4>, 460*4882a593Smuzhiyun <0x47900010 0x4>; 461*4882a593Smuzhiyun reg-names = "rev", "sysc"; 462*4882a593Smuzhiyun ti,sysc-sidle = <SYSC_IDLE_FORCE>, 463*4882a593Smuzhiyun <SYSC_IDLE_NO>, 464*4882a593Smuzhiyun <SYSC_IDLE_SMART>, 465*4882a593Smuzhiyun <SYSC_IDLE_SMART_WKUP>; 466*4882a593Smuzhiyun clocks = <&l3s_clkctrl AM4_L3S_QSPI_CLKCTRL 0>; 467*4882a593Smuzhiyun clock-names = "fck"; 468*4882a593Smuzhiyun #address-cells = <1>; 469*4882a593Smuzhiyun #size-cells = <1>; 470*4882a593Smuzhiyun ranges = <0x0 0x47900000 0x1000>, 471*4882a593Smuzhiyun <0x30000000 0x30000000 0x4000000>; 472*4882a593Smuzhiyun 473*4882a593Smuzhiyun qspi: spi@0 { 474*4882a593Smuzhiyun compatible = "ti,am4372-qspi"; 475*4882a593Smuzhiyun reg = <0 0x100>, 476*4882a593Smuzhiyun <0x30000000 0x4000000>; 477*4882a593Smuzhiyun reg-names = "qspi_base", "qspi_mmap"; 478*4882a593Smuzhiyun clocks = <&dpll_per_m2_div4_ck>; 479*4882a593Smuzhiyun clock-names = "fck"; 480*4882a593Smuzhiyun #address-cells = <1>; 481*4882a593Smuzhiyun #size-cells = <0>; 482*4882a593Smuzhiyun interrupts = <0 138 0x4>; 483*4882a593Smuzhiyun num-cs = <4>; 484*4882a593Smuzhiyun }; 485*4882a593Smuzhiyun }; 486*4882a593Smuzhiyun 487*4882a593Smuzhiyun ocmcram: sram@40300000 { 488*4882a593Smuzhiyun compatible = "mmio-sram"; 489*4882a593Smuzhiyun reg = <0x40300000 0x40000>; /* 256k */ 490*4882a593Smuzhiyun ranges = <0x0 0x40300000 0x40000>; 491*4882a593Smuzhiyun #address-cells = <1>; 492*4882a593Smuzhiyun #size-cells = <1>; 493*4882a593Smuzhiyun 494*4882a593Smuzhiyun pm_sram_code: pm-code-sram@0 { 495*4882a593Smuzhiyun compatible = "ti,sram"; 496*4882a593Smuzhiyun reg = <0x0 0x1000>; 497*4882a593Smuzhiyun protect-exec; 498*4882a593Smuzhiyun }; 499*4882a593Smuzhiyun 500*4882a593Smuzhiyun pm_sram_data: pm-data-sram@1000 { 501*4882a593Smuzhiyun compatible = "ti,sram"; 502*4882a593Smuzhiyun reg = <0x1000 0x1000>; 503*4882a593Smuzhiyun pool; 504*4882a593Smuzhiyun }; 505*4882a593Smuzhiyun }; 506*4882a593Smuzhiyun 507*4882a593Smuzhiyun target-module@56000000 { 508*4882a593Smuzhiyun compatible = "ti,sysc-omap4", "ti,sysc"; 509*4882a593Smuzhiyun reg = <0x5600fe00 0x4>, 510*4882a593Smuzhiyun <0x5600fe10 0x4>; 511*4882a593Smuzhiyun reg-names = "rev", "sysc"; 512*4882a593Smuzhiyun ti,sysc-midle = <SYSC_IDLE_FORCE>, 513*4882a593Smuzhiyun <SYSC_IDLE_NO>, 514*4882a593Smuzhiyun <SYSC_IDLE_SMART>; 515*4882a593Smuzhiyun ti,sysc-sidle = <SYSC_IDLE_FORCE>, 516*4882a593Smuzhiyun <SYSC_IDLE_NO>, 517*4882a593Smuzhiyun <SYSC_IDLE_SMART>; 518*4882a593Smuzhiyun clocks = <&gfx_l3_clkctrl AM4_GFX_L3_GFX_CLKCTRL 0>; 519*4882a593Smuzhiyun clock-names = "fck"; 520*4882a593Smuzhiyun power-domains = <&prm_gfx>; 521*4882a593Smuzhiyun resets = <&prm_gfx 0>; 522*4882a593Smuzhiyun reset-names = "rstctrl"; 523*4882a593Smuzhiyun #address-cells = <1>; 524*4882a593Smuzhiyun #size-cells = <1>; 525*4882a593Smuzhiyun ranges = <0 0x56000000 0x1000000>; 526*4882a593Smuzhiyun }; 527*4882a593Smuzhiyun }; 528*4882a593Smuzhiyun}; 529*4882a593Smuzhiyun 530*4882a593Smuzhiyun#include "am437x-l4.dtsi" 531*4882a593Smuzhiyun#include "am43xx-clocks.dtsi" 532*4882a593Smuzhiyun 533*4882a593Smuzhiyun&prcm { 534*4882a593Smuzhiyun prm_gfx: prm@400 { 535*4882a593Smuzhiyun compatible = "ti,am4-prm-inst", "ti,omap-prm-inst"; 536*4882a593Smuzhiyun reg = <0x400 0x100>; 537*4882a593Smuzhiyun #power-domain-cells = <0>; 538*4882a593Smuzhiyun #reset-cells = <1>; 539*4882a593Smuzhiyun }; 540*4882a593Smuzhiyun 541*4882a593Smuzhiyun prm_per: prm@800 { 542*4882a593Smuzhiyun compatible = "ti,am4-prm-inst", "ti,omap-prm-inst"; 543*4882a593Smuzhiyun reg = <0x800 0x100>; 544*4882a593Smuzhiyun #reset-cells = <1>; 545*4882a593Smuzhiyun }; 546*4882a593Smuzhiyun 547*4882a593Smuzhiyun prm_wkup: prm@2000 { 548*4882a593Smuzhiyun compatible = "ti,am4-prm-inst", "ti,omap-prm-inst"; 549*4882a593Smuzhiyun reg = <0x2000 0x100>; 550*4882a593Smuzhiyun #reset-cells = <1>; 551*4882a593Smuzhiyun }; 552*4882a593Smuzhiyun 553*4882a593Smuzhiyun prm_device: prm@4000 { 554*4882a593Smuzhiyun compatible = "ti,am4-prm-inst", "ti,omap-prm-inst"; 555*4882a593Smuzhiyun reg = <0x4000 0x100>; 556*4882a593Smuzhiyun #reset-cells = <1>; 557*4882a593Smuzhiyun }; 558*4882a593Smuzhiyun}; 559*4882a593Smuzhiyun 560*4882a593Smuzhiyun/* Preferred always-on timer for clocksource */ 561*4882a593Smuzhiyun&timer1_target { 562*4882a593Smuzhiyun ti,no-reset-on-init; 563*4882a593Smuzhiyun ti,no-idle; 564*4882a593Smuzhiyun timer@0 { 565*4882a593Smuzhiyun assigned-clocks = <&timer1_fck>; 566*4882a593Smuzhiyun assigned-clock-parents = <&sys_clkin_ck>; 567*4882a593Smuzhiyun }; 568*4882a593Smuzhiyun}; 569*4882a593Smuzhiyun 570*4882a593Smuzhiyun/* Preferred timer for clockevent */ 571*4882a593Smuzhiyun&timer2_target { 572*4882a593Smuzhiyun ti,no-reset-on-init; 573*4882a593Smuzhiyun ti,no-idle; 574*4882a593Smuzhiyun timer@0 { 575*4882a593Smuzhiyun assigned-clocks = <&timer2_fck>; 576*4882a593Smuzhiyun assigned-clock-parents = <&sys_clkin_ck>; 577*4882a593Smuzhiyun }; 578*4882a593Smuzhiyun}; 579