* [U-Boot] [PATCH] gpio: vybrid: Use proper parameter name for gpio offset
@ 2015-06-09 14:24 Axel Lin
2015-06-09 14:37 ` Bhuvanchandra DV
0 siblings, 1 reply; 3+ messages in thread
From: Axel Lin @ 2015-06-09 14:24 UTC (permalink / raw)
To: u-boot
It's confusing to use gpio as gpio offset parameter so rename it to offset
for better readability.
Signed-off-by: Axel Lin <axel.lin@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)
--
2.1.0
^ permalink raw reply related [flat|nested] 3+ messages in thread* [U-Boot] [PATCH] gpio: vybrid: Use proper parameter name for gpio offset
2015-06-09 14:24 [U-Boot] [PATCH] gpio: vybrid: Use proper parameter name for gpio offset Axel Lin
@ 2015-06-09 14:37 ` Bhuvanchandra DV
2015-06-10 0:39 ` Axel Lin
0 siblings, 1 reply; 3+ messages in thread
From: Bhuvanchandra DV @ 2015-06-09 14:37 UTC (permalink / raw)
To: u-boot
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@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
^ permalink raw reply [flat|nested] 3+ messages in thread* [U-Boot] [PATCH] gpio: vybrid: Use proper parameter name for gpio offset
2015-06-09 14:37 ` Bhuvanchandra DV
@ 2015-06-10 0:39 ` Axel Lin
0 siblings, 0 replies; 3+ messages in thread
From: Axel Lin @ 2015-06-10 0:39 UTC (permalink / raw)
To: u-boot
2015-06-09 22:37 GMT+08:00 Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>:
> 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.
struct dm_gpio_ops {
int (*request)(struct udevice *dev, unsigned offset, const char *label);
int (*free)(struct udevice *dev, unsigned offset);
int (*direction_input)(struct udevice *dev, unsigned offset);
int (*direction_output)(struct udevice *dev, unsigned offset,
int value);
int (*get_value)(struct udevice *dev, unsigned offset);
int (*set_value)(struct udevice *dev, unsigned offset, int value);
int (*get_function)(struct udevice *dev, unsigned offset);
All the callbacks of struct dm_gpio_ops takes offset rather than gpio number,
had better use offset here.
The gpio numbers of individual gpio chip instances actually means offset, don't
mix it with the actually gpio number.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-06-10 0:39 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-09 14:24 [U-Boot] [PATCH] gpio: vybrid: Use proper parameter name for gpio offset Axel Lin
2015-06-09 14:37 ` Bhuvanchandra DV
2015-06-10 0:39 ` Axel Lin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox