Re: [PATCH v3] Currently if the SoC needs pinctrl to switch the SCL and SDA from the I2C function to GPIO function, the recovery won't work.

From: Andy Shevchenko
Date: Tue Aug 22 2023 - 08:07:05 EST


On Tue, Aug 22, 2023 at 03:02:48PM +0300, Andy Shevchenko wrote:
> On Tue, Aug 22, 2023 at 11:15:55AM +0200, Yann Sionneau wrote:

...

> > + rinfo->pinctrl = devm_pinctrl_get(dev->dev);
> > + if (IS_ERR(rinfo->pinctrl)) {
> > + if (PTR_ERR(rinfo->pinctrl) == -EPROBE_DEFER)
> > + return PTR_ERR(rinfo->pinctrl);
> > +
> > + rinfo->pinctrl = NULL;
> > + dev_err(dev->dev, "getting pinctrl info failed: bus recovery might not work\n");
> > + } else if (!rinfo->pinctrl) {
> > + dev_dbg(dev->dev, "pinctrl is disabled, bus recovery might not work\n");
> > + }
>
> A bit of bikeshedding, would the below be slightly better?
>
> rinfo->pinctrl = devm_pinctrl_get(dev->dev);
> if (IS_ERR(rinfo->pinctrl)) {
> if (PTR_ERR(rinfo->pinctrl) == -EPROBE_DEFER)
> return PTR_ERR(rinfo->pinctrl);
>
> rinfo->pinctrl = NULL;
> dev_err(dev->dev, "getting pinctrl info failed, disabling...\n");
> }
> if (!rinfo->pinctrl)
> dev_dbg(dev->dev, "pinctrl is disabled, bus recovery might not work\n");

On the second thought they are on a different levels... Anyway, up to you,
folks, what to do with that, I gave already my tag.

--
With Best Regards,
Andy Shevchenko