[U-Boot] [PATCH] gpio: mvebu_gpio: Add missing out value set to gpio_direction_output()

This patch adds the missing configuration of the output value to the gpio_direction_output() function. Without this, calling gpio_direction_output() does not set the out-value at all and only configures the gpio as output.
Signed-off-by: Stefan Roese sr@denx.de Cc: Kevin Smith kevin.smith@elecsyscorp.com --- drivers/gpio/mvebu_gpio.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/drivers/gpio/mvebu_gpio.c b/drivers/gpio/mvebu_gpio.c index 9564ce2..75dc73e 100644 --- a/drivers/gpio/mvebu_gpio.c +++ b/drivers/gpio/mvebu_gpio.c @@ -43,6 +43,10 @@ static int mvebu_gpio_direction_output(struct udevice *dev, unsigned gpio, struct mvebu_gpio_priv *priv = dev_get_priv(dev); struct mvebu_gpio_regs *regs = priv->regs;
+ if (value) + setbits_le32(®s->data_out, BIT(gpio)); + else + clrbits_le32(®s->data_out, BIT(gpio)); clrbits_le32(®s->io_conf, BIT(gpio));
return 0;

On 04/07/2016 12:41 AM, Stefan Roese wrote:
This patch adds the missing configuration of the output value to the gpio_direction_output() function. Without this, calling gpio_direction_output() does not set the out-value at all and only configures the gpio as output.
Signed-off-by: Stefan Roese sr@denx.de Cc: Kevin Smith kevin.smith@elecsyscorp.com
drivers/gpio/mvebu_gpio.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/drivers/gpio/mvebu_gpio.c b/drivers/gpio/mvebu_gpio.c index 9564ce2..75dc73e 100644 --- a/drivers/gpio/mvebu_gpio.c +++ b/drivers/gpio/mvebu_gpio.c @@ -43,6 +43,10 @@ static int mvebu_gpio_direction_output(struct udevice *dev, unsigned gpio, struct mvebu_gpio_priv *priv = dev_get_priv(dev); struct mvebu_gpio_regs *regs = priv->regs;
if (value)
setbits_le32(®s->data_out, BIT(gpio));
else
clrbits_le32(®s->data_out, BIT(gpio));
clrbits_le32(®s->io_conf, BIT(gpio));
return 0;
Reviewed-by: Kevin Smith kevin.smith@elecsyscorp.com
participants (2)
-
Kevin Smith
-
Stefan Roese