Thread (31 messages) 31 messages, 3 authors, 2026-01-16

Re: [PATCH 02/13] ARM: dts: broadcom: bcm2835-rpi: Move non simple-bus nodes to root level

From: Marek Szyprowski <m.szyprowski@samsung.com>
Date: 2026-01-09 12:01:39
Also in: linux-devicetree, lkml

On 07.01.2026 03:09, Rob Herring (Arm) wrote:
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 /firmware node.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
This breaks operation of all drivers under the firmware node. I'm not 
exactly sure why, but they are not properly instantiated. It must be 
something specific to "firmware" name, but I didn't dig enough to find 
exactly where and why.

After changing the "/firmware" node name "xfirmware" everything works again:

diff --git a/arch/arm/boot/dts/broadcom/bcm2835-rpi.dtsi 
b/arch/arm/boot/dts/broadcom/bcm2835-rpi.dtsi
index 9ab70b519a63..464f032ccb71 100644
--- a/arch/arm/boot/dts/broadcom/bcm2835-rpi.dtsi
+++ b/arch/arm/boot/dts/broadcom/bcm2835-rpi.dtsi
@@ -1,7 +1,7 @@
  #include <dt-bindings/power/raspberrypi-power.h>

  / {
-       firmware: firmware {
+       firmware: xfirmware {
                 compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
                 mboxes = <&mailbox>;

Same issue occurs with bcm2712 change (patch 3/13).

quoted hunk ↗ jump to hunk
---
  arch/arm/boot/dts/broadcom/bcm2835-common.dtsi |  7 ++++---
  arch/arm/boot/dts/broadcom/bcm2835-rpi.dtsi    | 16 ++++++++--------
  2 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/arch/arm/boot/dts/broadcom/bcm2835-common.dtsi b/arch/arm/boot/dts/broadcom/bcm2835-common.dtsi
index 9261b67dbee1..1e76b290510d 100644
--- a/arch/arm/boot/dts/broadcom/bcm2835-common.dtsi
+++ b/arch/arm/boot/dts/broadcom/bcm2835-common.dtsi
@@ -141,9 +141,10 @@ v3d: v3d@7ec00000 {
  			interrupts = <1 10>;
  		};
  
-		vc4: gpu {
-			compatible = "brcm,bcm2835-vc4";
-		};
+	};
+
+	vc4: gpu {
+		compatible = "brcm,bcm2835-vc4";
  	};
  };
  
diff --git a/arch/arm/boot/dts/broadcom/bcm2835-rpi.dtsi b/arch/arm/boot/dts/broadcom/bcm2835-rpi.dtsi
index e9bf41b9f5c1..9ab70b519a63 100644
--- a/arch/arm/boot/dts/broadcom/bcm2835-rpi.dtsi
+++ b/arch/arm/boot/dts/broadcom/bcm2835-rpi.dtsi
@@ -1,15 +1,13 @@
  #include <dt-bindings/power/raspberrypi-power.h>
  
  / {
-	soc {
-		firmware: firmware {
-			compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
-			mboxes = <&mailbox>;
+	firmware: firmware {
+		compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
+		mboxes = <&mailbox>;
  
-			firmware_clocks: clocks {
-				compatible = "raspberrypi,firmware-clocks";
-				#clock-cells = <1>;
-			};
+		firmware_clocks: clocks {
+			compatible = "raspberrypi,firmware-clocks";
+			#clock-cells = <1>;
  		};
  
  		power: power {
@@ -17,7 +15,9 @@ power: power {
  			firmware = <&firmware>;
  			#power-domain-cells = <1>;
  		};
+	};
  
+	soc {
  		vchiq: mailbox@7e00b840 {
  			compatible = "brcm,bcm2835-vchiq";
  			reg = <0x7e00b840 0x3c>;
Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help