gpio: ftgpio: Move hardware initialization
authorLinus Walleij <linus.walleij@linaro.org>
Mon, 19 Aug 2019 08:27:04 +0000 (10:27 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 20 Aug 2019 08:42:07 +0000 (10:42 +0200)
It is probably wise to initialize the hardware before registering
the irq chip.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20190819082704.14237-1-linus.walleij@linaro.org
drivers/gpio/gpio-ftgpio010.c

index 250e71f..3118d28 100644 (file)
@@ -296,10 +296,6 @@ static int ftgpio_gpio_probe(struct platform_device *pdev)
        girq->handler = handle_bad_irq;
        girq->parents[0] = irq;
 
-       ret = devm_gpiochip_add_data(dev, &g->gc, g);
-       if (ret)
-               goto dis_clk;
-
        /* Disable, unmask and clear all interrupts */
        writel(0x0, g->base + GPIO_INT_EN);
        writel(0x0, g->base + GPIO_INT_MASK);
@@ -308,6 +304,10 @@ static int ftgpio_gpio_probe(struct platform_device *pdev)
        /* Clear any use of debounce */
        writel(0x0, g->base + GPIO_DEBOUNCE_EN);
 
+       ret = devm_gpiochip_add_data(dev, &g->gc, g);
+       if (ret)
+               goto dis_clk;
+
        platform_set_drvdata(pdev, g);
        dev_info(dev, "FTGPIO010 @%p registered\n", g->base);