Message ID | 20230824160017.368517-1-biju.das.jz@bp.renesas.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Geert Uytterhoeven |
Headers | show |
Series | [v2] gpio: pca953x: Use i2c_get_match_data() | expand |
On Thu, Aug 24, 2023 at 7:00 PM Biju Das <biju.das.jz@bp.renesas.com> wrote: > > Replace device_get_match_data() and id lookup for retrieving match data > by i2c_get_match_data(). Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
On Thu, Aug 24, 2023 at 6:00 PM Biju Das <biju.das.jz@bp.renesas.com> wrote: > > Replace device_get_match_data() and id lookup for retrieving match data > by i2c_get_match_data(). > > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> > --- > v1->v2: > * Moved i2c_get_match_data() to be called before devm_regulator_get() as > it doesn't require regulator to be enabled for functioning. > --- > drivers/gpio/gpio-pca953x.c | 18 +++--------------- > 1 file changed, 3 insertions(+), 15 deletions(-) > > diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c > index a806a3c1b801..929a2d075fe4 100644 > --- a/drivers/gpio/gpio-pca953x.c > +++ b/drivers/gpio/gpio-pca953x.c > @@ -1051,7 +1051,6 @@ static int device_pca957x_init(struct pca953x_chip *chip, u32 invert) > > static int pca953x_probe(struct i2c_client *client) > { > - const struct i2c_device_id *i2c_id = i2c_client_get_device_id(client); > struct pca953x_platform_data *pdata; > struct pca953x_chip *chip; > int irq_base = 0; > @@ -1090,6 +1089,9 @@ static int pca953x_probe(struct i2c_client *client) > } > > chip->client = client; > + chip->driver_data = (uintptr_t)i2c_get_match_data(client); > + if (!chip->driver_data) > + return -ENODEV; > > reg = devm_regulator_get(&client->dev, "vcc"); > if (IS_ERR(reg)) > @@ -1102,20 +1104,6 @@ static int pca953x_probe(struct i2c_client *client) > } > chip->regulator = reg; > > - if (i2c_id) { > - chip->driver_data = i2c_id->driver_data; > - } else { > - const void *match; > - > - match = device_get_match_data(&client->dev); > - if (!match) { > - ret = -ENODEV; > - goto err_exit; > - } > - > - chip->driver_data = (uintptr_t)match; > - } > - > i2c_set_clientdata(client, chip); > > pca953x_setup_gpio(chip, chip->driver_data & PCA_GPIO_MASK); > -- > 2.25.1 > Applied, thanks! Bart
diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c index a806a3c1b801..929a2d075fe4 100644 --- a/drivers/gpio/gpio-pca953x.c +++ b/drivers/gpio/gpio-pca953x.c @@ -1051,7 +1051,6 @@ static int device_pca957x_init(struct pca953x_chip *chip, u32 invert) static int pca953x_probe(struct i2c_client *client) { - const struct i2c_device_id *i2c_id = i2c_client_get_device_id(client); struct pca953x_platform_data *pdata; struct pca953x_chip *chip; int irq_base = 0; @@ -1090,6 +1089,9 @@ static int pca953x_probe(struct i2c_client *client) } chip->client = client; + chip->driver_data = (uintptr_t)i2c_get_match_data(client); + if (!chip->driver_data) + return -ENODEV; reg = devm_regulator_get(&client->dev, "vcc"); if (IS_ERR(reg)) @@ -1102,20 +1104,6 @@ static int pca953x_probe(struct i2c_client *client) } chip->regulator = reg; - if (i2c_id) { - chip->driver_data = i2c_id->driver_data; - } else { - const void *match; - - match = device_get_match_data(&client->dev); - if (!match) { - ret = -ENODEV; - goto err_exit; - } - - chip->driver_data = (uintptr_t)match; - } - i2c_set_clientdata(client, chip); pca953x_setup_gpio(chip, chip->driver_data & PCA_GPIO_MASK);
Replace device_get_match_data() and id lookup for retrieving match data by i2c_get_match_data(). Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> --- v1->v2: * Moved i2c_get_match_data() to be called before devm_regulator_get() as it doesn't require regulator to be enabled for functioning. --- drivers/gpio/gpio-pca953x.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-)