aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2016-07-05 23:47:49 -0400
committerFlorian Fainelli <f.fainelli@gmail.com>2016-07-05 23:47:49 -0400
commitb2aa1bb2be9c9cf4727ddb81ae1d0ad5a0c683a8 (patch)
tree5f20de89ddc647c29ac1d7bc3266135cdd61cbd2
parent5dcc9c7618dff61de243ca9bbac7de18ef92f49b (diff)
parent02d08603649816a941246c18252e5c41fd07625a (diff)
Merge tag 'bcm2835-dt-64-next-2016-07-03' into devicetree-arm64/next
This pull request brings in the Raspberry Pi 3 DT for its arm64 support. Note that it also merges in the ethernet DT changes so that the Pi3's ethernet can also get the MAC address. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
-rw-r--r--Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt4
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi-b-plus.dts1
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts1
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi-b.dts1
-rw-r--r--arch/arm/boot/dts/bcm2836-rpi-2-b.dts1
-rw-r--r--arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi19
-rw-r--r--arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi19
-rw-r--r--arch/arm/boot/dts/bcm283x.dtsi2
-rw-r--r--arch/arm64/boot/dts/broadcom/Makefile1
-rw-r--r--arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts30
-rw-r--r--arch/arm64/boot/dts/broadcom/bcm2837.dtsi76
11 files changed, 155 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
index 11d3056dc2bd..6ffe08778465 100644
--- a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
+++ b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
@@ -30,6 +30,10 @@ Raspberry Pi 2 Model B
30Required root node properties: 30Required root node properties:
31compatible = "raspberrypi,2-model-b", "brcm,bcm2836"; 31compatible = "raspberrypi,2-model-b", "brcm,bcm2836";
32 32
33Raspberry Pi 3 Model B
34Required root node properties:
35compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
36
33Raspberry Pi Compute Module 37Raspberry Pi Compute Module
34Required root node properties: 38Required root node properties:
35compatible = "raspberrypi,compute-module", "brcm,bcm2835"; 39compatible = "raspberrypi,compute-module", "brcm,bcm2835";
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
index 57d313b6afaf..d5fdb8e761a3 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
@@ -1,6 +1,7 @@
1/dts-v1/; 1/dts-v1/;
2#include "bcm2835.dtsi" 2#include "bcm2835.dtsi"
3#include "bcm2835-rpi.dtsi" 3#include "bcm2835-rpi.dtsi"
4#include "bcm283x-rpi-smsc9514.dtsi"
4 5
5/ { 6/ {
6 compatible = "raspberrypi,model-b-plus", "brcm,bcm2835"; 7 compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
index cf2774ec0834..bfc4bd9b7733 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
@@ -1,6 +1,7 @@
1/dts-v1/; 1/dts-v1/;
2#include "bcm2835.dtsi" 2#include "bcm2835.dtsi"
3#include "bcm2835-rpi.dtsi" 3#include "bcm2835-rpi.dtsi"
4#include "bcm283x-rpi-smsc9512.dtsi"
4 5
5/ { 6/ {
6 compatible = "raspberrypi,model-b-rev2", "brcm,bcm2835"; 7 compatible = "raspberrypi,model-b-rev2", "brcm,bcm2835";
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b.dts b/arch/arm/boot/dts/bcm2835-rpi-b.dts
index 8b15f9c35643..0371bb7374b8 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts
@@ -1,6 +1,7 @@
1/dts-v1/; 1/dts-v1/;
2#include "bcm2835.dtsi" 2#include "bcm2835.dtsi"
3#include "bcm2835-rpi.dtsi" 3#include "bcm2835-rpi.dtsi"
4#include "bcm283x-rpi-smsc9512.dtsi"
4 5
5/ { 6/ {
6 compatible = "raspberrypi,model-b", "brcm,bcm2835"; 7 compatible = "raspberrypi,model-b", "brcm,bcm2835";
diff --git a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
index c4743f42237b..29e1cfe8eb14 100644
--- a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
+++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
@@ -1,6 +1,7 @@
1/dts-v1/; 1/dts-v1/;
2#include "bcm2836.dtsi" 2#include "bcm2836.dtsi"
3#include "bcm2835-rpi.dtsi" 3#include "bcm2835-rpi.dtsi"
4#include "bcm283x-rpi-smsc9514.dtsi"
4 5
5/ { 6/ {
6 compatible = "raspberrypi,2-model-b", "brcm,bcm2836"; 7 compatible = "raspberrypi,2-model-b", "brcm,bcm2836";
diff --git a/arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi b/arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi
new file mode 100644
index 000000000000..12c981e51134
--- /dev/null
+++ b/arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi
@@ -0,0 +1,19 @@
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};
diff --git a/arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi b/arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi
new file mode 100644
index 000000000000..3f0a56ebcf1f
--- /dev/null
+++ b/arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi
@@ -0,0 +1,19 @@
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};
diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
index 10b27b912bac..b98252232d20 100644
--- a/arch/arm/boot/dts/bcm283x.dtsi
+++ b/arch/arm/boot/dts/bcm283x.dtsi
@@ -287,6 +287,8 @@
287 compatible = "brcm,bcm2835-usb"; 287 compatible = "brcm,bcm2835-usb";
288 reg = <0x7e980000 0x10000>; 288 reg = <0x7e980000 0x10000>;
289 interrupts = <1 9>; 289 interrupts = <1 9>;
290 #address-cells = <1>;
291 #size-cells = <0>;
290 }; 292 };
291 293
292 v3d: v3d@7ec00000 { 294 v3d: v3d@7ec00000 {
diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile
index bec1f8b36f60..05faf2a8a35c 100644
--- a/arch/arm64/boot/dts/broadcom/Makefile
+++ b/arch/arm64/boot/dts/broadcom/Makefile
@@ -1,3 +1,4 @@
1dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb
1dtb-$(CONFIG_ARCH_BCM_IPROC) += ns2-svk.dtb 2dtb-$(CONFIG_ARCH_BCM_IPROC) += ns2-svk.dtb
2dtb-$(CONFIG_ARCH_VULCAN) += vulcan-eval.dtb 3dtb-$(CONFIG_ARCH_VULCAN) += vulcan-eval.dtb
3 4
diff --git a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts
new file mode 100644
index 000000000000..6f47dd2bb1db
--- /dev/null
+++ b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts
@@ -0,0 +1,30 @@
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};
diff --git a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi
new file mode 100644
index 000000000000..f2a31d06845d
--- /dev/null
+++ b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi
@@ -0,0 +1,76 @@
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};