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

Merge tag 'arm-soc/for-4.6/devicetree-arm64' of http://github.com/Broadcom/stblinux into next/dt64

Merge "Broadcom devicetree-arm64 changes for 4.6" from Florian Fainelli:

This pull request contains Broadcom ARM64-based SoCs device tree changes:

- Anup adds additional nodes to the Broadcom Northstart 2 Device Trees: SDHCI
(iProc-compatible), ARM SP804 timers, ARM SP805 watchdog

- Anup also adds a binding documentation for the ARM SP805 watchdog since there
was not one in tree before

- Ray adds PCIE root complex nodes to the Northstar 2 Device Tree nodes, using
the iProc-compatible binding

- Jayachandran C. adds binding documentation for the Broadcom Vulcan processors and
reference platforms

* tag 'arm-soc/for-4.6/devicetree-arm64' of http://github.com/Broadcom/stblinux:
dt-bindings: Add documentation for Broadcom Vulcan
arm64: dts: Add PCIe0 and PCIe4 DT nodes for NS2
arm64: dts: Add ARM SP805 watchdog DT node for NS2
dt-bindings: watchdog: Add ARM SP805 DT bindings
arm64: dts: Add ARM SP804 timer DT nodes for NS2
arm64: dts: Add SDHCI DT node for NS2

