On Thu, Aug 21, 2025 at 12:19 PM Marcos Del Sol Vives <marcos@xxxxxxxx> wrote: > static int gpio_regmap_direction_output(struct gpio_chip *chip, > unsigned int offset, int value) > { > - gpio_regmap_set(chip, offset, value); > + struct gpio_regmap *gpio = gpiochip_get_data(chip); > + int ret; > + > + if (gpio->flags & GPIO_REGMAP_DIR_BEFORE_SET) { > + ret = gpio_regmap_set_direction(chip, offset, true); > + if (ret) > + return ret; > + > + return gpio_regmap_set(chip, offset, value); > + } > + > + ret = gpio_regmap_set(chip, offset, value); > + if (ret) > + return ret; > > return gpio_regmap_set_direction(chip, offset, true); I guess this looks like this because it is just copied from gpio-mmio.c: static int bgpio_simple_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) { gc->set(gc, gpio, val); return bgpio_dir_return(gc, gpio, true); } It's hard to know which semantic to employ here, it's one way or the other. I like the new flag. Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx> You can merge this with the rest of the series. Yours, Linus Walleij