gpio: max732x: Drop unused support for irq and setup code via platform data
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Mon, 2 May 2022 17:08:27 +0000 (19:08 +0200)
committerBartosz Golaszewski <brgl@bgdev.pl>
Thu, 5 May 2022 12:37:17 +0000 (14:37 +0200)
The only user of max732x_platform_data is arch/arm/mach-pxa/littleton.c
and it only uses .gpio_base. So drop the other members from the data struct
and simplify the driver accordingly.

The motivating side effect of this change is that the .remove() callback
cannot return a nonzero error code any more which prepares making i2c
remove callbacks return void.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
drivers/gpio/gpio-max732x.c
include/linux/platform_data/max732x.h

index 238cbe9..da69721 100644 (file)
@@ -496,17 +496,13 @@ static int max732x_irq_setup(struct max732x_chip *chip,
                             const struct i2c_device_id *id)
 {
        struct i2c_client *client = chip->client;
-       struct max732x_platform_data *pdata = dev_get_platdata(&client->dev);
        int has_irq = max732x_features[id->driver_data] >> 32;
        int irq_base = 0;
        int ret;
 
-       if (((pdata && pdata->irq_base) || client->irq)
-                       && has_irq != INT_NONE) {
+       if (client->irq && has_irq != INT_NONE) {
                struct gpio_irq_chip *girq;
 
-               if (pdata)
-                       irq_base = pdata->irq_base;
                chip->irq_features = has_irq;
                mutex_init(&chip->irq_lock);
 
@@ -540,10 +536,9 @@ static int max732x_irq_setup(struct max732x_chip *chip,
                             const struct i2c_device_id *id)
 {
        struct i2c_client *client = chip->client;
-       struct max732x_platform_data *pdata = dev_get_platdata(&client->dev);
        int has_irq = max732x_features[id->driver_data] >> 32;
 
-       if (((pdata && pdata->irq_base) || client->irq) && has_irq != INT_NONE)
+       if (client->irq && has_irq != INT_NONE)
                dev_warn(&client->dev, "interrupt support not compiled in\n");
 
        return 0;
@@ -703,44 +698,16 @@ static int max732x_probe(struct i2c_client *client,
        if (ret)
                return ret;
 
-       if (pdata->setup) {
-               ret = pdata->setup(client, chip->gpio_chip.base,
-                               chip->gpio_chip.ngpio, pdata->context);
-               if (ret < 0)
-                       dev_warn(&client->dev, "setup failed, %d\n", ret);
-       }
-
        i2c_set_clientdata(client, chip);
        return 0;
 }
 
-static int max732x_remove(struct i2c_client *client)
-{
-       struct max732x_platform_data *pdata = dev_get_platdata(&client->dev);
-       struct max732x_chip *chip = i2c_get_clientdata(client);
-
-       if (pdata && pdata->teardown) {
-               int ret;
-
-               ret = pdata->teardown(client, chip->gpio_chip.base,
-                               chip->gpio_chip.ngpio, pdata->context);
-               if (ret < 0) {
-                       dev_err(&client->dev, "%s failed, %d\n",
-                                       "teardown", ret);
-                       return ret;
-               }
-       }
-
-       return 0;
-}
-
 static struct i2c_driver max732x_driver = {
        .driver = {
                .name           = "max732x",
                .of_match_table = of_match_ptr(max732x_of_table),
        },
        .probe          = max732x_probe,
-       .remove         = max732x_remove,
        .id_table       = max732x_id,
 };
 
index f231c63..4239992 100644 (file)
@@ -7,17 +7,5 @@
 struct max732x_platform_data {
        /* number of the first GPIO */
        unsigned        gpio_base;
-
-       /* interrupt base */
-       int             irq_base;
-
-       void            *context;       /* param to setup/teardown */
-
-       int             (*setup)(struct i2c_client *client,
-                               unsigned gpio, unsigned ngpio,
-                               void *context);
-       int             (*teardown)(struct i2c_client *client,
-                               unsigned gpio, unsigned ngpio,
-                               void *context);
 };
 #endif /* __LINUX_I2C_MAX732X_H */