iio: adc: ti-adc081c: Simplify probe()
authorBiju Das <biju.das.jz@bp.renesas.com>
Sat, 2 Sep 2023 16:26:33 +0000 (17:26 +0100)
committerJonathan Cameron <jonathan.cameron@huawei.com>
Tue, 12 Sep 2023 09:42:04 +0000 (10:42 +0100)
Simpilfy probe() by replacing of_device_get_match_data() and id lookup for
retrieving match data by using i2c_get_match_data() by making similar
OF/I2C/ACPI match tables.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Link: https://lore.kernel.org/r/20230902162633.50546-1-biju.das.jz@bp.renesas.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/ti-adc081c.c

index 50c450e7a55fd1f0f5b1f0568674c245eefc99fc..6c2cb3dabbbf0555f1ed51b52ee3f9eeca377a92 100644 (file)
@@ -154,7 +154,6 @@ static void adc081c_reg_disable(void *reg)
 
 static int adc081c_probe(struct i2c_client *client)
 {
-       const struct i2c_device_id *id = i2c_client_get_device_id(client);
        struct iio_dev *iio;
        struct adc081c *adc;
        const struct adcxx1c_model *model;
@@ -163,10 +162,7 @@ static int adc081c_probe(struct i2c_client *client)
        if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_WORD_DATA))
                return -EOPNOTSUPP;
 
-       if (dev_fwnode(&client->dev))
-               model = device_get_match_data(&client->dev);
-       else
-               model = &adcxx1c_models[id->driver_data];
+       model = i2c_get_match_data(client);
 
        iio = devm_iio_device_alloc(&client->dev, sizeof(*adc));
        if (!iio)
@@ -207,9 +203,9 @@ static int adc081c_probe(struct i2c_client *client)
 }
 
 static const struct i2c_device_id adc081c_id[] = {
-       { "adc081c", ADC081C },
-       { "adc101c", ADC101C },
-       { "adc121c", ADC121C },
+       { "adc081c", (kernel_ulong_t)&adcxx1c_models[ADC081C] },
+       { "adc101c", (kernel_ulong_t)&adcxx1c_models[ADC101C] },
+       { "adc121c", (kernel_ulong_t)&adcxx1c_models[ADC121C] },
        { }
 };
 MODULE_DEVICE_TABLE(i2c, adc081c_id);