[PATCH master 3/3] of: base: use default bus match table when populating /firmware

Ahmad Fatoum a.fatoum at pengutronix.de
Thu Oct 15 01:48:31 PDT 2026


From: Ahmad Fatoum <a.fatoum at barebox.org>

This is an adoption of the corresponding Linux commit:

| commit 48e6a9c4a20870e09f85ff1a3628275d6bce31c0
| Author:     Rob Herring (Arm) <robh at kernel.org>
| AuthorDate: Tue Jan 13 19:51:58 2026 -0600
|
|     of: platform: Use default match table for /firmware
|
|     Calling of_platform_populate() without a match table will only populate
|     the immediate child nodes under /firmware. This is usually fine, but in
|     the case of something like a "simple-mfd" node such as
|     "raspberrypi,bcm2835-firmware", those child nodes will not be populated.
|     And subsequent calls won't work either because the /firmware node is
|     marked as processed already.
|
|     Switch the call to of_platform_default_populate() to solve this problem.
|     It should be a nop for existing cases.
|
|     Fixes: 3aa0582fdb82 ("of: platform: populate /firmware/ node from of_platform_default_populate_init()")
|     Cc: stable at vger.kernel.org
|     Reviewed-by: Sudeep Holla <sudeep.holla at arm.com>
|     Link: https://patch.msgid.link/20260114015158.692170-2-robh@kernel.org
|     Signed-off-by: Rob Herring (Arm) <robh at kernel.org>

This change becomes necessary with the dts sync to Linux v7.1-rc1 in
commit 9eb4ad3c0b8c ("dts: update to v7.1-rc1"), which pulled in Linux
commits:

- 5e3bfd609ffd ("ARM: dts: broadcom: bcm2835-rpi: Move non simple-bus nodes
  to root level")
- 0acb1de2b4df ("arm64: dts: broadcom: bcm2712: Move non simple-bus nodes to
  root level").

On all Raspberry Pi device trees the "raspberrypi,bcm2835-firmware", "simple-mfd"
node moved from /soc/firmware (below a simple-bus, populated recursively) to
/firmware/rpi-firmware. Its clocks, power, gpio and reset children are
no longer populated.

Fixes: cb667b97c663 ("of: populate "/firmware" while populating device tree")
Assisted-by: Claude:opus-5.5
Signed-off-by: Ahmad Fatoum <a.fatoum at barebox.org>
---
 drivers/of/base.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/of/base.c b/drivers/of/base.c
index 194888359345..81aa69391692 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -3034,7 +3034,7 @@ int of_probe(void)
 
 	node = of_find_node_by_path("/firmware");
 	if (node)
-		of_platform_populate(node, NULL, NULL);
+		of_platform_populate(node, of_default_bus_match_table, NULL);
 
 	of_platform_populate(root_node, of_default_bus_match_table, NULL);
 
-- 
2.47.3




More information about the barebox mailing list