arm:lpc32xx:gpio: Fix GPIO output value for GPIOs
authorKevin Wells <wellsk40@gmail.com>
Fri, 26 Aug 2011 19:59:19 +0000 (12:59 -0700)
committerKevin Wells <wellsk40@gmail.com>
Fri, 26 Aug 2011 19:59:19 +0000 (12:59 -0700)
When a GPIO is initially set as an output, the initial state for the GPIO
was not used. This patch fixes that. This patch was submitted by
Chris Verges at lpclinux.com.

arch/arm/mach-lpc32xx/gpiolib.c

index f46d374..1b91cfb 100644 (file)
@@ -294,6 +294,7 @@ static int lpc32xx_gpio_dir_output_p012(struct gpio_chip *chip, unsigned pin,
        struct lpc32xx_gpio_chip *group = to_lpc32xx_gpio(chip);
 
        __set_gpio_dir_p012(group, pin, 0);
+       __set_gpio_level_p012(group, pin, value);
 
        return 0;
 }
@@ -304,6 +305,7 @@ static int lpc32xx_gpio_dir_output_p3(struct gpio_chip *chip, unsigned pin,
        struct lpc32xx_gpio_chip *group = to_lpc32xx_gpio(chip);
 
        __set_gpio_dir_p3(group, pin, 0);
+       __set_gpio_level_p3(group, pin, value);
 
        return 0;
 }
@@ -311,6 +313,10 @@ static int lpc32xx_gpio_dir_output_p3(struct gpio_chip *chip, unsigned pin,
 static int lpc32xx_gpio_dir_out_always(struct gpio_chip *chip, unsigned pin,
        int value)
 {
+       struct lpc32xx_gpio_chip *group = to_lpc32xx_gpio(chip);
+
+       __set_gpo_level_p3(group, pin, value);
+
        return 0;
 }