Re: [PATCH 02/13] ARM: dts: broadcom: bcm2835-rpi: Move non simple-bus nodes to root level
From: Florian Fainelli
Date: Fri Jan 16 2026 - 16:49:33 EST
On 1/12/26 10:09, Rob Herring wrote:
On Fri, Jan 9, 2026 at 6:01 AM Marek Szyprowski
<m.szyprowski@xxxxxxxxxxx> wrote:
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@xxxxxxxxxx>
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).
The issue is how /firmware is handled in drivers/of/platform.c and it
doesn't create a device for the /firmware node. I think the fix here
is /firmware needs to be just a container node and move
"raspberrypi,bcm2835-firmware" down a level. That also allows for
different types of firmware such as a TEE or SCMI should those or
something similar ever be needed.
I'll see if I can get kernelci to test that change. I don't think my
branch boots all boards though...
Dropped this patch for now, until your of_platform.c fix lands and I can apply your two other patches.
--
Florian