Re: [PATCH] pinctrl: denverton: Fix probe of MFD-created platform device

From: Andy Shevchenko

Date: Thu Aug 27 2026 - 15:03:53 EST


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