[PATCH] dm: pinctrl: Revert "pinctrl: probe pinctrl drivers during post-bind"

Simon Glass sjg at chromium.org
Fri Dec 30 16:30:27 CET 2022


Hi Pali,

On Wed, 21 Dec 2022 at 17:02, Pali Rohár <pali at kernel.org> wrote:
>
> On Wednesday 21 December 2022 07:27:39 Simon Glass wrote:
> > This breaks chromebook_coral and it is also not how things should work. If
> > a board needs to bind GPIOs as part of a pinctrl driver this can be done
> > during the bind step, if needed.
> >
> > We cannot probe pinctrl devices when binding as a rule, since it cannot be
> > supported on some platforms.
> >
> > The bind and probe steps are separate in U-Boot and they should remain
> > separate.
> >
> > This reverts commit f9ec791b5e24378b71590877499f8683d5f54dac.
>
> Unfortunately reverting this patch would break other devices, mostly
> A3720 based where pinctrl driver acts also as gpio driver. Because no
> other caller then register gpio driver and so other drivers which parses
> gpios from DT (which belongs to that gpio driver) will fail during
> probe.

That is something to be sorted out for that platform. You can bind
GPIO devices in the pinctrl driver's bind() method as other SoCs do.
Even better, the device tree typically has that info in it, i.e. GPIO
subnodes within the pinctrl node.

Probing pinctrl in a bind function is unfortunately just wrong. It
will cause all sorts of problems, and perhaps already has.

>
> Also I think that pinctrl command would not work in this case if pinctrl
> would not be probed.

Devices are probed before use, including by commands.

This is quite important to fix before the release.

Regards,
Simon


More information about the U-Boot mailing list