iio: potentiometer: ds1803: Change to firmware provided data
authorJagath Jog J <jagathjog1996@gmail.com>
Wed, 23 Feb 2022 16:35:22 +0000 (22:05 +0530)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 26 Feb 2022 18:38:00 +0000 (18:38 +0000)
Using firmware provided data to get the device specific
structure if not available fall back to id->driver_data.

Signed-off-by: Jagath Jog J <jagathjog1996@gmail.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20220223163525.13399-5-jagathjog1996@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/potentiometer/ds1803.c

index 31ca87dcbf686bd526d6e60e481673878dc2739a..0c274ec75721ef198a5edf887d591e9f5ee96bc7 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/iio/iio.h>
 #include <linux/module.h>
 #include <linux/mod_devicetable.h>
+#include <linux/property.h>
 
 #define DS1803_WIPER_0         0xA9
 #define DS1803_WIPER_1         0xAA
@@ -166,7 +167,9 @@ static int ds1803_probe(struct i2c_client *client, const struct i2c_device_id *i
 
        data = iio_priv(indio_dev);
        data->client = client;
-       data->cfg = &ds1803_cfg[id->driver_data];
+       data->cfg = device_get_match_data(dev);
+       if (!data->cfg)
+               data->cfg = &ds1803_cfg[id->driver_data];
 
        indio_dev->info = &ds1803_info;
        indio_dev->channels = data->cfg->channels;