1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*724ba675SRob Herring/* 3*724ba675SRob Herring * Device Tree Include file for Marvell Armada 39x family of SoCs. 4*724ba675SRob Herring * 5*724ba675SRob Herring * Copyright (C) 2015 Marvell 6*724ba675SRob Herring * 7*724ba675SRob Herring * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 8*724ba675SRob Herring */ 9*724ba675SRob Herring 10*724ba675SRob Herring#include <dt-bindings/interrupt-controller/arm-gic.h> 11*724ba675SRob Herring#include <dt-bindings/interrupt-controller/irq.h> 12*724ba675SRob Herring 13*724ba675SRob Herring#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) 14*724ba675SRob Herring 15*724ba675SRob Herring/ { 16*724ba675SRob Herring #address-cells = <1>; 17*724ba675SRob Herring #size-cells = <1>; 18*724ba675SRob Herring model = "Marvell Armada 39x family SoC"; 19*724ba675SRob Herring compatible = "marvell,armada390"; 20*724ba675SRob Herring 21*724ba675SRob Herring aliases { 22*724ba675SRob Herring gpio0 = &gpio0; 23*724ba675SRob Herring gpio1 = &gpio1; 24*724ba675SRob Herring serial0 = &uart0; 25*724ba675SRob Herring serial1 = &uart1; 26*724ba675SRob Herring serial2 = &uart2; 27*724ba675SRob Herring serial3 = &uart3; 28*724ba675SRob Herring }; 29*724ba675SRob Herring 30*724ba675SRob Herring cpus { 31*724ba675SRob Herring #address-cells = <1>; 32*724ba675SRob Herring #size-cells = <0>; 33*724ba675SRob Herring enable-method = "marvell,armada-390-smp"; 34*724ba675SRob Herring 35*724ba675SRob Herring cpu@0 { 36*724ba675SRob Herring device_type = "cpu"; 37*724ba675SRob Herring compatible = "arm,cortex-a9"; 38*724ba675SRob Herring reg = <0>; 39*724ba675SRob Herring }; 40*724ba675SRob Herring cpu@1 { 41*724ba675SRob Herring device_type = "cpu"; 42*724ba675SRob Herring compatible = "arm,cortex-a9"; 43*724ba675SRob Herring reg = <1>; 44*724ba675SRob Herring }; 45*724ba675SRob Herring }; 46*724ba675SRob Herring 47*724ba675SRob Herring pmu { 48*724ba675SRob Herring compatible = "arm,cortex-a9-pmu"; 49*724ba675SRob Herring interrupts-extended = <&mpic 3>; 50*724ba675SRob Herring }; 51*724ba675SRob Herring 52*724ba675SRob Herring soc { 53*724ba675SRob Herring compatible = "marvell,armada390-mbus", "marvell,armadaxp-mbus", 54*724ba675SRob Herring "simple-bus"; 55*724ba675SRob Herring #address-cells = <2>; 56*724ba675SRob Herring #size-cells = <1>; 57*724ba675SRob Herring controller = <&mbusc>; 58*724ba675SRob Herring interrupt-parent = <&gic>; 59*724ba675SRob Herring pcie-mem-aperture = <0xe0000000 0x8000000>; 60*724ba675SRob Herring pcie-io-aperture = <0xe8000000 0x100000>; 61*724ba675SRob Herring 62*724ba675SRob Herring bootrom { 63*724ba675SRob Herring compatible = "marvell,bootrom"; 64*724ba675SRob Herring reg = <MBUS_ID(0x01, 0x1d) 0 0x200000>; 65*724ba675SRob Herring }; 66*724ba675SRob Herring 67*724ba675SRob Herring internal-regs { 68*724ba675SRob Herring compatible = "simple-bus"; 69*724ba675SRob Herring #address-cells = <1>; 70*724ba675SRob Herring #size-cells = <1>; 71*724ba675SRob Herring ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>; 72*724ba675SRob Herring 73*724ba675SRob Herring L2: cache-controller@8000 { 74*724ba675SRob Herring compatible = "arm,pl310-cache"; 75*724ba675SRob Herring reg = <0x8000 0x1000>; 76*724ba675SRob Herring cache-unified; 77*724ba675SRob Herring cache-level = <2>; 78*724ba675SRob Herring arm,double-linefill-incr = <0>; 79*724ba675SRob Herring arm,double-linefill-wrap = <0>; 80*724ba675SRob Herring arm,double-linefill = <0>; 81*724ba675SRob Herring prefetch-data = <1>; 82*724ba675SRob Herring }; 83*724ba675SRob Herring 84*724ba675SRob Herring scu@c000 { 85*724ba675SRob Herring compatible = "arm,cortex-a9-scu"; 86*724ba675SRob Herring reg = <0xc000 0x100>; 87*724ba675SRob Herring }; 88*724ba675SRob Herring 89*724ba675SRob Herring timer@c600 { 90*724ba675SRob Herring compatible = "arm,cortex-a9-twd-timer"; 91*724ba675SRob Herring reg = <0xc600 0x20>; 92*724ba675SRob Herring interrupts = <GIC_PPI 13 (IRQ_TYPE_EDGE_RISING | GIC_CPU_MASK_SIMPLE(2))>; 93*724ba675SRob Herring clocks = <&coreclk 2>; 94*724ba675SRob Herring }; 95*724ba675SRob Herring 96*724ba675SRob Herring gic: interrupt-controller@d000 { 97*724ba675SRob Herring compatible = "arm,cortex-a9-gic"; 98*724ba675SRob Herring #interrupt-cells = <3>; 99*724ba675SRob Herring #size-cells = <0>; 100*724ba675SRob Herring interrupt-controller; 101*724ba675SRob Herring reg = <0xd000 0x1000>, 102*724ba675SRob Herring <0xc100 0x100>; 103*724ba675SRob Herring }; 104*724ba675SRob Herring 105*724ba675SRob Herring i2c0: i2c@11000 { 106*724ba675SRob Herring compatible = "marvell,mv64xxx-i2c"; 107*724ba675SRob Herring reg = <0x11000 0x20>; 108*724ba675SRob Herring #address-cells = <1>; 109*724ba675SRob Herring #size-cells = <0>; 110*724ba675SRob Herring interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 111*724ba675SRob Herring clocks = <&coreclk 0>; 112*724ba675SRob Herring status = "disabled"; 113*724ba675SRob Herring }; 114*724ba675SRob Herring 115*724ba675SRob Herring i2c1: i2c@11100 { 116*724ba675SRob Herring compatible = "marvell,mv64xxx-i2c"; 117*724ba675SRob Herring reg = <0x11100 0x20>; 118*724ba675SRob Herring #address-cells = <1>; 119*724ba675SRob Herring #size-cells = <0>; 120*724ba675SRob Herring interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 121*724ba675SRob Herring clocks = <&coreclk 0>; 122*724ba675SRob Herring status = "disabled"; 123*724ba675SRob Herring }; 124*724ba675SRob Herring 125*724ba675SRob Herring i2c2: i2c@11200 { 126*724ba675SRob Herring compatible = "marvell,mv64xxx-i2c"; 127*724ba675SRob Herring reg = <0x11200 0x20>; 128*724ba675SRob Herring #address-cells = <1>; 129*724ba675SRob Herring #size-cells = <0>; 130*724ba675SRob Herring interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 131*724ba675SRob Herring clocks = <&coreclk 0>; 132*724ba675SRob Herring status = "disabled"; 133*724ba675SRob Herring }; 134*724ba675SRob Herring 135*724ba675SRob Herring i2c3: i2c@11300 { 136*724ba675SRob Herring compatible = "marvell,mv64xxx-i2c"; 137*724ba675SRob Herring reg = <0x11300 0x20>; 138*724ba675SRob Herring #address-cells = <1>; 139*724ba675SRob Herring #size-cells = <0>; 140*724ba675SRob Herring interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 141*724ba675SRob Herring clocks = <&coreclk 0>; 142*724ba675SRob Herring status = "disabled"; 143*724ba675SRob Herring }; 144*724ba675SRob Herring 145*724ba675SRob Herring uart0: serial@12000 { 146*724ba675SRob Herring compatible = "snps,dw-apb-uart"; 147*724ba675SRob Herring reg = <0x12000 0x100>; 148*724ba675SRob Herring reg-shift = <2>; 149*724ba675SRob Herring interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 150*724ba675SRob Herring reg-io-width = <1>; 151*724ba675SRob Herring clocks = <&coreclk 0>; 152*724ba675SRob Herring status = "disabled"; 153*724ba675SRob Herring }; 154*724ba675SRob Herring 155*724ba675SRob Herring uart1: serial@12100 { 156*724ba675SRob Herring compatible = "snps,dw-apb-uart"; 157*724ba675SRob Herring reg = <0x12100 0x100>; 158*724ba675SRob Herring reg-shift = <2>; 159*724ba675SRob Herring interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 160*724ba675SRob Herring reg-io-width = <1>; 161*724ba675SRob Herring clocks = <&coreclk 0>; 162*724ba675SRob Herring status = "disabled"; 163*724ba675SRob Herring }; 164*724ba675SRob Herring 165*724ba675SRob Herring uart2: serial@12200 { 166*724ba675SRob Herring compatible = "snps,dw-apb-uart"; 167*724ba675SRob Herring reg = <0x12200 0x100>; 168*724ba675SRob Herring reg-shift = <2>; 169*724ba675SRob Herring interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 170*724ba675SRob Herring reg-io-width = <1>; 171*724ba675SRob Herring clocks = <&coreclk 0>; 172*724ba675SRob Herring status = "disabled"; 173*724ba675SRob Herring }; 174*724ba675SRob Herring 175*724ba675SRob Herring uart3: serial@12300 { 176*724ba675SRob Herring compatible = "snps,dw-apb-uart"; 177*724ba675SRob Herring reg = <0x12300 0x100>; 178*724ba675SRob Herring reg-shift = <2>; 179*724ba675SRob Herring interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 180*724ba675SRob Herring reg-io-width = <1>; 181*724ba675SRob Herring clocks = <&coreclk 0>; 182*724ba675SRob Herring status = "disabled"; 183*724ba675SRob Herring }; 184*724ba675SRob Herring 185*724ba675SRob Herring pinctrl@18000 { 186*724ba675SRob Herring i2c0_pins: i2c0-pins { 187*724ba675SRob Herring marvell,pins = "mpp2", "mpp3"; 188*724ba675SRob Herring marvell,function = "i2c0"; 189*724ba675SRob Herring }; 190*724ba675SRob Herring 191*724ba675SRob Herring uart0_pins: uart0-pins { 192*724ba675SRob Herring marvell,pins = "mpp0", "mpp1"; 193*724ba675SRob Herring marvell,function = "ua0"; 194*724ba675SRob Herring }; 195*724ba675SRob Herring 196*724ba675SRob Herring uart1_pins: uart1-pins { 197*724ba675SRob Herring marvell,pins = "mpp19", "mpp20"; 198*724ba675SRob Herring marvell,function = "ua1"; 199*724ba675SRob Herring }; 200*724ba675SRob Herring 201*724ba675SRob Herring spi1_pins: spi1-pins { 202*724ba675SRob Herring marvell,pins = "mpp56", "mpp57", "mpp58", "mpp59"; 203*724ba675SRob Herring marvell,function = "spi1"; 204*724ba675SRob Herring }; 205*724ba675SRob Herring 206*724ba675SRob Herring nand_pins: nand-pins { 207*724ba675SRob Herring marvell,pins = "mpp22", "mpp34", "mpp23", "mpp33", 208*724ba675SRob Herring "mpp38", "mpp28", "mpp40", "mpp42", 209*724ba675SRob Herring "mpp35", "mpp36", "mpp25", "mpp30", 210*724ba675SRob Herring "mpp32"; 211*724ba675SRob Herring marvell,function = "dev"; 212*724ba675SRob Herring }; 213*724ba675SRob Herring }; 214*724ba675SRob Herring 215*724ba675SRob Herring gpio0: gpio@18100 { 216*724ba675SRob Herring compatible = "marvell,orion-gpio"; 217*724ba675SRob Herring reg = <0x18100 0x40>; 218*724ba675SRob Herring ngpios = <32>; 219*724ba675SRob Herring gpio-controller; 220*724ba675SRob Herring #gpio-cells = <2>; 221*724ba675SRob Herring interrupt-controller; 222*724ba675SRob Herring #interrupt-cells = <2>; 223*724ba675SRob Herring interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 224*724ba675SRob Herring <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 225*724ba675SRob Herring <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 226*724ba675SRob Herring <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; 227*724ba675SRob Herring }; 228*724ba675SRob Herring 229*724ba675SRob Herring gpio1: gpio@18140 { 230*724ba675SRob Herring compatible = "marvell,orion-gpio"; 231*724ba675SRob Herring reg = <0x18140 0x40>; 232*724ba675SRob Herring ngpios = <28>; 233*724ba675SRob Herring gpio-controller; 234*724ba675SRob Herring #gpio-cells = <2>; 235*724ba675SRob Herring interrupt-controller; 236*724ba675SRob Herring #interrupt-cells = <2>; 237*724ba675SRob Herring interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 238*724ba675SRob Herring <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 239*724ba675SRob Herring <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, 240*724ba675SRob Herring <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 241*724ba675SRob Herring }; 242*724ba675SRob Herring 243*724ba675SRob Herring system-controller@18200 { 244*724ba675SRob Herring compatible = "marvell,armada-390-system-controller", 245*724ba675SRob Herring "marvell,armada-370-xp-system-controller"; 246*724ba675SRob Herring reg = <0x18200 0x100>; 247*724ba675SRob Herring }; 248*724ba675SRob Herring 249*724ba675SRob Herring gateclk: clock-gating-control@18220 { 250*724ba675SRob Herring compatible = "marvell,armada-390-gating-clock"; 251*724ba675SRob Herring reg = <0x18220 0x4>; 252*724ba675SRob Herring clocks = <&coreclk 0>; 253*724ba675SRob Herring #clock-cells = <1>; 254*724ba675SRob Herring }; 255*724ba675SRob Herring 256*724ba675SRob Herring coreclk: mvebu-sar@18600 { 257*724ba675SRob Herring compatible = "marvell,armada-390-core-clock"; 258*724ba675SRob Herring reg = <0x18600 0x04>; 259*724ba675SRob Herring #clock-cells = <1>; 260*724ba675SRob Herring }; 261*724ba675SRob Herring 262*724ba675SRob Herring mbusc: mbus-controller@20000 { 263*724ba675SRob Herring compatible = "marvell,mbus-controller"; 264*724ba675SRob Herring reg = <0x20000 0x100>, <0x20180 0x20>, <0x20250 0x8>; 265*724ba675SRob Herring }; 266*724ba675SRob Herring 267*724ba675SRob Herring mpic: interrupt-controller@20a00 { 268*724ba675SRob Herring compatible = "marvell,mpic"; 269*724ba675SRob Herring reg = <0x20a00 0x2d0>, <0x21070 0x58>; 270*724ba675SRob Herring #interrupt-cells = <1>; 271*724ba675SRob Herring #size-cells = <1>; 272*724ba675SRob Herring interrupt-controller; 273*724ba675SRob Herring msi-controller; 274*724ba675SRob Herring interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>; 275*724ba675SRob Herring }; 276*724ba675SRob Herring 277*724ba675SRob Herring timer@20300 { 278*724ba675SRob Herring compatible = "marvell,armada-380-timer", 279*724ba675SRob Herring "marvell,armada-xp-timer"; 280*724ba675SRob Herring reg = <0x20300 0x30>, <0x21040 0x30>; 281*724ba675SRob Herring interrupts-extended = <&gic GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 282*724ba675SRob Herring <&gic GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, 283*724ba675SRob Herring <&gic GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, 284*724ba675SRob Herring <&gic GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 285*724ba675SRob Herring <&mpic 5>, 286*724ba675SRob Herring <&mpic 6>; 287*724ba675SRob Herring clocks = <&coreclk 2>, <&coreclk 5>; 288*724ba675SRob Herring clock-names = "nbclk", "fixed"; 289*724ba675SRob Herring }; 290*724ba675SRob Herring 291*724ba675SRob Herring watchdog@20300 { 292*724ba675SRob Herring compatible = "marvell,armada-380-wdt"; 293*724ba675SRob Herring reg = <0x20300 0x34>, <0x20704 0x4>, 294*724ba675SRob Herring <0x18260 0x4>; 295*724ba675SRob Herring clocks = <&coreclk 2>, <&refclk>; 296*724ba675SRob Herring clock-names = "nbclk", "fixed"; 297*724ba675SRob Herring }; 298*724ba675SRob Herring 299*724ba675SRob Herring cpurst@20800 { 300*724ba675SRob Herring compatible = "marvell,armada-370-cpu-reset"; 301*724ba675SRob Herring reg = <0x20800 0x10>; 302*724ba675SRob Herring }; 303*724ba675SRob Herring 304*724ba675SRob Herring mpcore-soc-ctrl@20d20 { 305*724ba675SRob Herring compatible = "marvell,armada-380-mpcore-soc-ctrl"; 306*724ba675SRob Herring reg = <0x20d20 0x6c>; 307*724ba675SRob Herring }; 308*724ba675SRob Herring 309*724ba675SRob Herring coherency-fabric@21010 { 310*724ba675SRob Herring compatible = "marvell,armada-380-coherency-fabric"; 311*724ba675SRob Herring reg = <0x21010 0x1c>; 312*724ba675SRob Herring }; 313*724ba675SRob Herring 314*724ba675SRob Herring pmsu@22000 { 315*724ba675SRob Herring compatible = "marvell,armada-390-pmsu", 316*724ba675SRob Herring "marvell,armada-380-pmsu"; 317*724ba675SRob Herring reg = <0x22000 0x1000>; 318*724ba675SRob Herring }; 319*724ba675SRob Herring 320*724ba675SRob Herring xor@60800 { 321*724ba675SRob Herring compatible = "marvell,armada-380-xor", "marvell,orion-xor"; 322*724ba675SRob Herring reg = <0x60800 0x100 323*724ba675SRob Herring 0x60a00 0x100>; 324*724ba675SRob Herring clocks = <&gateclk 22>; 325*724ba675SRob Herring status = "okay"; 326*724ba675SRob Herring 327*724ba675SRob Herring xor00 { 328*724ba675SRob Herring interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 329*724ba675SRob Herring dmacap,memcpy; 330*724ba675SRob Herring dmacap,xor; 331*724ba675SRob Herring }; 332*724ba675SRob Herring xor01 { 333*724ba675SRob Herring interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 334*724ba675SRob Herring dmacap,memcpy; 335*724ba675SRob Herring dmacap,xor; 336*724ba675SRob Herring dmacap,memset; 337*724ba675SRob Herring }; 338*724ba675SRob Herring }; 339*724ba675SRob Herring 340*724ba675SRob Herring xor@60900 { 341*724ba675SRob Herring compatible = "marvell,armada-380-xor", "marvell,orion-xor"; 342*724ba675SRob Herring reg = <0x60900 0x100 343*724ba675SRob Herring 0x60b00 0x100>; 344*724ba675SRob Herring clocks = <&gateclk 28>; 345*724ba675SRob Herring status = "okay"; 346*724ba675SRob Herring 347*724ba675SRob Herring xor10 { 348*724ba675SRob Herring interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 349*724ba675SRob Herring dmacap,memcpy; 350*724ba675SRob Herring dmacap,xor; 351*724ba675SRob Herring }; 352*724ba675SRob Herring xor11 { 353*724ba675SRob Herring interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 354*724ba675SRob Herring dmacap,memcpy; 355*724ba675SRob Herring dmacap,xor; 356*724ba675SRob Herring dmacap,memset; 357*724ba675SRob Herring }; 358*724ba675SRob Herring }; 359*724ba675SRob Herring 360*724ba675SRob Herring rtc@a3800 { 361*724ba675SRob Herring compatible = "marvell,armada-380-rtc"; 362*724ba675SRob Herring reg = <0xa3800 0x20>, <0x184a0 0x0c>; 363*724ba675SRob Herring reg-names = "rtc", "rtc-soc"; 364*724ba675SRob Herring interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 365*724ba675SRob Herring }; 366*724ba675SRob Herring 367*724ba675SRob Herring nand_controller: nand-controller@d0000 { 368*724ba675SRob Herring compatible = "marvell,armada370-nand-controller"; 369*724ba675SRob Herring reg = <0xd0000 0x54>; 370*724ba675SRob Herring #address-cells = <1>; 371*724ba675SRob Herring #size-cells = <0>; 372*724ba675SRob Herring interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 373*724ba675SRob Herring clocks = <&coredivclk 0>; 374*724ba675SRob Herring status = "disabled"; 375*724ba675SRob Herring }; 376*724ba675SRob Herring 377*724ba675SRob Herring sdhci@d8000 { 378*724ba675SRob Herring compatible = "marvell,armada-380-sdhci"; 379*724ba675SRob Herring reg-names = "sdhci", "mbus", "conf-sdio3"; 380*724ba675SRob Herring reg = <0xd8000 0x1000>, 381*724ba675SRob Herring <0xdc000 0x100>, 382*724ba675SRob Herring <0x18454 0x4>; 383*724ba675SRob Herring interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 384*724ba675SRob Herring clocks = <&gateclk 17>; 385*724ba675SRob Herring mrvl,clk-delay-cycles = <0x1F>; 386*724ba675SRob Herring status = "disabled"; 387*724ba675SRob Herring }; 388*724ba675SRob Herring 389*724ba675SRob Herring coredivclk: clock@e4250 { 390*724ba675SRob Herring compatible = "marvell,armada-390-corediv-clock", 391*724ba675SRob Herring "marvell,armada-380-corediv-clock"; 392*724ba675SRob Herring reg = <0xe4250 0xc>; 393*724ba675SRob Herring #clock-cells = <1>; 394*724ba675SRob Herring clocks = <&mainpll>; 395*724ba675SRob Herring clock-output-names = "nand"; 396*724ba675SRob Herring }; 397*724ba675SRob Herring 398*724ba675SRob Herring thermal@e8078 { 399*724ba675SRob Herring compatible = "marvell,armada380-thermal"; 400*724ba675SRob Herring reg = <0xe4078 0x4>, <0xe4074 0x4>; 401*724ba675SRob Herring status = "okay"; 402*724ba675SRob Herring }; 403*724ba675SRob Herring }; 404*724ba675SRob Herring 405*724ba675SRob Herring pcie { 406*724ba675SRob Herring compatible = "marvell,armada-370-pcie"; 407*724ba675SRob Herring status = "disabled"; 408*724ba675SRob Herring device_type = "pci"; 409*724ba675SRob Herring 410*724ba675SRob Herring #address-cells = <3>; 411*724ba675SRob Herring #size-cells = <2>; 412*724ba675SRob Herring 413*724ba675SRob Herring msi-parent = <&mpic>; 414*724ba675SRob Herring bus-range = <0x00 0xff>; 415*724ba675SRob Herring 416*724ba675SRob Herring ranges = 417*724ba675SRob Herring <0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000 418*724ba675SRob Herring 0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 419*724ba675SRob Herring 0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000 420*724ba675SRob Herring 0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000 421*724ba675SRob Herring 0x82000000 0x1 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 0 MEM */ 422*724ba675SRob Herring 0x81000000 0x1 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 0 IO */ 423*724ba675SRob Herring 0x82000000 0x2 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 1 MEM */ 424*724ba675SRob Herring 0x81000000 0x2 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 1 IO */ 425*724ba675SRob Herring 0x82000000 0x3 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 2 MEM */ 426*724ba675SRob Herring 0x81000000 0x3 0 MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 2 IO */ 427*724ba675SRob Herring 0x82000000 0x4 0 MBUS_ID(0x04, 0xb8) 0 1 0 /* Port 3 MEM */ 428*724ba675SRob Herring 0x81000000 0x4 0 MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 3 IO */>; 429*724ba675SRob Herring 430*724ba675SRob Herring /* 431*724ba675SRob Herring * This port can be either x4 or x1. When 432*724ba675SRob Herring * configured in x4 by the bootloader, then 433*724ba675SRob Herring * pcie@4,0 is not available. 434*724ba675SRob Herring */ 435*724ba675SRob Herring pcie@1,0 { 436*724ba675SRob Herring device_type = "pci"; 437*724ba675SRob Herring assigned-addresses = <0x82000800 0 0x80000 0 0x2000>; 438*724ba675SRob Herring reg = <0x0800 0 0 0 0>; 439*724ba675SRob Herring #address-cells = <3>; 440*724ba675SRob Herring #size-cells = <2>; 441*724ba675SRob Herring interrupt-names = "intx"; 442*724ba675SRob Herring interrupts-extended = <&gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 443*724ba675SRob Herring #interrupt-cells = <1>; 444*724ba675SRob Herring ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0 445*724ba675SRob Herring 0x81000000 0 0 0x81000000 0x1 0 1 0>; 446*724ba675SRob Herring bus-range = <0x00 0xff>; 447*724ba675SRob Herring interrupt-map-mask = <0 0 0 7>; 448*724ba675SRob Herring interrupt-map = <0 0 0 1 &pcie1_intc 0>, 449*724ba675SRob Herring <0 0 0 2 &pcie1_intc 1>, 450*724ba675SRob Herring <0 0 0 3 &pcie1_intc 2>, 451*724ba675SRob Herring <0 0 0 4 &pcie1_intc 3>; 452*724ba675SRob Herring marvell,pcie-port = <0>; 453*724ba675SRob Herring marvell,pcie-lane = <0>; 454*724ba675SRob Herring clocks = <&gateclk 8>; 455*724ba675SRob Herring status = "disabled"; 456*724ba675SRob Herring 457*724ba675SRob Herring pcie1_intc: interrupt-controller { 458*724ba675SRob Herring interrupt-controller; 459*724ba675SRob Herring #interrupt-cells = <1>; 460*724ba675SRob Herring }; 461*724ba675SRob Herring }; 462*724ba675SRob Herring 463*724ba675SRob Herring /* x1 port */ 464*724ba675SRob Herring pcie@2,0 { 465*724ba675SRob Herring device_type = "pci"; 466*724ba675SRob Herring assigned-addresses = <0x82001000 0 0x40000 0 0x2000>; 467*724ba675SRob Herring reg = <0x1000 0 0 0 0>; 468*724ba675SRob Herring #address-cells = <3>; 469*724ba675SRob Herring #size-cells = <2>; 470*724ba675SRob Herring interrupt-names = "intx"; 471*724ba675SRob Herring interrupts-extended = <&gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 472*724ba675SRob Herring #interrupt-cells = <1>; 473*724ba675SRob Herring ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0 474*724ba675SRob Herring 0x81000000 0 0 0x81000000 0x2 0 1 0>; 475*724ba675SRob Herring bus-range = <0x00 0xff>; 476*724ba675SRob Herring interrupt-map-mask = <0 0 0 7>; 477*724ba675SRob Herring interrupt-map = <0 0 0 1 &pcie2_intc 0>, 478*724ba675SRob Herring <0 0 0 2 &pcie2_intc 1>, 479*724ba675SRob Herring <0 0 0 3 &pcie2_intc 2>, 480*724ba675SRob Herring <0 0 0 4 &pcie2_intc 3>; 481*724ba675SRob Herring marvell,pcie-port = <1>; 482*724ba675SRob Herring marvell,pcie-lane = <0>; 483*724ba675SRob Herring clocks = <&gateclk 5>; 484*724ba675SRob Herring status = "disabled"; 485*724ba675SRob Herring 486*724ba675SRob Herring pcie2_intc: interrupt-controller { 487*724ba675SRob Herring interrupt-controller; 488*724ba675SRob Herring #interrupt-cells = <1>; 489*724ba675SRob Herring }; 490*724ba675SRob Herring }; 491*724ba675SRob Herring 492*724ba675SRob Herring /* x1 port */ 493*724ba675SRob Herring pcie@3,0 { 494*724ba675SRob Herring device_type = "pci"; 495*724ba675SRob Herring assigned-addresses = <0x82001800 0 0x44000 0 0x2000>; 496*724ba675SRob Herring reg = <0x1800 0 0 0 0>; 497*724ba675SRob Herring #address-cells = <3>; 498*724ba675SRob Herring #size-cells = <2>; 499*724ba675SRob Herring interrupt-names = "intx"; 500*724ba675SRob Herring interrupts-extended = <&gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; 501*724ba675SRob Herring #interrupt-cells = <1>; 502*724ba675SRob Herring ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0 503*724ba675SRob Herring 0x81000000 0 0 0x81000000 0x3 0 1 0>; 504*724ba675SRob Herring bus-range = <0x00 0xff>; 505*724ba675SRob Herring interrupt-map-mask = <0 0 0 7>; 506*724ba675SRob Herring interrupt-map = <0 0 0 1 &pcie3_intc 0>, 507*724ba675SRob Herring <0 0 0 2 &pcie3_intc 1>, 508*724ba675SRob Herring <0 0 0 3 &pcie3_intc 2>, 509*724ba675SRob Herring <0 0 0 4 &pcie3_intc 3>; 510*724ba675SRob Herring marvell,pcie-port = <2>; 511*724ba675SRob Herring marvell,pcie-lane = <0>; 512*724ba675SRob Herring clocks = <&gateclk 6>; 513*724ba675SRob Herring status = "disabled"; 514*724ba675SRob Herring 515*724ba675SRob Herring pcie3_intc: interrupt-controller { 516*724ba675SRob Herring interrupt-controller; 517*724ba675SRob Herring #interrupt-cells = <1>; 518*724ba675SRob Herring }; 519*724ba675SRob Herring }; 520*724ba675SRob Herring 521*724ba675SRob Herring /* 522*724ba675SRob Herring * x1 port only available when pcie@1,0 is 523*724ba675SRob Herring * configured as a x1 port 524*724ba675SRob Herring */ 525*724ba675SRob Herring pcie@4,0 { 526*724ba675SRob Herring device_type = "pci"; 527*724ba675SRob Herring assigned-addresses = <0x82002000 0 0x48000 0 0x2000>; 528*724ba675SRob Herring reg = <0x2000 0 0 0 0>; 529*724ba675SRob Herring #address-cells = <3>; 530*724ba675SRob Herring #size-cells = <2>; 531*724ba675SRob Herring interrupt-names = "intx"; 532*724ba675SRob Herring interrupts-extended = <&gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 533*724ba675SRob Herring #interrupt-cells = <1>; 534*724ba675SRob Herring ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0 535*724ba675SRob Herring 0x81000000 0 0 0x81000000 0x4 0 1 0>; 536*724ba675SRob Herring bus-range = <0x00 0xff>; 537*724ba675SRob Herring interrupt-map-mask = <0 0 0 7>; 538*724ba675SRob Herring interrupt-map = <0 0 0 1 &pcie4_intc 0>, 539*724ba675SRob Herring <0 0 0 2 &pcie4_intc 1>, 540*724ba675SRob Herring <0 0 0 3 &pcie4_intc 2>, 541*724ba675SRob Herring <0 0 0 4 &pcie4_intc 3>; 542*724ba675SRob Herring marvell,pcie-port = <3>; 543*724ba675SRob Herring marvell,pcie-lane = <0>; 544*724ba675SRob Herring clocks = <&gateclk 7>; 545*724ba675SRob Herring status = "disabled"; 546*724ba675SRob Herring 547*724ba675SRob Herring pcie4_intc: interrupt-controller { 548*724ba675SRob Herring interrupt-controller; 549*724ba675SRob Herring #interrupt-cells = <1>; 550*724ba675SRob Herring }; 551*724ba675SRob Herring }; 552*724ba675SRob Herring }; 553*724ba675SRob Herring 554*724ba675SRob Herring spi0: spi@10600 { 555*724ba675SRob Herring compatible = "marvell,armada-390-spi", 556*724ba675SRob Herring "marvell,orion-spi"; 557*724ba675SRob Herring reg = <MBUS_ID(0xf0, 0x01) 0x10600 0x50>; 558*724ba675SRob Herring #address-cells = <1>; 559*724ba675SRob Herring #size-cells = <0>; 560*724ba675SRob Herring cell-index = <0>; 561*724ba675SRob Herring interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 562*724ba675SRob Herring clocks = <&coreclk 0>; 563*724ba675SRob Herring status = "disabled"; 564*724ba675SRob Herring }; 565*724ba675SRob Herring 566*724ba675SRob Herring spi1: spi@10680 { 567*724ba675SRob Herring compatible = "marvell,armada-390-spi", 568*724ba675SRob Herring "marvell,orion-spi"; 569*724ba675SRob Herring reg = <MBUS_ID(0xf0, 0x01) 0x10680 0x50>; 570*724ba675SRob Herring #address-cells = <1>; 571*724ba675SRob Herring #size-cells = <0>; 572*724ba675SRob Herring cell-index = <1>; 573*724ba675SRob Herring interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 574*724ba675SRob Herring clocks = <&coreclk 0>; 575*724ba675SRob Herring status = "disabled"; 576*724ba675SRob Herring }; 577*724ba675SRob Herring }; 578*724ba675SRob Herring 579*724ba675SRob Herring clocks { 580*724ba675SRob Herring /* 1 GHz fixed main PLL */ 581*724ba675SRob Herring mainpll: mainpll { 582*724ba675SRob Herring compatible = "fixed-clock"; 583*724ba675SRob Herring #clock-cells = <0>; 584*724ba675SRob Herring clock-frequency = <1000000000>; 585*724ba675SRob Herring }; 586*724ba675SRob Herring 587*724ba675SRob Herring /* 25 MHz reference crystal */ 588*724ba675SRob Herring refclk: oscillator { 589*724ba675SRob Herring compatible = "fixed-clock"; 590*724ba675SRob Herring #clock-cells = <0>; 591*724ba675SRob Herring clock-frequency = <25000000>; 592*724ba675SRob Herring }; 593*724ba675SRob Herring }; 594*724ba675SRob Herring}; 595