return -EINVAL;
        }
 
-       return pinctrl_gpio_request(chip->base + offset);
+       return pinctrl_gpio_request_new(chip, offset);
 }
 
 static void stm32_gpio_free(struct gpio_chip *chip, unsigned offset)
 {
-       pinctrl_gpio_free(chip->base + offset);
+       pinctrl_gpio_free_new(chip, offset);
 }
 
 static int stm32_gpio_get(struct gpio_chip *chip, unsigned offset)
 
 static int stm32_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
 {
-       return pinctrl_gpio_direction_input(chip->base + offset);
+       return pinctrl_gpio_direction_input_new(chip, offset);
 }
 
 static int stm32_gpio_direction_output(struct gpio_chip *chip,
        struct stm32_gpio_bank *bank = gpiochip_get_data(chip);
 
        __stm32_gpio_set(bank, offset, value);
-       pinctrl_gpio_direction_output(chip->base + offset);
+       pinctrl_gpio_direction_output_new(chip, offset);
 
        return 0;
 }