On Wed, Nov 10, 2021 at 6:37 PM Andreas Kemnade <andreas@xxxxxxxxxxxx> wrote: > Alistair Francis <alistair23@xxxxxxxxx> wrote: > You have a kind of double inversion here, so things are automagically fixed. > IMHO to describe it correctly would be to set GPIO_ACTIVE_LOW here > and in the driver > > /* Reset the gpio to be in a reset state */ > ts->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); > if (IS_ERR(ts->reset_gpio)) { > rc = PTR_ERR(ts->reset_gpio); > dev_err(dev, "Failed to request reset gpio, error %d\n", rc); > return rc; > } > gpiod_set_value(ts->reset_gpio, 0); > > That is the way how other active-low reset lines are handled. Correct. This is a source of confusion, I contemplated just changing the name of GPIOD_OUT_HIGH to GPIOD_OUT_ASSERTED etc to indicate what is going on. gpiod_set_value(ts->reset_gpio, 0) should similarly be interpreted as "de-assert this line" no matter the polarity. Yours, Linus Walleij