Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'xgene-dts-for-v4.5-v1' of https://github.com/AppliedMicro/xgene-next into next/dt64

Merge "DTS changes for X-Gene platforms queued for v4.5" from Duc Dang

This patch set adds DTS entries to support various IPs
for X-Gene v1 and X-Gene v2 SoC:
- X-Gene v1: Enable support for MMC, USB, GPIO controllers,
I2C controller, L2 Cache topology
- X-Gene v2: Enable support for MMC, USB, GPIO controller,
I2C controller (with RTC), PCIe controller with GICv2m MSI,
EDAC, L2 Cache topology, TRNG

* tag 'xgene-dts-for-v4.5-v1' of https://github.com/AppliedMicro/xgene-next:
arm64: dts: Add L2 cache topology for APM X-Gene SoC
arm64: dts: Add RTC DTS entry for X-Gene v2 SoC platform
arm64: dts: Add Designware I2C controller DTS entries for X-Gene v2 SoC platform
arm64: dts: Add Designware I2C controller DTS entries for X-Gene v1 SoC
arm64: dts: Add APM X-Gene v2 SoC EDAC DTS entries
arm64: dts: Add APM X-Gene v2 SoC Designware GPIO controller DTS entry
arm64: dts: Add Designware GPIO dts binding for APM X-Gene v1 platform
arm64: dts: Add APM X-Gene v2 SoC GFC GPIO controller DTS entry
arm64: dts: Add APM X-Gene v1 SoC GFC GPIO controller DTS entries
arm64: dts: Add USB nodes for APM X-Gene v2 platforms
arm64: dts: Add USB nodes for APM X-Gene v1 platforms
arm64: dts: Add PCIe node for APM X-Gene v2 platforms
arm64: dts: Add v2m MSI frame nodes for APM X-Gene v2 platforms
arm64: dts: Add RNG device tree nodes for APM X-Gene v2 platform
arm64: dts: X-Gene: Do not reset or enable/disable clock for AHB block
arm64: dts: Add the arasan mmc DTS entries for APm X-Gene v2 SoC
arm64: dts: Add the arasan mmc DTS entries for APM X-Gene v1 SoC

