diff options
author | Chen-Yu Tsai <wens@csie.org> | 2014-01-16 01:34:23 -0500 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2014-01-20 03:19:17 -0500 |
commit | fa8cf57c923e86a693a85aff1df579245a27cbb3 (patch) | |
tree | c4dcab291b6a1862ac4cce8d9efb3613898f6da7 | |
parent | fe0ec0ee07208027e3e36a1dc4a653780b4984f2 (diff) |
pinctrl: sunxi: Honor GPIO output initial vaules
Some GPIO users, such as fixed-regulator, request GPIO output with
initial value of 1. This was ignored by sunxi driver.
Cc: stable@vger.kernel.org
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r-- | drivers/pinctrl/pinctrl-sunxi.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/pinctrl/pinctrl-sunxi.c b/drivers/pinctrl/pinctrl-sunxi.c index 119d2ddedfe7..6ebf3067bde4 100644 --- a/drivers/pinctrl/pinctrl-sunxi.c +++ b/drivers/pinctrl/pinctrl-sunxi.c | |||
@@ -469,12 +469,6 @@ static int sunxi_pinctrl_gpio_get(struct gpio_chip *chip, unsigned offset) | |||
469 | return val; | 469 | return val; |
470 | } | 470 | } |
471 | 471 | ||
472 | static int sunxi_pinctrl_gpio_direction_output(struct gpio_chip *chip, | ||
473 | unsigned offset, int value) | ||
474 | { | ||
475 | return pinctrl_gpio_direction_output(chip->base + offset); | ||
476 | } | ||
477 | |||
478 | static void sunxi_pinctrl_gpio_set(struct gpio_chip *chip, | 472 | static void sunxi_pinctrl_gpio_set(struct gpio_chip *chip, |
479 | unsigned offset, int value) | 473 | unsigned offset, int value) |
480 | { | 474 | { |
@@ -498,6 +492,13 @@ static void sunxi_pinctrl_gpio_set(struct gpio_chip *chip, | |||
498 | spin_unlock_irqrestore(&pctl->lock, flags); | 492 | spin_unlock_irqrestore(&pctl->lock, flags); |
499 | } | 493 | } |
500 | 494 | ||
495 | static int sunxi_pinctrl_gpio_direction_output(struct gpio_chip *chip, | ||
496 | unsigned offset, int value) | ||
497 | { | ||
498 | sunxi_pinctrl_gpio_set(chip, offset, value); | ||
499 | return pinctrl_gpio_direction_output(chip->base + offset); | ||
500 | } | ||
501 | |||
501 | static int sunxi_pinctrl_gpio_of_xlate(struct gpio_chip *gc, | 502 | static int sunxi_pinctrl_gpio_of_xlate(struct gpio_chip *gc, |
502 | const struct of_phandle_args *gpiospec, | 503 | const struct of_phandle_args *gpiospec, |
503 | u32 *flags) | 504 | u32 *flags) |