From mboxrd@z Thu Jan 1 00:00:00 1970 From: Axel Lin Date: Fri, 06 Sep 2013 14:22:40 +0800 Subject: [U-Boot] [PATCH RESEND] gpio: spear_gpio: Fix gpio_set_value() implementation Message-ID: <1378448560.23408.2.camel@phoenix> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de In current gpio_set_value() implementation, it always sets the gpio control bit no matter the value argument is 0 or 1. Thus the GPIOs never set to low. This patch fixes this bug. Signed-off-by: Axel Lin Acked-by: Stefan Roese Reviewed-by: Vipin Kumar --- This patch was sent on http://lists.denx.de/pipermail/u-boot/2013-June/156861.html Has Stefan's Ack: http://lists.denx.de/pipermail/u-boot/2013-June/156864.html Vipin says the code is fine, so I add Vipin's review-by. http://lists.denx.de/pipermail/u-boot/2013-June/156966.html Michael confirms it works: http://lists.denx.de/pipermail/u-boot/2013-August/160652.html No body picks up this patch, so here is a resend. Although I think this is a bug fix, but I'll let maintainers to determinate if this is the material for v2013.10. Anyway, can someone at least let me know if this patch is ok for apply at some point? I have no idea who is maintaining this file. Regards, Axel drivers/gpio/spear_gpio.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/spear_gpio.c b/drivers/gpio/spear_gpio.c index 367b670..6fb4117 100644 --- a/drivers/gpio/spear_gpio.c +++ b/drivers/gpio/spear_gpio.c @@ -36,7 +36,10 @@ int gpio_set_value(unsigned gpio, int value) { struct gpio_regs *regs = (struct gpio_regs *)CONFIG_GPIO_BASE; - writel(1 << gpio, ®s->gpiodata[DATA_REG_ADDR(gpio)]); + if (value) + writel(1 << gpio, ®s->gpiodata[DATA_REG_ADDR(gpio)]); + else + writel(0, ®s->gpiodata[DATA_REG_ADDR(gpio)]); return 0; } -- 1.8.1.2