pinctrl: npcm7xx: prevent glitch when setting the GPIO to output high
authorTomer Maimon <tmaimon77@gmail.com>
Wed, 15 Nov 2023 21:12:09 +0000 (13:12 -0800)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 24 Nov 2023 10:22:11 +0000 (11:22 +0100)
Enable GPIO output after setting the output value to prevent a glitch
when pinctrl driver sets gpio pin to output high and the pin is in
the default state (high->low->high).

Signed-off-by: Tomer Maimon <tmaimon77@gmail.com>
Signed-off-by: William A. Kennington III <william@wkennington.com>
Link: https://lore.kernel.org/r/20231115211209.1683449-1-william@wkennington.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c

index 1e658721aaba51fa3ffd5de21f1dcf36c38af439..62a46d824b4659d6f2c4bb4b80bbfba51ad0c4cf 100644 (file)
@@ -1790,8 +1790,8 @@ static int npcm7xx_config_set_one(struct npcm7xx_pinctrl *npcm,
                bank->direction_input(&bank->gc, pin % bank->gc.ngpio);
                break;
        case PIN_CONFIG_OUTPUT:
-               iowrite32(gpio, bank->base + NPCM7XX_GP_N_OES);
                bank->direction_output(&bank->gc, pin % bank->gc.ngpio, arg);
+               iowrite32(gpio, bank->base + NPCM7XX_GP_N_OES);
                break;
        case PIN_CONFIG_DRIVE_PUSH_PULL:
                npcm_gpio_clr(&bank->gc, bank->base + NPCM7XX_GP_N_OTYP, gpio);