1 1.1.1.3 jmcneill // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 1.1 jmcneill /* 3 1.1 jmcneill * Device Tree Include file for Marvell Armada XP family SoC 4 1.1 jmcneill * 5 1.1 jmcneill * Copyright (C) 2012 Marvell 6 1.1 jmcneill * 7 1.1 jmcneill * Thomas Petazzoni <thomas.petazzoni (a] free-electrons.com> 8 1.1 jmcneill * 9 1.1 jmcneill * Contains definitions specific to the Armada XP MV78260 SoC that are not 10 1.1 jmcneill * common to all Armada XP SoCs. 11 1.1 jmcneill */ 12 1.1 jmcneill 13 1.1 jmcneill #include "armada-xp.dtsi" 14 1.1 jmcneill 15 1.1 jmcneill / { 16 1.1 jmcneill model = "Marvell Armada XP MV78260 SoC"; 17 1.1 jmcneill compatible = "marvell,armadaxp-mv78260", "marvell,armadaxp", "marvell,armada-370-xp"; 18 1.1 jmcneill 19 1.1 jmcneill aliases { 20 1.1 jmcneill gpio0 = &gpio0; 21 1.1 jmcneill gpio1 = &gpio1; 22 1.1 jmcneill gpio2 = &gpio2; 23 1.1 jmcneill }; 24 1.1 jmcneill 25 1.1 jmcneill cpus { 26 1.1 jmcneill #address-cells = <1>; 27 1.1 jmcneill #size-cells = <0>; 28 1.1 jmcneill enable-method = "marvell,armada-xp-smp"; 29 1.1 jmcneill 30 1.1 jmcneill cpu@0 { 31 1.1 jmcneill device_type = "cpu"; 32 1.1 jmcneill compatible = "marvell,sheeva-v7"; 33 1.1 jmcneill reg = <0>; 34 1.1 jmcneill clocks = <&cpuclk 0>; 35 1.1 jmcneill clock-latency = <1000000>; 36 1.1 jmcneill }; 37 1.1 jmcneill 38 1.1 jmcneill cpu@1 { 39 1.1 jmcneill device_type = "cpu"; 40 1.1 jmcneill compatible = "marvell,sheeva-v7"; 41 1.1 jmcneill reg = <1>; 42 1.1 jmcneill clocks = <&cpuclk 1>; 43 1.1 jmcneill clock-latency = <1000000>; 44 1.1 jmcneill }; 45 1.1 jmcneill }; 46 1.1 jmcneill 47 1.1 jmcneill soc { 48 1.1 jmcneill /* 49 1.1 jmcneill * MV78260 has 3 PCIe units Gen2.0: Two units can be 50 1.1 jmcneill * configured as x4 or quad x1 lanes. One unit is 51 1.1 jmcneill * x4 only. 52 1.1 jmcneill */ 53 1.1.1.2 jmcneill pciec: pcie@82000000 { 54 1.1 jmcneill compatible = "marvell,armada-xp-pcie"; 55 1.1 jmcneill status = "disabled"; 56 1.1 jmcneill device_type = "pci"; 57 1.1 jmcneill 58 1.1 jmcneill #address-cells = <3>; 59 1.1 jmcneill #size-cells = <2>; 60 1.1 jmcneill 61 1.1 jmcneill msi-parent = <&mpic>; 62 1.1 jmcneill bus-range = <0x00 0xff>; 63 1.1 jmcneill 64 1.1 jmcneill ranges = 65 1.1 jmcneill <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 /* Port 0.0 registers */ 66 1.1 jmcneill 0x82000000 0 0x42000 MBUS_ID(0xf0, 0x01) 0x42000 0 0x00002000 /* Port 2.0 registers */ 67 1.1 jmcneill 0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000 /* Port 0.1 registers */ 68 1.1 jmcneill 0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000 /* Port 0.2 registers */ 69 1.1 jmcneill 0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000 /* Port 0.3 registers */ 70 1.1 jmcneill 0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000 /* Port 1.0 registers */ 71 1.1 jmcneill 0x82000000 0 0x84000 MBUS_ID(0xf0, 0x01) 0x84000 0 0x00002000 /* Port 1.1 registers */ 72 1.1 jmcneill 0x82000000 0 0x88000 MBUS_ID(0xf0, 0x01) 0x88000 0 0x00002000 /* Port 1.2 registers */ 73 1.1 jmcneill 0x82000000 0 0x8c000 MBUS_ID(0xf0, 0x01) 0x8c000 0 0x00002000 /* Port 1.3 registers */ 74 1.1 jmcneill 0x82000000 0x1 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */ 75 1.1 jmcneill 0x81000000 0x1 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO */ 76 1.1 jmcneill 0x82000000 0x2 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */ 77 1.1 jmcneill 0x81000000 0x2 0 MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 0.1 IO */ 78 1.1 jmcneill 0x82000000 0x3 0 MBUS_ID(0x04, 0xb8) 0 1 0 /* Port 0.2 MEM */ 79 1.1 jmcneill 0x81000000 0x3 0 MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 0.2 IO */ 80 1.1 jmcneill 0x82000000 0x4 0 MBUS_ID(0x04, 0x78) 0 1 0 /* Port 0.3 MEM */ 81 1.1 jmcneill 0x81000000 0x4 0 MBUS_ID(0x04, 0x70) 0 1 0 /* Port 0.3 IO */ 82 1.1 jmcneill 83 1.1 jmcneill 0x82000000 0x5 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */ 84 1.1 jmcneill 0x81000000 0x5 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO */ 85 1.1 jmcneill 0x82000000 0x6 0 MBUS_ID(0x08, 0xd8) 0 1 0 /* Port 1.1 MEM */ 86 1.1 jmcneill 0x81000000 0x6 0 MBUS_ID(0x08, 0xd0) 0 1 0 /* Port 1.1 IO */ 87 1.1 jmcneill 0x82000000 0x7 0 MBUS_ID(0x08, 0xb8) 0 1 0 /* Port 1.2 MEM */ 88 1.1 jmcneill 0x81000000 0x7 0 MBUS_ID(0x08, 0xb0) 0 1 0 /* Port 1.2 IO */ 89 1.1 jmcneill 0x82000000 0x8 0 MBUS_ID(0x08, 0x78) 0 1 0 /* Port 1.3 MEM */ 90 1.1 jmcneill 0x81000000 0x8 0 MBUS_ID(0x08, 0x70) 0 1 0 /* Port 1.3 IO */ 91 1.1 jmcneill 92 1.1 jmcneill 0x82000000 0x9 0 MBUS_ID(0x04, 0xf8) 0 1 0 /* Port 2.0 MEM */ 93 1.1 jmcneill 0x81000000 0x9 0 MBUS_ID(0x04, 0xf0) 0 1 0 /* Port 2.0 IO */>; 94 1.1 jmcneill 95 1.1 jmcneill pcie1: pcie@1,0 { 96 1.1 jmcneill device_type = "pci"; 97 1.1 jmcneill assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; 98 1.1 jmcneill reg = <0x0800 0 0 0 0>; 99 1.1 jmcneill #address-cells = <3>; 100 1.1 jmcneill #size-cells = <2>; 101 1.1 jmcneill #interrupt-cells = <1>; 102 1.1 jmcneill ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0 103 1.1 jmcneill 0x81000000 0 0 0x81000000 0x1 0 1 0>; 104 1.1.1.2 jmcneill bus-range = <0x00 0xff>; 105 1.1 jmcneill interrupt-map-mask = <0 0 0 0>; 106 1.1 jmcneill interrupt-map = <0 0 0 0 &mpic 58>; 107 1.1 jmcneill marvell,pcie-port = <0>; 108 1.1 jmcneill marvell,pcie-lane = <0>; 109 1.1 jmcneill clocks = <&gateclk 5>; 110 1.1 jmcneill status = "disabled"; 111 1.1 jmcneill }; 112 1.1 jmcneill 113 1.1 jmcneill pcie2: pcie@2,0 { 114 1.1 jmcneill device_type = "pci"; 115 1.1 jmcneill assigned-addresses = <0x82000800 0 0x44000 0 0x2000>; 116 1.1 jmcneill reg = <0x1000 0 0 0 0>; 117 1.1 jmcneill #address-cells = <3>; 118 1.1 jmcneill #size-cells = <2>; 119 1.1 jmcneill #interrupt-cells = <1>; 120 1.1 jmcneill ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0 121 1.1 jmcneill 0x81000000 0 0 0x81000000 0x2 0 1 0>; 122 1.1.1.2 jmcneill bus-range = <0x00 0xff>; 123 1.1 jmcneill interrupt-map-mask = <0 0 0 0>; 124 1.1 jmcneill interrupt-map = <0 0 0 0 &mpic 59>; 125 1.1 jmcneill marvell,pcie-port = <0>; 126 1.1 jmcneill marvell,pcie-lane = <1>; 127 1.1 jmcneill clocks = <&gateclk 6>; 128 1.1 jmcneill status = "disabled"; 129 1.1 jmcneill }; 130 1.1 jmcneill 131 1.1 jmcneill pcie3: pcie@3,0 { 132 1.1 jmcneill device_type = "pci"; 133 1.1 jmcneill assigned-addresses = <0x82000800 0 0x48000 0 0x2000>; 134 1.1 jmcneill reg = <0x1800 0 0 0 0>; 135 1.1 jmcneill #address-cells = <3>; 136 1.1 jmcneill #size-cells = <2>; 137 1.1 jmcneill #interrupt-cells = <1>; 138 1.1 jmcneill ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0 139 1.1 jmcneill 0x81000000 0 0 0x81000000 0x3 0 1 0>; 140 1.1.1.2 jmcneill bus-range = <0x00 0xff>; 141 1.1 jmcneill interrupt-map-mask = <0 0 0 0>; 142 1.1 jmcneill interrupt-map = <0 0 0 0 &mpic 60>; 143 1.1 jmcneill marvell,pcie-port = <0>; 144 1.1 jmcneill marvell,pcie-lane = <2>; 145 1.1 jmcneill clocks = <&gateclk 7>; 146 1.1 jmcneill status = "disabled"; 147 1.1 jmcneill }; 148 1.1 jmcneill 149 1.1 jmcneill pcie4: pcie@4,0 { 150 1.1 jmcneill device_type = "pci"; 151 1.1 jmcneill assigned-addresses = <0x82000800 0 0x4c000 0 0x2000>; 152 1.1 jmcneill reg = <0x2000 0 0 0 0>; 153 1.1 jmcneill #address-cells = <3>; 154 1.1 jmcneill #size-cells = <2>; 155 1.1 jmcneill #interrupt-cells = <1>; 156 1.1 jmcneill ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0 157 1.1 jmcneill 0x81000000 0 0 0x81000000 0x4 0 1 0>; 158 1.1.1.2 jmcneill bus-range = <0x00 0xff>; 159 1.1 jmcneill interrupt-map-mask = <0 0 0 0>; 160 1.1 jmcneill interrupt-map = <0 0 0 0 &mpic 61>; 161 1.1 jmcneill marvell,pcie-port = <0>; 162 1.1 jmcneill marvell,pcie-lane = <3>; 163 1.1 jmcneill clocks = <&gateclk 8>; 164 1.1 jmcneill status = "disabled"; 165 1.1 jmcneill }; 166 1.1 jmcneill 167 1.1 jmcneill pcie5: pcie@5,0 { 168 1.1 jmcneill device_type = "pci"; 169 1.1 jmcneill assigned-addresses = <0x82000800 0 0x80000 0 0x2000>; 170 1.1 jmcneill reg = <0x2800 0 0 0 0>; 171 1.1 jmcneill #address-cells = <3>; 172 1.1 jmcneill #size-cells = <2>; 173 1.1 jmcneill #interrupt-cells = <1>; 174 1.1 jmcneill ranges = <0x82000000 0 0 0x82000000 0x5 0 1 0 175 1.1 jmcneill 0x81000000 0 0 0x81000000 0x5 0 1 0>; 176 1.1.1.2 jmcneill bus-range = <0x00 0xff>; 177 1.1 jmcneill interrupt-map-mask = <0 0 0 0>; 178 1.1 jmcneill interrupt-map = <0 0 0 0 &mpic 62>; 179 1.1 jmcneill marvell,pcie-port = <1>; 180 1.1 jmcneill marvell,pcie-lane = <0>; 181 1.1 jmcneill clocks = <&gateclk 9>; 182 1.1 jmcneill status = "disabled"; 183 1.1 jmcneill }; 184 1.1 jmcneill 185 1.1 jmcneill pcie6: pcie@6,0 { 186 1.1 jmcneill device_type = "pci"; 187 1.1 jmcneill assigned-addresses = <0x82000800 0 0x84000 0 0x2000>; 188 1.1 jmcneill reg = <0x3000 0 0 0 0>; 189 1.1 jmcneill #address-cells = <3>; 190 1.1 jmcneill #size-cells = <2>; 191 1.1 jmcneill #interrupt-cells = <1>; 192 1.1 jmcneill ranges = <0x82000000 0 0 0x82000000 0x6 0 1 0 193 1.1 jmcneill 0x81000000 0 0 0x81000000 0x6 0 1 0>; 194 1.1.1.2 jmcneill bus-range = <0x00 0xff>; 195 1.1 jmcneill interrupt-map-mask = <0 0 0 0>; 196 1.1 jmcneill interrupt-map = <0 0 0 0 &mpic 63>; 197 1.1 jmcneill marvell,pcie-port = <1>; 198 1.1 jmcneill marvell,pcie-lane = <1>; 199 1.1 jmcneill clocks = <&gateclk 10>; 200 1.1 jmcneill status = "disabled"; 201 1.1 jmcneill }; 202 1.1 jmcneill 203 1.1 jmcneill pcie7: pcie@7,0 { 204 1.1 jmcneill device_type = "pci"; 205 1.1 jmcneill assigned-addresses = <0x82000800 0 0x88000 0 0x2000>; 206 1.1 jmcneill reg = <0x3800 0 0 0 0>; 207 1.1 jmcneill #address-cells = <3>; 208 1.1 jmcneill #size-cells = <2>; 209 1.1 jmcneill #interrupt-cells = <1>; 210 1.1 jmcneill ranges = <0x82000000 0 0 0x82000000 0x7 0 1 0 211 1.1 jmcneill 0x81000000 0 0 0x81000000 0x7 0 1 0>; 212 1.1.1.2 jmcneill bus-range = <0x00 0xff>; 213 1.1 jmcneill interrupt-map-mask = <0 0 0 0>; 214 1.1 jmcneill interrupt-map = <0 0 0 0 &mpic 64>; 215 1.1 jmcneill marvell,pcie-port = <1>; 216 1.1 jmcneill marvell,pcie-lane = <2>; 217 1.1 jmcneill clocks = <&gateclk 11>; 218 1.1 jmcneill status = "disabled"; 219 1.1 jmcneill }; 220 1.1 jmcneill 221 1.1 jmcneill pcie8: pcie@8,0 { 222 1.1 jmcneill device_type = "pci"; 223 1.1 jmcneill assigned-addresses = <0x82000800 0 0x8c000 0 0x2000>; 224 1.1 jmcneill reg = <0x4000 0 0 0 0>; 225 1.1 jmcneill #address-cells = <3>; 226 1.1 jmcneill #size-cells = <2>; 227 1.1 jmcneill #interrupt-cells = <1>; 228 1.1 jmcneill ranges = <0x82000000 0 0 0x82000000 0x8 0 1 0 229 1.1 jmcneill 0x81000000 0 0 0x81000000 0x8 0 1 0>; 230 1.1.1.2 jmcneill bus-range = <0x00 0xff>; 231 1.1 jmcneill interrupt-map-mask = <0 0 0 0>; 232 1.1 jmcneill interrupt-map = <0 0 0 0 &mpic 65>; 233 1.1 jmcneill marvell,pcie-port = <1>; 234 1.1 jmcneill marvell,pcie-lane = <3>; 235 1.1 jmcneill clocks = <&gateclk 12>; 236 1.1 jmcneill status = "disabled"; 237 1.1 jmcneill }; 238 1.1 jmcneill 239 1.1 jmcneill pcie9: pcie@9,0 { 240 1.1 jmcneill device_type = "pci"; 241 1.1 jmcneill assigned-addresses = <0x82000800 0 0x42000 0 0x2000>; 242 1.1 jmcneill reg = <0x4800 0 0 0 0>; 243 1.1 jmcneill #address-cells = <3>; 244 1.1 jmcneill #size-cells = <2>; 245 1.1 jmcneill #interrupt-cells = <1>; 246 1.1 jmcneill ranges = <0x82000000 0 0 0x82000000 0x9 0 1 0 247 1.1 jmcneill 0x81000000 0 0 0x81000000 0x9 0 1 0>; 248 1.1.1.2 jmcneill bus-range = <0x00 0xff>; 249 1.1 jmcneill interrupt-map-mask = <0 0 0 0>; 250 1.1 jmcneill interrupt-map = <0 0 0 0 &mpic 99>; 251 1.1 jmcneill marvell,pcie-port = <2>; 252 1.1 jmcneill marvell,pcie-lane = <0>; 253 1.1 jmcneill clocks = <&gateclk 26>; 254 1.1 jmcneill status = "disabled"; 255 1.1 jmcneill }; 256 1.1 jmcneill }; 257 1.1 jmcneill 258 1.1 jmcneill internal-regs { 259 1.1 jmcneill gpio0: gpio@18100 { 260 1.1.1.2 jmcneill compatible = "marvell,armada-370-gpio", 261 1.1.1.2 jmcneill "marvell,orion-gpio"; 262 1.1.1.2 jmcneill reg = <0x18100 0x40>, <0x181c0 0x08>; 263 1.1.1.2 jmcneill reg-names = "gpio", "pwm"; 264 1.1 jmcneill ngpios = <32>; 265 1.1 jmcneill gpio-controller; 266 1.1 jmcneill #gpio-cells = <2>; 267 1.1.1.2 jmcneill #pwm-cells = <2>; 268 1.1 jmcneill interrupt-controller; 269 1.1 jmcneill #interrupt-cells = <2>; 270 1.1 jmcneill interrupts = <82>, <83>, <84>, <85>; 271 1.1.1.2 jmcneill clocks = <&coreclk 0>; 272 1.1 jmcneill }; 273 1.1 jmcneill 274 1.1 jmcneill gpio1: gpio@18140 { 275 1.1.1.2 jmcneill compatible = "marvell,armada-370-gpio", 276 1.1.1.2 jmcneill "marvell,orion-gpio"; 277 1.1.1.2 jmcneill reg = <0x18140 0x40>, <0x181c8 0x08>; 278 1.1.1.2 jmcneill reg-names = "gpio", "pwm"; 279 1.1 jmcneill ngpios = <32>; 280 1.1 jmcneill gpio-controller; 281 1.1 jmcneill #gpio-cells = <2>; 282 1.1.1.2 jmcneill #pwm-cells = <2>; 283 1.1 jmcneill interrupt-controller; 284 1.1 jmcneill #interrupt-cells = <2>; 285 1.1 jmcneill interrupts = <87>, <88>, <89>, <90>; 286 1.1.1.2 jmcneill clocks = <&coreclk 0>; 287 1.1 jmcneill }; 288 1.1 jmcneill 289 1.1 jmcneill gpio2: gpio@18180 { 290 1.1.1.2 jmcneill compatible = "marvell,armada-370-gpio", 291 1.1.1.2 jmcneill "marvell,orion-gpio"; 292 1.1 jmcneill reg = <0x18180 0x40>; 293 1.1 jmcneill ngpios = <3>; 294 1.1 jmcneill gpio-controller; 295 1.1 jmcneill #gpio-cells = <2>; 296 1.1 jmcneill interrupt-controller; 297 1.1 jmcneill #interrupt-cells = <2>; 298 1.1 jmcneill interrupts = <91>; 299 1.1 jmcneill }; 300 1.1 jmcneill 301 1.1 jmcneill eth3: ethernet@34000 { 302 1.1 jmcneill compatible = "marvell,armada-xp-neta"; 303 1.1 jmcneill reg = <0x34000 0x4000>; 304 1.1 jmcneill interrupts = <14>; 305 1.1 jmcneill clocks = <&gateclk 1>; 306 1.1 jmcneill status = "disabled"; 307 1.1 jmcneill }; 308 1.1 jmcneill }; 309 1.1 jmcneill }; 310 1.1 jmcneill }; 311 1.1 jmcneill 312 1.1 jmcneill &pinctrl { 313 1.1 jmcneill compatible = "marvell,mv78260-pinctrl"; 314 1.1 jmcneill }; 315