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 * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 8*f126890aSEmmanuel Vadot * 9*f126890aSEmmanuel Vadot * Contains definitions specific to the Armada XP MV78230 SoC that are not 10*f126890aSEmmanuel Vadot * common to all Armada XP SoCs. 11*f126890aSEmmanuel Vadot */ 12*f126890aSEmmanuel Vadot 13*f126890aSEmmanuel Vadot#include "armada-xp.dtsi" 14*f126890aSEmmanuel Vadot 15*f126890aSEmmanuel Vadot/ { 16*f126890aSEmmanuel Vadot model = "Marvell Armada XP MV78230 SoC"; 17*f126890aSEmmanuel Vadot compatible = "marvell,armadaxp-mv78230", "marvell,armadaxp", "marvell,armada-370-xp"; 18*f126890aSEmmanuel Vadot 19*f126890aSEmmanuel Vadot aliases { 20*f126890aSEmmanuel Vadot gpio0 = &gpio0; 21*f126890aSEmmanuel Vadot gpio1 = &gpio1; 22*f126890aSEmmanuel Vadot }; 23*f126890aSEmmanuel Vadot 24*f126890aSEmmanuel Vadot cpus { 25*f126890aSEmmanuel Vadot #address-cells = <1>; 26*f126890aSEmmanuel Vadot #size-cells = <0>; 27*f126890aSEmmanuel Vadot enable-method = "marvell,armada-xp-smp"; 28*f126890aSEmmanuel Vadot 29*f126890aSEmmanuel Vadot cpu@0 { 30*f126890aSEmmanuel Vadot device_type = "cpu"; 31*f126890aSEmmanuel Vadot compatible = "marvell,sheeva-v7"; 32*f126890aSEmmanuel Vadot reg = <0>; 33*f126890aSEmmanuel Vadot clocks = <&cpuclk 0>; 34*f126890aSEmmanuel Vadot clock-latency = <1000000>; 35*f126890aSEmmanuel Vadot }; 36*f126890aSEmmanuel Vadot 37*f126890aSEmmanuel Vadot cpu@1 { 38*f126890aSEmmanuel Vadot device_type = "cpu"; 39*f126890aSEmmanuel Vadot compatible = "marvell,sheeva-v7"; 40*f126890aSEmmanuel Vadot reg = <1>; 41*f126890aSEmmanuel Vadot clocks = <&cpuclk 1>; 42*f126890aSEmmanuel Vadot clock-latency = <1000000>; 43*f126890aSEmmanuel Vadot }; 44*f126890aSEmmanuel Vadot }; 45*f126890aSEmmanuel Vadot 46*f126890aSEmmanuel Vadot soc { 47*f126890aSEmmanuel Vadot /* 48*f126890aSEmmanuel Vadot * MV78230 has 2 PCIe units Gen2.0: One unit can be 49*f126890aSEmmanuel Vadot * configured as x4 or quad x1 lanes. One unit is 50*f126890aSEmmanuel Vadot * x1 only. 51*f126890aSEmmanuel Vadot */ 52*f126890aSEmmanuel Vadot pciec: pcie@82000000 { 53*f126890aSEmmanuel Vadot compatible = "marvell,armada-xp-pcie"; 54*f126890aSEmmanuel Vadot status = "disabled"; 55*f126890aSEmmanuel Vadot device_type = "pci"; 56*f126890aSEmmanuel Vadot 57*f126890aSEmmanuel Vadot #address-cells = <3>; 58*f126890aSEmmanuel Vadot #size-cells = <2>; 59*f126890aSEmmanuel Vadot 60*f126890aSEmmanuel Vadot msi-parent = <&mpic>; 61*f126890aSEmmanuel Vadot bus-range = <0x00 0xff>; 62*f126890aSEmmanuel Vadot 63*f126890aSEmmanuel Vadot ranges = 64*f126890aSEmmanuel Vadot <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 /* Port 0.0 registers */ 65*f126890aSEmmanuel Vadot 0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000 /* Port 0.1 registers */ 66*f126890aSEmmanuel Vadot 0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000 /* Port 0.2 registers */ 67*f126890aSEmmanuel Vadot 0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000 /* Port 0.3 registers */ 68*f126890aSEmmanuel Vadot 0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000 /* Port 1.0 registers */ 69*f126890aSEmmanuel Vadot 0x82000000 0x1 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */ 70*f126890aSEmmanuel Vadot 0x81000000 0x1 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO */ 71*f126890aSEmmanuel Vadot 0x82000000 0x2 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */ 72*f126890aSEmmanuel Vadot 0x81000000 0x2 0 MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 0.1 IO */ 73*f126890aSEmmanuel Vadot 0x82000000 0x3 0 MBUS_ID(0x04, 0xb8) 0 1 0 /* Port 0.2 MEM */ 74*f126890aSEmmanuel Vadot 0x81000000 0x3 0 MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 0.2 IO */ 75*f126890aSEmmanuel Vadot 0x82000000 0x4 0 MBUS_ID(0x04, 0x78) 0 1 0 /* Port 0.3 MEM */ 76*f126890aSEmmanuel Vadot 0x81000000 0x4 0 MBUS_ID(0x04, 0x70) 0 1 0 /* Port 0.3 IO */ 77*f126890aSEmmanuel Vadot 0x82000000 0x5 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */ 78*f126890aSEmmanuel Vadot 0x81000000 0x5 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO */>; 79*f126890aSEmmanuel Vadot 80*f126890aSEmmanuel Vadot pcie1: pcie@1,0 { 81*f126890aSEmmanuel Vadot device_type = "pci"; 82*f126890aSEmmanuel Vadot assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; 83*f126890aSEmmanuel Vadot reg = <0x0800 0 0 0 0>; 84*f126890aSEmmanuel Vadot #address-cells = <3>; 85*f126890aSEmmanuel Vadot #size-cells = <2>; 86*f126890aSEmmanuel Vadot interrupt-names = "intx"; 87*f126890aSEmmanuel Vadot interrupts-extended = <&mpic 58>; 88*f126890aSEmmanuel Vadot #interrupt-cells = <1>; 89*f126890aSEmmanuel Vadot ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0 90*f126890aSEmmanuel Vadot 0x81000000 0 0 0x81000000 0x1 0 1 0>; 91*f126890aSEmmanuel Vadot bus-range = <0x00 0xff>; 92*f126890aSEmmanuel Vadot interrupt-map-mask = <0 0 0 7>; 93*f126890aSEmmanuel Vadot interrupt-map = <0 0 0 1 &pcie1_intc 0>, 94*f126890aSEmmanuel Vadot <0 0 0 2 &pcie1_intc 1>, 95*f126890aSEmmanuel Vadot <0 0 0 3 &pcie1_intc 2>, 96*f126890aSEmmanuel Vadot <0 0 0 4 &pcie1_intc 3>; 97*f126890aSEmmanuel Vadot marvell,pcie-port = <0>; 98*f126890aSEmmanuel Vadot marvell,pcie-lane = <0>; 99*f126890aSEmmanuel Vadot clocks = <&gateclk 5>; 100*f126890aSEmmanuel Vadot status = "disabled"; 101*f126890aSEmmanuel Vadot 102*f126890aSEmmanuel Vadot pcie1_intc: interrupt-controller { 103*f126890aSEmmanuel Vadot interrupt-controller; 104*f126890aSEmmanuel Vadot #interrupt-cells = <1>; 105*f126890aSEmmanuel Vadot }; 106*f126890aSEmmanuel Vadot }; 107*f126890aSEmmanuel Vadot 108*f126890aSEmmanuel Vadot pcie2: pcie@2,0 { 109*f126890aSEmmanuel Vadot device_type = "pci"; 110*f126890aSEmmanuel Vadot assigned-addresses = <0x82001000 0 0x44000 0 0x2000>; 111*f126890aSEmmanuel Vadot reg = <0x1000 0 0 0 0>; 112*f126890aSEmmanuel Vadot #address-cells = <3>; 113*f126890aSEmmanuel Vadot #size-cells = <2>; 114*f126890aSEmmanuel Vadot interrupt-names = "intx"; 115*f126890aSEmmanuel Vadot interrupts-extended = <&mpic 59>; 116*f126890aSEmmanuel Vadot #interrupt-cells = <1>; 117*f126890aSEmmanuel Vadot ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0 118*f126890aSEmmanuel Vadot 0x81000000 0 0 0x81000000 0x2 0 1 0>; 119*f126890aSEmmanuel Vadot bus-range = <0x00 0xff>; 120*f126890aSEmmanuel Vadot interrupt-map-mask = <0 0 0 7>; 121*f126890aSEmmanuel Vadot interrupt-map = <0 0 0 1 &pcie2_intc 0>, 122*f126890aSEmmanuel Vadot <0 0 0 2 &pcie2_intc 1>, 123*f126890aSEmmanuel Vadot <0 0 0 3 &pcie2_intc 2>, 124*f126890aSEmmanuel Vadot <0 0 0 4 &pcie2_intc 3>; 125*f126890aSEmmanuel Vadot marvell,pcie-port = <0>; 126*f126890aSEmmanuel Vadot marvell,pcie-lane = <1>; 127*f126890aSEmmanuel Vadot clocks = <&gateclk 6>; 128*f126890aSEmmanuel Vadot status = "disabled"; 129*f126890aSEmmanuel Vadot 130*f126890aSEmmanuel Vadot pcie2_intc: interrupt-controller { 131*f126890aSEmmanuel Vadot interrupt-controller; 132*f126890aSEmmanuel Vadot #interrupt-cells = <1>; 133*f126890aSEmmanuel Vadot }; 134*f126890aSEmmanuel Vadot }; 135*f126890aSEmmanuel Vadot 136*f126890aSEmmanuel Vadot pcie3: pcie@3,0 { 137*f126890aSEmmanuel Vadot device_type = "pci"; 138*f126890aSEmmanuel Vadot assigned-addresses = <0x82001800 0 0x48000 0 0x2000>; 139*f126890aSEmmanuel Vadot reg = <0x1800 0 0 0 0>; 140*f126890aSEmmanuel Vadot #address-cells = <3>; 141*f126890aSEmmanuel Vadot #size-cells = <2>; 142*f126890aSEmmanuel Vadot interrupt-names = "intx"; 143*f126890aSEmmanuel Vadot interrupts-extended = <&mpic 60>; 144*f126890aSEmmanuel Vadot #interrupt-cells = <1>; 145*f126890aSEmmanuel Vadot ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0 146*f126890aSEmmanuel Vadot 0x81000000 0 0 0x81000000 0x3 0 1 0>; 147*f126890aSEmmanuel Vadot bus-range = <0x00 0xff>; 148*f126890aSEmmanuel Vadot interrupt-map-mask = <0 0 0 7>; 149*f126890aSEmmanuel Vadot interrupt-map = <0 0 0 1 &pcie3_intc 0>, 150*f126890aSEmmanuel Vadot <0 0 0 2 &pcie3_intc 1>, 151*f126890aSEmmanuel Vadot <0 0 0 3 &pcie3_intc 2>, 152*f126890aSEmmanuel Vadot <0 0 0 4 &pcie3_intc 3>; 153*f126890aSEmmanuel Vadot marvell,pcie-port = <0>; 154*f126890aSEmmanuel Vadot marvell,pcie-lane = <2>; 155*f126890aSEmmanuel Vadot clocks = <&gateclk 7>; 156*f126890aSEmmanuel Vadot status = "disabled"; 157*f126890aSEmmanuel Vadot 158*f126890aSEmmanuel Vadot pcie3_intc: interrupt-controller { 159*f126890aSEmmanuel Vadot interrupt-controller; 160*f126890aSEmmanuel Vadot #interrupt-cells = <1>; 161*f126890aSEmmanuel Vadot }; 162*f126890aSEmmanuel Vadot }; 163*f126890aSEmmanuel Vadot 164*f126890aSEmmanuel Vadot pcie4: pcie@4,0 { 165*f126890aSEmmanuel Vadot device_type = "pci"; 166*f126890aSEmmanuel Vadot assigned-addresses = <0x82002000 0 0x4c000 0 0x2000>; 167*f126890aSEmmanuel Vadot reg = <0x2000 0 0 0 0>; 168*f126890aSEmmanuel Vadot #address-cells = <3>; 169*f126890aSEmmanuel Vadot #size-cells = <2>; 170*f126890aSEmmanuel Vadot interrupt-names = "intx"; 171*f126890aSEmmanuel Vadot interrupts-extended = <&mpic 61>; 172*f126890aSEmmanuel Vadot #interrupt-cells = <1>; 173*f126890aSEmmanuel Vadot ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0 174*f126890aSEmmanuel Vadot 0x81000000 0 0 0x81000000 0x4 0 1 0>; 175*f126890aSEmmanuel Vadot bus-range = <0x00 0xff>; 176*f126890aSEmmanuel Vadot interrupt-map-mask = <0 0 0 7>; 177*f126890aSEmmanuel Vadot interrupt-map = <0 0 0 1 &pcie4_intc 0>, 178*f126890aSEmmanuel Vadot <0 0 0 2 &pcie4_intc 1>, 179*f126890aSEmmanuel Vadot <0 0 0 3 &pcie4_intc 2>, 180*f126890aSEmmanuel Vadot <0 0 0 4 &pcie4_intc 3>; 181*f126890aSEmmanuel Vadot marvell,pcie-port = <0>; 182*f126890aSEmmanuel Vadot marvell,pcie-lane = <3>; 183*f126890aSEmmanuel Vadot clocks = <&gateclk 8>; 184*f126890aSEmmanuel Vadot status = "disabled"; 185*f126890aSEmmanuel Vadot 186*f126890aSEmmanuel Vadot pcie4_intc: interrupt-controller { 187*f126890aSEmmanuel Vadot interrupt-controller; 188*f126890aSEmmanuel Vadot #interrupt-cells = <1>; 189*f126890aSEmmanuel Vadot }; 190*f126890aSEmmanuel Vadot }; 191*f126890aSEmmanuel Vadot 192*f126890aSEmmanuel Vadot pcie5: pcie@5,0 { 193*f126890aSEmmanuel Vadot device_type = "pci"; 194*f126890aSEmmanuel Vadot assigned-addresses = <0x82002800 0 0x80000 0 0x2000>; 195*f126890aSEmmanuel Vadot reg = <0x2800 0 0 0 0>; 196*f126890aSEmmanuel Vadot #address-cells = <3>; 197*f126890aSEmmanuel Vadot #size-cells = <2>; 198*f126890aSEmmanuel Vadot interrupt-names = "intx"; 199*f126890aSEmmanuel Vadot interrupts-extended = <&mpic 62>; 200*f126890aSEmmanuel Vadot #interrupt-cells = <1>; 201*f126890aSEmmanuel Vadot ranges = <0x82000000 0 0 0x82000000 0x5 0 1 0 202*f126890aSEmmanuel Vadot 0x81000000 0 0 0x81000000 0x5 0 1 0>; 203*f126890aSEmmanuel Vadot bus-range = <0x00 0xff>; 204*f126890aSEmmanuel Vadot interrupt-map-mask = <0 0 0 7>; 205*f126890aSEmmanuel Vadot interrupt-map = <0 0 0 1 &pcie5_intc 0>, 206*f126890aSEmmanuel Vadot <0 0 0 2 &pcie5_intc 1>, 207*f126890aSEmmanuel Vadot <0 0 0 3 &pcie5_intc 2>, 208*f126890aSEmmanuel Vadot <0 0 0 4 &pcie5_intc 3>; 209*f126890aSEmmanuel Vadot marvell,pcie-port = <1>; 210*f126890aSEmmanuel Vadot marvell,pcie-lane = <0>; 211*f126890aSEmmanuel Vadot clocks = <&gateclk 9>; 212*f126890aSEmmanuel Vadot status = "disabled"; 213*f126890aSEmmanuel Vadot 214*f126890aSEmmanuel Vadot pcie5_intc: interrupt-controller { 215*f126890aSEmmanuel Vadot interrupt-controller; 216*f126890aSEmmanuel Vadot #interrupt-cells = <1>; 217*f126890aSEmmanuel Vadot }; 218*f126890aSEmmanuel Vadot }; 219*f126890aSEmmanuel Vadot }; 220*f126890aSEmmanuel Vadot 221*f126890aSEmmanuel Vadot internal-regs { 222*f126890aSEmmanuel Vadot gpio0: gpio@18100 { 223*f126890aSEmmanuel Vadot compatible = "marvell,armada-370-gpio", 224*f126890aSEmmanuel Vadot "marvell,orion-gpio"; 225*f126890aSEmmanuel Vadot reg = <0x18100 0x40>, <0x181c0 0x08>; 226*f126890aSEmmanuel Vadot reg-names = "gpio", "pwm"; 227*f126890aSEmmanuel Vadot ngpios = <32>; 228*f126890aSEmmanuel Vadot gpio-controller; 229*f126890aSEmmanuel Vadot #gpio-cells = <2>; 230*f126890aSEmmanuel Vadot #pwm-cells = <2>; 231*f126890aSEmmanuel Vadot interrupt-controller; 232*f126890aSEmmanuel Vadot #interrupt-cells = <2>; 233*f126890aSEmmanuel Vadot interrupts = <82>, <83>, <84>, <85>; 234*f126890aSEmmanuel Vadot clocks = <&coreclk 0>; 235*f126890aSEmmanuel Vadot }; 236*f126890aSEmmanuel Vadot 237*f126890aSEmmanuel Vadot gpio1: gpio@18140 { 238*f126890aSEmmanuel Vadot compatible = "marvell,armada-370-gpio", 239*f126890aSEmmanuel Vadot "marvell,orion-gpio"; 240*f126890aSEmmanuel Vadot reg = <0x18140 0x40>, <0x181c8 0x08>; 241*f126890aSEmmanuel Vadot reg-names = "gpio", "pwm"; 242*f126890aSEmmanuel Vadot ngpios = <17>; 243*f126890aSEmmanuel Vadot gpio-controller; 244*f126890aSEmmanuel Vadot #gpio-cells = <2>; 245*f126890aSEmmanuel Vadot #pwm-cells = <2>; 246*f126890aSEmmanuel Vadot interrupt-controller; 247*f126890aSEmmanuel Vadot #interrupt-cells = <2>; 248*f126890aSEmmanuel Vadot interrupts = <87>, <88>, <89>; 249*f126890aSEmmanuel Vadot clocks = <&coreclk 0>; 250*f126890aSEmmanuel Vadot }; 251*f126890aSEmmanuel Vadot }; 252*f126890aSEmmanuel Vadot }; 253*f126890aSEmmanuel Vadot}; 254*f126890aSEmmanuel Vadot 255*f126890aSEmmanuel Vadot&pinctrl { 256*f126890aSEmmanuel Vadot compatible = "marvell,mv78230-pinctrl"; 257*f126890aSEmmanuel Vadot}; 258