On Wed, Sep 14, 2022 at 05:04:14PM +0200, Heiko Stuebner wrote: > Am Mittwoch, 14. September 2022, 16:14:25 CEST schrieb Dmitry Torokhov: > > This switches the driver to gpiod API and drops uses of of_get_gpio() API. > > > > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> > > --- > > drivers/input/touchscreen/auo-pixcir-ts.c | 47 ++++++++++------------- > > 1 file changed, 20 insertions(+), 27 deletions(-) > > [...] > > > @@ -578,23 +566,28 @@ static int auo_pixcir_probe(struct i2c_client *client, > > > > input_set_drvdata(ts->input, ts); > > > > - error = devm_gpio_request_one(&client->dev, ts->gpio_int, > > - GPIOF_DIR_IN, "auo_pixcir_ts_int"); > > + ts->gpio_int = devm_gpiod_get_index(&client->dev, NULL, 0, GPIOD_IN); > > + error = PTR_ERR_OR_ZERO(ts->gpio_int); > > if (error) { > > - dev_err(&client->dev, "request of gpio %d failed, %d\n", > > - ts->gpio_int, error); > > + dev_err(&client->dev, > > + "request of int gpio failed: %d\n", error); > > return error; > > } > > > > - error = devm_gpio_request_one(&client->dev, ts->gpio_rst, > > - GPIOF_DIR_OUT | GPIOF_INIT_HIGH, > > - "auo_pixcir_ts_rst"); > > + gpiod_set_consumer_name(ts->gpio_int, "auo_pixcir_ts_int"); > > + > > + /* Take the chip out of reset */ > > + ts->gpio_rst = devm_gpiod_get_index(&client->dev, NULL, 1, > > + GPIOD_OUT_LOW); > > hmm, is this really equivalent? It looks like above we're startig > with GPIOF_INIT_HIGH, while here it is LOW? Yes, I believe the behavior will not change. You need to remember that legacy gpio API operates on raw line states, whereas gpiod API is normally logical state that gets converted to raw state (and the conversion takes into account the polarity). Here we are dealing with ACTIVE_LOW gpio, so setting it into logical "low" (== inactive) means that the raw state is "high", as it was with gpio_request_oneio_request_one(...GPIOF_DIR_OUT | GPIOF_INIT_HIGH, ...); Thanks. -- Dmitry