iio: accel: mma8452: Convert enum->pointer for data in the ID table
authorBiju Das <biju.das.jz@bp.renesas.com>
Fri, 18 Aug 2023 18:40:32 +0000 (19:40 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 11 Sep 2023 19:12:41 +0000 (20:12 +0100)
Convert enum->pointer for data in the ID table, so that
device_get_match_data() can do match against OF/ACPI/I2C tables, once i2c
bus type match support added to it.

Replace enum->struct *mma_chip_info for data in the ID table and simplify
mma8452_probe() by replacing device_get_match_data() with
i2c_get_match_data().

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20230818184033.335502-2-biju.das.jz@bp.renesas.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/accel/mma8452.c

index f42a8871148653f45d30aecf0778e89e948fde91..5864ad726e97ac79791fe18b3ffaa460d9399471 100644 (file)
@@ -1547,7 +1547,6 @@ MODULE_DEVICE_TABLE(of, mma8452_dt_ids);
 
 static int mma8452_probe(struct i2c_client *client)
 {
-       const struct i2c_device_id *id = i2c_client_get_device_id(client);
        struct mma8452_data *data;
        struct iio_dev *indio_dev;
        int ret;
@@ -1560,15 +1559,10 @@ static int mma8452_probe(struct i2c_client *client)
        data->client = client;
        mutex_init(&data->lock);
 
-       data->chip_info = device_get_match_data(&client->dev);
-       if (!data->chip_info) {
-               if (id) {
-                       data->chip_info = &mma_chip_info_table[id->driver_data];
-               } else {
-                       dev_err(&client->dev, "unknown device model\n");
-                       return -ENODEV;
-               }
-       }
+       data->chip_info = i2c_get_match_data(client);
+       if (!data->chip_info)
+               return dev_err_probe(&client->dev, -ENODEV,
+                                    "unknown device model\n");
 
        ret = iio_read_mount_matrix(&client->dev, &data->orientation);
        if (ret)
@@ -1830,12 +1824,12 @@ static const struct dev_pm_ops mma8452_pm_ops = {
 };
 
 static const struct i2c_device_id mma8452_id[] = {
-       { "mma8451", mma8451 },
-       { "mma8452", mma8452 },
-       { "mma8453", mma8453 },
-       { "mma8652", mma8652 },
-       { "mma8653", mma8653 },
-       { "fxls8471", fxls8471 },
+       { "mma8451", (kernel_ulong_t)&mma_chip_info_table[mma8451] },
+       { "mma8452", (kernel_ulong_t)&mma_chip_info_table[mma8452] },
+       { "mma8453", (kernel_ulong_t)&mma_chip_info_table[mma8453] },
+       { "mma8652", (kernel_ulong_t)&mma_chip_info_table[mma8652] },
+       { "mma8653", (kernel_ulong_t)&mma_chip_info_table[mma8653] },
+       { "fxls8471", (kernel_ulong_t)&mma_chip_info_table[fxls8471] },
        { }
 };
 MODULE_DEVICE_TABLE(i2c, mma8452_id);