[PATCH 4/4] i2c: gpio: add sda/scl-gpios property support

Antony Pavlov antonynpavlov at gmail.com
Tue Jun 18 03:50:50 PDT 2019


On Mon, 17 Jun 2019 12:00:56 +0200
Marco Felsch <m.felsch at pengutronix.de> wrote:

> The gpios property is marked as deprecated since kernel 4.15 so we
> should support the "new" mechanism too. The new mechanism has a higher
> priority than the deprecated one.
> 
> Signed-off-by: Marco Felsch <m.felsch at pengutronix.de>
> ---
>  drivers/i2c/busses/i2c-gpio.c | 27 +++++++++++++++++----------
>  1 file changed, 17 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/i2c/busses/i2c-gpio.c b/drivers/i2c/busses/i2c-gpio.c
> index 708193344a..9508adab06 100644
> --- a/drivers/i2c/busses/i2c-gpio.c
> +++ b/drivers/i2c/busses/i2c-gpio.c
> @@ -94,18 +94,25 @@ static int of_i2c_gpio_probe(struct device_node *np,
>  	if (!IS_ENABLED(CONFIG_OFDEVICE))
>  		return -ENODEV;
>  
> -	if (of_gpio_count(np) < 2)
> -		return -ENODEV;
> +	pdata->sda_pin = of_get_named_gpio_flags(np, "sda-gpios", 0, NULL);
> +	pdata->scl_pin = of_get_named_gpio_flags(np, "scl-gpios", 0, NULL);
> +
> +	if ((!gpio_is_valid(pdata->sda_pin) || !gpio_is_valid(pdata->sda_pin))

Double check of sda_pin here.

Can we change this line to

 +	if ((!gpio_is_valid(pdata->sda_pin) || !gpio_is_valid(pdata->scl_pin))


> +	    && (of_gpio_count(np) >= 2)) {
> +		/* Note: The gpios property is marked as deprecated */
> +		ret = of_get_gpio(np, 0);
> +		if (ret < 0)
> +			return ret;
> +		pdata->sda_pin = ret;
>  
> -	ret = of_get_gpio(np, 0);
> -	if (ret < 0)
> -		return ret;
> -	pdata->sda_pin = ret;
> +		ret = of_get_gpio(np, 1);
> +		if (ret < 0)
> +			return ret;
> +		pdata->scl_pin = ret;
> +	}
>  
> -	ret = of_get_gpio(np, 1);
> -	if (ret < 0)
> -		return ret;
> -	pdata->scl_pin = ret;
> +	if (!gpio_is_valid(pdata->sda_pin) || !gpio_is_valid(pdata->sda_pin))


Same here.

 +	if (!gpio_is_valid(pdata->sda_pin) || !gpio_is_valid(pdata->scl_pin))



> +		return -ENODEV;
>  
>  	of_property_read_u32(np, "i2c-gpio,delay-us", &pdata->udelay);
>  

-- 
Best regards,
  Antony Pavlov



More information about the barebox mailing list