[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <e98ad883-7ba2-417b-8cd3-19f5f863b03d@samsung.com>
Date: Fri, 9 Jan 2026 13:01:35 +0100
From: Marek Szyprowski <m.szyprowski@...sung.com>
To: "Rob Herring (Arm)" <robh@...nel.org>, Krzysztof Kozlowski
<krzk+dt@...nel.org>, Conor Dooley <conor+dt@...nel.org>, Florian Fainelli
<florian.fainelli@...adcom.com>, Broadcom internal kernel review list
<bcm-kernel-feedback-list@...adcom.com>, Ray Jui <rjui@...adcom.com>, Scott
Branden <sbranden@...adcom.com>
Cc: devicetree@...r.kernel.org, linux-rpi-kernel@...ts.infradead.org,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 02/13] ARM: dts: broadcom: bcm2835-rpi: Move non
simple-bus nodes to root level
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@...nel.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@...00000 {
> 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@...0b840 {
> compatible = "brcm,bcm2835-vchiq";
> reg = <0x7e00b840 0x3c>;
>
Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland
Powered by blists - more mailing lists