__st_gpio_set(bank, offset, value);
 }
 
-static int st_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
-{
-       pinctrl_gpio_direction_input(chip, offset);
-
-       return 0;
-}
-
 static int st_gpio_direction_output(struct gpio_chip *chip,
        unsigned offset, int value)
 {
 {
        struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
 
-       st_gpio_direction_input(gc, d->hwirq);
+       pinctrl_gpio_direction_input(gc, d->hwirq);
 
        return gpiochip_reqres_irq(gc, d->hwirq);
 }
        .free                   = gpiochip_generic_free,
        .get                    = st_gpio_get,
        .set                    = st_gpio_set,
-       .direction_input        = st_gpio_direction_input,
+       .direction_input        = pinctrl_gpio_direction_input,
        .direction_output       = st_gpio_direction_output,
        .get_direction          = st_gpio_get_direction,
        .ngpio                  = ST_GPIO_PINS_PER_BANK,