+180
+10
Documentation/devicetree/bindings/arm/bcm/brcm,vulcan-soc.txt
··· 1 + Broadcom Vulcan device tree bindings 2 + ------------------------------------ 3 + 4 + Boards with Broadcom Vulcan shall have the following root property: 5 + 6 + Broadcom Vulcan Evaluation Board: 7 + compatible = "brcm,vulcan-eval", "brcm,vulcan-soc"; 8 + 9 + Generic Vulcan board: 10 + compatible = "brcm,vulcan-soc";
+1
Documentation/devicetree/bindings/arm/cpus.txt
··· 167 167 "arm,cortex-r5" 168 168 "arm,cortex-r7" 169 169 "brcm,brahma-b15" 170 + "brcm,vulcan" 170 171 "cavium,thunder" 171 172 "faraday,fa526" 172 173 "intel,sa110"
+17
Documentation/devicetree/bindings/watchdog/arm,sp805.txt
··· 1 + ARM AMBA Primecell SP805 Watchdog 2 + 3 + Required properties: 4 + - compatible: Should be "arm,sp805" & "arm,primecell" 5 + - reg: Should contain location and length for watchdog timer register. 6 + - interrupts: Should contain the list of watchdog timer interrupts. 7 + - clocks: clocks driving the watchdog timer hardware. This list should be 2 8 + clocks. With 2 clocks, the order is wdogclk clock, apb_pclk. 9 + 10 + Example: 11 + watchdog@66090000 { 12 + compatible = "arm,sp805", "arm,primecell"; 13 + reg = <0x66090000 0x1000>; 14 + interrupts = <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>; 15 + clocks = <&apb_pclk>,<&apb_pclk>; 16 + clock-names = "wdogclk", "apb_pclk"; 17 + };
+12
arch/arm64/boot/dts/broadcom/ns2-svk.dts
··· 52 52 }; 53 53 }; 54 54 55 + &pcie0 { 56 + status = "ok"; 57 + }; 58 + 59 + &pcie4 { 60 + status = "ok"; 61 + }; 62 + 55 63 &i2c0 { 56 64 status = "ok"; 57 65 }; ··· 69 61 }; 70 62 71 63 &uart3 { 64 + status = "ok"; 65 + }; 66 + 67 + &sdio0 { 72 68 status = "ok"; 73 69 }; 74 70
+140
arch/arm64/boot/dts/broadcom/ns2.dtsi
··· 137 137 }; 138 138 }; 139 139 140 + pcie0: pcie@20020000 { 141 + compatible = "brcm,iproc-pcie"; 142 + reg = <0 0x20020000 0 0x1000>; 143 + 144 + #interrupt-cells = <1>; 145 + interrupt-map-mask = <0 0 0 0>; 146 + interrupt-map = <0 0 0 0 &gic GIC_SPI 281 IRQ_TYPE_NONE>; 147 + 148 + linux,pci-domain = <0>; 149 + 150 + bus-range = <0x00 0xff>; 151 + 152 + #address-cells = <3>; 153 + #size-cells = <2>; 154 + device_type = "pci"; 155 + ranges = <0x83000000 0 0x00000000 0 0x00000000 0 0x20000000>; 156 + 157 + brcm,pcie-ob; 158 + brcm,pcie-ob-oarr-size; 159 + brcm,pcie-ob-axi-offset = <0x00000000>; 160 + brcm,pcie-ob-window-size = <256>; 161 + 162 + status = "disabled"; 163 + 164 + msi-parent = <&msi0>; 165 + msi0: msi@20020000 { 166 + compatible = "brcm,iproc-msi"; 167 + msi-controller; 168 + interrupt-parent = <&gic>; 169 + interrupts = <GIC_SPI 277 IRQ_TYPE_NONE>, 170 + <GIC_SPI 278 IRQ_TYPE_NONE>, 171 + <GIC_SPI 279 IRQ_TYPE_NONE>, 172 + <GIC_SPI 280 IRQ_TYPE_NONE>; 173 + brcm,num-eq-region = <1>; 174 + brcm,num-msi-msg-region = <1>; 175 + }; 176 + }; 177 + 178 + pcie4: pcie@50020000 { 179 + compatible = "brcm,iproc-pcie"; 180 + reg = <0 0x50020000 0 0x1000>; 181 + 182 + #interrupt-cells = <1>; 183 + interrupt-map-mask = <0 0 0 0>; 184 + interrupt-map = <0 0 0 0 &gic GIC_SPI 305 IRQ_TYPE_NONE>; 185 + 186 + linux,pci-domain = <4>; 187 + 188 + bus-range = <0x00 0xff>; 189 + 190 + #address-cells = <3>; 191 + #size-cells = <2>; 192 + device_type = "pci"; 193 + ranges = <0x83000000 0 0x00000000 0 0x30000000 0 0x20000000>; 194 + 195 + brcm,pcie-ob; 196 + brcm,pcie-ob-oarr-size; 197 + brcm,pcie-ob-axi-offset = <0x30000000>; 198 + brcm,pcie-ob-window-size = <256>; 199 + 200 + status = "disabled"; 201 + 202 + msi-parent = <&msi4>; 203 + msi4: msi@50020000 { 204 + compatible = "brcm,iproc-msi"; 205 + msi-controller; 206 + interrupt-parent = <&gic>; 207 + interrupts = <GIC_SPI 301 IRQ_TYPE_NONE>, 208 + <GIC_SPI 302 IRQ_TYPE_NONE>, 209 + <GIC_SPI 303 IRQ_TYPE_NONE>, 210 + <GIC_SPI 304 IRQ_TYPE_NONE>; 211 + }; 212 + }; 213 + 140 214 soc: soc { 141 215 compatible = "simple-bus"; 142 216 #address-cells = <1>; ··· 330 256 <0x65260000 0x1000>; 331 257 }; 332 258 259 + timer0: timer@66030000 { 260 + compatible = "arm,sp804", "arm,primecell"; 261 + reg = <0x66030000 0x1000>; 262 + interrupts = <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>; 263 + clocks = <&iprocslow>, 264 + <&iprocslow>, 265 + <&iprocslow>; 266 + clock-names = "timer1", "timer2", "apb_pclk"; 267 + }; 268 + 269 + timer1: timer@66040000 { 270 + compatible = "arm,sp804", "arm,primecell"; 271 + reg = <0x66040000 0x1000>; 272 + interrupts = <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>; 273 + clocks = <&iprocslow>, 274 + <&iprocslow>, 275 + <&iprocslow>; 276 + clock-names = "timer1", "timer2", "apb_pclk"; 277 + }; 278 + 279 + timer2: timer@66050000 { 280 + compatible = "arm,sp804", "arm,primecell"; 281 + reg = <0x66050000 0x1000>; 282 + interrupts = <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>; 283 + clocks = <&iprocslow>, 284 + <&iprocslow>, 285 + <&iprocslow>; 286 + clock-names = "timer1", "timer2", "apb_pclk"; 287 + }; 288 + 289 + timer3: timer@66060000 { 290 + compatible = "arm,sp804", "arm,primecell"; 291 + reg = <0x66060000 0x1000>; 292 + interrupts = <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>; 293 + clocks = <&iprocslow>, 294 + <&iprocslow>, 295 + <&iprocslow>; 296 + clock-names = "timer1", "timer2", "apb_pclk"; 297 + }; 298 + 333 299 i2c0: i2c@66080000 { 334 300 compatible = "brcm,iproc-i2c"; 335 301 reg = <0x66080000 0x100>; ··· 378 264 interrupts = <GIC_SPI 394 IRQ_TYPE_NONE>; 379 265 clock-frequency = <100000>; 380 266 status = "disabled"; 267 + }; 268 + 269 + wdt0: watchdog@66090000 { 270 + compatible = "arm,sp805", "arm,primecell"; 271 + reg = <0x66090000 0x1000>; 272 + interrupts = <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>; 273 + clocks = <&iprocslow>, <&iprocslow>; 274 + clock-names = "wdogclk", "apb_pclk"; 381 275 }; 382 276 383 277 i2c1: i2c@660b0000 { ··· 411 289 hwrng: hwrng@66220000 { 412 290 compatible = "brcm,iproc-rng200"; 413 291 reg = <0x66220000 0x28>; 292 + }; 293 + 294 + sdio0: sdhci@66420000 { 295 + compatible = "brcm,sdhci-iproc-cygnus"; 296 + reg = <0x66420000 0x100>; 297 + interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>; 298 + bus-width = <8>; 299 + clocks = <&genpll_sw BCM_NS2_GENPLL_SW_SDIO_CLK>; 300 + status = "disabled"; 301 + }; 302 + 303 + sdio1: sdhci@66430000 { 304 + compatible = "brcm,sdhci-iproc-cygnus"; 305 + reg = <0x66430000 0x100>; 306 + interrupts = <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>; 307 + bus-width = <8>; 308 + clocks = <&genpll_sw BCM_NS2_GENPLL_SW_SDIO_CLK>; 309 + status = "disabled"; 414 310 }; 415 311 416 312 nand: nand@66460000 {