gpio: Actually set output state in moxart_gpio_direction_output()
PATCH 1/1 gpio: Actually set output state in moxart_gpio_direction_output()
moxart_gpio_direction_output() ignored the state passed into it. Fix it. Also slightly adjust the code to avoid forward declaration.
Signed-off-by Axel Lin <[email protected]>
---
Hi Jonas,
I don't have this h/w. Can you test if this patch works. Thanks,
Axel
drivers/gpio/gpio-moxart.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-)
drivers/gpio/gpio-moxart.c +20 -20
@@ -48,25 +48,6 @@ static void moxart_gpio_free(struct gpio_chip *chip, unsigned offset)pinctrl_free_gpio (offset); } -static int moxart_gpio_direction_input (struct gpio_chip *chip,unsigned offset) -{ -struct moxart_gpio_chip *gc =to_moxart_gpio (chip); -void __iomem *ioaddr = gc->base +GPIO_PIN_DIRECTION ; - -writel (readl (ioaddr) & ~BIT (offset), ioaddr); -return 0 ; -} - -static int moxart_gpio_direction_output (struct gpio_chip *chip, -unsigned offset,int value) -{ -struct moxart_gpio_chip *gc =to_moxart_gpio (chip); -void __iomem *ioaddr = gc->base +GPIO_PIN_DIRECTION ; - -writel (readl (ioaddr) |BIT (offset), ioaddr); -return 0 ; -} -static void moxart_gpio_set (struct gpio_chip *chip,unsigned offset,int value) {struct moxart_gpio_chip *gc =to_moxart_gpio (chip);
@@ -78,7 +59,6 @@ static void moxart_gpio_set(struct gpio_chip *chip, unsigned offset, int value)else reg = reg & ~BIT (offset); -writel (reg, ioaddr); }
@@ -93,6 +73,26 @@ static int moxart_gpio_get(struct gpio_chip *chip, unsigned offset)return !!(readl (gc->base +GPIO_DATA_IN ) &BIT (offset)); } +static int moxart_gpio_direction_input (struct gpio_chip *chip,unsigned offset) +{ +struct moxart_gpio_chip *gc =to_moxart_gpio (chip); +void __iomem *ioaddr = gc->base +GPIO_PIN_DIRECTION ; + +writel (readl (ioaddr) & ~BIT (offset), ioaddr); +return 0 ; +} + +static int moxart_gpio_direction_output (struct gpio_chip *chip, +unsigned offset,int value) +{ +struct moxart_gpio_chip *gc =to_moxart_gpio (chip); +void __iomem *ioaddr = gc->base +GPIO_PIN_DIRECTION ; + +moxart_gpio_set (chip, offset, value); +writel (readl (ioaddr) |BIT (offset), ioaddr); +return 0 ; +} +static struct gpio_chip moxart_template_chip = { .label ="moxart-gpio" , .request = moxart_gpio_request,
Signature · 1 line
1.8.3.2