[PATCH 02/13] ARM: dts: broadcom: bcm2835-rpi: Move non simple-bus nodes to root level
Marek Szyprowski
m.szyprowski at samsung.com
Fri Jan 9 04:01:35 PST 2026
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 at 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).
> ---
> 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 at 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 at 7e00b840 {
> compatible = "brcm,bcm2835-vchiq";
> reg = <0x7e00b840 0x3c>;
>
Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland
More information about the linux-arm-kernel
mailing list