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