summaryrefslogtreecommitdiff
path: root/arch/arm/boot/dts/bcm2837.dtsi
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2017-07-26 13:01:56 -0700
committerFlorian Fainelli <f.fainelli@gmail.com>2017-07-28 16:54:15 -0700
commit3bfe25fa9f8a56c5c877c7fd854d89238787c6d8 (patch)
tree0ee474ae689d2cb87e2a4b3eb5996c901616ca3f /arch/arm/boot/dts/bcm2837.dtsi
parent5771a8c08880cdca3bfb4a3fc6d309d6bba20877 (diff)
ARM: dts: bcm283x: Move the BCM2837 DT contents from arm64 to arm.
BCM2837 is somewhat unusual in that we build its DT on both arm32 and arm64. Most devices are being run in arm32 mode. Having the body of the DT for 2837 separate from 2835/6 has been a source of pain, as we often need to make changes that span both directories simultaneously (for example, the thermal changes for 4.13, or anything that changes the name of a node referenced by '&' from board files). Other changes are made more complicated than they need to be, such as the SDHOST enabling, because we have to split a single logical change into a 283[56] half and a 2837 half. To fix this, make the stub board include file live in arm64 instead of arm32, and keep all of BCM283x's contents in arm32. From here on, our changes to DT contents can be submitted through a single tree. Signed-off-by: Eric Anholt <eric@anholt.net> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Diffstat (limited to 'arch/arm/boot/dts/bcm2837.dtsi')
-rw-r--r--arch/arm/boot/dts/bcm2837.dtsi86
1 files changed, 86 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/bcm2837.dtsi b/arch/arm/boot/dts/bcm2837.dtsi
new file mode 100644
index 000000000000..2d5de6f0f78d
--- /dev/null
+++ b/arch/arm/boot/dts/bcm2837.dtsi
@@ -0,0 +1,86 @@
+#include "bcm283x.dtsi"
+
+/ {
+ compatible = "brcm,bcm2837";
+
+ 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>;
+};
+
+&cpu_thermal {
+ coefficients = <(-538) 412000>;
+};
+
+/* enable thermal sensor with the correct compatible property set */
+&thermal {
+ compatible = "brcm,bcm2837-thermal";
+ status = "okay";
+};