+543
+12
arch/arm64/boot/dts/apm/apm-merlin.dts
··· 70 70 &xgenet1 { 71 71 status = "ok"; 72 72 }; 73 + 74 + &mmc0 { 75 + status = "ok"; 76 + }; 77 + 78 + &i2c4 { 79 + rtc68: rtc@68 { 80 + compatible = "dallas,ds1337"; 81 + reg = <0x68>; 82 + status = "ok"; 83 + }; 84 + };
+4
arch/arm64/boot/dts/apm/apm-mustang.dts
··· 74 74 &xgenet { 75 75 status = "ok"; 76 76 }; 77 + 78 + &mmc0 { 79 + status = "ok"; 80 + };
+401
arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
··· 25 25 reg = <0x0 0x000>; 26 26 enable-method = "spin-table"; 27 27 cpu-release-addr = <0x1 0x0000fff8>; 28 + next-level-cache = <&xgene_L2_0>; 28 29 }; 29 30 cpu@001 { 30 31 device_type = "cpu"; ··· 33 32 reg = <0x0 0x001>; 34 33 enable-method = "spin-table"; 35 34 cpu-release-addr = <0x1 0x0000fff8>; 35 + next-level-cache = <&xgene_L2_0>; 36 36 }; 37 37 cpu@100 { 38 38 device_type = "cpu"; ··· 41 39 reg = <0x0 0x100>; 42 40 enable-method = "spin-table"; 43 41 cpu-release-addr = <0x1 0x0000fff8>; 42 + next-level-cache = <&xgene_L2_1>; 44 43 }; 45 44 cpu@101 { 46 45 device_type = "cpu"; ··· 49 46 reg = <0x0 0x101>; 50 47 enable-method = "spin-table"; 51 48 cpu-release-addr = <0x1 0x0000fff8>; 49 + next-level-cache = <&xgene_L2_1>; 52 50 }; 53 51 cpu@200 { 54 52 device_type = "cpu"; ··· 57 53 reg = <0x0 0x200>; 58 54 enable-method = "spin-table"; 59 55 cpu-release-addr = <0x1 0x0000fff8>; 56 + next-level-cache = <&xgene_L2_2>; 60 57 }; 61 58 cpu@201 { 62 59 device_type = "cpu"; ··· 65 60 reg = <0x0 0x201>; 66 61 enable-method = "spin-table"; 67 62 cpu-release-addr = <0x1 0x0000fff8>; 63 + next-level-cache = <&xgene_L2_2>; 68 64 }; 69 65 cpu@300 { 70 66 device_type = "cpu"; ··· 73 67 reg = <0x0 0x300>; 74 68 enable-method = "spin-table"; 75 69 cpu-release-addr = <0x1 0x0000fff8>; 70 + next-level-cache = <&xgene_L2_3>; 76 71 }; 77 72 cpu@301 { 78 73 device_type = "cpu"; ··· 81 74 reg = <0x0 0x301>; 82 75 enable-method = "spin-table"; 83 76 cpu-release-addr = <0x1 0x0000fff8>; 77 + next-level-cache = <&xgene_L2_3>; 78 + }; 79 + xgene_L2_0: l2-cache-0 { 80 + compatible = "cache"; 81 + }; 82 + xgene_L2_1: l2-cache-1 { 83 + compatible = "cache"; 84 + }; 85 + xgene_L2_2: l2-cache-2 { 86 + compatible = "cache"; 87 + }; 88 + xgene_L2_3: l2-cache-3 { 89 + compatible = "cache"; 84 90 }; 85 91 }; 86 92 ··· 109 89 <0x0 0x780A0000 0x0 0x20000>, /* GIC CPU */ 110 90 <0x0 0x780C0000 0x0 0x10000>, /* GIC VCPU Control */ 111 91 <0x0 0x780E0000 0x0 0x20000>; /* GIC VCPU */ 92 + v2m0: v2m@0x00000 { 93 + compatible = "arm,gic-v2m-frame"; 94 + msi-controller; 95 + reg = <0x0 0x0 0x0 0x1000>; 96 + }; 97 + v2m1: v2m@0x10000 { 98 + compatible = "arm,gic-v2m-frame"; 99 + msi-controller; 100 + reg = <0x0 0x10000 0x0 0x1000>; 101 + }; 102 + v2m2: v2m@0x20000 { 103 + compatible = "arm,gic-v2m-frame"; 104 + msi-controller; 105 + reg = <0x0 0x20000 0x0 0x1000>; 106 + }; 107 + v2m3: v2m@0x30000 { 108 + compatible = "arm,gic-v2m-frame"; 109 + msi-controller; 110 + reg = <0x0 0x30000 0x0 0x1000>; 111 + }; 112 + v2m4: v2m@0x40000 { 113 + compatible = "arm,gic-v2m-frame"; 114 + msi-controller; 115 + reg = <0x0 0x40000 0x0 0x1000>; 116 + }; 117 + v2m5: v2m@0x50000 { 118 + compatible = "arm,gic-v2m-frame"; 119 + msi-controller; 120 + reg = <0x0 0x50000 0x0 0x1000>; 121 + }; 122 + v2m6: v2m@0x60000 { 123 + compatible = "arm,gic-v2m-frame"; 124 + msi-controller; 125 + reg = <0x0 0x60000 0x0 0x1000>; 126 + }; 127 + v2m7: v2m@0x70000 { 128 + compatible = "arm,gic-v2m-frame"; 129 + msi-controller; 130 + reg = <0x0 0x70000 0x0 0x1000>; 131 + }; 132 + v2m8: v2m@0x80000 { 133 + compatible = "arm,gic-v2m-frame"; 134 + msi-controller; 135 + reg = <0x0 0x80000 0x0 0x1000>; 136 + }; 137 + v2m9: v2m@0x90000 { 138 + compatible = "arm,gic-v2m-frame"; 139 + msi-controller; 140 + reg = <0x0 0x90000 0x0 0x1000>; 141 + }; 142 + v2m10: v2m@0xA0000 { 143 + compatible = "arm,gic-v2m-frame"; 144 + msi-controller; 145 + reg = <0x0 0xA0000 0x0 0x1000>; 146 + }; 147 + v2m11: v2m@0xB0000 { 148 + compatible = "arm,gic-v2m-frame"; 149 + msi-controller; 150 + reg = <0x0 0xB0000 0x0 0x1000>; 151 + }; 152 + v2m12: v2m@0xC0000 { 153 + compatible = "arm,gic-v2m-frame"; 154 + msi-controller; 155 + reg = <0x0 0xC0000 0x0 0x1000>; 156 + }; 157 + v2m13: v2m@0xD0000 { 158 + compatible = "arm,gic-v2m-frame"; 159 + msi-controller; 160 + reg = <0x0 0xD0000 0x0 0x1000>; 161 + }; 162 + v2m14: v2m@0xE0000 { 163 + compatible = "arm,gic-v2m-frame"; 164 + msi-controller; 165 + reg = <0x0 0xE0000 0x0 0x1000>; 166 + }; 167 + v2m15: v2m@0xF0000 { 168 + compatible = "arm,gic-v2m-frame"; 169 + msi-controller; 170 + reg = <0x0 0xF0000 0x0 0x1000>; 171 + }; 112 172 }; 113 173 114 174 pmu { ··· 240 140 clock-output-names = "socplldiv2"; 241 141 }; 242 142 143 + ahbclk: ahbclk@17000000 { 144 + compatible = "apm,xgene-device-clock"; 145 + #clock-cells = <1>; 146 + clocks = <&socplldiv2 0>; 147 + reg = <0x0 0x17000000 0x0 0x2000>; 148 + reg-names = "div-reg"; 149 + divider-offset = <0x164>; 150 + divider-width = <0x5>; 151 + divider-shift = <0x0>; 152 + clock-output-names = "ahbclk"; 153 + }; 154 + 155 + sbapbclk: sbapbclk@1704c000 { 156 + compatible = "apm,xgene-device-clock"; 157 + #clock-cells = <1>; 158 + clocks = <&ahbclk 0>; 159 + reg = <0x0 0x1704c000 0x0 0x2000>; 160 + reg-names = "div-reg"; 161 + divider-offset = <0x10>; 162 + divider-width = <0x2>; 163 + divider-shift = <0x0>; 164 + clock-output-names = "sbapbclk"; 165 + }; 166 + 167 + sdioclk: sdioclk@1f2ac000 { 168 + compatible = "apm,xgene-device-clock"; 169 + #clock-cells = <1>; 170 + clocks = <&socplldiv2 0>; 171 + reg = <0x0 0x1f2ac000 0x0 0x1000 172 + 0x0 0x17000000 0x0 0x2000>; 173 + reg-names = "csr-reg", "div-reg"; 174 + csr-offset = <0x0>; 175 + csr-mask = <0x2>; 176 + enable-offset = <0x8>; 177 + enable-mask = <0x2>; 178 + divider-offset = <0x178>; 179 + divider-width = <0x8>; 180 + divider-shift = <0x0>; 181 + clock-output-names = "sdioclk"; 182 + }; 183 + 243 184 pcie0clk: pcie0clk@1f2bc000 { 244 185 compatible = "apm,xgene-device-clock"; 245 186 #clock-cells = <1>; ··· 288 147 reg = <0x0 0x1f2bc000 0x0 0x1000>; 289 148 reg-names = "csr-reg"; 290 149 clock-output-names = "pcie0clk"; 150 + }; 151 + 152 + pcie1clk: pcie1clk@1f2cc000 { 153 + compatible = "apm,xgene-device-clock"; 154 + #clock-cells = <1>; 155 + clocks = <&socplldiv2 0>; 156 + reg = <0x0 0x1f2cc000 0x0 0x1000>; 157 + reg-names = "csr-reg"; 158 + clock-output-names = "pcie1clk"; 291 159 }; 292 160 293 161 xge0clk: xge0clk@1f61c000 { ··· 320 170 csr-mask = <0x3>; 321 171 clock-output-names = "xge1clk"; 322 172 }; 173 + 174 + rngpkaclk: rngpkaclk@17000000 { 175 + compatible = "apm,xgene-device-clock"; 176 + #clock-cells = <1>; 177 + clocks = <&socplldiv2 0>; 178 + reg = <0x0 0x17000000 0x0 0x2000>; 179 + reg-names = "csr-reg"; 180 + csr-offset = <0xc>; 181 + csr-mask = <0x10>; 182 + enable-offset = <0x10>; 183 + enable-mask = <0x10>; 184 + clock-output-names = "rngpkaclk"; 185 + }; 186 + 187 + i2c1clk: i2c1clk@17000000 { 188 + compatible = "apm,xgene-device-clock"; 189 + #clock-cells = <1>; 190 + clocks = <&sbapbclk 0>; 191 + reg = <0x0 0x17000000 0x0 0x2000>; 192 + reg-names = "csr-reg"; 193 + csr-offset = <0xc>; 194 + csr-mask = <0x4>; 195 + enable-offset = <0x10>; 196 + enable-mask = <0x4>; 197 + clock-output-names = "i2c1clk"; 198 + }; 199 + 200 + i2c4clk: i2c4clk@1704c000 { 201 + compatible = "apm,xgene-device-clock"; 202 + #clock-cells = <1>; 203 + clocks = <&sbapbclk 0>; 204 + reg = <0x0 0x1704c000 0x0 0x1000>; 205 + reg-names = "csr-reg"; 206 + csr-offset = <0x0>; 207 + csr-mask = <0x40>; 208 + enable-offset = <0x8>; 209 + enable-mask = <0x40>; 210 + clock-output-names = "i2c4clk"; 211 + }; 323 212 }; 324 213 325 214 scu: system-clk-controller@17000000 { ··· 373 184 mask = <0x1>; 374 185 }; 375 186 187 + csw: csw@7e200000 { 188 + compatible = "apm,xgene-csw", "syscon"; 189 + reg = <0x0 0x7e200000 0x0 0x1000>; 190 + }; 191 + 192 + mcba: mcba@7e700000 { 193 + compatible = "apm,xgene-mcb", "syscon"; 194 + reg = <0x0 0x7e700000 0x0 0x1000>; 195 + }; 196 + 197 + mcbb: mcbb@7e720000 { 198 + compatible = "apm,xgene-mcb", "syscon"; 199 + reg = <0x0 0x7e720000 0x0 0x1000>; 200 + }; 201 + 202 + efuse: efuse@1054a000 { 203 + compatible = "apm,xgene-efuse", "syscon"; 204 + reg = <0x0 0x1054a000 0x0 0x20>; 205 + }; 206 + 207 + edac@78800000 { 208 + compatible = "apm,xgene-edac"; 209 + #address-cells = <2>; 210 + #size-cells = <2>; 211 + ranges; 212 + regmap-csw = <&csw>; 213 + regmap-mcba = <&mcba>; 214 + regmap-mcbb = <&mcbb>; 215 + regmap-efuse = <&efuse>; 216 + reg = <0x0 0x78800000 0x0 0x100>; 217 + interrupts = <0x0 0x20 0x4>, 218 + <0x0 0x21 0x4>, 219 + <0x0 0x27 0x4>; 220 + 221 + edacmc@7e800000 { 222 + compatible = "apm,xgene-edac-mc"; 223 + reg = <0x0 0x7e800000 0x0 0x1000>; 224 + memory-controller = <0>; 225 + }; 226 + 227 + edacmc@7e840000 { 228 + compatible = "apm,xgene-edac-mc"; 229 + reg = <0x0 0x7e840000 0x0 0x1000>; 230 + memory-controller = <1>; 231 + }; 232 + 233 + edacmc@7e880000 { 234 + compatible = "apm,xgene-edac-mc"; 235 + reg = <0x0 0x7e880000 0x0 0x1000>; 236 + memory-controller = <2>; 237 + }; 238 + 239 + edacmc@7e8c0000 { 240 + compatible = "apm,xgene-edac-mc"; 241 + reg = <0x0 0x7e8c0000 0x0 0x1000>; 242 + memory-controller = <3>; 243 + }; 244 + 245 + edacpmd@7c000000 { 246 + compatible = "apm,xgene-edac-pmd"; 247 + reg = <0x0 0x7c000000 0x0 0x200000>; 248 + pmd-controller = <0>; 249 + }; 250 + 251 + edacpmd@7c200000 { 252 + compatible = "apm,xgene-edac-pmd"; 253 + reg = <0x0 0x7c200000 0x0 0x200000>; 254 + pmd-controller = <1>; 255 + }; 256 + 257 + edacpmd@7c400000 { 258 + compatible = "apm,xgene-edac-pmd"; 259 + reg = <0x0 0x7c400000 0x0 0x200000>; 260 + pmd-controller = <2>; 261 + }; 262 + 263 + edacpmd@7c600000 { 264 + compatible = "apm,xgene-edac-pmd"; 265 + reg = <0x0 0x7c600000 0x0 0x200000>; 266 + pmd-controller = <3>; 267 + }; 268 + 269 + edacl3@7e600000 { 270 + compatible = "apm,xgene-edac-l3-v2"; 271 + reg = <0x0 0x7e600000 0x0 0x1000>; 272 + }; 273 + 274 + edacsoc@7e930000 { 275 + compatible = "apm,xgene-edac-soc"; 276 + reg = <0x0 0x7e930000 0x0 0x1000>; 277 + }; 278 + }; 279 + 376 280 serial0: serial@10600000 { 377 281 device_type = "serial"; 378 282 compatible = "ns16550"; ··· 474 192 clock-frequency = <10000000>; 475 193 interrupt-parent = <&gic>; 476 194 interrupts = <0x0 0x4c 0x4>; 195 + }; 196 + 197 + usb0: dwusb@19000000 { 198 + status = "disabled"; 199 + compatible = "snps,dwc3"; 200 + reg = <0x0 0x19000000 0x0 0x100000>; 201 + interrupts = <0x0 0x5d 0x4>; 202 + dma-coherent; 203 + dr_mode = "host"; 204 + }; 205 + 206 + pcie0: pcie@1f2b0000 { 207 + status = "disabled"; 208 + device_type = "pci"; 209 + compatible = "apm,xgene-pcie", "apm,xgene2-pcie"; 210 + #interrupt-cells = <1>; 211 + #size-cells = <2>; 212 + #address-cells = <3>; 213 + reg = < 0x00 0x1f2b0000 0x0 0x00010000 /* Controller registers */ 214 + 0xc0 0xd0000000 0x0 0x00040000>; /* PCI config space */ 215 + reg-names = "csr", "cfg"; 216 + ranges = <0x01000000 0x00 0x00000000 0xc0 0x10000000 0x00 0x00010000 /* io */ 217 + 0x02000000 0x00 0x20000000 0xc1 0x20000000 0x00 0x20000000 /* mem */ 218 + 0x43000000 0xe0 0x00000000 0xe0 0x00000000 0x20 0x00000000>; /* mem */ 219 + dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 220 + 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 221 + interrupt-map-mask = <0x0 0x0 0x0 0x7>; 222 + interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 0x10 0x1 223 + 0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 0x11 0x1 224 + 0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 0x12 0x1 225 + 0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 0x13 0x1>; 226 + dma-coherent; 227 + clocks = <&pcie0clk 0>; 228 + msi-parent = <&v2m0>; 229 + }; 230 + 231 + pcie1: pcie@1f2c0000 { 232 + status = "disabled"; 233 + device_type = "pci"; 234 + compatible = "apm,xgene-pcie", "apm,xgene2-pcie"; 235 + #interrupt-cells = <1>; 236 + #size-cells = <2>; 237 + #address-cells = <3>; 238 + reg = < 0x00 0x1f2c0000 0x0 0x00010000 /* Controller registers */ 239 + 0xa0 0xd0000000 0x0 0x00040000>; /* PCI config space */ 240 + reg-names = "csr", "cfg"; 241 + ranges = <0x01000000 0x00 0x00000000 0xa0 0x10000000 0x00 0x00010000 /* io */ 242 + 0x02000000 0x00 0x20000000 0xa1 0x20000000 0x00 0x20000000 /* mem */ 243 + 0x43000000 0xb0 0x00000000 0xb0 0x00000000 0x10 0x00000000>; /* mem */ 244 + dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 245 + 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 246 + interrupt-map-mask = <0x0 0x0 0x0 0x7>; 247 + interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 0x16 0x1 248 + 0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 0x17 0x1 249 + 0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 0x18 0x1 250 + 0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 0x19 0x1>; 251 + dma-coherent; 252 + clocks = <&pcie1clk 0>; 253 + msi-parent = <&v2m0>; 477 254 }; 478 255 479 256 sata1: sata@1a000000 { ··· 563 222 <0x0 0x1f22e000 0x0 0x1000>; 564 223 interrupts = <0x0 0x5c 0x4>; 565 224 dma-coherent; 225 + }; 226 + 227 + mmc0: mmc@1c000000 { 228 + compatible = "arasan,sdhci-4.9a"; 229 + reg = <0x0 0x1c000000 0x0 0x100>; 230 + interrupts = <0x0 0x49 0x4>; 231 + dma-coherent; 232 + no-1-8-v; 233 + clock-names = "clk_xin", "clk_ahb"; 234 + clocks = <&sdioclk 0>, <&ahbclk 0>; 235 + }; 236 + 237 + gfcgpio: gfcgpio@1f63c000 { 238 + compatible = "apm,xgene-gpio"; 239 + reg = <0x0 0x1f63c000 0x0 0x40>; 240 + gpio-controller; 241 + #gpio-cells = <2>; 242 + }; 243 + 244 + dwgpio: dwgpio@1c024000 { 245 + compatible = "snps,dw-apb-gpio"; 246 + reg = <0x0 0x1c024000 0x0 0x1000>; 247 + reg-io-width = <4>; 248 + #address-cells = <1>; 249 + #size-cells = <0>; 250 + 251 + porta: gpio-controller@0 { 252 + compatible = "snps,dw-apb-gpio-port"; 253 + gpio-controller; 254 + snps,nr-gpios = <32>; 255 + reg = <0>; 256 + }; 566 257 }; 567 258 568 259 sbgpio: sbgpio@17001000{ ··· 639 266 clocks = <&xge1clk 0>; 640 267 local-mac-address = [00 01 73 00 00 02]; 641 268 phy-connection-type = "xgmii"; 269 + }; 270 + 271 + rng: rng@10520000 { 272 + compatible = "apm,xgene-rng"; 273 + reg = <0x0 0x10520000 0x0 0x100>; 274 + interrupts = <0x0 0x41 0x4>; 275 + clocks = <&rngpkaclk 0>; 276 + }; 277 + 278 + i2c1: i2c1@10511000 { 279 + #address-cells = <1>; 280 + #size-cells = <0>; 281 + compatible = "snps,designware-i2c"; 282 + reg = <0x0 0x10511000 0x0 0x1000>; 283 + interrupts = <0 0x45 0x4>; 284 + #clock-cells = <1>; 285 + clocks = <&i2c1clk 0>; 286 + bus_num = <1>; 287 + }; 288 + 289 + i2c4: i2c4@10640000 { 290 + #address-cells = <1>; 291 + #size-cells = <0>; 292 + compatible = "snps,designware-i2c"; 293 + reg = <0x0 0x10640000 0x0 0x1000>; 294 + interrupts = <0 0x3A 0x4>; 295 + clocks = <&i2c4clk 0>; 296 + bus_num = <4>; 642 297 }; 643 298 }; 644 299 };
+126
arch/arm64/boot/dts/apm/apm-storm.dtsi
··· 25 25 reg = <0x0 0x000>; 26 26 enable-method = "spin-table"; 27 27 cpu-release-addr = <0x1 0x0000fff8>; 28 + next-level-cache = <&xgene_L2_0>; 28 29 }; 29 30 cpu@001 { 30 31 device_type = "cpu"; ··· 33 32 reg = <0x0 0x001>; 34 33 enable-method = "spin-table"; 35 34 cpu-release-addr = <0x1 0x0000fff8>; 35 + next-level-cache = <&xgene_L2_0>; 36 36 }; 37 37 cpu@100 { 38 38 device_type = "cpu"; ··· 41 39 reg = <0x0 0x100>; 42 40 enable-method = "spin-table"; 43 41 cpu-release-addr = <0x1 0x0000fff8>; 42 + next-level-cache = <&xgene_L2_1>; 44 43 }; 45 44 cpu@101 { 46 45 device_type = "cpu"; ··· 49 46 reg = <0x0 0x101>; 50 47 enable-method = "spin-table"; 51 48 cpu-release-addr = <0x1 0x0000fff8>; 49 + next-level-cache = <&xgene_L2_1>; 52 50 }; 53 51 cpu@200 { 54 52 device_type = "cpu"; ··· 57 53 reg = <0x0 0x200>; 58 54 enable-method = "spin-table"; 59 55 cpu-release-addr = <0x1 0x0000fff8>; 56 + next-level-cache = <&xgene_L2_2>; 60 57 }; 61 58 cpu@201 { 62 59 device_type = "cpu"; ··· 65 60 reg = <0x0 0x201>; 66 61 enable-method = "spin-table"; 67 62 cpu-release-addr = <0x1 0x0000fff8>; 63 + next-level-cache = <&xgene_L2_2>; 68 64 }; 69 65 cpu@300 { 70 66 device_type = "cpu"; ··· 73 67 reg = <0x0 0x300>; 74 68 enable-method = "spin-table"; 75 69 cpu-release-addr = <0x1 0x0000fff8>; 70 + next-level-cache = <&xgene_L2_3>; 76 71 }; 77 72 cpu@301 { 78 73 device_type = "cpu"; ··· 81 74 reg = <0x0 0x301>; 82 75 enable-method = "spin-table"; 83 76 cpu-release-addr = <0x1 0x0000fff8>; 77 + next-level-cache = <&xgene_L2_3>; 78 + }; 79 + xgene_L2_0: l2-cache-0 { 80 + compatible = "cache"; 81 + }; 82 + xgene_L2_1: l2-cache-1 { 83 + compatible = "cache"; 84 + }; 85 + xgene_L2_2: l2-cache-2 { 86 + compatible = "cache"; 87 + }; 88 + xgene_L2_3: l2-cache-3 { 89 + compatible = "cache"; 84 90 }; 85 91 }; 86 92 ··· 168 148 clock-mult = <1>; 169 149 clock-div = <2>; 170 150 clock-output-names = "socplldiv2"; 151 + }; 152 + 153 + ahbclk: ahbclk@17000000 { 154 + compatible = "apm,xgene-device-clock"; 155 + #clock-cells = <1>; 156 + clocks = <&socplldiv2 0>; 157 + reg = <0x0 0x17000000 0x0 0x2000>; 158 + reg-names = "div-reg"; 159 + divider-offset = <0x164>; 160 + divider-width = <0x5>; 161 + divider-shift = <0x0>; 162 + clock-output-names = "ahbclk"; 163 + }; 164 + 165 + sdioclk: sdioclk@1f2ac000 { 166 + compatible = "apm,xgene-device-clock"; 167 + #clock-cells = <1>; 168 + clocks = <&socplldiv2 0>; 169 + reg = <0x0 0x1f2ac000 0x0 0x1000 170 + 0x0 0x17000000 0x0 0x2000>; 171 + reg-names = "csr-reg", "div-reg"; 172 + csr-offset = <0x0>; 173 + csr-mask = <0x2>; 174 + enable-offset = <0x8>; 175 + enable-mask = <0x2>; 176 + divider-offset = <0x178>; 177 + divider-width = <0x8>; 178 + divider-shift = <0x0>; 179 + clock-output-names = "sdioclk"; 171 180 }; 172 181 173 182 qmlclk: qmlclk { ··· 436 387 reg = <0x0 0x1f27c000 0x0 0x1000>; 437 388 reg-names = "csr-reg"; 438 389 clock-output-names = "dmaclk"; 390 + }; 391 + 392 + i2cclk: i2cclk@17000000 { 393 + status = "disabled"; 394 + compatible = "apm,xgene-device-clock"; 395 + #clock-cells = <1>; 396 + clocks = <&ahbclk 0>; 397 + reg = <0x0 0x17000000 0x0 0x2000>; 398 + reg-names = "csr-reg"; 399 + csr-offset = <0xc>; 400 + csr-mask = <0x4>; 401 + enable-offset = <0x10>; 402 + enable-mask = <0x4>; 403 + clock-output-names = "i2cclk"; 439 404 }; 440 405 }; 441 406 ··· 749 686 interrupts = <0x0 0x4f 0x4>; 750 687 }; 751 688 689 + mmc0: mmc@1c000000 { 690 + compatible = "arasan,sdhci-4.9a"; 691 + reg = <0x0 0x1c000000 0x0 0x100>; 692 + interrupts = <0x0 0x49 0x4>; 693 + dma-coherent; 694 + no-1-8-v; 695 + clock-names = "clk_xin", "clk_ahb"; 696 + clocks = <&sdioclk 0>, <&ahbclk 0>; 697 + }; 698 + 699 + gfcgpio: gfcgpio0@1701c000 { 700 + compatible = "apm,xgene-gpio"; 701 + reg = <0x0 0x1701c000 0x0 0x40>; 702 + gpio-controller; 703 + #gpio-cells = <2>; 704 + }; 705 + 706 + dwgpio: dwgpio@1c024000 { 707 + compatible = "snps,dw-apb-gpio"; 708 + reg = <0x0 0x1c024000 0x0 0x1000>; 709 + reg-io-width = <4>; 710 + #address-cells = <1>; 711 + #size-cells = <0>; 712 + 713 + porta: gpio-controller@0 { 714 + compatible = "snps,dw-apb-gpio-port"; 715 + gpio-controller; 716 + snps,nr-gpios = <32>; 717 + reg = <0>; 718 + }; 719 + }; 720 + 721 + i2c0: i2c0@10512000 { 722 + status = "disabled"; 723 + #address-cells = <1>; 724 + #size-cells = <0>; 725 + compatible = "snps,designware-i2c"; 726 + reg = <0x0 0x10512000 0x0 0x1000>; 727 + interrupts = <0 0x44 0x4>; 728 + #clock-cells = <1>; 729 + clocks = <&i2cclk 0>; 730 + bus_num = <0>; 731 + }; 732 + 752 733 phy1: phy@1f21a000 { 753 734 compatible = "apm,xgene-phy"; 754 735 reg = <0x0 0x1f21a000 0x0 0x100>; ··· 865 758 clocks = <&sata45clk 0>; 866 759 phys = <&phy3 0>; 867 760 phy-names = "sata-phy"; 761 + }; 762 + 763 + /* Do not change dwusb name, coded for backward compatibility */ 764 + usb0: dwusb@19000000 { 765 + status = "disabled"; 766 + compatible = "snps,dwc3"; 767 + reg = <0x0 0x19000000 0x0 0x100000>; 768 + interrupts = <0x0 0x89 0x4>; 769 + dma-coherent; 770 + dr_mode = "host"; 771 + }; 772 + 773 + usb1: dwusb@19800000 { 774 + status = "disabled"; 775 + compatible = "snps,dwc3"; 776 + reg = <0x0 0x19800000 0x0 0x100000>; 777 + interrupts = <0x0 0x8a 0x4>; 778 + dma-coherent; 779 + dr_mode = "host"; 868 780 }; 869 781 870 782 sbgpio: sbgpio@17001000{