Re: [PATCH 02/13] ARM: dts: broadcom: bcm2835-rpi: Move non simple-bus nodes to root level
From: Rob Herring <robh@kernel.org>
Date: 2026-01-12 18:09:28
Also in:
linux-devicetree, lkml
On Fri, Jan 9, 2026 at 6:01 AM Marek Szyprowski [off-list ref] wrote:
quoted hunk ↗ jump to hunk
On 07.01.2026 03:09, Rob Herring (Arm) wrote:quoted
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.dtsib/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... Rob