Re: [RFC PATCH] i2c: gpio: initialize SCL to HIGH again

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Jun 16, 2018 at 09:56:36PM +0900, Wolfram Sang wrote:
> It seems that during the conversion from gpio* to gpiod*, the initial
> state of SCL was wrongly switched to LOW. Fix it to be HIGH again.
> 
> Fixes: 7bb75029ef34 ("i2c: gpio: Enforce open drain through gpiolib")
> Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
> ---
> 
> Linus: Or was it intentional? But then I am missing something... I found this
> by trying to fix a regression. I can't scope my use case now because I am on
> the road. I recall SCL being unexpectedly LOW when using the GPIO fault
> injector the last time, though. This made me do a fix in the underlying
> i2c-algo-bit algorithm, but that sadly caused a regression :( So, this may be
> the proper fix. RFC for now, until I have my scope back. But discussion is
> welcome.

Linus: any comment?

> 
>  drivers/i2c/busses/i2c-gpio.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/i2c/busses/i2c-gpio.c b/drivers/i2c/busses/i2c-gpio.c
> index 005e6e0330c2..66f85bbf3591 100644
> --- a/drivers/i2c/busses/i2c-gpio.c
> +++ b/drivers/i2c/busses/i2c-gpio.c
> @@ -279,9 +279,9 @@ static int i2c_gpio_probe(struct platform_device *pdev)
>  	 * required for an I2C bus.
>  	 */
>  	if (pdata->scl_is_open_drain)
> -		gflags = GPIOD_OUT_LOW;
> +		gflags = GPIOD_OUT_HIGH;
>  	else
> -		gflags = GPIOD_OUT_LOW_OPEN_DRAIN;
> +		gflags = GPIOD_OUT_HIGH_OPEN_DRAIN;
>  	priv->scl = i2c_gpio_get_desc(dev, "scl", 1, gflags);
>  	if (IS_ERR(priv->scl))
>  		return PTR_ERR(priv->scl);
> -- 
> 2.11.0
> 

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux