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