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
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJXfcQqAAoJEIfQlpxEBwcE1dAQANrY/Qj4mwSkTcvRYTwZqf6/
 KOGivObK0t53Fo3EzVZnBlBI+rotm3EBN9MXsiQmODZkdVE6UMZPBUrHQREjc83w
 6NN95xMxPwaJRfhgwo9vRzeGTNvMhJMkIP5JlNYU0QcDHpDr1OSzIuGPFeRdnMbB
 ksXVg6JUec6b4Mt2vyU4DkW7upLA9mYQe5KXvXx4hkMGKaCXPF7CL0Ba5eQURYhl
 gu53DUCfTnyGFqKu0gxJIoWL5GWETa1ySuFC5BQvMhVbSFI2ObZZb3b7CIrvBgL1
 ugPhfKTm72EGDKaWCliiQ4jU1JKZqhDUY5FevTBGSH9Soi4+ncgOytoNA9h6swwq
 DcxKfkp5OlEzfpVey6c73MdZ5Hj9SLFqsn0Q0gYrYEYP5RCkekKU4qX+mssbXLZe
 gFVo+NR+ui8g+98p5MysMO+97/jA8M+7nMbsmWhSa8QOwK8e3HE2vuZo9yyPhGvl
 feEgP8ZFlY1ZrTkni0fOM6HfTTqyMoSHY0JmMEFBP21D6l2OyWyw2oOJWu1aZK9k
 Anw+CzmaryOSyA86AHMnwDqyTFnC2CD7NZOYnYYcwVTH2yiZrO6EFocNHRIoYtUE
 uv6M7c0TAeVGFF/iQEIfBmtBJU5Ku71M4dN7p8nAsbw9yGp2CpfHcMc+qy8lsl0W
 15ZTYMEPJa7jU/hu0e/+
 =KQmU
 -----END PGP SIGNATURE-----

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
This commit is contained in:
Arnd Bergmann 2016-07-07 15:42:55 +02:00
commit 62a4d9b588
11 changed files with 155 additions and 0 deletions

View File

@ -30,6 +30,10 @@ Raspberry Pi 2 Model B
Required root node properties:
compatible = "raspberrypi,2-model-b", "brcm,bcm2836";
Raspberry Pi 3 Model B
Required root node properties:
compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
Raspberry Pi Compute Module
Required root node properties:
compatible = "raspberrypi,compute-module", "brcm,bcm2835";

View File

@ -1,6 +1,7 @@
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
#include "bcm283x-rpi-smsc9514.dtsi"
/ {
compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";

View File

@ -1,6 +1,7 @@
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
#include "bcm283x-rpi-smsc9512.dtsi"
/ {
compatible = "raspberrypi,model-b-rev2", "brcm,bcm2835";

View File

@ -1,6 +1,7 @@
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
#include "bcm283x-rpi-smsc9512.dtsi"
/ {
compatible = "raspberrypi,model-b", "brcm,bcm2835";

View File

@ -1,6 +1,7 @@
/dts-v1/;
#include "bcm2836.dtsi"
#include "bcm2835-rpi.dtsi"
#include "bcm283x-rpi-smsc9514.dtsi"
/ {
compatible = "raspberrypi,2-model-b", "brcm,bcm2836";

View File

@ -0,0 +1,19 @@
/ {
aliases {
ethernet = &ethernet;
};
};
&usb {
usb1@1 {
compatible = "usb424,9512";
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
ethernet: usbether@1 {
compatible = "usb424,ec00";
reg = <1>;
};
};
};

View File

@ -0,0 +1,19 @@
/ {
aliases {
ethernet = &ethernet;
};
};
&usb {
usb1@1 {
compatible = "usb424,9514";
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
ethernet: usbether@1 {
compatible = "usb424,ec00";
reg = <1>;
};
};
};

View File

@ -287,6 +287,8 @@
compatible = "brcm,bcm2835-usb";
reg = <0x7e980000 0x10000>;
interrupts = <1 9>;
#address-cells = <1>;
#size-cells = <0>;
};
v3d: v3d@7ec00000 {

View File

@ -1,3 +1,4 @@
dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb
dtb-$(CONFIG_ARCH_BCM_IPROC) += ns2-svk.dtb
dtb-$(CONFIG_ARCH_VULCAN) += vulcan-eval.dtb

View File

@ -0,0 +1,30 @@
/dts-v1/;
#include "bcm2837.dtsi"
#include "../../../../arm/boot/dts/bcm2835-rpi.dtsi"
#include "../../../../arm/boot/dts/bcm283x-rpi-smsc9514.dtsi"
/ {
compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
model = "Raspberry Pi 3 Model B";
memory {
reg = <0 0x40000000>;
};
leds {
act {
gpios = <&gpio 47 0>;
};
pwr {
label = "PWR";
gpios = <&gpio 35 0>;
default-state = "keep";
linux,default-trigger = "default-on";
};
};
};
&uart1 {
status = "okay";
};

View File

@ -0,0 +1,76 @@
#include "../../../../arm/boot/dts/bcm283x.dtsi"
/ {
compatible = "brcm,bcm2836";
soc {
ranges = <0x7e000000 0x3f000000 0x1000000>,
<0x40000000 0x40000000 0x00001000>;
dma-ranges = <0xc0000000 0x00000000 0x3f000000>;
local_intc: local_intc {
compatible = "brcm,bcm2836-l1-intc";
reg = <0x40000000 0x100>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&local_intc>;
};
};
timer {
compatible = "arm,armv7-timer";
interrupt-parent = <&local_intc>;
interrupts = <0>, // PHYS_SECURE_PPI
<1>, // PHYS_NONSECURE_PPI
<3>, // VIRT_PPI
<2>; // HYP_PPI
always-on;
};
cpus: cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <0>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0x000000d8>;
};
cpu1: cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <1>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0x000000e0>;
};
cpu2: cpu@2 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <2>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0x000000e8>;
};
cpu3: cpu@3 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <3>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0x000000f0>;
};
};
};
/* Make the BCM2835-style global interrupt controller be a child of the
* CPU-local interrupt controller.
*/
&intc {
compatible = "brcm,bcm2836-armctrl-ic";
reg = <0x7e00b200 0x200>;
interrupt-parent = <&local_intc>;
interrupts = <8>;
};