1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*724ba675SRob Herring/* 3*724ba675SRob Herring * Device Tree Include file for Marvell Armada 370 and Armada XP SoC 4*724ba675SRob Herring * 5*724ba675SRob Herring * Copyright (C) 2012 Marvell 6*724ba675SRob Herring * 7*724ba675SRob Herring * Lior Amsalem <alior@marvell.com> 8*724ba675SRob Herring * Gregory CLEMENT <gregory.clement@free-electrons.com> 9*724ba675SRob Herring * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 10*724ba675SRob Herring * Ben Dooks <ben.dooks@codethink.co.uk> 11*724ba675SRob Herring * 12*724ba675SRob Herring * This file contains the definitions that are common to the Armada 13*724ba675SRob Herring * 370 and Armada XP SoC. 14*724ba675SRob Herring */ 15*724ba675SRob Herring 16*724ba675SRob Herring#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) 17*724ba675SRob Herring 18*724ba675SRob Herring/ { 19*724ba675SRob Herring model = "Marvell Armada 370 and XP SoC"; 20*724ba675SRob Herring compatible = "marvell,armada-370-xp"; 21*724ba675SRob Herring 22*724ba675SRob Herring aliases { 23*724ba675SRob Herring serial0 = &uart0; 24*724ba675SRob Herring serial1 = &uart1; 25*724ba675SRob Herring }; 26*724ba675SRob Herring 27*724ba675SRob Herring cpus { 28*724ba675SRob Herring #address-cells = <1>; 29*724ba675SRob Herring #size-cells = <0>; 30*724ba675SRob Herring cpu@0 { 31*724ba675SRob Herring compatible = "marvell,sheeva-v7"; 32*724ba675SRob Herring device_type = "cpu"; 33*724ba675SRob Herring reg = <0>; 34*724ba675SRob Herring }; 35*724ba675SRob Herring }; 36*724ba675SRob Herring 37*724ba675SRob Herring pmu { 38*724ba675SRob Herring compatible = "arm,cortex-a9-pmu"; 39*724ba675SRob Herring interrupts-extended = <&mpic 3>; 40*724ba675SRob Herring }; 41*724ba675SRob Herring 42*724ba675SRob Herring soc { 43*724ba675SRob Herring #address-cells = <2>; 44*724ba675SRob Herring #size-cells = <1>; 45*724ba675SRob Herring controller = <&mbusc>; 46*724ba675SRob Herring interrupt-parent = <&mpic>; 47*724ba675SRob Herring pcie-mem-aperture = <0xf8000000 0x7e00000>; 48*724ba675SRob Herring pcie-io-aperture = <0xffe00000 0x100000>; 49*724ba675SRob Herring 50*724ba675SRob Herring devbus_bootcs: devbus-bootcs { 51*724ba675SRob Herring compatible = "marvell,mvebu-devbus"; 52*724ba675SRob Herring reg = <MBUS_ID(0xf0, 0x01) 0x10400 0x8>; 53*724ba675SRob Herring ranges = <0 MBUS_ID(0x01, 0x2f) 0 0xffffffff>; 54*724ba675SRob Herring #address-cells = <1>; 55*724ba675SRob Herring #size-cells = <1>; 56*724ba675SRob Herring clocks = <&coreclk 0>; 57*724ba675SRob Herring status = "disabled"; 58*724ba675SRob Herring }; 59*724ba675SRob Herring 60*724ba675SRob Herring devbus_cs0: devbus-cs0 { 61*724ba675SRob Herring compatible = "marvell,mvebu-devbus"; 62*724ba675SRob Herring reg = <MBUS_ID(0xf0, 0x01) 0x10408 0x8>; 63*724ba675SRob Herring ranges = <0 MBUS_ID(0x01, 0x3e) 0 0xffffffff>; 64*724ba675SRob Herring #address-cells = <1>; 65*724ba675SRob Herring #size-cells = <1>; 66*724ba675SRob Herring clocks = <&coreclk 0>; 67*724ba675SRob Herring status = "disabled"; 68*724ba675SRob Herring }; 69*724ba675SRob Herring 70*724ba675SRob Herring devbus_cs1: devbus-cs1 { 71*724ba675SRob Herring compatible = "marvell,mvebu-devbus"; 72*724ba675SRob Herring reg = <MBUS_ID(0xf0, 0x01) 0x10410 0x8>; 73*724ba675SRob Herring ranges = <0 MBUS_ID(0x01, 0x3d) 0 0xffffffff>; 74*724ba675SRob Herring #address-cells = <1>; 75*724ba675SRob Herring #size-cells = <1>; 76*724ba675SRob Herring clocks = <&coreclk 0>; 77*724ba675SRob Herring status = "disabled"; 78*724ba675SRob Herring }; 79*724ba675SRob Herring 80*724ba675SRob Herring devbus_cs2: devbus-cs2 { 81*724ba675SRob Herring compatible = "marvell,mvebu-devbus"; 82*724ba675SRob Herring reg = <MBUS_ID(0xf0, 0x01) 0x10418 0x8>; 83*724ba675SRob Herring ranges = <0 MBUS_ID(0x01, 0x3b) 0 0xffffffff>; 84*724ba675SRob Herring #address-cells = <1>; 85*724ba675SRob Herring #size-cells = <1>; 86*724ba675SRob Herring clocks = <&coreclk 0>; 87*724ba675SRob Herring status = "disabled"; 88*724ba675SRob Herring }; 89*724ba675SRob Herring 90*724ba675SRob Herring devbus_cs3: devbus-cs3 { 91*724ba675SRob Herring compatible = "marvell,mvebu-devbus"; 92*724ba675SRob Herring reg = <MBUS_ID(0xf0, 0x01) 0x10420 0x8>; 93*724ba675SRob Herring ranges = <0 MBUS_ID(0x01, 0x37) 0 0xffffffff>; 94*724ba675SRob Herring #address-cells = <1>; 95*724ba675SRob Herring #size-cells = <1>; 96*724ba675SRob Herring clocks = <&coreclk 0>; 97*724ba675SRob Herring status = "disabled"; 98*724ba675SRob Herring }; 99*724ba675SRob Herring 100*724ba675SRob Herring internal-regs { 101*724ba675SRob Herring compatible = "simple-bus"; 102*724ba675SRob Herring #address-cells = <1>; 103*724ba675SRob Herring #size-cells = <1>; 104*724ba675SRob Herring ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>; 105*724ba675SRob Herring 106*724ba675SRob Herring rtc: rtc@10300 { 107*724ba675SRob Herring compatible = "marvell,orion-rtc"; 108*724ba675SRob Herring reg = <0x10300 0x20>; 109*724ba675SRob Herring interrupts = <50>; 110*724ba675SRob Herring }; 111*724ba675SRob Herring 112*724ba675SRob Herring i2c0: i2c@11000 { 113*724ba675SRob Herring compatible = "marvell,mv64xxx-i2c"; 114*724ba675SRob Herring #address-cells = <1>; 115*724ba675SRob Herring #size-cells = <0>; 116*724ba675SRob Herring interrupts = <31>; 117*724ba675SRob Herring clocks = <&coreclk 0>; 118*724ba675SRob Herring status = "disabled"; 119*724ba675SRob Herring }; 120*724ba675SRob Herring 121*724ba675SRob Herring i2c1: i2c@11100 { 122*724ba675SRob Herring compatible = "marvell,mv64xxx-i2c"; 123*724ba675SRob Herring #address-cells = <1>; 124*724ba675SRob Herring #size-cells = <0>; 125*724ba675SRob Herring interrupts = <32>; 126*724ba675SRob Herring clocks = <&coreclk 0>; 127*724ba675SRob Herring status = "disabled"; 128*724ba675SRob Herring }; 129*724ba675SRob Herring 130*724ba675SRob Herring uart0: serial@12000 { 131*724ba675SRob Herring compatible = "snps,dw-apb-uart"; 132*724ba675SRob Herring reg = <0x12000 0x100>; 133*724ba675SRob Herring reg-shift = <2>; 134*724ba675SRob Herring interrupts = <41>; 135*724ba675SRob Herring reg-io-width = <1>; 136*724ba675SRob Herring clocks = <&coreclk 0>; 137*724ba675SRob Herring status = "disabled"; 138*724ba675SRob Herring }; 139*724ba675SRob Herring 140*724ba675SRob Herring uart1: serial@12100 { 141*724ba675SRob Herring compatible = "snps,dw-apb-uart"; 142*724ba675SRob Herring reg = <0x12100 0x100>; 143*724ba675SRob Herring reg-shift = <2>; 144*724ba675SRob Herring interrupts = <42>; 145*724ba675SRob Herring reg-io-width = <1>; 146*724ba675SRob Herring clocks = <&coreclk 0>; 147*724ba675SRob Herring status = "disabled"; 148*724ba675SRob Herring }; 149*724ba675SRob Herring 150*724ba675SRob Herring pinctrl: pin-ctrl@18000 { 151*724ba675SRob Herring reg = <0x18000 0x38>; 152*724ba675SRob Herring }; 153*724ba675SRob Herring 154*724ba675SRob Herring coredivclk: corediv-clock@18740 { 155*724ba675SRob Herring compatible = "marvell,armada-370-corediv-clock"; 156*724ba675SRob Herring reg = <0x18740 0xc>; 157*724ba675SRob Herring #clock-cells = <1>; 158*724ba675SRob Herring clocks = <&mainpll>; 159*724ba675SRob Herring clock-output-names = "nand"; 160*724ba675SRob Herring }; 161*724ba675SRob Herring 162*724ba675SRob Herring mbusc: mbus-controller@20000 { 163*724ba675SRob Herring compatible = "marvell,mbus-controller"; 164*724ba675SRob Herring reg = <0x20000 0x100>, <0x20180 0x20>, 165*724ba675SRob Herring <0x20250 0x8>; 166*724ba675SRob Herring }; 167*724ba675SRob Herring 168*724ba675SRob Herring mpic: interrupt-controller@20a00 { 169*724ba675SRob Herring compatible = "marvell,mpic"; 170*724ba675SRob Herring #interrupt-cells = <1>; 171*724ba675SRob Herring interrupt-controller; 172*724ba675SRob Herring msi-controller; 173*724ba675SRob Herring }; 174*724ba675SRob Herring 175*724ba675SRob Herring coherencyfab: coherency-fabric@20200 { 176*724ba675SRob Herring compatible = "marvell,coherency-fabric"; 177*724ba675SRob Herring reg = <0x20200 0xb0>, <0x21010 0x1c>; 178*724ba675SRob Herring }; 179*724ba675SRob Herring 180*724ba675SRob Herring timer: timer@20300 { 181*724ba675SRob Herring reg = <0x20300 0x30>, <0x21040 0x30>; 182*724ba675SRob Herring interrupts = <37>, <38>, <39>, <40>, <5>, <6>; 183*724ba675SRob Herring }; 184*724ba675SRob Herring 185*724ba675SRob Herring watchdog: watchdog@20300 { 186*724ba675SRob Herring reg = <0x20300 0x34>, <0x20704 0x4>; 187*724ba675SRob Herring }; 188*724ba675SRob Herring 189*724ba675SRob Herring cpurst: cpurst@20800 { 190*724ba675SRob Herring compatible = "marvell,armada-370-cpu-reset"; 191*724ba675SRob Herring reg = <0x20800 0x8>; 192*724ba675SRob Herring }; 193*724ba675SRob Herring 194*724ba675SRob Herring pmsu: pmsu@22000 { 195*724ba675SRob Herring compatible = "marvell,armada-370-pmsu"; 196*724ba675SRob Herring reg = <0x22000 0x1000>; 197*724ba675SRob Herring }; 198*724ba675SRob Herring 199*724ba675SRob Herring usb0: usb@50000 { 200*724ba675SRob Herring compatible = "marvell,orion-ehci"; 201*724ba675SRob Herring reg = <0x50000 0x500>; 202*724ba675SRob Herring interrupts = <45>; 203*724ba675SRob Herring status = "disabled"; 204*724ba675SRob Herring }; 205*724ba675SRob Herring 206*724ba675SRob Herring usb1: usb@51000 { 207*724ba675SRob Herring compatible = "marvell,orion-ehci"; 208*724ba675SRob Herring reg = <0x51000 0x500>; 209*724ba675SRob Herring interrupts = <46>; 210*724ba675SRob Herring status = "disabled"; 211*724ba675SRob Herring }; 212*724ba675SRob Herring 213*724ba675SRob Herring eth0: ethernet@70000 { 214*724ba675SRob Herring reg = <0x70000 0x4000>; 215*724ba675SRob Herring interrupts = <8>; 216*724ba675SRob Herring clocks = <&gateclk 4>; 217*724ba675SRob Herring status = "disabled"; 218*724ba675SRob Herring }; 219*724ba675SRob Herring 220*724ba675SRob Herring mdio: mdio@72004 { 221*724ba675SRob Herring #address-cells = <1>; 222*724ba675SRob Herring #size-cells = <0>; 223*724ba675SRob Herring compatible = "marvell,orion-mdio"; 224*724ba675SRob Herring reg = <0x72004 0x4>; 225*724ba675SRob Herring clocks = <&gateclk 4>; 226*724ba675SRob Herring }; 227*724ba675SRob Herring 228*724ba675SRob Herring eth1: ethernet@74000 { 229*724ba675SRob Herring reg = <0x74000 0x4000>; 230*724ba675SRob Herring interrupts = <10>; 231*724ba675SRob Herring clocks = <&gateclk 3>; 232*724ba675SRob Herring status = "disabled"; 233*724ba675SRob Herring }; 234*724ba675SRob Herring 235*724ba675SRob Herring sata: sata@a0000 { 236*724ba675SRob Herring compatible = "marvell,armada-370-sata"; 237*724ba675SRob Herring reg = <0xa0000 0x5000>; 238*724ba675SRob Herring interrupts = <55>; 239*724ba675SRob Herring clocks = <&gateclk 15>, <&gateclk 30>; 240*724ba675SRob Herring clock-names = "0", "1"; 241*724ba675SRob Herring status = "disabled"; 242*724ba675SRob Herring }; 243*724ba675SRob Herring 244*724ba675SRob Herring nand_controller: nand-controller@d0000 { 245*724ba675SRob Herring compatible = "marvell,armada370-nand-controller"; 246*724ba675SRob Herring reg = <0xd0000 0x54>; 247*724ba675SRob Herring #address-cells = <1>; 248*724ba675SRob Herring #size-cells = <0>; 249*724ba675SRob Herring interrupts = <113>; 250*724ba675SRob Herring clocks = <&coredivclk 0>; 251*724ba675SRob Herring status = "disabled"; 252*724ba675SRob Herring }; 253*724ba675SRob Herring 254*724ba675SRob Herring sdio: mvsdio@d4000 { 255*724ba675SRob Herring compatible = "marvell,orion-sdio"; 256*724ba675SRob Herring reg = <0xd4000 0x200>; 257*724ba675SRob Herring interrupts = <54>; 258*724ba675SRob Herring clocks = <&gateclk 17>; 259*724ba675SRob Herring bus-width = <4>; 260*724ba675SRob Herring cap-sdio-irq; 261*724ba675SRob Herring cap-sd-highspeed; 262*724ba675SRob Herring cap-mmc-highspeed; 263*724ba675SRob Herring status = "disabled"; 264*724ba675SRob Herring }; 265*724ba675SRob Herring }; 266*724ba675SRob Herring 267*724ba675SRob Herring spi0: spi@10600 { 268*724ba675SRob Herring reg = <MBUS_ID(0xf0, 0x01) 0x10600 0x28>, /* control */ 269*724ba675SRob Herring <MBUS_ID(0x01, 0x1e) 0 0xffffffff>, /* CS0 */ 270*724ba675SRob Herring <MBUS_ID(0x01, 0x5e) 0 0xffffffff>, /* CS1 */ 271*724ba675SRob Herring <MBUS_ID(0x01, 0x9e) 0 0xffffffff>, /* CS2 */ 272*724ba675SRob Herring <MBUS_ID(0x01, 0xde) 0 0xffffffff>, /* CS3 */ 273*724ba675SRob Herring <MBUS_ID(0x01, 0x1f) 0 0xffffffff>, /* CS4 */ 274*724ba675SRob Herring <MBUS_ID(0x01, 0x5f) 0 0xffffffff>, /* CS5 */ 275*724ba675SRob Herring <MBUS_ID(0x01, 0x9f) 0 0xffffffff>, /* CS6 */ 276*724ba675SRob Herring <MBUS_ID(0x01, 0xdf) 0 0xffffffff>; /* CS7 */ 277*724ba675SRob Herring #address-cells = <1>; 278*724ba675SRob Herring #size-cells = <0>; 279*724ba675SRob Herring cell-index = <0>; 280*724ba675SRob Herring interrupts = <30>; 281*724ba675SRob Herring clocks = <&coreclk 0>; 282*724ba675SRob Herring status = "disabled"; 283*724ba675SRob Herring }; 284*724ba675SRob Herring 285*724ba675SRob Herring spi1: spi@10680 { 286*724ba675SRob Herring reg = <MBUS_ID(0xf0, 0x01) 0x10680 0x28>, /* control */ 287*724ba675SRob Herring <MBUS_ID(0x01, 0x1a) 0 0xffffffff>, /* CS0 */ 288*724ba675SRob Herring <MBUS_ID(0x01, 0x5a) 0 0xffffffff>, /* CS1 */ 289*724ba675SRob Herring <MBUS_ID(0x01, 0x9a) 0 0xffffffff>, /* CS2 */ 290*724ba675SRob Herring <MBUS_ID(0x01, 0xda) 0 0xffffffff>, /* CS3 */ 291*724ba675SRob Herring <MBUS_ID(0x01, 0x1b) 0 0xffffffff>, /* CS4 */ 292*724ba675SRob Herring <MBUS_ID(0x01, 0x5b) 0 0xffffffff>, /* CS5 */ 293*724ba675SRob Herring <MBUS_ID(0x01, 0x9b) 0 0xffffffff>, /* CS6 */ 294*724ba675SRob Herring <MBUS_ID(0x01, 0xdb) 0 0xffffffff>; /* CS7 */ 295*724ba675SRob Herring #address-cells = <1>; 296*724ba675SRob Herring #size-cells = <0>; 297*724ba675SRob Herring cell-index = <1>; 298*724ba675SRob Herring interrupts = <92>; 299*724ba675SRob Herring clocks = <&coreclk 0>; 300*724ba675SRob Herring status = "disabled"; 301*724ba675SRob Herring }; 302*724ba675SRob Herring }; 303*724ba675SRob Herring 304*724ba675SRob Herring clocks { 305*724ba675SRob Herring /* 2 GHz fixed main PLL */ 306*724ba675SRob Herring mainpll: mainpll { 307*724ba675SRob Herring compatible = "fixed-clock"; 308*724ba675SRob Herring #clock-cells = <0>; 309*724ba675SRob Herring clock-frequency = <2000000000>; 310*724ba675SRob Herring }; 311*724ba675SRob Herring }; 312*724ba675SRob Herring }; 313