Commit e4889362 authored by Axel Lin's avatar Axel Lin Committed by Linus Walleij

gpio: sama5d2-piobu: Set proper output level for direction_output

Set proper output level base on the argument of direction_output.
Also remove sama5d2_piobu_set_direction() as there is only one caller
now.
Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 72893f0c
...@@ -108,16 +108,6 @@ static int sama5d2_piobu_read_value(struct gpio_chip *chip, unsigned int pin, ...@@ -108,16 +108,6 @@ static int sama5d2_piobu_read_value(struct gpio_chip *chip, unsigned int pin,
return val & mask; return val & mask;
} }
/**
* sama5d2_piobu_set_direction() - mark pin as input or output
*/
static int sama5d2_piobu_set_direction(struct gpio_chip *chip,
unsigned int direction,
unsigned int pin)
{
return sama5d2_piobu_write_value(chip, pin, PIOBU_DIRECTION, direction);
}
/** /**
* sama5d2_piobu_get_direction() - gpiochip get_direction * sama5d2_piobu_get_direction() - gpiochip get_direction
*/ */
...@@ -138,7 +128,7 @@ static int sama5d2_piobu_get_direction(struct gpio_chip *chip, ...@@ -138,7 +128,7 @@ static int sama5d2_piobu_get_direction(struct gpio_chip *chip,
static int sama5d2_piobu_direction_input(struct gpio_chip *chip, static int sama5d2_piobu_direction_input(struct gpio_chip *chip,
unsigned int pin) unsigned int pin)
{ {
return sama5d2_piobu_set_direction(chip, PIOBU_IN, pin); return sama5d2_piobu_write_value(chip, pin, PIOBU_DIRECTION, PIOBU_IN);
} }
/** /**
...@@ -147,7 +137,13 @@ static int sama5d2_piobu_direction_input(struct gpio_chip *chip, ...@@ -147,7 +137,13 @@ static int sama5d2_piobu_direction_input(struct gpio_chip *chip,
static int sama5d2_piobu_direction_output(struct gpio_chip *chip, static int sama5d2_piobu_direction_output(struct gpio_chip *chip,
unsigned int pin, int value) unsigned int pin, int value)
{ {
return sama5d2_piobu_set_direction(chip, PIOBU_OUT, pin); unsigned int val = PIOBU_OUT;
if (value)
val |= PIOBU_HIGH;
return sama5d2_piobu_write_value(chip, pin, PIOBU_DIRECTION | PIOBU_SOD,
val);
} }
/** /**
......
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