Re: [PATCH 1/1] i2c: designware: add pinctrl for recovery info as an option

From: Hawa, Hanna
Date: Wed Dec 14 2022 - 08:43:46 EST




On 12/14/2022 1:42 PM, Andy Shevchenko wrote:
Can you explain, why pinctrl_bind_pins() is not enough?

(You may also refer to the ab78029ecc34 ("drivers/pinctrl: grab default handles
from device core") for more details.)

Thanks for your reviewing and pointing to this function.

No need to recall the devm_pinctrl_get() during the i2c probe, as the pinctrl_bind_pins() is enough to init the pinctrl struct. But still need to set the rinfo->pinctrl with dev->pins->p, will upload new patchset.

The change will look like:

@@ -832,6 +833,9 @@ static int i2c_dw_init_recovery_info(struct dw_i2c_dev *dev)
struct i2c_adapter *adap = &dev->adapter;
struct gpio_desc *gpio;

+ if (dev->dev->pins && dev->dev->pins->p)
+ rinfo->pinctrl = dev->dev->pins->p;
+
gpio = devm_gpiod_get_optional(dev->dev, "scl", GPIOD_OUT_HIGH);
if (IS_ERR_OR_NULL(gpio))
return PTR_ERR_OR_ZERO(gpio);

Thanks,
Hanna