Skip to contentSkip to conversation

ARM: dts: broadcom: bcm2835-rpi: Move non simple-bus nodes to root level

PATCH Applied Rob Herring (Arm) 2 participants 5 messages Mar 20

Subsystems (3)
lore
Share & tools
lore

Rob Herring (Arm)

author maintainer
#0 lore raw

PATCH v2 1/2 ARM: dts: broadcom: bcm2835-rpi: Move non simple-bus nodes to root level

The 'gpu' and 'firmware' nodes are not MMIO devices, so they should not be under a 'simple-bus'. Additionally, the "raspberrypi,bcm2835-power" node is part of the firmware, so move it under the 'rpi-firmware' node.

---
Florian, you have the fixes for the prior versions in your tree, but not the original commits they say they fix. These apply without the fixes.

v2:
- Rebase on v7.0-rc1
- Move "raspberrypi,bcm2835-firmware" to a child node under /firmware

---
 arch/arm/boot/dts/broadcom/bcm2835-common.dtsi |  7 ++++---
 arch/arm/boot/dts/broadcom/bcm2835-rpi.dtsi    | 16 +++++++++-------
 2 files changed, 13 insertions(+), 10 deletions(-)
arch/arm/boot/dts/broadcom/bcm2835-common.dtsi +4 -3
index 9261b67dbee1..1e76b290510d 100644
@@ -141,9 +141,10 @@ v3d: v3d@7ec00000 {
 			interrupts = <1 10>;
 		};
 
-		vc4: gpu {
-			compatible = "brcm,bcm2835-vc4";
-		};
+	};
+
+	vc4: gpu {
+		compatible = "brcm,bcm2835-vc4";
 	};
 };
 
