1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0 2*724ba675SRob Herring/* 3*724ba675SRob Herring * Copyright (C) 2013-2017 Texas Instruments Incorporated - http://www.ti.com/ 4*724ba675SRob Herring */ 5*724ba675SRob Herring 6*724ba675SRob Herring#include <dt-bindings/interrupt-controller/arm-gic.h> 7*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h> 8*724ba675SRob Herring 9*724ba675SRob Herring/ { 10*724ba675SRob Herring compatible = "ti,keystone"; 11*724ba675SRob Herring model = "Texas Instruments Keystone 2 SoC"; 12*724ba675SRob Herring #address-cells = <2>; 13*724ba675SRob Herring #size-cells = <2>; 14*724ba675SRob Herring interrupt-parent = <&gic>; 15*724ba675SRob Herring 16*724ba675SRob Herring aliases { 17*724ba675SRob Herring serial0 = &uart0; 18*724ba675SRob Herring spi0 = &spi0; 19*724ba675SRob Herring spi1 = &spi1; 20*724ba675SRob Herring spi2 = &spi2; 21*724ba675SRob Herring }; 22*724ba675SRob Herring 23*724ba675SRob Herring chosen { }; 24*724ba675SRob Herring 25*724ba675SRob Herring memory: memory@80000000 { 26*724ba675SRob Herring device_type = "memory"; 27*724ba675SRob Herring reg = <0x00000000 0x80000000 0x00000000 0x40000000>; 28*724ba675SRob Herring }; 29*724ba675SRob Herring 30*724ba675SRob Herring gic: interrupt-controller@2561000 { 31*724ba675SRob Herring compatible = "arm,gic-400", "arm,cortex-a15-gic"; 32*724ba675SRob Herring #interrupt-cells = <3>; 33*724ba675SRob Herring interrupt-controller; 34*724ba675SRob Herring reg = <0x0 0x02561000 0x0 0x1000>, 35*724ba675SRob Herring <0x0 0x02562000 0x0 0x2000>, 36*724ba675SRob Herring <0x0 0x02564000 0x0 0x2000>, 37*724ba675SRob Herring <0x0 0x02566000 0x0 0x2000>; 38*724ba675SRob Herring interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | 39*724ba675SRob Herring IRQ_TYPE_LEVEL_HIGH)>; 40*724ba675SRob Herring }; 41*724ba675SRob Herring 42*724ba675SRob Herring timer { 43*724ba675SRob Herring compatible = "arm,armv7-timer"; 44*724ba675SRob Herring interrupts = 45*724ba675SRob Herring <GIC_PPI 13 46*724ba675SRob Herring (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 47*724ba675SRob Herring <GIC_PPI 14 48*724ba675SRob Herring (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 49*724ba675SRob Herring <GIC_PPI 11 50*724ba675SRob Herring (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 51*724ba675SRob Herring <GIC_PPI 10 52*724ba675SRob Herring (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 53*724ba675SRob Herring }; 54*724ba675SRob Herring 55*724ba675SRob Herring pmu { 56*724ba675SRob Herring compatible = "arm,cortex-a15-pmu"; 57*724ba675SRob Herring interrupts = <GIC_SPI 20 IRQ_TYPE_EDGE_RISING>, 58*724ba675SRob Herring <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>, 59*724ba675SRob Herring <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>, 60*724ba675SRob Herring <GIC_SPI 23 IRQ_TYPE_EDGE_RISING>; 61*724ba675SRob Herring }; 62*724ba675SRob Herring 63*724ba675SRob Herring psci { 64*724ba675SRob Herring compatible = "arm,psci"; 65*724ba675SRob Herring method = "smc"; 66*724ba675SRob Herring cpu_suspend = <0x84000001>; 67*724ba675SRob Herring cpu_off = <0x84000002>; 68*724ba675SRob Herring cpu_on = <0x84000003>; 69*724ba675SRob Herring }; 70*724ba675SRob Herring 71*724ba675SRob Herring soc0: soc@0 { 72*724ba675SRob Herring compatible = "simple-bus"; 73*724ba675SRob Herring #address-cells = <1>; 74*724ba675SRob Herring #size-cells = <1>; 75*724ba675SRob Herring interrupt-parent = <&gic>; 76*724ba675SRob Herring ranges = <0x0 0x0 0x0 0xc0000000>; 77*724ba675SRob Herring dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>; 78*724ba675SRob Herring 79*724ba675SRob Herring pllctrl: pll-controller@2310000 { 80*724ba675SRob Herring compatible = "ti,keystone-pllctrl", "syscon"; 81*724ba675SRob Herring reg = <0x02310000 0x200>; 82*724ba675SRob Herring }; 83*724ba675SRob Herring 84*724ba675SRob Herring psc: power-sleep-controller@2350000 { 85*724ba675SRob Herring compatible = "syscon", "simple-mfd"; 86*724ba675SRob Herring reg = <0x02350000 0x1000>; 87*724ba675SRob Herring }; 88*724ba675SRob Herring 89*724ba675SRob Herring devctrl: device-state-control@2620000 { 90*724ba675SRob Herring compatible = "ti,keystone-devctrl", "syscon", "simple-mfd"; 91*724ba675SRob Herring reg = <0x02620000 0x1000>; 92*724ba675SRob Herring #address-cells = <1>; 93*724ba675SRob Herring #size-cells = <1>; 94*724ba675SRob Herring ranges = <0x0 0x02620000 0x1000>; 95*724ba675SRob Herring 96*724ba675SRob Herring kirq0: keystone_irq@2a0 { 97*724ba675SRob Herring compatible = "ti,keystone-irq"; 98*724ba675SRob Herring reg = <0x2a0 0x4>; 99*724ba675SRob Herring interrupts = <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>; 100*724ba675SRob Herring interrupt-controller; 101*724ba675SRob Herring #interrupt-cells = <1>; 102*724ba675SRob Herring ti,syscon-dev = <&devctrl 0x2a0>; 103*724ba675SRob Herring }; 104*724ba675SRob Herring 105*724ba675SRob Herring rstctrl: reset-controller@328 { 106*724ba675SRob Herring compatible = "ti,keystone-reset"; 107*724ba675SRob Herring reg = <0x328 0x10>; 108*724ba675SRob Herring ti,syscon-pll = <&pllctrl 0xe4>; 109*724ba675SRob Herring ti,syscon-dev = <&devctrl 0x328>; 110*724ba675SRob Herring ti,wdt-list = <0>; 111*724ba675SRob Herring }; 112*724ba675SRob Herring }; 113*724ba675SRob Herring 114*724ba675SRob Herring /include/ "keystone-clocks.dtsi" 115*724ba675SRob Herring 116*724ba675SRob Herring uart0: serial@2530c00 { 117*724ba675SRob Herring compatible = "ti,da830-uart", "ns16550a"; 118*724ba675SRob Herring current-speed = <115200>; 119*724ba675SRob Herring reg-shift = <2>; 120*724ba675SRob Herring reg-io-width = <4>; 121*724ba675SRob Herring reg = <0x02530c00 0x100>; 122*724ba675SRob Herring clocks = <&clkuart0>; 123*724ba675SRob Herring interrupts = <GIC_SPI 277 IRQ_TYPE_EDGE_RISING>; 124*724ba675SRob Herring }; 125*724ba675SRob Herring 126*724ba675SRob Herring uart1: serial@2531000 { 127*724ba675SRob Herring compatible = "ti,da830-uart", "ns16550a"; 128*724ba675SRob Herring current-speed = <115200>; 129*724ba675SRob Herring reg-shift = <2>; 130*724ba675SRob Herring reg-io-width = <4>; 131*724ba675SRob Herring reg = <0x02531000 0x100>; 132*724ba675SRob Herring clocks = <&clkuart1>; 133*724ba675SRob Herring interrupts = <GIC_SPI 280 IRQ_TYPE_EDGE_RISING>; 134*724ba675SRob Herring }; 135*724ba675SRob Herring 136*724ba675SRob Herring i2c0: i2c@2530000 { 137*724ba675SRob Herring compatible = "ti,davinci-i2c"; 138*724ba675SRob Herring reg = <0x02530000 0x400>; 139*724ba675SRob Herring clock-frequency = <100000>; 140*724ba675SRob Herring clocks = <&clki2c>; 141*724ba675SRob Herring interrupts = <GIC_SPI 283 IRQ_TYPE_EDGE_RISING>; 142*724ba675SRob Herring #address-cells = <1>; 143*724ba675SRob Herring #size-cells = <0>; 144*724ba675SRob Herring }; 145*724ba675SRob Herring 146*724ba675SRob Herring i2c1: i2c@2530400 { 147*724ba675SRob Herring compatible = "ti,davinci-i2c"; 148*724ba675SRob Herring reg = <0x02530400 0x400>; 149*724ba675SRob Herring clock-frequency = <100000>; 150*724ba675SRob Herring clocks = <&clki2c>; 151*724ba675SRob Herring interrupts = <GIC_SPI 286 IRQ_TYPE_EDGE_RISING>; 152*724ba675SRob Herring #address-cells = <1>; 153*724ba675SRob Herring #size-cells = <0>; 154*724ba675SRob Herring }; 155*724ba675SRob Herring 156*724ba675SRob Herring i2c2: i2c@2530800 { 157*724ba675SRob Herring compatible = "ti,davinci-i2c"; 158*724ba675SRob Herring reg = <0x02530800 0x400>; 159*724ba675SRob Herring clock-frequency = <100000>; 160*724ba675SRob Herring clocks = <&clki2c>; 161*724ba675SRob Herring interrupts = <GIC_SPI 289 IRQ_TYPE_EDGE_RISING>; 162*724ba675SRob Herring #address-cells = <1>; 163*724ba675SRob Herring #size-cells = <0>; 164*724ba675SRob Herring }; 165*724ba675SRob Herring 166*724ba675SRob Herring spi0: spi@21000400 { 167*724ba675SRob Herring compatible = "ti,keystone-spi", "ti,dm6441-spi"; 168*724ba675SRob Herring reg = <0x21000400 0x200>; 169*724ba675SRob Herring num-cs = <4>; 170*724ba675SRob Herring ti,davinci-spi-intr-line = <0>; 171*724ba675SRob Herring interrupts = <GIC_SPI 292 IRQ_TYPE_EDGE_RISING>; 172*724ba675SRob Herring clocks = <&clkspi>; 173*724ba675SRob Herring #address-cells = <1>; 174*724ba675SRob Herring #size-cells = <0>; 175*724ba675SRob Herring }; 176*724ba675SRob Herring 177*724ba675SRob Herring spi1: spi@21000600 { 178*724ba675SRob Herring compatible = "ti,keystone-spi", "ti,dm6441-spi"; 179*724ba675SRob Herring reg = <0x21000600 0x200>; 180*724ba675SRob Herring num-cs = <4>; 181*724ba675SRob Herring ti,davinci-spi-intr-line = <0>; 182*724ba675SRob Herring interrupts = <GIC_SPI 296 IRQ_TYPE_EDGE_RISING>; 183*724ba675SRob Herring clocks = <&clkspi>; 184*724ba675SRob Herring #address-cells = <1>; 185*724ba675SRob Herring #size-cells = <0>; 186*724ba675SRob Herring }; 187*724ba675SRob Herring 188*724ba675SRob Herring spi2: spi@21000800 { 189*724ba675SRob Herring compatible = "ti,keystone-spi", "ti,dm6441-spi"; 190*724ba675SRob Herring reg = <0x21000800 0x200>; 191*724ba675SRob Herring num-cs = <4>; 192*724ba675SRob Herring ti,davinci-spi-intr-line = <0>; 193*724ba675SRob Herring interrupts = <GIC_SPI 300 IRQ_TYPE_EDGE_RISING>; 194*724ba675SRob Herring clocks = <&clkspi>; 195*724ba675SRob Herring #address-cells = <1>; 196*724ba675SRob Herring #size-cells = <0>; 197*724ba675SRob Herring }; 198*724ba675SRob Herring 199*724ba675SRob Herring usb_phy: usb_phy@2620738 { 200*724ba675SRob Herring compatible = "ti,keystone-usbphy"; 201*724ba675SRob Herring #address-cells = <1>; 202*724ba675SRob Herring #size-cells = <1>; 203*724ba675SRob Herring reg = <0x2620738 24>; 204*724ba675SRob Herring status = "disabled"; 205*724ba675SRob Herring }; 206*724ba675SRob Herring 207*724ba675SRob Herring keystone_usb0: usb@2680000 { 208*724ba675SRob Herring compatible = "ti,keystone-dwc3"; 209*724ba675SRob Herring #address-cells = <1>; 210*724ba675SRob Herring #size-cells = <1>; 211*724ba675SRob Herring reg = <0x2680000 0x10000>; 212*724ba675SRob Herring clocks = <&clkusb>; 213*724ba675SRob Herring clock-names = "usb"; 214*724ba675SRob Herring interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>; 215*724ba675SRob Herring ranges; 216*724ba675SRob Herring dma-coherent; 217*724ba675SRob Herring dma-ranges; 218*724ba675SRob Herring status = "disabled"; 219*724ba675SRob Herring 220*724ba675SRob Herring usb0: usb@2690000 { 221*724ba675SRob Herring compatible = "snps,dwc3"; 222*724ba675SRob Herring reg = <0x2690000 0x70000>; 223*724ba675SRob Herring interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>; 224*724ba675SRob Herring usb-phy = <&usb_phy>, <&usb_phy>; 225*724ba675SRob Herring }; 226*724ba675SRob Herring }; 227*724ba675SRob Herring 228*724ba675SRob Herring wdt: wdt@22f0080 { 229*724ba675SRob Herring compatible = "ti,keystone-wdt","ti,davinci-wdt"; 230*724ba675SRob Herring reg = <0x022f0080 0x80>; 231*724ba675SRob Herring clocks = <&clkwdtimer0>; 232*724ba675SRob Herring }; 233*724ba675SRob Herring 234*724ba675SRob Herring clock_event: timer@22f0000 { 235*724ba675SRob Herring compatible = "ti,keystone-timer"; 236*724ba675SRob Herring reg = <0x022f0000 0x80>; 237*724ba675SRob Herring interrupts = <GIC_SPI 110 IRQ_TYPE_EDGE_RISING>; 238*724ba675SRob Herring clocks = <&clktimer15>; 239*724ba675SRob Herring }; 240*724ba675SRob Herring 241*724ba675SRob Herring gpio0: gpio@260bf00 { 242*724ba675SRob Herring compatible = "ti,keystone-gpio"; 243*724ba675SRob Herring reg = <0x0260bf00 0x100>; 244*724ba675SRob Herring gpio-controller; 245*724ba675SRob Herring #gpio-cells = <2>; 246*724ba675SRob Herring /* HW Interrupts mapped to GPIO pins */ 247*724ba675SRob Herring interrupts = <GIC_SPI 120 IRQ_TYPE_EDGE_RISING>, 248*724ba675SRob Herring <GIC_SPI 121 IRQ_TYPE_EDGE_RISING>, 249*724ba675SRob Herring <GIC_SPI 122 IRQ_TYPE_EDGE_RISING>, 250*724ba675SRob Herring <GIC_SPI 123 IRQ_TYPE_EDGE_RISING>, 251*724ba675SRob Herring <GIC_SPI 124 IRQ_TYPE_EDGE_RISING>, 252*724ba675SRob Herring <GIC_SPI 125 IRQ_TYPE_EDGE_RISING>, 253*724ba675SRob Herring <GIC_SPI 126 IRQ_TYPE_EDGE_RISING>, 254*724ba675SRob Herring <GIC_SPI 127 IRQ_TYPE_EDGE_RISING>, 255*724ba675SRob Herring <GIC_SPI 128 IRQ_TYPE_EDGE_RISING>, 256*724ba675SRob Herring <GIC_SPI 129 IRQ_TYPE_EDGE_RISING>, 257*724ba675SRob Herring <GIC_SPI 130 IRQ_TYPE_EDGE_RISING>, 258*724ba675SRob Herring <GIC_SPI 131 IRQ_TYPE_EDGE_RISING>, 259*724ba675SRob Herring <GIC_SPI 132 IRQ_TYPE_EDGE_RISING>, 260*724ba675SRob Herring <GIC_SPI 133 IRQ_TYPE_EDGE_RISING>, 261*724ba675SRob Herring <GIC_SPI 134 IRQ_TYPE_EDGE_RISING>, 262*724ba675SRob Herring <GIC_SPI 135 IRQ_TYPE_EDGE_RISING>, 263*724ba675SRob Herring <GIC_SPI 136 IRQ_TYPE_EDGE_RISING>, 264*724ba675SRob Herring <GIC_SPI 137 IRQ_TYPE_EDGE_RISING>, 265*724ba675SRob Herring <GIC_SPI 138 IRQ_TYPE_EDGE_RISING>, 266*724ba675SRob Herring <GIC_SPI 139 IRQ_TYPE_EDGE_RISING>, 267*724ba675SRob Herring <GIC_SPI 140 IRQ_TYPE_EDGE_RISING>, 268*724ba675SRob Herring <GIC_SPI 141 IRQ_TYPE_EDGE_RISING>, 269*724ba675SRob Herring <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>, 270*724ba675SRob Herring <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>, 271*724ba675SRob Herring <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>, 272*724ba675SRob Herring <GIC_SPI 145 IRQ_TYPE_EDGE_RISING>, 273*724ba675SRob Herring <GIC_SPI 146 IRQ_TYPE_EDGE_RISING>, 274*724ba675SRob Herring <GIC_SPI 147 IRQ_TYPE_EDGE_RISING>, 275*724ba675SRob Herring <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>, 276*724ba675SRob Herring <GIC_SPI 149 IRQ_TYPE_EDGE_RISING>, 277*724ba675SRob Herring <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>, 278*724ba675SRob Herring <GIC_SPI 151 IRQ_TYPE_EDGE_RISING>; 279*724ba675SRob Herring clocks = <&clkgpio>; 280*724ba675SRob Herring clock-names = "gpio"; 281*724ba675SRob Herring ti,ngpio = <32>; 282*724ba675SRob Herring ti,davinci-gpio-unbanked = <32>; 283*724ba675SRob Herring }; 284*724ba675SRob Herring 285*724ba675SRob Herring aemif: aemif@21000a00 { 286*724ba675SRob Herring compatible = "ti,keystone-aemif", "ti,davinci-aemif"; 287*724ba675SRob Herring #address-cells = <2>; 288*724ba675SRob Herring #size-cells = <1>; 289*724ba675SRob Herring clocks = <&clkaemif>; 290*724ba675SRob Herring clock-names = "aemif"; 291*724ba675SRob Herring clock-ranges; 292*724ba675SRob Herring 293*724ba675SRob Herring reg = <0x21000a00 0x00000100>; 294*724ba675SRob Herring ranges = <0 0 0x30000000 0x10000000 295*724ba675SRob Herring 1 0 0x21000a00 0x00000100>; 296*724ba675SRob Herring }; 297*724ba675SRob Herring 298*724ba675SRob Herring pcie0: pcie@21800000 { 299*724ba675SRob Herring compatible = "ti,keystone-pcie", "snps,dw-pcie"; 300*724ba675SRob Herring clocks = <&clkpcie>; 301*724ba675SRob Herring clock-names = "pcie"; 302*724ba675SRob Herring #address-cells = <3>; 303*724ba675SRob Herring #size-cells = <2>; 304*724ba675SRob Herring reg = <0x21801000 0x2000>, <0x21800000 0x1000>, <0x02620128 4>; 305*724ba675SRob Herring ranges = <0x82000000 0 0x50000000 0x50000000 306*724ba675SRob Herring 0 0x10000000>; 307*724ba675SRob Herring 308*724ba675SRob Herring status = "disabled"; 309*724ba675SRob Herring device_type = "pci"; 310*724ba675SRob Herring num-lanes = <2>; 311*724ba675SRob Herring bus-range = <0x00 0xff>; 312*724ba675SRob Herring 313*724ba675SRob Herring /* error interrupt */ 314*724ba675SRob Herring interrupts = <GIC_SPI 38 IRQ_TYPE_EDGE_RISING>; 315*724ba675SRob Herring #interrupt-cells = <1>; 316*724ba675SRob Herring interrupt-map-mask = <0 0 0 7>; 317*724ba675SRob Herring interrupt-map = <0 0 0 1 &pcie_intc0 0>, /* INT A */ 318*724ba675SRob Herring <0 0 0 2 &pcie_intc0 1>, /* INT B */ 319*724ba675SRob Herring <0 0 0 3 &pcie_intc0 2>, /* INT C */ 320*724ba675SRob Herring <0 0 0 4 &pcie_intc0 3>; /* INT D */ 321*724ba675SRob Herring 322*724ba675SRob Herring pcie_msi_intc0: msi-interrupt-controller { 323*724ba675SRob Herring interrupt-controller; 324*724ba675SRob Herring #interrupt-cells = <1>; 325*724ba675SRob Herring interrupt-parent = <&gic>; 326*724ba675SRob Herring interrupts = <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>, 327*724ba675SRob Herring <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>, 328*724ba675SRob Herring <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>, 329*724ba675SRob Herring <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>, 330*724ba675SRob Herring <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>, 331*724ba675SRob Herring <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>, 332*724ba675SRob Herring <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>, 333*724ba675SRob Herring <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>; 334*724ba675SRob Herring }; 335*724ba675SRob Herring 336*724ba675SRob Herring pcie_intc0: legacy-interrupt-controller { 337*724ba675SRob Herring interrupt-controller; 338*724ba675SRob Herring #interrupt-cells = <1>; 339*724ba675SRob Herring interrupt-parent = <&gic>; 340*724ba675SRob Herring interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>, 341*724ba675SRob Herring <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>, 342*724ba675SRob Herring <GIC_SPI 28 IRQ_TYPE_EDGE_RISING>, 343*724ba675SRob Herring <GIC_SPI 29 IRQ_TYPE_EDGE_RISING>; 344*724ba675SRob Herring }; 345*724ba675SRob Herring }; 346*724ba675SRob Herring 347*724ba675SRob Herring emif: emif@21010000 { 348*724ba675SRob Herring compatible = "ti,emif-keystone"; 349*724ba675SRob Herring reg = <0x21010000 0x200>; 350*724ba675SRob Herring interrupts = <GIC_SPI 448 IRQ_TYPE_EDGE_RISING>; 351*724ba675SRob Herring interrupt-parent = <&gic>; 352*724ba675SRob Herring }; 353*724ba675SRob Herring }; 354*724ba675SRob Herring}; 355