[U-Boot] [PATCH] gpio: vybrid: Use proper parameter name for gpio offset

Bhuvanchandra DV bhuvanchandra.dv at toradex.com
Tue Jun 9 16:37:03 CEST 2015


On 06/09/2015 07:54 PM, Axel Lin wrote:
> It's confusing to use gpio as gpio offset parameter so rename it to offset
> for better readability.
Agreed, but IMHO these offsets any way at the end are the gpio numbers 
of individual gpio chip instances. e.g: gpio 2 of gpio chip 1 which is 
gpio 34.

>
> Signed-off-by: Axel Lin <axel.lin at ingics.com>
> ---
>   drivers/gpio/vybrid_gpio.c | 24 ++++++++++++------------
>   1 file changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpio/vybrid_gpio.c b/drivers/gpio/vybrid_gpio.c
> index 6eaf0a9..14ba7e5 100644
> --- a/drivers/gpio/vybrid_gpio.c
> +++ b/drivers/gpio/vybrid_gpio.c
> @@ -21,54 +21,54 @@ struct vybrid_gpios {
>   	struct vybrid_gpio_regs *reg;
>   };
>
> -static int vybrid_gpio_direction_input(struct udevice *dev, unsigned gpio)
> +static int vybrid_gpio_direction_input(struct udevice *dev, unsigned offset)
>   {
>   	const struct vybrid_gpios *gpios = dev_get_priv(dev);
> +	unsigned gpio = offset + (gpios->chip * VYBRID_GPIO_COUNT);
>
> -	gpio = gpio + (gpios->chip * VYBRID_GPIO_COUNT);
>   	imx_iomux_gpio_set_direction(gpio, VF610_GPIO_DIRECTION_IN);
>
>   	return 0;
>   }
>
> -static int vybrid_gpio_direction_output(struct udevice *dev, unsigned gpio,
> +static int vybrid_gpio_direction_output(struct udevice *dev, unsigned offset,
>   					 int value)
>   {
>   	const struct vybrid_gpios *gpios = dev_get_priv(dev);
> +	unsigned gpio = offset + (gpios->chip * VYBRID_GPIO_COUNT);
>
> -	gpio = gpio + (gpios->chip * VYBRID_GPIO_COUNT);
>   	gpio_set_value(gpio, value);
>   	imx_iomux_gpio_set_direction(gpio, VF610_GPIO_DIRECTION_OUT);
>
>   	return 0;
>   }
>
> -static int vybrid_gpio_get_value(struct udevice *dev, unsigned gpio)
> +static int vybrid_gpio_get_value(struct udevice *dev, unsigned offset)
>   {
>   	const struct vybrid_gpios *gpios = dev_get_priv(dev);
>
> -	return ((readl(&gpios->reg->gpio_pdir) & (1 << gpio))) ? 1 : 0;
> +	return ((readl(&gpios->reg->gpio_pdir) & (1 << offset))) ? 1 : 0;
>   }
>
> -static int vybrid_gpio_set_value(struct udevice *dev, unsigned gpio,
> +static int vybrid_gpio_set_value(struct udevice *dev, unsigned offset,
>   				  int value)
>   {
>   	const struct vybrid_gpios *gpios = dev_get_priv(dev);
> +
>   	if (value)
> -		writel((1 << gpio), &gpios->reg->gpio_psor);
> +		writel((1 << offset), &gpios->reg->gpio_psor);
>   	else
> -		writel((1 << gpio), &gpios->reg->gpio_pcor);
> +		writel((1 << offset), &gpios->reg->gpio_pcor);
>
>   	return 0;
>   }
>
> -static int vybrid_gpio_get_function(struct udevice *dev, unsigned gpio)
> +static int vybrid_gpio_get_function(struct udevice *dev, unsigned offset)
>   {
>   	const struct vybrid_gpios *gpios = dev_get_priv(dev);
> +	unsigned gpio = offset + (gpios->chip * VYBRID_GPIO_COUNT);
>   	u32 g_state = 0;
>
> -	gpio = gpio + (gpios->chip * VYBRID_GPIO_COUNT);
> -
>   	imx_iomux_gpio_get_function(gpio, &g_state);
>
>   	if (((g_state & (0x07 << PAD_MUX_MODE_SHIFT)) >> PAD_MUX_MODE_SHIFT) > 0)
>

Best regards,
Bhuvan


More information about the U-Boot mailing list