Commit 7b3d1da4 authored by Federico Vaga's avatar Federico Vaga

drv:gn412x_gpio: fix direction get/set

Signed-off-by: Federico Vaga's avatarFederico Vaga <federico.vaga@cern.ch>
parent bcfc4f6d
...@@ -72,12 +72,13 @@ static void gn412x_gpio_free(struct gpio_chip *chip, unsigned offset) ...@@ -72,12 +72,13 @@ static void gn412x_gpio_free(struct gpio_chip *chip, unsigned offset)
static int gn412x_gpio_get_direction(struct gpio_chip *chip, static int gn412x_gpio_get_direction(struct gpio_chip *chip,
unsigned offset) unsigned offset)
{ {
return !gn412x_gpio_reg_read(chip, GNGPIO_OUTPUT_ENABLE, offset); return !gn412x_gpio_reg_read(chip, GNGPIO_DIRECTION_MODE, offset);
} }
static int gn412x_gpio_direction_input(struct gpio_chip *chip, static int gn412x_gpio_direction_input(struct gpio_chip *chip,
unsigned offset) unsigned offset)
{ {
gn412x_gpio_reg_write(chip, GNGPIO_DIRECTION_MODE, offset, 1);
gn412x_gpio_reg_write(chip, GNGPIO_OUTPUT_ENABLE, offset, 0); gn412x_gpio_reg_write(chip, GNGPIO_OUTPUT_ENABLE, offset, 0);
return 0; return 0;
...@@ -86,6 +87,7 @@ static int gn412x_gpio_direction_input(struct gpio_chip *chip, ...@@ -86,6 +87,7 @@ static int gn412x_gpio_direction_input(struct gpio_chip *chip,
static int gn412x_gpio_direction_output(struct gpio_chip *chip, static int gn412x_gpio_direction_output(struct gpio_chip *chip,
unsigned offset, int value) unsigned offset, int value)
{ {
gn412x_gpio_reg_write(chip, GNGPIO_DIRECTION_MODE, offset, 0);
gn412x_gpio_reg_write(chip, GNGPIO_OUTPUT_ENABLE, offset, 1); gn412x_gpio_reg_write(chip, GNGPIO_OUTPUT_ENABLE, offset, 1);
gn412x_gpio_reg_write(chip, GNGPIO_OUTPUT_VALUE, offset, value); gn412x_gpio_reg_write(chip, GNGPIO_OUTPUT_VALUE, offset, value);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment