gpio: exar: Set proper output level in exar_direction_output
Current code does not set output level in exar_direction_output, fix it. Also move the direction_output/direction_input code block to avoid forward declaration for exar_set_value(). Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
Родитель
22c403676d
Коммит
eddeae0737
|
@ -59,17 +59,6 @@ static int exar_set_direction(struct gpio_chip *chip, int direction,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int exar_direction_output(struct gpio_chip *chip, unsigned int offset,
|
||||
int value)
|
||||
{
|
||||
return exar_set_direction(chip, 0, offset);
|
||||
}
|
||||
|
||||
static int exar_direction_input(struct gpio_chip *chip, unsigned int offset)
|
||||
{
|
||||
return exar_set_direction(chip, 1, offset);
|
||||
}
|
||||
|
||||
static int exar_get(struct gpio_chip *chip, unsigned int reg)
|
||||
{
|
||||
struct exar_gpio_chip *exar_gpio = gpiochip_get_data(chip);
|
||||
|
@ -116,6 +105,18 @@ static void exar_set_value(struct gpio_chip *chip, unsigned int offset,
|
|||
exar_update(chip, addr, value, offset % 8);
|
||||
}
|
||||
|
||||
static int exar_direction_output(struct gpio_chip *chip, unsigned int offset,
|
||||
int value)
|
||||
{
|
||||
exar_set_value(chip, offset, value);
|
||||
return exar_set_direction(chip, 0, offset);
|
||||
}
|
||||
|
||||
static int exar_direction_input(struct gpio_chip *chip, unsigned int offset)
|
||||
{
|
||||
return exar_set_direction(chip, 1, offset);
|
||||
}
|
||||
|
||||
static int gpio_exar_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct pci_dev *pcidev = platform_get_drvdata(pdev);
|
||||
|
|
Загрузка…
Ссылка в новой задаче