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.8/devicetree-arm64-part2' of http://github.com/Broadcom/stblinux into next/dt64

Merge "Broadcom ARM64 Device Tree changes for 4.8 (part 2)" from Florian Fainelli:

This pull request contains the second part of the Broadcom ARM64-based SoCs
changes for 4.8. Please note that this pull request contains changes from the
ARM 32-bits port and ARM 64-bits port as well:

- Lubomir updates all BCM2835 (Raspberry Pi family) Device Tree source files with
their proper information about the on-board USB Ethernet adapter so there is
appropriate binding between this USB device and a device_node (useful for MAC
address fetching and stuff), this commit is also present for the ARM DT pull
request

- Eric adds support for the Raspberry Pi 3 aka BCM2837 and provides the binding
information and the basic SoC DT include file required to boot to a prompt

- Gerd updates the Raspberry Pi 3 DT with Ethernet information based on the
earlier change from Lubomir

* tag 'arm-soc/for-4.8/devicetree-arm64-part2' of http://github.com/Broadcom/stblinux:
ARM: bcm2837: dt: Add the ethernet to the device trees
ARM: bcm2835: Add devicetree for the Raspberry Pi 3.
dt-bindings: Add root properties for Raspberry Pi 3
ARM: bcm2835: dt: Add the ethernet to the device trees

+155
+4
Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
··· 30 30 Required root node properties: 31 31 compatible = "raspberrypi,2-model-b", "brcm,bcm2836"; 32 32 33 + Raspberry Pi 3 Model B 34 + Required root node properties: 35 + compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; 36 + 33 37 Raspberry Pi Compute Module 34 38 Required root node properties: 35 39 compatible = "raspberrypi,compute-module", "brcm,bcm2835";
+1
arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
··· 1 1 /dts-v1/; 2 2 #include "bcm2835.dtsi" 3 3 #include "bcm2835-rpi.dtsi" 4 + #include "bcm283x-rpi-smsc9514.dtsi" 4 5 5 6 / { 6 7 compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";
+1
arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
··· 1 1 /dts-v1/; 2 2 #include "bcm2835.dtsi" 3 3 #include "bcm2835-rpi.dtsi" 4 + #include "bcm283x-rpi-smsc9512.dtsi" 4 5 5 6 / { 6 7 compatible = "raspberrypi,model-b-rev2", "brcm,bcm2835";
+1
arch/arm/boot/dts/bcm2835-rpi-b.dts
··· 1 1 /dts-v1/; 2 2 #include "bcm2835.dtsi" 3 3 #include "bcm2835-rpi.dtsi" 4 + #include "bcm283x-rpi-smsc9512.dtsi" 4 5 5 6 / { 6 7 compatible = "raspberrypi,model-b", "brcm,bcm2835";
+1
arch/arm/boot/dts/bcm2836-rpi-2-b.dts
··· 1 1 /dts-v1/; 2 2 #include "bcm2836.dtsi" 3 3 #include "bcm2835-rpi.dtsi" 4 + #include "bcm283x-rpi-smsc9514.dtsi" 4 5 5 6 / { 6 7 compatible = "raspberrypi,2-model-b", "brcm,bcm2836";
+19
arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi
··· 1 + / { 2 + aliases { 3 + ethernet = &ethernet; 4 + }; 5 + }; 6 + 7 + &usb { 8 + usb1@1 { 9 + compatible = "usb424,9512"; 10 + reg = <1>; 11 + #address-cells = <1>; 12 + #size-cells = <0>; 13 + 14 + ethernet: usbether@1 { 15 + compatible = "usb424,ec00"; 16 + reg = <1>; 17 + }; 18 + }; 19 + };
+19
arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi
··· 1 + / { 2 + aliases { 3 + ethernet = &ethernet; 4 + }; 5 + }; 6 + 7 + &usb { 8 + usb1@1 { 9 + compatible = "usb424,9514"; 10 + reg = <1>; 11 + #address-cells = <1>; 12 + #size-cells = <0>; 13 + 14 + ethernet: usbether@1 { 15 + compatible = "usb424,ec00"; 16 + reg = <1>; 17 + }; 18 + }; 19 + };
+2
arch/arm/boot/dts/bcm283x.dtsi
··· 287 287 compatible = "brcm,bcm2835-usb"; 288 288 reg = <0x7e980000 0x10000>; 289 289 interrupts = <1 9>; 290 + #address-cells = <1>; 291 + #size-cells = <0>; 290 292 }; 291 293 292 294 v3d: v3d@7ec00000 {
+1
arch/arm64/boot/dts/broadcom/Makefile
··· 1 + dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb 1 2 dtb-$(CONFIG_ARCH_BCM_IPROC) += ns2-svk.dtb 2 3 dtb-$(CONFIG_ARCH_VULCAN) += vulcan-eval.dtb 3 4
+30
arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts
··· 1 + /dts-v1/; 2 + #include "bcm2837.dtsi" 3 + #include "../../../../arm/boot/dts/bcm2835-rpi.dtsi" 4 + #include "../../../../arm/boot/dts/bcm283x-rpi-smsc9514.dtsi" 5 + 6 + / { 7 + compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; 8 + model = "Raspberry Pi 3 Model B"; 9 + 10 + memory { 11 + reg = <0 0x40000000>; 12 + }; 13 + 14 + leds { 15 + act { 16 + gpios = <&gpio 47 0>; 17 + }; 18 + 19 + pwr { 20 + label = "PWR"; 21 + gpios = <&gpio 35 0>; 22 + default-state = "keep"; 23 + linux,default-trigger = "default-on"; 24 + }; 25 + }; 26 + }; 27 + 28 + &uart1 { 29 + status = "okay"; 30 + };
+76
arch/arm64/boot/dts/broadcom/bcm2837.dtsi
··· 1 + #include "../../../../arm/boot/dts/bcm283x.dtsi" 2 + 3 + / { 4 + compatible = "brcm,bcm2836"; 5 + 6 + soc { 7 + ranges = <0x7e000000 0x3f000000 0x1000000>, 8 + <0x40000000 0x40000000 0x00001000>; 9 + dma-ranges = <0xc0000000 0x00000000 0x3f000000>; 10 + 11 + local_intc: local_intc { 12 + compatible = "brcm,bcm2836-l1-intc"; 13 + reg = <0x40000000 0x100>; 14 + interrupt-controller; 15 + #interrupt-cells = <1>; 16 + interrupt-parent = <&local_intc>; 17 + }; 18 + }; 19 + 20 + timer { 21 + compatible = "arm,armv7-timer"; 22 + interrupt-parent = <&local_intc>; 23 + interrupts = <0>, // PHYS_SECURE_PPI 24 + <1>, // PHYS_NONSECURE_PPI 25 + <3>, // VIRT_PPI 26 + <2>; // HYP_PPI 27 + always-on; 28 + }; 29 + 30 + cpus: cpus { 31 + #address-cells = <1>; 32 + #size-cells = <0>; 33 + 34 + cpu0: cpu@0 { 35 + device_type = "cpu"; 36 + compatible = "arm,cortex-a53"; 37 + reg = <0>; 38 + enable-method = "spin-table"; 39 + cpu-release-addr = <0x0 0x000000d8>; 40 + }; 41 + 42 + cpu1: cpu@1 { 43 + device_type = "cpu"; 44 + compatible = "arm,cortex-a53"; 45 + reg = <1>; 46 + enable-method = "spin-table"; 47 + cpu-release-addr = <0x0 0x000000e0>; 48 + }; 49 + 50 + cpu2: cpu@2 { 51 + device_type = "cpu"; 52 + compatible = "arm,cortex-a53"; 53 + reg = <2>; 54 + enable-method = "spin-table"; 55 + cpu-release-addr = <0x0 0x000000e8>; 56 + }; 57 + 58 + cpu3: cpu@3 { 59 + device_type = "cpu"; 60 + compatible = "arm,cortex-a53"; 61 + reg = <3>; 62 + enable-method = "spin-table"; 63 + cpu-release-addr = <0x0 0x000000f0>; 64 + }; 65 + }; 66 + }; 67 + 68 + /* Make the BCM2835-style global interrupt controller be a child of the 69 + * CPU-local interrupt controller. 70 + */ 71 + &intc { 72 + compatible = "brcm,bcm2836-armctrl-ic"; 73 + reg = <0x7e00b200 0x200>; 74 + interrupt-parent = <&local_intc>; 75 + interrupts = <8>; 76 + };