1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*f126890aSEmmanuel Vadot/* 3*f126890aSEmmanuel Vadot * Device Tree Include file for Marvell Armada XP family SoC 4*f126890aSEmmanuel Vadot * 5*f126890aSEmmanuel Vadot * Copyright (C) 2012 Marvell 6*f126890aSEmmanuel Vadot * 7*f126890aSEmmanuel Vadot * Lior Amsalem <alior@marvell.com> 8*f126890aSEmmanuel Vadot * Gregory CLEMENT <gregory.clement@free-electrons.com> 9*f126890aSEmmanuel Vadot * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 10*f126890aSEmmanuel Vadot * Ben Dooks <ben.dooks@codethink.co.uk> 11*f126890aSEmmanuel Vadot * 12*f126890aSEmmanuel Vadot * Contains definitions specific to the Armada XP SoC that are not 13*f126890aSEmmanuel Vadot * common to all Armada SoCs. 14*f126890aSEmmanuel Vadot */ 15*f126890aSEmmanuel Vadot 16*f126890aSEmmanuel Vadot#include "armada-370-xp.dtsi" 17*f126890aSEmmanuel Vadot 18*f126890aSEmmanuel Vadot/ { 19*f126890aSEmmanuel Vadot #address-cells = <2>; 20*f126890aSEmmanuel Vadot #size-cells = <2>; 21*f126890aSEmmanuel Vadot 22*f126890aSEmmanuel Vadot model = "Marvell Armada XP family SoC"; 23*f126890aSEmmanuel Vadot compatible = "marvell,armadaxp", "marvell,armada-370-xp"; 24*f126890aSEmmanuel Vadot 25*f126890aSEmmanuel Vadot aliases { 26*f126890aSEmmanuel Vadot serial2 = &uart2; 27*f126890aSEmmanuel Vadot serial3 = &uart3; 28*f126890aSEmmanuel Vadot }; 29*f126890aSEmmanuel Vadot 30*f126890aSEmmanuel Vadot soc { 31*f126890aSEmmanuel Vadot compatible = "marvell,armadaxp-mbus", "simple-bus"; 32*f126890aSEmmanuel Vadot 33*f126890aSEmmanuel Vadot bootrom { 34*f126890aSEmmanuel Vadot compatible = "marvell,bootrom"; 35*f126890aSEmmanuel Vadot reg = <MBUS_ID(0x01, 0x1d) 0 0x100000>; 36*f126890aSEmmanuel Vadot }; 37*f126890aSEmmanuel Vadot 38*f126890aSEmmanuel Vadot internal-regs { 39*f126890aSEmmanuel Vadot sdramc: sdramc@1400 { 40*f126890aSEmmanuel Vadot compatible = "marvell,armada-xp-sdram-controller"; 41*f126890aSEmmanuel Vadot reg = <0x1400 0x500>; 42*f126890aSEmmanuel Vadot }; 43*f126890aSEmmanuel Vadot 44*f126890aSEmmanuel Vadot L2: l2-cache@8000 { 45*f126890aSEmmanuel Vadot compatible = "marvell,aurora-system-cache"; 46*f126890aSEmmanuel Vadot reg = <0x08000 0x1000>; 47*f126890aSEmmanuel Vadot cache-id-part = <0x100>; 48*f126890aSEmmanuel Vadot cache-level = <2>; 49*f126890aSEmmanuel Vadot cache-unified; 50*f126890aSEmmanuel Vadot wt-override; 51*f126890aSEmmanuel Vadot }; 52*f126890aSEmmanuel Vadot 53*f126890aSEmmanuel Vadot uart2: serial@12200 { 54*f126890aSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 55*f126890aSEmmanuel Vadot pinctrl-0 = <&uart2_pins>; 56*f126890aSEmmanuel Vadot pinctrl-names = "default"; 57*f126890aSEmmanuel Vadot reg = <0x12200 0x100>; 58*f126890aSEmmanuel Vadot reg-shift = <2>; 59*f126890aSEmmanuel Vadot interrupts = <43>; 60*f126890aSEmmanuel Vadot reg-io-width = <1>; 61*f126890aSEmmanuel Vadot clocks = <&coreclk 0>; 62*f126890aSEmmanuel Vadot status = "disabled"; 63*f126890aSEmmanuel Vadot }; 64*f126890aSEmmanuel Vadot 65*f126890aSEmmanuel Vadot uart3: serial@12300 { 66*f126890aSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 67*f126890aSEmmanuel Vadot pinctrl-0 = <&uart3_pins>; 68*f126890aSEmmanuel Vadot pinctrl-names = "default"; 69*f126890aSEmmanuel Vadot reg = <0x12300 0x100>; 70*f126890aSEmmanuel Vadot reg-shift = <2>; 71*f126890aSEmmanuel Vadot interrupts = <44>; 72*f126890aSEmmanuel Vadot reg-io-width = <1>; 73*f126890aSEmmanuel Vadot clocks = <&coreclk 0>; 74*f126890aSEmmanuel Vadot status = "disabled"; 75*f126890aSEmmanuel Vadot }; 76*f126890aSEmmanuel Vadot 77*f126890aSEmmanuel Vadot systemc: system-controller@18200 { 78*f126890aSEmmanuel Vadot compatible = "marvell,armada-370-xp-system-controller"; 79*f126890aSEmmanuel Vadot reg = <0x18200 0x500>; 80*f126890aSEmmanuel Vadot }; 81*f126890aSEmmanuel Vadot 82*f126890aSEmmanuel Vadot gateclk: clock-gating-control@18220 { 83*f126890aSEmmanuel Vadot compatible = "marvell,armada-xp-gating-clock"; 84*f126890aSEmmanuel Vadot reg = <0x18220 0x4>; 85*f126890aSEmmanuel Vadot clocks = <&coreclk 0>; 86*f126890aSEmmanuel Vadot #clock-cells = <1>; 87*f126890aSEmmanuel Vadot }; 88*f126890aSEmmanuel Vadot 89*f126890aSEmmanuel Vadot coreclk: mvebu-sar@18230 { 90*f126890aSEmmanuel Vadot compatible = "marvell,armada-xp-core-clock"; 91*f126890aSEmmanuel Vadot reg = <0x18230 0x08>; 92*f126890aSEmmanuel Vadot #clock-cells = <1>; 93*f126890aSEmmanuel Vadot }; 94*f126890aSEmmanuel Vadot 95*f126890aSEmmanuel Vadot thermal: thermal@182b0 { 96*f126890aSEmmanuel Vadot compatible = "marvell,armadaxp-thermal"; 97*f126890aSEmmanuel Vadot reg = <0x182b0 0x4 98*f126890aSEmmanuel Vadot 0x184d0 0x4>; 99*f126890aSEmmanuel Vadot status = "okay"; 100*f126890aSEmmanuel Vadot }; 101*f126890aSEmmanuel Vadot 102*f126890aSEmmanuel Vadot cpuclk: clock-complex@18700 { 103*f126890aSEmmanuel Vadot #clock-cells = <1>; 104*f126890aSEmmanuel Vadot compatible = "marvell,armada-xp-cpu-clock"; 105*f126890aSEmmanuel Vadot reg = <0x18700 0x24>, <0x1c054 0x10>; 106*f126890aSEmmanuel Vadot clocks = <&coreclk 1>; 107*f126890aSEmmanuel Vadot }; 108*f126890aSEmmanuel Vadot 109*f126890aSEmmanuel Vadot cpu-config@21000 { 110*f126890aSEmmanuel Vadot compatible = "marvell,armada-xp-cpu-config"; 111*f126890aSEmmanuel Vadot reg = <0x21000 0x8>; 112*f126890aSEmmanuel Vadot }; 113*f126890aSEmmanuel Vadot 114*f126890aSEmmanuel Vadot eth2: ethernet@30000 { 115*f126890aSEmmanuel Vadot compatible = "marvell,armada-xp-neta"; 116*f126890aSEmmanuel Vadot reg = <0x30000 0x4000>; 117*f126890aSEmmanuel Vadot interrupts = <12>; 118*f126890aSEmmanuel Vadot clocks = <&gateclk 2>; 119*f126890aSEmmanuel Vadot status = "disabled"; 120*f126890aSEmmanuel Vadot }; 121*f126890aSEmmanuel Vadot 122*f126890aSEmmanuel Vadot usb2: usb@52000 { 123*f126890aSEmmanuel Vadot compatible = "marvell,orion-ehci"; 124*f126890aSEmmanuel Vadot reg = <0x52000 0x500>; 125*f126890aSEmmanuel Vadot interrupts = <47>; 126*f126890aSEmmanuel Vadot clocks = <&gateclk 20>; 127*f126890aSEmmanuel Vadot status = "disabled"; 128*f126890aSEmmanuel Vadot }; 129*f126890aSEmmanuel Vadot 130*f126890aSEmmanuel Vadot xor1: xor@60900 { 131*f126890aSEmmanuel Vadot compatible = "marvell,orion-xor"; 132*f126890aSEmmanuel Vadot reg = <0x60900 0x100 133*f126890aSEmmanuel Vadot 0x60b00 0x100>; 134*f126890aSEmmanuel Vadot clocks = <&gateclk 22>; 135*f126890aSEmmanuel Vadot status = "okay"; 136*f126890aSEmmanuel Vadot 137*f126890aSEmmanuel Vadot xor10 { 138*f126890aSEmmanuel Vadot interrupts = <51>; 139*f126890aSEmmanuel Vadot dmacap,memcpy; 140*f126890aSEmmanuel Vadot dmacap,xor; 141*f126890aSEmmanuel Vadot }; 142*f126890aSEmmanuel Vadot xor11 { 143*f126890aSEmmanuel Vadot interrupts = <52>; 144*f126890aSEmmanuel Vadot dmacap,memcpy; 145*f126890aSEmmanuel Vadot dmacap,xor; 146*f126890aSEmmanuel Vadot dmacap,memset; 147*f126890aSEmmanuel Vadot }; 148*f126890aSEmmanuel Vadot }; 149*f126890aSEmmanuel Vadot 150*f126890aSEmmanuel Vadot ethernet@70000 { 151*f126890aSEmmanuel Vadot compatible = "marvell,armada-xp-neta"; 152*f126890aSEmmanuel Vadot }; 153*f126890aSEmmanuel Vadot 154*f126890aSEmmanuel Vadot ethernet@74000 { 155*f126890aSEmmanuel Vadot compatible = "marvell,armada-xp-neta"; 156*f126890aSEmmanuel Vadot }; 157*f126890aSEmmanuel Vadot 158*f126890aSEmmanuel Vadot cesa: crypto@90000 { 159*f126890aSEmmanuel Vadot compatible = "marvell,armada-xp-crypto"; 160*f126890aSEmmanuel Vadot reg = <0x90000 0x10000>; 161*f126890aSEmmanuel Vadot reg-names = "regs"; 162*f126890aSEmmanuel Vadot interrupts = <48>, <49>; 163*f126890aSEmmanuel Vadot clocks = <&gateclk 23>, <&gateclk 23>; 164*f126890aSEmmanuel Vadot clock-names = "cesa0", "cesa1"; 165*f126890aSEmmanuel Vadot marvell,crypto-srams = <&crypto_sram0>, 166*f126890aSEmmanuel Vadot <&crypto_sram1>; 167*f126890aSEmmanuel Vadot marvell,crypto-sram-size = <0x800>; 168*f126890aSEmmanuel Vadot }; 169*f126890aSEmmanuel Vadot 170*f126890aSEmmanuel Vadot bm: bm@c0000 { 171*f126890aSEmmanuel Vadot compatible = "marvell,armada-380-neta-bm"; 172*f126890aSEmmanuel Vadot reg = <0xc0000 0xac>; 173*f126890aSEmmanuel Vadot clocks = <&gateclk 13>; 174*f126890aSEmmanuel Vadot internal-mem = <&bm_bppi>; 175*f126890aSEmmanuel Vadot status = "disabled"; 176*f126890aSEmmanuel Vadot }; 177*f126890aSEmmanuel Vadot 178*f126890aSEmmanuel Vadot xor0: xor@f0900 { 179*f126890aSEmmanuel Vadot compatible = "marvell,orion-xor"; 180*f126890aSEmmanuel Vadot reg = <0xF0900 0x100 181*f126890aSEmmanuel Vadot 0xF0B00 0x100>; 182*f126890aSEmmanuel Vadot clocks = <&gateclk 28>; 183*f126890aSEmmanuel Vadot status = "okay"; 184*f126890aSEmmanuel Vadot 185*f126890aSEmmanuel Vadot xor00 { 186*f126890aSEmmanuel Vadot interrupts = <94>; 187*f126890aSEmmanuel Vadot dmacap,memcpy; 188*f126890aSEmmanuel Vadot dmacap,xor; 189*f126890aSEmmanuel Vadot }; 190*f126890aSEmmanuel Vadot xor01 { 191*f126890aSEmmanuel Vadot interrupts = <95>; 192*f126890aSEmmanuel Vadot dmacap,memcpy; 193*f126890aSEmmanuel Vadot dmacap,xor; 194*f126890aSEmmanuel Vadot dmacap,memset; 195*f126890aSEmmanuel Vadot }; 196*f126890aSEmmanuel Vadot }; 197*f126890aSEmmanuel Vadot }; 198*f126890aSEmmanuel Vadot 199*f126890aSEmmanuel Vadot crypto_sram0: sa-sram0 { 200*f126890aSEmmanuel Vadot compatible = "mmio-sram"; 201*f126890aSEmmanuel Vadot reg = <MBUS_ID(0x09, 0x09) 0 0x800>; 202*f126890aSEmmanuel Vadot clocks = <&gateclk 23>; 203*f126890aSEmmanuel Vadot #address-cells = <1>; 204*f126890aSEmmanuel Vadot #size-cells = <1>; 205*f126890aSEmmanuel Vadot ranges = <0 MBUS_ID(0x09, 0x09) 0 0x800>; 206*f126890aSEmmanuel Vadot }; 207*f126890aSEmmanuel Vadot 208*f126890aSEmmanuel Vadot crypto_sram1: sa-sram1 { 209*f126890aSEmmanuel Vadot compatible = "mmio-sram"; 210*f126890aSEmmanuel Vadot reg = <MBUS_ID(0x09, 0x05) 0 0x800>; 211*f126890aSEmmanuel Vadot clocks = <&gateclk 23>; 212*f126890aSEmmanuel Vadot #address-cells = <1>; 213*f126890aSEmmanuel Vadot #size-cells = <1>; 214*f126890aSEmmanuel Vadot ranges = <0 MBUS_ID(0x09, 0x05) 0 0x800>; 215*f126890aSEmmanuel Vadot }; 216*f126890aSEmmanuel Vadot 217*f126890aSEmmanuel Vadot bm_bppi: bm-bppi { 218*f126890aSEmmanuel Vadot compatible = "mmio-sram"; 219*f126890aSEmmanuel Vadot reg = <MBUS_ID(0x0c, 0x04) 0 0x100000>; 220*f126890aSEmmanuel Vadot ranges = <0 MBUS_ID(0x0c, 0x04) 0 0x100000>; 221*f126890aSEmmanuel Vadot #address-cells = <1>; 222*f126890aSEmmanuel Vadot #size-cells = <1>; 223*f126890aSEmmanuel Vadot clocks = <&gateclk 13>; 224*f126890aSEmmanuel Vadot no-memory-wc; 225*f126890aSEmmanuel Vadot status = "disabled"; 226*f126890aSEmmanuel Vadot }; 227*f126890aSEmmanuel Vadot }; 228*f126890aSEmmanuel Vadot 229*f126890aSEmmanuel Vadot clocks { 230*f126890aSEmmanuel Vadot /* 25 MHz reference crystal */ 231*f126890aSEmmanuel Vadot refclk: oscillator { 232*f126890aSEmmanuel Vadot compatible = "fixed-clock"; 233*f126890aSEmmanuel Vadot #clock-cells = <0>; 234*f126890aSEmmanuel Vadot clock-frequency = <25000000>; 235*f126890aSEmmanuel Vadot }; 236*f126890aSEmmanuel Vadot }; 237*f126890aSEmmanuel Vadot}; 238*f126890aSEmmanuel Vadot 239*f126890aSEmmanuel Vadot&i2c0 { 240*f126890aSEmmanuel Vadot compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c"; 241*f126890aSEmmanuel Vadot reg = <0x11000 0x100>; 242*f126890aSEmmanuel Vadot}; 243*f126890aSEmmanuel Vadot 244*f126890aSEmmanuel Vadot&i2c1 { 245*f126890aSEmmanuel Vadot compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c"; 246*f126890aSEmmanuel Vadot reg = <0x11100 0x100>; 247*f126890aSEmmanuel Vadot}; 248*f126890aSEmmanuel Vadot 249*f126890aSEmmanuel Vadot&mpic { 250*f126890aSEmmanuel Vadot reg = <0x20a00 0x2d0>, <0x21070 0x58>; 251*f126890aSEmmanuel Vadot}; 252*f126890aSEmmanuel Vadot 253*f126890aSEmmanuel Vadot&timer { 254*f126890aSEmmanuel Vadot compatible = "marvell,armada-xp-timer"; 255*f126890aSEmmanuel Vadot clocks = <&coreclk 2>, <&refclk>; 256*f126890aSEmmanuel Vadot clock-names = "nbclk", "fixed"; 257*f126890aSEmmanuel Vadot}; 258*f126890aSEmmanuel Vadot 259*f126890aSEmmanuel Vadot&watchdog { 260*f126890aSEmmanuel Vadot compatible = "marvell,armada-xp-wdt"; 261*f126890aSEmmanuel Vadot clocks = <&coreclk 2>, <&refclk>; 262*f126890aSEmmanuel Vadot clock-names = "nbclk", "fixed"; 263*f126890aSEmmanuel Vadot interrupts = <93>, <38>; 264*f126890aSEmmanuel Vadot}; 265*f126890aSEmmanuel Vadot 266*f126890aSEmmanuel Vadot&cpurst { 267*f126890aSEmmanuel Vadot reg = <0x20800 0x20>; 268*f126890aSEmmanuel Vadot}; 269*f126890aSEmmanuel Vadot 270*f126890aSEmmanuel Vadot&usb0 { 271*f126890aSEmmanuel Vadot clocks = <&gateclk 18>; 272*f126890aSEmmanuel Vadot}; 273*f126890aSEmmanuel Vadot 274*f126890aSEmmanuel Vadot&usb1 { 275*f126890aSEmmanuel Vadot clocks = <&gateclk 19>; 276*f126890aSEmmanuel Vadot}; 277*f126890aSEmmanuel Vadot 278*f126890aSEmmanuel Vadot&pinctrl { 279*f126890aSEmmanuel Vadot ge0_gmii_pins: ge0-gmii-pins { 280*f126890aSEmmanuel Vadot marvell,pins = 281*f126890aSEmmanuel Vadot "mpp0", "mpp1", "mpp2", "mpp3", 282*f126890aSEmmanuel Vadot "mpp4", "mpp5", "mpp6", "mpp7", 283*f126890aSEmmanuel Vadot "mpp8", "mpp9", "mpp10", "mpp11", 284*f126890aSEmmanuel Vadot "mpp12", "mpp13", "mpp14", "mpp15", 285*f126890aSEmmanuel Vadot "mpp16", "mpp17", "mpp18", "mpp19", 286*f126890aSEmmanuel Vadot "mpp20", "mpp21", "mpp22", "mpp23"; 287*f126890aSEmmanuel Vadot marvell,function = "ge0"; 288*f126890aSEmmanuel Vadot }; 289*f126890aSEmmanuel Vadot 290*f126890aSEmmanuel Vadot ge0_rgmii_pins: ge0-rgmii-pins { 291*f126890aSEmmanuel Vadot marvell,pins = 292*f126890aSEmmanuel Vadot "mpp0", "mpp1", "mpp2", "mpp3", 293*f126890aSEmmanuel Vadot "mpp4", "mpp5", "mpp6", "mpp7", 294*f126890aSEmmanuel Vadot "mpp8", "mpp9", "mpp10", "mpp11"; 295*f126890aSEmmanuel Vadot marvell,function = "ge0"; 296*f126890aSEmmanuel Vadot }; 297*f126890aSEmmanuel Vadot 298*f126890aSEmmanuel Vadot ge1_rgmii_pins: ge1-rgmii-pins { 299*f126890aSEmmanuel Vadot marvell,pins = 300*f126890aSEmmanuel Vadot "mpp12", "mpp13", "mpp14", "mpp15", 301*f126890aSEmmanuel Vadot "mpp16", "mpp17", "mpp18", "mpp19", 302*f126890aSEmmanuel Vadot "mpp20", "mpp21", "mpp22", "mpp23"; 303*f126890aSEmmanuel Vadot marvell,function = "ge1"; 304*f126890aSEmmanuel Vadot }; 305*f126890aSEmmanuel Vadot 306*f126890aSEmmanuel Vadot sdio_pins: sdio-pins { 307*f126890aSEmmanuel Vadot marvell,pins = "mpp30", "mpp31", "mpp32", 308*f126890aSEmmanuel Vadot "mpp33", "mpp34", "mpp35"; 309*f126890aSEmmanuel Vadot marvell,function = "sd0"; 310*f126890aSEmmanuel Vadot }; 311*f126890aSEmmanuel Vadot 312*f126890aSEmmanuel Vadot spi0_pins: spi0-pins { 313*f126890aSEmmanuel Vadot marvell,pins = "mpp36", "mpp37", 314*f126890aSEmmanuel Vadot "mpp38", "mpp39"; 315*f126890aSEmmanuel Vadot marvell,function = "spi0"; 316*f126890aSEmmanuel Vadot }; 317*f126890aSEmmanuel Vadot 318*f126890aSEmmanuel Vadot spi1_pins: spi1-pins { 319*f126890aSEmmanuel Vadot marvell,pins = "mpp13", "mpp14", 320*f126890aSEmmanuel Vadot "mpp16", "mpp17"; 321*f126890aSEmmanuel Vadot marvell,function = "spi1"; 322*f126890aSEmmanuel Vadot }; 323*f126890aSEmmanuel Vadot 324*f126890aSEmmanuel Vadot uart2_pins: uart2-pins { 325*f126890aSEmmanuel Vadot marvell,pins = "mpp42", "mpp43"; 326*f126890aSEmmanuel Vadot marvell,function = "uart2"; 327*f126890aSEmmanuel Vadot }; 328*f126890aSEmmanuel Vadot 329*f126890aSEmmanuel Vadot uart3_pins: uart3-pins { 330*f126890aSEmmanuel Vadot marvell,pins = "mpp44", "mpp45"; 331*f126890aSEmmanuel Vadot marvell,function = "uart3"; 332*f126890aSEmmanuel Vadot }; 333*f126890aSEmmanuel Vadot}; 334*f126890aSEmmanuel Vadot 335*f126890aSEmmanuel Vadot&spi0 { 336*f126890aSEmmanuel Vadot compatible = "marvell,armada-xp-spi", "marvell,orion-spi"; 337*f126890aSEmmanuel Vadot pinctrl-0 = <&spi0_pins>; 338*f126890aSEmmanuel Vadot pinctrl-names = "default"; 339*f126890aSEmmanuel Vadot}; 340*f126890aSEmmanuel Vadot 341*f126890aSEmmanuel Vadot&spi1 { 342*f126890aSEmmanuel Vadot compatible = "marvell,armada-xp-spi", "marvell,orion-spi"; 343*f126890aSEmmanuel Vadot pinctrl-0 = <&spi1_pins>; 344*f126890aSEmmanuel Vadot pinctrl-names = "default"; 345*f126890aSEmmanuel Vadot}; 346