Thread (5 messages) 5 messages, 4 authors, 2026-01-15

Re: [PATCH] of: property: fw_devlink: Add support for "mmc-pwrseq"

From: Ulf Hansson <hidden>
Date: 2026-01-12 17:24:13
Also in: linux-mmc, lkml

On Mon, 12 Jan 2026 at 03:19, Sarav K [off-list ref] wrote:
On Sat, Jan 10, 2026 at 7:28 AM Francesco Valla [off-list ref] wrote:
quoted
Add support for parsing MMC power sequencing (pwrseq) binding so that
fw_devlink can enforce the dependency.

Signed-off-by: Francesco Valla <redacted>
---
Resending this patch as it slipped through the cracks (of my attention,
at least).

Original submission is at [0]; there it appears as a v2 because it was
the first time I used b4. It was also part of [1], which wasn't really
a patchset but a follow-up to the boot time SIG meeting.

I added Ulf and CC'd the mmc list, hoping they can (more
authoritatively than me) reply to Saravan's question:

"""
I took a quick look at the documentation. It's not clear to me that
mmc-pwrseq always points to a supplier. Can someone with more
experience on this confirm that is what it's supposed to point at?
Yes, the mmc-pwrseq property provides a phandle to the supplier.
quoted
Meaning if A lists B as pwrseq, is it always the case that B needs to
be powered on? The binding documentation doesn't say anything about B
needs to be powered on first. It's just saying A and B have an
ordering requirement.
I assume with "powered on" you mean "probed". In that case, yes, A
(consumer) can't probe unless B (provider) has probed first.

Up until now, we have relied on deferred probing to manage this.
quoted
If the meaning of the binding is _ALWAYS_ B needs to be powered on
first, then yes, this patch is correct and I can give a reviewed-by.
"""
Ulf, in case you missed it, this email is directed at you or other MMC folks.

Francesco, can you see who added support for that property and direct
your question specifically to them (in case it's not Ulf)?

Is this fixing a specific issue for you that's pressing? If so, we can
land  this and then see if anyone complains.
Thanks for pinging me about this. Please let me know if there is
anything unclear.
Thanks,
Saravana
quoted
[0] https://lore.kernel.org/all/20250930-mmc_pwrseq-v2-1-80a8c6be0fb0@valla.it/ (local)
[1] https://lore.kernel.org/linux-embedded/20251126-beagleplay-probes-v1-0-c833defd4c9b@valla.it/T/

Thank you!

Regards,
Francesco
---
 drivers/of/property.c | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/drivers/of/property.c b/drivers/of/property.c
index 4e3524227720a596b0f12976f83357851e9b94f3..05ae33a58b5aec0a8f4d3b7237ce88066d86dc9d 100644
--- a/drivers/of/property.c
+++ b/drivers/of/property.c
@@ -1410,6 +1410,7 @@ DEFINE_SIMPLE_PROP(post_init_providers, "post-init-providers", NULL)
 DEFINE_SIMPLE_PROP(access_controllers, "access-controllers", "#access-controller-cells")
 DEFINE_SIMPLE_PROP(pses, "pses", "#pse-cells")
 DEFINE_SIMPLE_PROP(power_supplies, "power-supplies", NULL)
+DEFINE_SIMPLE_PROP(mmc_pwrseq, "mmc-pwrseq", NULL)
 DEFINE_SUFFIX_PROP(regulators, "-supply", NULL)
 DEFINE_SUFFIX_PROP(gpio, "-gpio", "#gpio-cells")
@@ -1557,6 +1558,7 @@ static const struct supplier_bindings of_supplier_bindings[] = {
        { .parse_prop = parse_msi_parent, },
        { .parse_prop = parse_pses, },
        { .parse_prop = parse_power_supplies, },
+       { .parse_prop = parse_mmc_pwrseq, },
        { .parse_prop = parse_gpio_compat, },
        { .parse_prop = parse_interrupts, },
        { .parse_prop = parse_interrupt_map, },
---
base-commit: b6151c4e60e5f695fac8b5c3e011cfcfd6e27cba
change-id: 20260110-mmc-pwrseq-e885e677ca2b

Best regards,
--
Francesco Valla [off-list ref]
Kind regards
Uffe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help