arch/arm/boot/dts/broadcom/bcm2835-rpi.dtsi +9 -7
index e9bf41b9f5c1..46c91468f4c5 100644
@@ -1,8 +1,8 @@
 #include <dt-bindings/power/raspberrypi-power.h>
 
 / {
-	soc {
-		firmware: firmware {
+	firmware {
+		firmware: rpi-firmware {
 			compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
 			mboxes = <&mailbox>;
 
@@ -10,14 +10,16 @@ firmware_clocks: clocks {
 				compatible = "raspberrypi,firmware-clocks";
 				#clock-cells = <1>;
 			};
-		};
 
-		power: power {
-			compatible = "raspberrypi,bcm2835-power";
-			firmware = <&firmware>;
-			#power-domain-cells = <1>;
+			power: power {
+				compatible = "raspberrypi,bcm2835-power";
+				firmware = <&firmware>;
+				#power-domain-cells = <1>;
+			};
 		};
+	};
 
+	soc {
 		vchiq: mailbox@7e00b840 {
 			compatible = "brcm,bcm2835-vchiq";
 			reg = <0x7e00b840 0x3c>;
Signature · 1 line
2.51.0
author maintainer
#1 lore raw

PATCH v2 2/2 arm64: dts: broadcom: bcm2712: Move non simple-bus nodes to root level

The 'gpu' and 'firmware' nodes are not MMIO devices, so they should not be under a 'simple-bus', but at the root level.

---
v2:
- Rebase on v7.0-rc1
- Move "raspberrypi,bcm2835-firmware" to a child node under /firmware

---
 .../dts/broadcom/bcm2712-rpi-5-b-base.dtsi    | 51 +++++++++----------
 arch/arm64/boot/dts/broadcom/bcm2712.dtsi     |  8 +--
 2 files changed, 28 insertions(+), 31 deletions(-)
arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi +24 -27
index 04738bf281eb..d0b7137e07d2 100644
@@ -44,6 +44,30 @@ power_button: power-button {
 		};
 	};
 
+	firmware {
+		firmware: rpi-firmware {
+			compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
+
+			mboxes = <&mailbox>;
+
+			firmware_clocks: clocks {
+				compatible = "raspberrypi,firmware-clocks";
+				#clock-cells = <1>;
+			};
+
+			reset: reset {
+				compatible = "raspberrypi,firmware-reset";
+				#reset-cells = <1>;
+			};
+
+			power: power {
+				compatible = "raspberrypi,bcm2835-power";
+				firmware = <&firmware>;
+				#power-domain-cells = <1>;
+			};
+		};
+	};
+
 	sd_io_1v8_reg: sd-io-1v8-reg {
 		compatible = "regulator-gpio";
 		regulator-name = "vdd-sd-io";
@@ -189,33 +213,6 @@ wifi: wifi@1 {
 	};
 };
 
-&soc {
-	firmware: firmware {
-		compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
-		#address-cells = <1>;
-		#size-cells = <1>;
-
-		mboxes = <&mailbox>;
-		dma-ranges;
-
-		firmware_clocks: clocks {
-			compatible = "raspberrypi,firmware-clocks";
-			#clock-cells = <1>;
-		};
-
-		reset: reset {
-			compatible = "raspberrypi,firmware-reset";
-			#reset-cells = <1>;
-		};
-	};
-
-	power: power {
-		compatible = "raspberrypi,bcm2835-power";
-		firmware = <&firmware>;
-		#power-domain-cells = <1>;
-	};
-};
-
 /* uarta communicates with the BT module */
 &uarta {
 	uart-has-rtscts;
arch/arm64/boot/dts/broadcom/bcm2712.dtsi +4 -4
index d57a9b1bff70..330a121ebfcb 100644
@@ -508,10 +508,6 @@ axi: axi {
 			     <0x18 0x00000000  0x18 0x00000000  0x04 0x00000000>,
 			     <0x1c 0x00000000  0x1c 0x00000000  0x04 0x00000000>;
 
-		vc4: gpu {
-			compatible = "brcm,bcm2712-vc6";
-		};
-
 		pcie0: pcie@1000100000 {
 			compatible = "brcm,bcm2712-pcie";
 			reg = <0x10 0x00100000 0x00 0x9310>;
@@ -648,6 +644,10 @@ mip1: msi-controller@1000131000 {
 		};
 	};
 
+	vc4: gpu {
+		compatible = "brcm,bcm2712-vc6";
+	};
+
 	timer {
 		compatible = "arm,armv8-timer";
 		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) |
Signature · 1 line
2.51.0
maintainer Applied
#2 lore raw

Re: [PATCH v2 2/2] arm64: dts: broadcom: bcm2712: Move non simple-bus nodes to root level

From: Florian Fainelli <[email protected]>

Quoted 5 lines · Rob Herring (Arm)

The 'gpu' and 'firmware' nodes are not MMIO devices, so they should not be under a 'simple-bus', but at the root level.

---

Applied to https://github.com/Broadcom/stblinux/commits/devicetree-arm64/next, thanks! --
Florian

maintainer Applied
#3 lore raw
In reply to Rob Herring (Arm)

From: Florian Fainelli <[email protected]>

Quoted 6 lines · Rob Herring (Arm)

The 'gpu' and 'firmware' nodes are not MMIO devices, so they should not be under a 'simple-bus'. Additionally, the "raspberrypi,bcm2835-power" node is part of the firmware, so move it under the 'rpi-firmware' node.

---

Applied to https://github.com/Broadcom/stblinux/commits/devicetree/next, thanks! --
Florian

maintainer
#4 lore raw
In reply to Rob Herring (Arm)
Quoted 8 lines · Rob Herring (Arm)

The 'gpu' and 'firmware' nodes are not MMIO devices, so they should not be under a 'simple-bus'. Additionally, the "raspberrypi,bcm2835-power" node is part of the firmware, so move it under the 'rpi-firmware' node.

---
Florian, you have the fixes for the prior versions in your tree, but not the original commits they say they fix. These apply without the fixes.

If you were referring to these:

https://lore.kernel.org/r/[email protected]
https://lore.kernel.org/all/[email protected]/

I did take them as a prerequisite to apply your patches but a combined set of patches works just as well.

Thank you!

Signature · 1 line
Florian