gpio: pca953x: Use i2c_get_match_data()
authorBiju Das <biju.das.jz@bp.renesas.com>
Thu, 24 Aug 2023 16:00:17 +0000 (17:00 +0100)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Fri, 25 Aug 2023 11:13:23 +0000 (13:13 +0200)
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>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpio-pca953x.c

index a806a3c..929a2d0 100644 (file)
@@ -1051,7 +1051,6 @@ out:
 
 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);