Re: [PATCH v2 1/1] i2c: designware: set pinctrl recovery information from device pinctrl

From: Hawa, Hanna
Date: Thu Dec 15 2022 - 03:15:51 EST




On 12/14/2022 6:09 PM, Andy Shevchenko wrote:
...should be located here.

...

Ack - will move them.


+ if (dev->dev->pins && dev->dev->pins->p)
+ rinfo->pinctrl = dev->dev->pins->p;
Hmm... I don't see how this field is being used.
Can you elaborate?

This field is used in i2c_generic_scl_recovery(), if it's not NULL then the flow will set the state to GPIO before running the recovery mechanism.
if (bri->pinctrl)
pinctrl_select_state(bri->pinctrl, bri->pins_gpio);

.
.

I saw that that the change failed in complication for SPARC architecture, as the pins field is wraparound with CONFIG_PINCTRL in device struct. I though on two options to solve the compilation error, first by adding wraparound of CONFIG_PINCTRL when accessing the pins field. And the second option is to add get function in pinctrl/devinfo.h file, which return the pins field, or NULL in case the PINCTRL is not defined. Which option you think we can go with?