1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Device Tree Include file for Marvell Armada 375 family SoC 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2014 Marvell 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * Gregory CLEMENT <gregory.clement@free-electrons.com> 8*4882a593Smuzhiyun * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 12*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h> 13*4882a593Smuzhiyun#include <dt-bindings/phy/phy.h> 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun/ { 18*4882a593Smuzhiyun #address-cells = <1>; 19*4882a593Smuzhiyun #size-cells = <1>; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun model = "Marvell Armada 375 family SoC"; 22*4882a593Smuzhiyun compatible = "marvell,armada375"; 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun aliases { 25*4882a593Smuzhiyun gpio0 = &gpio0; 26*4882a593Smuzhiyun gpio1 = &gpio1; 27*4882a593Smuzhiyun gpio2 = &gpio2; 28*4882a593Smuzhiyun serial0 = &uart0; 29*4882a593Smuzhiyun serial1 = &uart1; 30*4882a593Smuzhiyun }; 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun clocks { 33*4882a593Smuzhiyun /* 1 GHz fixed main PLL */ 34*4882a593Smuzhiyun mainpll: mainpll { 35*4882a593Smuzhiyun compatible = "fixed-clock"; 36*4882a593Smuzhiyun #clock-cells = <0>; 37*4882a593Smuzhiyun clock-frequency = <1000000000>; 38*4882a593Smuzhiyun }; 39*4882a593Smuzhiyun /* 25 MHz reference crystal */ 40*4882a593Smuzhiyun refclk: oscillator { 41*4882a593Smuzhiyun compatible = "fixed-clock"; 42*4882a593Smuzhiyun #clock-cells = <0>; 43*4882a593Smuzhiyun clock-frequency = <25000000>; 44*4882a593Smuzhiyun }; 45*4882a593Smuzhiyun }; 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun cpus { 48*4882a593Smuzhiyun #address-cells = <1>; 49*4882a593Smuzhiyun #size-cells = <0>; 50*4882a593Smuzhiyun enable-method = "marvell,armada-375-smp"; 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun cpu0: cpu@0 { 53*4882a593Smuzhiyun device_type = "cpu"; 54*4882a593Smuzhiyun compatible = "arm,cortex-a9"; 55*4882a593Smuzhiyun reg = <0>; 56*4882a593Smuzhiyun }; 57*4882a593Smuzhiyun cpu1: cpu@1 { 58*4882a593Smuzhiyun device_type = "cpu"; 59*4882a593Smuzhiyun compatible = "arm,cortex-a9"; 60*4882a593Smuzhiyun reg = <1>; 61*4882a593Smuzhiyun }; 62*4882a593Smuzhiyun }; 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun pmu { 65*4882a593Smuzhiyun compatible = "arm,cortex-a9-pmu"; 66*4882a593Smuzhiyun interrupts-extended = <&mpic 3>; 67*4882a593Smuzhiyun }; 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun soc { 70*4882a593Smuzhiyun compatible = "marvell,armada375-mbus", "simple-bus"; 71*4882a593Smuzhiyun #address-cells = <2>; 72*4882a593Smuzhiyun #size-cells = <1>; 73*4882a593Smuzhiyun controller = <&mbusc>; 74*4882a593Smuzhiyun interrupt-parent = <&gic>; 75*4882a593Smuzhiyun pcie-mem-aperture = <0xe0000000 0x8000000>; 76*4882a593Smuzhiyun pcie-io-aperture = <0xe8000000 0x100000>; 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun bootrom { 79*4882a593Smuzhiyun compatible = "marvell,bootrom"; 80*4882a593Smuzhiyun reg = <MBUS_ID(0x01, 0x1d) 0 0x100000>; 81*4882a593Smuzhiyun }; 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun devbus_bootcs: devbus-bootcs { 84*4882a593Smuzhiyun compatible = "marvell,mvebu-devbus"; 85*4882a593Smuzhiyun reg = <MBUS_ID(0xf0, 0x01) 0x10400 0x8>; 86*4882a593Smuzhiyun ranges = <0 MBUS_ID(0x01, 0x2f) 0 0xffffffff>; 87*4882a593Smuzhiyun #address-cells = <1>; 88*4882a593Smuzhiyun #size-cells = <1>; 89*4882a593Smuzhiyun clocks = <&coreclk 0>; 90*4882a593Smuzhiyun status = "disabled"; 91*4882a593Smuzhiyun }; 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun devbus_cs0: devbus-cs0 { 94*4882a593Smuzhiyun compatible = "marvell,mvebu-devbus"; 95*4882a593Smuzhiyun reg = <MBUS_ID(0xf0, 0x01) 0x10408 0x8>; 96*4882a593Smuzhiyun ranges = <0 MBUS_ID(0x01, 0x3e) 0 0xffffffff>; 97*4882a593Smuzhiyun #address-cells = <1>; 98*4882a593Smuzhiyun #size-cells = <1>; 99*4882a593Smuzhiyun clocks = <&coreclk 0>; 100*4882a593Smuzhiyun status = "disabled"; 101*4882a593Smuzhiyun }; 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun devbus_cs1: devbus-cs1 { 104*4882a593Smuzhiyun compatible = "marvell,mvebu-devbus"; 105*4882a593Smuzhiyun reg = <MBUS_ID(0xf0, 0x01) 0x10410 0x8>; 106*4882a593Smuzhiyun ranges = <0 MBUS_ID(0x01, 0x3d) 0 0xffffffff>; 107*4882a593Smuzhiyun #address-cells = <1>; 108*4882a593Smuzhiyun #size-cells = <1>; 109*4882a593Smuzhiyun clocks = <&coreclk 0>; 110*4882a593Smuzhiyun status = "disabled"; 111*4882a593Smuzhiyun }; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun devbus_cs2: devbus-cs2 { 114*4882a593Smuzhiyun compatible = "marvell,mvebu-devbus"; 115*4882a593Smuzhiyun reg = <MBUS_ID(0xf0, 0x01) 0x10418 0x8>; 116*4882a593Smuzhiyun ranges = <0 MBUS_ID(0x01, 0x3b) 0 0xffffffff>; 117*4882a593Smuzhiyun #address-cells = <1>; 118*4882a593Smuzhiyun #size-cells = <1>; 119*4882a593Smuzhiyun clocks = <&coreclk 0>; 120*4882a593Smuzhiyun status = "disabled"; 121*4882a593Smuzhiyun }; 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun devbus_cs3: devbus-cs3 { 124*4882a593Smuzhiyun compatible = "marvell,mvebu-devbus"; 125*4882a593Smuzhiyun reg = <MBUS_ID(0xf0, 0x01) 0x10420 0x8>; 126*4882a593Smuzhiyun ranges = <0 MBUS_ID(0x01, 0x37) 0 0xffffffff>; 127*4882a593Smuzhiyun #address-cells = <1>; 128*4882a593Smuzhiyun #size-cells = <1>; 129*4882a593Smuzhiyun clocks = <&coreclk 0>; 130*4882a593Smuzhiyun status = "disabled"; 131*4882a593Smuzhiyun }; 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun internal-regs { 134*4882a593Smuzhiyun compatible = "simple-bus"; 135*4882a593Smuzhiyun #address-cells = <1>; 136*4882a593Smuzhiyun #size-cells = <1>; 137*4882a593Smuzhiyun ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>; 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun L2: cache-controller@8000 { 140*4882a593Smuzhiyun compatible = "arm,pl310-cache"; 141*4882a593Smuzhiyun reg = <0x8000 0x1000>; 142*4882a593Smuzhiyun cache-unified; 143*4882a593Smuzhiyun cache-level = <2>; 144*4882a593Smuzhiyun arm,double-linefill-incr = <0>; 145*4882a593Smuzhiyun arm,double-linefill-wrap = <0>; 146*4882a593Smuzhiyun arm,double-linefill = <0>; 147*4882a593Smuzhiyun prefetch-data = <1>; 148*4882a593Smuzhiyun }; 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun scu: scu@c000 { 151*4882a593Smuzhiyun compatible = "arm,cortex-a9-scu"; 152*4882a593Smuzhiyun reg = <0xc000 0x58>; 153*4882a593Smuzhiyun }; 154*4882a593Smuzhiyun 155*4882a593Smuzhiyun timer0: timer@c600 { 156*4882a593Smuzhiyun compatible = "arm,cortex-a9-twd-timer"; 157*4882a593Smuzhiyun reg = <0xc600 0x20>; 158*4882a593Smuzhiyun interrupts = <GIC_PPI 13 (IRQ_TYPE_EDGE_RISING | GIC_CPU_MASK_SIMPLE(2))>; 159*4882a593Smuzhiyun clocks = <&coreclk 2>; 160*4882a593Smuzhiyun }; 161*4882a593Smuzhiyun 162*4882a593Smuzhiyun gic: interrupt-controller@d000 { 163*4882a593Smuzhiyun compatible = "arm,cortex-a9-gic"; 164*4882a593Smuzhiyun #interrupt-cells = <3>; 165*4882a593Smuzhiyun #size-cells = <0>; 166*4882a593Smuzhiyun interrupt-controller; 167*4882a593Smuzhiyun reg = <0xd000 0x1000>, 168*4882a593Smuzhiyun <0xc100 0x100>; 169*4882a593Smuzhiyun }; 170*4882a593Smuzhiyun 171*4882a593Smuzhiyun mdio: mdio@c0054 { 172*4882a593Smuzhiyun #address-cells = <1>; 173*4882a593Smuzhiyun #size-cells = <0>; 174*4882a593Smuzhiyun compatible = "marvell,orion-mdio"; 175*4882a593Smuzhiyun reg = <0xc0054 0x4>; 176*4882a593Smuzhiyun clocks = <&gateclk 19>; 177*4882a593Smuzhiyun }; 178*4882a593Smuzhiyun 179*4882a593Smuzhiyun /* Network controller */ 180*4882a593Smuzhiyun ethernet: ethernet@f0000 { 181*4882a593Smuzhiyun compatible = "marvell,armada-375-pp2"; 182*4882a593Smuzhiyun reg = <0xf0000 0xa000>, /* Packet Processor regs */ 183*4882a593Smuzhiyun <0xc0000 0x3060>, /* LMS regs */ 184*4882a593Smuzhiyun <0xc4000 0x100>, /* eth0 regs */ 185*4882a593Smuzhiyun <0xc5000 0x100>; /* eth1 regs */ 186*4882a593Smuzhiyun clocks = <&gateclk 3>, <&gateclk 19>; 187*4882a593Smuzhiyun clock-names = "pp_clk", "gop_clk"; 188*4882a593Smuzhiyun status = "disabled"; 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun eth0: eth0 { 191*4882a593Smuzhiyun interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 192*4882a593Smuzhiyun port-id = <0>; 193*4882a593Smuzhiyun status = "disabled"; 194*4882a593Smuzhiyun }; 195*4882a593Smuzhiyun 196*4882a593Smuzhiyun eth1: eth1 { 197*4882a593Smuzhiyun interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 198*4882a593Smuzhiyun port-id = <1>; 199*4882a593Smuzhiyun status = "disabled"; 200*4882a593Smuzhiyun }; 201*4882a593Smuzhiyun }; 202*4882a593Smuzhiyun 203*4882a593Smuzhiyun rtc: rtc@10300 { 204*4882a593Smuzhiyun compatible = "marvell,orion-rtc"; 205*4882a593Smuzhiyun reg = <0x10300 0x20>; 206*4882a593Smuzhiyun interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 207*4882a593Smuzhiyun }; 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun spi0: spi@10600 { 210*4882a593Smuzhiyun compatible = "marvell,armada-375-spi", 211*4882a593Smuzhiyun "marvell,orion-spi"; 212*4882a593Smuzhiyun reg = <0x10600 0x50>; 213*4882a593Smuzhiyun #address-cells = <1>; 214*4882a593Smuzhiyun #size-cells = <0>; 215*4882a593Smuzhiyun cell-index = <0>; 216*4882a593Smuzhiyun interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 217*4882a593Smuzhiyun clocks = <&coreclk 0>; 218*4882a593Smuzhiyun status = "disabled"; 219*4882a593Smuzhiyun }; 220*4882a593Smuzhiyun 221*4882a593Smuzhiyun spi1: spi@10680 { 222*4882a593Smuzhiyun compatible = "marvell,armada-375-spi", 223*4882a593Smuzhiyun "marvell,orion-spi"; 224*4882a593Smuzhiyun reg = <0x10680 0x50>; 225*4882a593Smuzhiyun #address-cells = <1>; 226*4882a593Smuzhiyun #size-cells = <0>; 227*4882a593Smuzhiyun cell-index = <1>; 228*4882a593Smuzhiyun interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 229*4882a593Smuzhiyun clocks = <&coreclk 0>; 230*4882a593Smuzhiyun status = "disabled"; 231*4882a593Smuzhiyun }; 232*4882a593Smuzhiyun 233*4882a593Smuzhiyun i2c0: i2c@11000 { 234*4882a593Smuzhiyun compatible = "marvell,mv64xxx-i2c"; 235*4882a593Smuzhiyun reg = <0x11000 0x20>; 236*4882a593Smuzhiyun #address-cells = <1>; 237*4882a593Smuzhiyun #size-cells = <0>; 238*4882a593Smuzhiyun interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 239*4882a593Smuzhiyun clocks = <&coreclk 0>; 240*4882a593Smuzhiyun status = "disabled"; 241*4882a593Smuzhiyun }; 242*4882a593Smuzhiyun 243*4882a593Smuzhiyun i2c1: i2c@11100 { 244*4882a593Smuzhiyun compatible = "marvell,mv64xxx-i2c"; 245*4882a593Smuzhiyun reg = <0x11100 0x20>; 246*4882a593Smuzhiyun #address-cells = <1>; 247*4882a593Smuzhiyun #size-cells = <0>; 248*4882a593Smuzhiyun interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 249*4882a593Smuzhiyun clocks = <&coreclk 0>; 250*4882a593Smuzhiyun status = "disabled"; 251*4882a593Smuzhiyun }; 252*4882a593Smuzhiyun 253*4882a593Smuzhiyun uart0: serial@12000 { 254*4882a593Smuzhiyun compatible = "snps,dw-apb-uart"; 255*4882a593Smuzhiyun reg = <0x12000 0x100>; 256*4882a593Smuzhiyun reg-shift = <2>; 257*4882a593Smuzhiyun interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 258*4882a593Smuzhiyun reg-io-width = <1>; 259*4882a593Smuzhiyun clocks = <&coreclk 0>; 260*4882a593Smuzhiyun status = "disabled"; 261*4882a593Smuzhiyun }; 262*4882a593Smuzhiyun 263*4882a593Smuzhiyun uart1: serial@12100 { 264*4882a593Smuzhiyun compatible = "snps,dw-apb-uart"; 265*4882a593Smuzhiyun reg = <0x12100 0x100>; 266*4882a593Smuzhiyun reg-shift = <2>; 267*4882a593Smuzhiyun interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 268*4882a593Smuzhiyun reg-io-width = <1>; 269*4882a593Smuzhiyun clocks = <&coreclk 0>; 270*4882a593Smuzhiyun status = "disabled"; 271*4882a593Smuzhiyun }; 272*4882a593Smuzhiyun 273*4882a593Smuzhiyun pinctrl: pinctrl@18000 { 274*4882a593Smuzhiyun compatible = "marvell,mv88f6720-pinctrl"; 275*4882a593Smuzhiyun reg = <0x18000 0x24>; 276*4882a593Smuzhiyun 277*4882a593Smuzhiyun i2c0_pins: i2c0-pins { 278*4882a593Smuzhiyun marvell,pins = "mpp14", "mpp15"; 279*4882a593Smuzhiyun marvell,function = "i2c0"; 280*4882a593Smuzhiyun }; 281*4882a593Smuzhiyun 282*4882a593Smuzhiyun i2c1_pins: i2c1-pins { 283*4882a593Smuzhiyun marvell,pins = "mpp61", "mpp62"; 284*4882a593Smuzhiyun marvell,function = "i2c1"; 285*4882a593Smuzhiyun }; 286*4882a593Smuzhiyun 287*4882a593Smuzhiyun nand_pins: nand-pins { 288*4882a593Smuzhiyun marvell,pins = "mpp0", "mpp1", "mpp2", 289*4882a593Smuzhiyun "mpp3", "mpp4", "mpp5", 290*4882a593Smuzhiyun "mpp6", "mpp7", "mpp8", 291*4882a593Smuzhiyun "mpp9", "mpp10", "mpp11", 292*4882a593Smuzhiyun "mpp12", "mpp13"; 293*4882a593Smuzhiyun marvell,function = "nand"; 294*4882a593Smuzhiyun }; 295*4882a593Smuzhiyun 296*4882a593Smuzhiyun sdio_pins: sdio-pins { 297*4882a593Smuzhiyun marvell,pins = "mpp24", "mpp25", "mpp26", 298*4882a593Smuzhiyun "mpp27", "mpp28", "mpp29"; 299*4882a593Smuzhiyun marvell,function = "sd"; 300*4882a593Smuzhiyun }; 301*4882a593Smuzhiyun 302*4882a593Smuzhiyun spi0_pins: spi0-pins { 303*4882a593Smuzhiyun marvell,pins = "mpp0", "mpp1", "mpp4", 304*4882a593Smuzhiyun "mpp5", "mpp8", "mpp9"; 305*4882a593Smuzhiyun marvell,function = "spi0"; 306*4882a593Smuzhiyun }; 307*4882a593Smuzhiyun }; 308*4882a593Smuzhiyun 309*4882a593Smuzhiyun gpio0: gpio@18100 { 310*4882a593Smuzhiyun compatible = "marvell,orion-gpio"; 311*4882a593Smuzhiyun reg = <0x18100 0x40>; 312*4882a593Smuzhiyun ngpios = <32>; 313*4882a593Smuzhiyun gpio-controller; 314*4882a593Smuzhiyun #gpio-cells = <2>; 315*4882a593Smuzhiyun interrupt-controller; 316*4882a593Smuzhiyun #interrupt-cells = <2>; 317*4882a593Smuzhiyun interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 318*4882a593Smuzhiyun <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 319*4882a593Smuzhiyun <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 320*4882a593Smuzhiyun <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; 321*4882a593Smuzhiyun }; 322*4882a593Smuzhiyun 323*4882a593Smuzhiyun gpio1: gpio@18140 { 324*4882a593Smuzhiyun compatible = "marvell,orion-gpio"; 325*4882a593Smuzhiyun reg = <0x18140 0x40>; 326*4882a593Smuzhiyun ngpios = <32>; 327*4882a593Smuzhiyun gpio-controller; 328*4882a593Smuzhiyun #gpio-cells = <2>; 329*4882a593Smuzhiyun interrupt-controller; 330*4882a593Smuzhiyun #interrupt-cells = <2>; 331*4882a593Smuzhiyun interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 332*4882a593Smuzhiyun <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 333*4882a593Smuzhiyun <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, 334*4882a593Smuzhiyun <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 335*4882a593Smuzhiyun }; 336*4882a593Smuzhiyun 337*4882a593Smuzhiyun gpio2: gpio@18180 { 338*4882a593Smuzhiyun compatible = "marvell,orion-gpio"; 339*4882a593Smuzhiyun reg = <0x18180 0x40>; 340*4882a593Smuzhiyun ngpios = <3>; 341*4882a593Smuzhiyun gpio-controller; 342*4882a593Smuzhiyun #gpio-cells = <2>; 343*4882a593Smuzhiyun interrupt-controller; 344*4882a593Smuzhiyun #interrupt-cells = <2>; 345*4882a593Smuzhiyun interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 346*4882a593Smuzhiyun }; 347*4882a593Smuzhiyun 348*4882a593Smuzhiyun systemc: system-controller@18200 { 349*4882a593Smuzhiyun compatible = "marvell,armada-375-system-controller"; 350*4882a593Smuzhiyun reg = <0x18200 0x100>; 351*4882a593Smuzhiyun }; 352*4882a593Smuzhiyun 353*4882a593Smuzhiyun gateclk: clock-gating-control@18220 { 354*4882a593Smuzhiyun compatible = "marvell,armada-375-gating-clock"; 355*4882a593Smuzhiyun reg = <0x18220 0x4>; 356*4882a593Smuzhiyun clocks = <&coreclk 0>; 357*4882a593Smuzhiyun #clock-cells = <1>; 358*4882a593Smuzhiyun }; 359*4882a593Smuzhiyun 360*4882a593Smuzhiyun usbcluster: usb-cluster@18400 { 361*4882a593Smuzhiyun compatible = "marvell,armada-375-usb-cluster"; 362*4882a593Smuzhiyun reg = <0x18400 0x4>; 363*4882a593Smuzhiyun #phy-cells = <1>; 364*4882a593Smuzhiyun }; 365*4882a593Smuzhiyun 366*4882a593Smuzhiyun mbusc: mbus-controller@20000 { 367*4882a593Smuzhiyun compatible = "marvell,mbus-controller"; 368*4882a593Smuzhiyun reg = <0x20000 0x100>, <0x20180 0x20>; 369*4882a593Smuzhiyun }; 370*4882a593Smuzhiyun 371*4882a593Smuzhiyun mpic: interrupt-controller@20a00 { 372*4882a593Smuzhiyun compatible = "marvell,mpic"; 373*4882a593Smuzhiyun reg = <0x20a00 0x2d0>, <0x21070 0x58>; 374*4882a593Smuzhiyun #interrupt-cells = <1>; 375*4882a593Smuzhiyun #size-cells = <1>; 376*4882a593Smuzhiyun interrupt-controller; 377*4882a593Smuzhiyun msi-controller; 378*4882a593Smuzhiyun interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>; 379*4882a593Smuzhiyun }; 380*4882a593Smuzhiyun 381*4882a593Smuzhiyun timer1: timer@20300 { 382*4882a593Smuzhiyun compatible = "marvell,armada-375-timer", "marvell,armada-370-timer"; 383*4882a593Smuzhiyun reg = <0x20300 0x30>, <0x21040 0x30>; 384*4882a593Smuzhiyun interrupts-extended = <&gic GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 385*4882a593Smuzhiyun <&gic GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, 386*4882a593Smuzhiyun <&gic GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, 387*4882a593Smuzhiyun <&gic GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 388*4882a593Smuzhiyun <&mpic 5>, 389*4882a593Smuzhiyun <&mpic 6>; 390*4882a593Smuzhiyun clocks = <&coreclk 0>, <&refclk>; 391*4882a593Smuzhiyun clock-names = "nbclk", "fixed"; 392*4882a593Smuzhiyun }; 393*4882a593Smuzhiyun 394*4882a593Smuzhiyun watchdog: watchdog@20300 { 395*4882a593Smuzhiyun compatible = "marvell,armada-375-wdt"; 396*4882a593Smuzhiyun reg = <0x20300 0x34>, <0x20704 0x4>, <0x18254 0x4>; 397*4882a593Smuzhiyun clocks = <&coreclk 0>, <&refclk>; 398*4882a593Smuzhiyun clock-names = "nbclk", "fixed"; 399*4882a593Smuzhiyun }; 400*4882a593Smuzhiyun 401*4882a593Smuzhiyun cpurst: cpurst@20800 { 402*4882a593Smuzhiyun compatible = "marvell,armada-370-cpu-reset"; 403*4882a593Smuzhiyun reg = <0x20800 0x10>; 404*4882a593Smuzhiyun }; 405*4882a593Smuzhiyun 406*4882a593Smuzhiyun coherencyfab: coherency-fabric@21010 { 407*4882a593Smuzhiyun compatible = "marvell,armada-375-coherency-fabric"; 408*4882a593Smuzhiyun reg = <0x21010 0x1c>; 409*4882a593Smuzhiyun }; 410*4882a593Smuzhiyun 411*4882a593Smuzhiyun usb0: usb@50000 { 412*4882a593Smuzhiyun compatible = "marvell,orion-ehci"; 413*4882a593Smuzhiyun reg = <0x50000 0x500>; 414*4882a593Smuzhiyun interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 415*4882a593Smuzhiyun clocks = <&gateclk 18>; 416*4882a593Smuzhiyun phys = <&usbcluster PHY_TYPE_USB2>; 417*4882a593Smuzhiyun phy-names = "usb"; 418*4882a593Smuzhiyun status = "disabled"; 419*4882a593Smuzhiyun }; 420*4882a593Smuzhiyun 421*4882a593Smuzhiyun usb1: usb@54000 { 422*4882a593Smuzhiyun compatible = "marvell,orion-ehci"; 423*4882a593Smuzhiyun reg = <0x54000 0x500>; 424*4882a593Smuzhiyun interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 425*4882a593Smuzhiyun clocks = <&gateclk 26>; 426*4882a593Smuzhiyun status = "disabled"; 427*4882a593Smuzhiyun }; 428*4882a593Smuzhiyun 429*4882a593Smuzhiyun usb2: usb3@58000 { 430*4882a593Smuzhiyun compatible = "marvell,armada-375-xhci"; 431*4882a593Smuzhiyun reg = <0x58000 0x20000>,<0x5b880 0x80>; 432*4882a593Smuzhiyun interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 433*4882a593Smuzhiyun clocks = <&gateclk 16>; 434*4882a593Smuzhiyun phys = <&usbcluster PHY_TYPE_USB3>; 435*4882a593Smuzhiyun phy-names = "usb"; 436*4882a593Smuzhiyun status = "disabled"; 437*4882a593Smuzhiyun }; 438*4882a593Smuzhiyun 439*4882a593Smuzhiyun xor0: xor@60800 { 440*4882a593Smuzhiyun compatible = "marvell,orion-xor"; 441*4882a593Smuzhiyun reg = <0x60800 0x100 442*4882a593Smuzhiyun 0x60A00 0x100>; 443*4882a593Smuzhiyun clocks = <&gateclk 22>; 444*4882a593Smuzhiyun status = "okay"; 445*4882a593Smuzhiyun 446*4882a593Smuzhiyun xor00 { 447*4882a593Smuzhiyun interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 448*4882a593Smuzhiyun dmacap,memcpy; 449*4882a593Smuzhiyun dmacap,xor; 450*4882a593Smuzhiyun }; 451*4882a593Smuzhiyun xor01 { 452*4882a593Smuzhiyun interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 453*4882a593Smuzhiyun dmacap,memcpy; 454*4882a593Smuzhiyun dmacap,xor; 455*4882a593Smuzhiyun dmacap,memset; 456*4882a593Smuzhiyun }; 457*4882a593Smuzhiyun }; 458*4882a593Smuzhiyun 459*4882a593Smuzhiyun xor1: xor@60900 { 460*4882a593Smuzhiyun compatible = "marvell,orion-xor"; 461*4882a593Smuzhiyun reg = <0x60900 0x100 462*4882a593Smuzhiyun 0x60b00 0x100>; 463*4882a593Smuzhiyun clocks = <&gateclk 23>; 464*4882a593Smuzhiyun status = "okay"; 465*4882a593Smuzhiyun 466*4882a593Smuzhiyun xor10 { 467*4882a593Smuzhiyun interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 468*4882a593Smuzhiyun dmacap,memcpy; 469*4882a593Smuzhiyun dmacap,xor; 470*4882a593Smuzhiyun }; 471*4882a593Smuzhiyun xor11 { 472*4882a593Smuzhiyun interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 473*4882a593Smuzhiyun dmacap,memcpy; 474*4882a593Smuzhiyun dmacap,xor; 475*4882a593Smuzhiyun dmacap,memset; 476*4882a593Smuzhiyun }; 477*4882a593Smuzhiyun }; 478*4882a593Smuzhiyun 479*4882a593Smuzhiyun cesa: crypto@90000 { 480*4882a593Smuzhiyun compatible = "marvell,armada-375-crypto"; 481*4882a593Smuzhiyun reg = <0x90000 0x10000>; 482*4882a593Smuzhiyun reg-names = "regs"; 483*4882a593Smuzhiyun interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 484*4882a593Smuzhiyun <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 485*4882a593Smuzhiyun clocks = <&gateclk 30>, <&gateclk 31>, 486*4882a593Smuzhiyun <&gateclk 28>, <&gateclk 29>; 487*4882a593Smuzhiyun clock-names = "cesa0", "cesa1", 488*4882a593Smuzhiyun "cesaz0", "cesaz1"; 489*4882a593Smuzhiyun marvell,crypto-srams = <&crypto_sram0>, 490*4882a593Smuzhiyun <&crypto_sram1>; 491*4882a593Smuzhiyun marvell,crypto-sram-size = <0x800>; 492*4882a593Smuzhiyun }; 493*4882a593Smuzhiyun 494*4882a593Smuzhiyun sata: sata@a0000 { 495*4882a593Smuzhiyun compatible = "marvell,armada-370-sata"; 496*4882a593Smuzhiyun reg = <0xa0000 0x5000>; 497*4882a593Smuzhiyun interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 498*4882a593Smuzhiyun clocks = <&gateclk 14>, <&gateclk 20>; 499*4882a593Smuzhiyun clock-names = "0", "1"; 500*4882a593Smuzhiyun status = "disabled"; 501*4882a593Smuzhiyun }; 502*4882a593Smuzhiyun 503*4882a593Smuzhiyun nand_controller: nand-controller@d0000 { 504*4882a593Smuzhiyun compatible = "marvell,armada370-nand-controller"; 505*4882a593Smuzhiyun reg = <0xd0000 0x54>; 506*4882a593Smuzhiyun #address-cells = <1>; 507*4882a593Smuzhiyun #size-cells = <0>; 508*4882a593Smuzhiyun interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 509*4882a593Smuzhiyun clocks = <&gateclk 11>; 510*4882a593Smuzhiyun status = "disabled"; 511*4882a593Smuzhiyun }; 512*4882a593Smuzhiyun 513*4882a593Smuzhiyun sdio: mvsdio@d4000 { 514*4882a593Smuzhiyun compatible = "marvell,orion-sdio"; 515*4882a593Smuzhiyun reg = <0xd4000 0x200>; 516*4882a593Smuzhiyun interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 517*4882a593Smuzhiyun clocks = <&gateclk 17>; 518*4882a593Smuzhiyun bus-width = <4>; 519*4882a593Smuzhiyun cap-sdio-irq; 520*4882a593Smuzhiyun cap-sd-highspeed; 521*4882a593Smuzhiyun cap-mmc-highspeed; 522*4882a593Smuzhiyun status = "disabled"; 523*4882a593Smuzhiyun }; 524*4882a593Smuzhiyun 525*4882a593Smuzhiyun thermal: thermal@e8078 { 526*4882a593Smuzhiyun compatible = "marvell,armada375-thermal"; 527*4882a593Smuzhiyun reg = <0xe8078 0x4>, <0xe807c 0x8>; 528*4882a593Smuzhiyun status = "okay"; 529*4882a593Smuzhiyun }; 530*4882a593Smuzhiyun 531*4882a593Smuzhiyun coreclk: mvebu-sar@e8204 { 532*4882a593Smuzhiyun compatible = "marvell,armada-375-core-clock"; 533*4882a593Smuzhiyun reg = <0xe8204 0x04>; 534*4882a593Smuzhiyun #clock-cells = <1>; 535*4882a593Smuzhiyun }; 536*4882a593Smuzhiyun 537*4882a593Smuzhiyun coredivclk: corediv-clock@e8250 { 538*4882a593Smuzhiyun compatible = "marvell,armada-375-corediv-clock"; 539*4882a593Smuzhiyun reg = <0xe8250 0xc>; 540*4882a593Smuzhiyun #clock-cells = <1>; 541*4882a593Smuzhiyun clocks = <&mainpll>; 542*4882a593Smuzhiyun clock-output-names = "nand"; 543*4882a593Smuzhiyun }; 544*4882a593Smuzhiyun }; 545*4882a593Smuzhiyun 546*4882a593Smuzhiyun pciec: pcie@82000000 { 547*4882a593Smuzhiyun compatible = "marvell,armada-370-pcie"; 548*4882a593Smuzhiyun status = "disabled"; 549*4882a593Smuzhiyun device_type = "pci"; 550*4882a593Smuzhiyun 551*4882a593Smuzhiyun #address-cells = <3>; 552*4882a593Smuzhiyun #size-cells = <2>; 553*4882a593Smuzhiyun 554*4882a593Smuzhiyun msi-parent = <&mpic>; 555*4882a593Smuzhiyun bus-range = <0x00 0xff>; 556*4882a593Smuzhiyun 557*4882a593Smuzhiyun ranges = 558*4882a593Smuzhiyun <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 559*4882a593Smuzhiyun 0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000 560*4882a593Smuzhiyun 0x82000000 0x1 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0 MEM */ 561*4882a593Smuzhiyun 0x81000000 0x1 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0 IO */ 562*4882a593Smuzhiyun 0x82000000 0x2 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 1 MEM */ 563*4882a593Smuzhiyun 0x81000000 0x2 0 MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 1 IO */>; 564*4882a593Smuzhiyun 565*4882a593Smuzhiyun pcie0: pcie@1,0 { 566*4882a593Smuzhiyun device_type = "pci"; 567*4882a593Smuzhiyun assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; 568*4882a593Smuzhiyun reg = <0x0800 0 0 0 0>; 569*4882a593Smuzhiyun #address-cells = <3>; 570*4882a593Smuzhiyun #size-cells = <2>; 571*4882a593Smuzhiyun #interrupt-cells = <1>; 572*4882a593Smuzhiyun ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0 573*4882a593Smuzhiyun 0x81000000 0 0 0x81000000 0x1 0 1 0>; 574*4882a593Smuzhiyun bus-range = <0x00 0xff>; 575*4882a593Smuzhiyun interrupt-map-mask = <0 0 0 0>; 576*4882a593Smuzhiyun interrupt-map = <0 0 0 0 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 577*4882a593Smuzhiyun marvell,pcie-port = <0>; 578*4882a593Smuzhiyun marvell,pcie-lane = <0>; 579*4882a593Smuzhiyun clocks = <&gateclk 5>; 580*4882a593Smuzhiyun status = "disabled"; 581*4882a593Smuzhiyun }; 582*4882a593Smuzhiyun 583*4882a593Smuzhiyun pcie1: pcie@2,0 { 584*4882a593Smuzhiyun device_type = "pci"; 585*4882a593Smuzhiyun assigned-addresses = <0x82000800 0 0x44000 0 0x2000>; 586*4882a593Smuzhiyun reg = <0x1000 0 0 0 0>; 587*4882a593Smuzhiyun #address-cells = <3>; 588*4882a593Smuzhiyun #size-cells = <2>; 589*4882a593Smuzhiyun #interrupt-cells = <1>; 590*4882a593Smuzhiyun ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0 591*4882a593Smuzhiyun 0x81000000 0 0 0x81000000 0x2 0 1 0>; 592*4882a593Smuzhiyun bus-range = <0x00 0xff>; 593*4882a593Smuzhiyun interrupt-map-mask = <0 0 0 0>; 594*4882a593Smuzhiyun interrupt-map = <0 0 0 0 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 595*4882a593Smuzhiyun marvell,pcie-port = <0>; 596*4882a593Smuzhiyun marvell,pcie-lane = <1>; 597*4882a593Smuzhiyun clocks = <&gateclk 6>; 598*4882a593Smuzhiyun status = "disabled"; 599*4882a593Smuzhiyun }; 600*4882a593Smuzhiyun 601*4882a593Smuzhiyun }; 602*4882a593Smuzhiyun 603*4882a593Smuzhiyun crypto_sram0: sa-sram0 { 604*4882a593Smuzhiyun compatible = "mmio-sram"; 605*4882a593Smuzhiyun reg = <MBUS_ID(0x09, 0x09) 0 0x800>; 606*4882a593Smuzhiyun clocks = <&gateclk 30>; 607*4882a593Smuzhiyun #address-cells = <1>; 608*4882a593Smuzhiyun #size-cells = <1>; 609*4882a593Smuzhiyun ranges = <0 MBUS_ID(0x09, 0x09) 0 0x800>; 610*4882a593Smuzhiyun }; 611*4882a593Smuzhiyun 612*4882a593Smuzhiyun crypto_sram1: sa-sram1 { 613*4882a593Smuzhiyun compatible = "mmio-sram"; 614*4882a593Smuzhiyun reg = <MBUS_ID(0x09, 0x05) 0 0x800>; 615*4882a593Smuzhiyun clocks = <&gateclk 31>; 616*4882a593Smuzhiyun #address-cells = <1>; 617*4882a593Smuzhiyun #size-cells = <1>; 618*4882a593Smuzhiyun ranges = <0 MBUS_ID(0x09, 0x05) 0 0x800>; 619*4882a593Smuzhiyun }; 620*4882a593Smuzhiyun }; 621*4882a593Smuzhiyun}; 622