Re: [PATCH v21 08/13] mfd: core: Add firmware-node support to MFD cells

From: Shivendra Pratap

Date: Wed Apr 29 2026 - 05:55:06 EST




On 28-04-2026 18:33, Shivendra Pratap wrote:


On 28-04-2026 18:21, Bartosz Golaszewski wrote:
On Tue, Apr 28, 2026 at 2:18 PM Shivendra Pratap
<shivendra.pratap@xxxxxxxxxxxxxxxx> wrote:



On 28-04-2026 13:33, Bartosz Golaszewski wrote:
On Mon, 27 Apr 2026 19:34:48 +0200, Shivendra Pratap
<shivendra.pratap@xxxxxxxxxxxxxxxx> said:
MFD core has no way to register a child device using an explicit firmware
node. This prevents drivers from registering child nodes when those nodes
do not define a compatible string. One such example is the PSCI
"reboot-mode" node, which omits a compatible string as it describes
boot-states provided by the underlying firmware.

Extend struct mfd_cell with an optional fwnode pointer and attach it to the
child device during registration when no firmware node is already assigned.

Signed-off-by: Shivendra Pratap <shivendra.pratap@xxxxxxxxxxxxxxxx>
---

In the following patch you use this and violate the supposed constness of
MFD cells. This also mean you need to modify the mfd_cell at run- time. I would
prefer introducing a field in mfd_cell: bool use_parent_fwnode which would
indicate to MFD core that - in case no fwnode was assigned from other sources:
DT or software node - it should reuse the parent MFD device's node.

Have one doubt on this, When we fallback to use_parent_fwnode for cell:
psci-reboot-mode, at psci_reboot_mode_probe(), pDev->dev->of_node point
to psci node.

But we want dev->of_node to point to "reboot-mode" node. This may need
an explicit assignment again of of_node?


Ah, sorry you're right. I'd like to avoid having to modify the
mfd_cell entry at run-time if possible.

How about a callback in mfd_cell like:

struct fwnode_handle *(*get_fwnode)(struct device *parent);

If set, it would be called from MFD core and would do the name lookup
and return the fwnode which would then be assigned to the cell device?


Or should we just drop this patch for fwnode in mfd-core?

Export a new call in reboot-mode framework as:
reboot_mode_register_node(struct reboot_mode_driver *reboot, struct device_node *np / fwnode)

Use the parent node in psci-reboot-mode and find reboot-mode and call reboot_mode_register_node?

thanks,
Shivendra

sure. thanks. We can make it a callback from MFD core.

thanks,
Shivendra