mirror of https://gitee.com/openkylin/linux.git
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: Axel Lin <axel.lin@ingics.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
72893f0c6b
commit
e4889362e0
|
@ -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,
|
||||||
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,
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue