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