Re: [PATCH v3 1/1] i2c: Set pinctrl recovery info to device pinctrl

From: Andy Shevchenko
Date: Tue Dec 20 2022 - 05:57:58 EST


On Mon, Dec 19, 2022 at 07:32:28PM +0000, Hanna Hawa wrote:
> Currently the i2c subsystem rely on the controller device tree to
> initialize the pinctrl recovery information, part of the drivers does
> not set this field (rinfo->pinctrl), for example i2c designware driver.
>
> The pins information is saved part of the device structure before probe
> and it's done on pinctrl_bind_pins().
>
> Make the i2c init recovery to get the device pins if it's not
> initialized by the driver from the device pins.
>
> Added new API to get the device pinctrl.

...

> - struct pinctrl *p = bri->pinctrl;
> + struct pinctrl *p;
> +
> + if (!bri->pinctrl)
> + bri->pinctrl = dev_pinctrl(dev->parent);
> + p = bri->pinctrl;

As I said, you may use Elvis here as well.

bri->pinctrl = bri->pinctrl ?: dev_pinctrl(...);
p = bri->pinctrl;

--
With Best Regards,
Andy Shevchenko