* [PATCH] pinctrl: denverton: Fix probe of MFD-created platform device
@ 2026-08-27 18:42 Radek Válko
2026-08-27 18:52 ` Andy Shevchenko
0 siblings, 1 reply; 3+ messages in thread
From: Radek Válko @ 2026-08-27 18:42 UTC (permalink / raw)
To: Andy Shevchenko; +Cc: Linus Walleij, linux-gpio, linux-kernel
The Denverton pinctrl device can be instantiated by the Intel LPC
driver as an MFD platform device named "denverton-pinctrl".
On affected systems the platform device does not carry the INTC3000
ACPI match data itself. As a result, intel_pinctrl_probe_by_hid()
fails to obtain the SoC data using device_get_match_data() and
returns -ENODATA.
This results in:
denverton-pinctrl denverton-pinctrl.0:
probe with driver denverton-pinctrl failed with error -61
Denverton has a single fixed intel_pinctrl_soc_data instance. Pass
dnv_soc_data directly to intel_pinctrl_probe() instead of requiring
firmware match data for the MFD-created platform device.
Tested on an Intel Atom C3000 system with LPC/eSPI device 8086:19dc.
Before this change the Denverton pinctrl driver failed to probe and
no Denverton GPIO controller was registered. After the change,
denverton-pinctrl.0 registers with pinmux and pinconf support and
exposes 154 GPIO lines.
Signed-off-by: Radek Válko <rvalko@lipicko.cz>
---
drivers/pinctrl/intel/pinctrl-denverton.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/pinctrl/intel/pinctrl-denverton.c b/drivers/pinctrl/intel/pinctrl-denverton.c
--- a/drivers/pinctrl/intel/pinctrl-denverton.c
+++ b/drivers/pinctrl/intel/pinctrl-denverton.c
@@ -250,6 +250,11 @@ static const struct intel_pinctrl_soc_data dnv_soc_data = {
.ncommunities = ARRAY_SIZE(dnv_communities),
};
+static int dnv_pinctrl_probe(struct platform_device *pdev)
+{
+ return intel_pinctrl_probe(pdev, &dnv_soc_data);
+}
+
static const struct acpi_device_id dnv_pinctrl_acpi_match[] = {
{ "INTC3000", (kernel_ulong_t)&dnv_soc_data },
{ }
@@ -263,7 +268,7 @@ static const struct platform_device_id dnv_pinctrl_platform_ids[] = {
MODULE_DEVICE_TABLE(platform, dnv_pinctrl_platform_ids);
static struct platform_driver dnv_pinctrl_driver = {
- .probe = intel_pinctrl_probe_by_hid,
+ .probe = dnv_pinctrl_probe,
.driver = {
.name = "denverton-pinctrl",
.acpi_match_table = dnv_pinctrl_acpi_match,
--
2.47.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] pinctrl: denverton: Fix probe of MFD-created platform device
2026-08-27 18:42 [PATCH] pinctrl: denverton: Fix probe of MFD-created platform device Radek Válko
@ 2026-08-27 18:52 ` Andy Shevchenko
2026-08-27 19:02 ` Andy Shevchenko
0 siblings, 1 reply; 3+ messages in thread
From: Andy Shevchenko @ 2026-08-27 18:52 UTC (permalink / raw)
To: Radek Válko; +Cc: Andy Shevchenko, Linus Walleij, linux-gpio, linux-kernel
On Thu, Aug 27, 2026 at 08:42:58PM +0200, Radek Válko wrote:
> The Denverton pinctrl device can be instantiated by the Intel LPC
> driver as an MFD platform device named "denverton-pinctrl".
>
> On affected systems the platform device does not carry the INTC3000
> ACPI match data itself. As a result, intel_pinctrl_probe_by_hid()
> fails to obtain the SoC data using device_get_match_data() and
> returns -ENODATA.
>
> This results in:
>
> denverton-pinctrl denverton-pinctrl.0:
> probe with driver denverton-pinctrl failed with error -61
>
> Denverton has a single fixed intel_pinctrl_soc_data instance. Pass
> dnv_soc_data directly to intel_pinctrl_probe() instead of requiring
> firmware match data for the MFD-created platform device.
>
> Tested on an Intel Atom C3000 system with LPC/eSPI device 8086:19dc.
> Before this change the Denverton pinctrl driver failed to probe and
> no Denverton GPIO controller was registered. After the change,
> denverton-pinctrl.0 registers with pinmux and pinconf support and
> exposes 154 GPIO lines.
Thanks for the report.
Can you instead try to replace device_get_match_data() in
intel_pinctrl_probe_by_hid() by intel_pinctrl_get_soc_data() in the way how
it's done in intel_pinctrl_probe_by_uid()?
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] pinctrl: denverton: Fix probe of MFD-created platform device
2026-08-27 18:52 ` Andy Shevchenko
@ 2026-08-27 19:02 ` Andy Shevchenko
0 siblings, 0 replies; 3+ messages in thread
From: Andy Shevchenko @ 2026-08-27 19:02 UTC (permalink / raw)
To: Radek Válko; +Cc: Andy Shevchenko, Linus Walleij, linux-gpio, linux-kernel
On Thu, Aug 27, 2026 at 09:52:40PM +0300, Andy Shevchenko wrote:
> On Thu, Aug 27, 2026 at 08:42:58PM +0200, Radek Válko wrote:
> > The Denverton pinctrl device can be instantiated by the Intel LPC
> > driver as an MFD platform device named "denverton-pinctrl".
> >
> > On affected systems the platform device does not carry the INTC3000
> > ACPI match data itself. As a result, intel_pinctrl_probe_by_hid()
> > fails to obtain the SoC data using device_get_match_data() and
> > returns -ENODATA.
> >
> > This results in:
> >
> > denverton-pinctrl denverton-pinctrl.0:
> > probe with driver denverton-pinctrl failed with error -61
> >
> > Denverton has a single fixed intel_pinctrl_soc_data instance. Pass
> > dnv_soc_data directly to intel_pinctrl_probe() instead of requiring
> > firmware match data for the MFD-created platform device.
> >
> > Tested on an Intel Atom C3000 system with LPC/eSPI device 8086:19dc.
> > Before this change the Denverton pinctrl driver failed to probe and
> > no Denverton GPIO controller was registered. After the change,
> > denverton-pinctrl.0 registers with pinmux and pinconf support and
> > exposes 154 GPIO lines.
>
> Thanks for the report.
>
> Can you instead try to replace device_get_match_data() in
> intel_pinctrl_probe_by_hid() by intel_pinctrl_get_soc_data() in the way how
> it's done in intel_pinctrl_probe_by_uid()?
Ah, it won't work as direct replacement. So, the intel_pinctrl_probe_by_hid()
should be modified accordingly. I will send a formal patch tomorrow.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-08-27 19:02 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-27 18:42 [PATCH] pinctrl: denverton: Fix probe of MFD-created platform device Radek Válko
2026-08-27 18:52 ` Andy Shevchenko
2026-08-27 19:02 ` Andy Shevchenko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®