[10/62] gpio: gpio-bd9571mwv: Use new GPIO_LINE_DIRECTION
diff mbox series

Message ID 07ed3f5b199c81fcb214b9e0e6e37bfed079e2f7.1572945734.git.matti.vaittinen@fi.rohmeurope.com
State New
Headers show
Series
  • [01/62] gpio: Add definition for GPIO direction
Related show

Commit Message

Vaittinen, Matti Nov. 5, 2019, 10:14 a.m. UTC
It's hard for occasional GPIO code reader/writer to know if values 0/1
equal to IN or OUT. Use defined GPIO_LINE_DIRECTION_IN and
GPIO_LINE_DIRECTION_OUT to help them out.

NOTE: This commit also changes the return value for direction get
to equal 1 for direction INPUT. Prior this commit the driver returned
different values depending on GPIO pin for the INPUT state.

Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
---
 drivers/gpio/gpio-bd9571mwv.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Geert Uytterhoeven Nov. 5, 2019, 10:31 a.m. UTC | #1
Hi Matti,

On Tue, Nov 5, 2019 at 11:15 AM Matti Vaittinen
<matti.vaittinen@fi.rohmeurope.com> wrote:
> It's hard for occasional GPIO code reader/writer to know if values 0/1
> equal to IN or OUT. Use defined GPIO_LINE_DIRECTION_IN and
> GPIO_LINE_DIRECTION_OUT to help them out.
>
> NOTE: This commit also changes the return value for direction get
> to equal 1 for direction INPUT. Prior this commit the driver returned
> different values depending on GPIO pin for the INPUT state.

Indeed. Which means you cannot assume the assembler output
before/after is identical (which it should be for most changes).

> Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>

Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>

> --- a/drivers/gpio/gpio-bd9571mwv.c
> +++ b/drivers/gpio/gpio-bd9571mwv.c
> @@ -37,8 +37,10 @@ static int bd9571mwv_gpio_get_direction(struct gpio_chip *chip,
>         ret = regmap_read(gpio->bd->regmap, BD9571MWV_GPIO_DIR, &val);
>         if (ret < 0)
>                 return ret;

Nit: I'd keep the blank line here.

> +       if (val & BIT(offset))
> +               return GPIO_LINE_DIRECTION_IN;
>
> -       return val & BIT(offset);
> +       return GPIO_LINE_DIRECTION_OUT;
>  }
>
>  static int bd9571mwv_gpio_direction_input(struct gpio_chip *chip,

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

Patch
diff mbox series

diff --git a/drivers/gpio/gpio-bd9571mwv.c b/drivers/gpio/gpio-bd9571mwv.c
index 5224a946e8ab..c0abc9c6851b 100644
--- a/drivers/gpio/gpio-bd9571mwv.c
+++ b/drivers/gpio/gpio-bd9571mwv.c
@@ -37,8 +37,10 @@  static int bd9571mwv_gpio_get_direction(struct gpio_chip *chip,
 	ret = regmap_read(gpio->bd->regmap, BD9571MWV_GPIO_DIR, &val);
 	if (ret < 0)
 		return ret;
+	if (val & BIT(offset))
+		return GPIO_LINE_DIRECTION_IN;
 
-	return val & BIT(offset);
+	return GPIO_LINE_DIRECTION_OUT;
 }
 
 static int bd9571mwv_gpio_direction_input(struct gpio_chip *chip,