OSDN Git Service

iio:adc:max9611: Switch to generic firmware properties.
authorJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 5 Dec 2021 17:01:35 +0000 (17:01 +0000)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 12 Dec 2021 17:12:55 +0000 (17:12 +0000)
Note the handling of the device tree node in this driver was somewhat
unusual.  I have cleaned that up whilst also moving over to generic
properties.

Part of a general attempt to move all IIO drivers over to generic
firmware properties both as a general improvement and to avoid sources
of cut and paste into future drivers.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
drivers/iio/adc/max9611.c

index 052ab23..01a4275 100644 (file)
@@ -22,7 +22,8 @@
 #include <linux/iio/iio.h>
 #include <linux/iio/sysfs.h>
 #include <linux/module.h>
-#include <linux/of_device.h>
+#include <linux/mod_devicetable.h>
+#include <linux/property.h>
 
 #define DRIVER_NAME                    "max9611"
 
@@ -513,11 +514,9 @@ static int max9611_probe(struct i2c_client *client,
                         const struct i2c_device_id *id)
 {
        const char * const shunt_res_prop = "shunt-resistor-micro-ohms";
-       const struct device_node *of_node = client->dev.of_node;
-       const struct of_device_id *of_id =
-               of_match_device(max9611_of_table, &client->dev);
        struct max9611_dev *max9611;
        struct iio_dev *indio_dev;
+       struct device *dev = &client->dev;
        unsigned int of_shunt;
        int ret;
 
@@ -528,15 +527,14 @@ static int max9611_probe(struct i2c_client *client,
        i2c_set_clientdata(client, indio_dev);
 
        max9611                 = iio_priv(indio_dev);
-       max9611->dev            = &client->dev;
+       max9611->dev            = dev;
        max9611->i2c_client     = client;
        mutex_init(&max9611->lock);
 
-       ret = of_property_read_u32(of_node, shunt_res_prop, &of_shunt);
+       ret = device_property_read_u32(dev, shunt_res_prop, &of_shunt);
        if (ret) {
-               dev_err(&client->dev,
-                       "Missing %s property for %pOF node\n",
-                       shunt_res_prop, of_node);
+               dev_err(dev, "Missing %s property for %pfw node\n",
+                       shunt_res_prop, dev_fwnode(dev));
                return ret;
        }
        max9611->shunt_resistor_uohm = of_shunt;
@@ -545,13 +543,13 @@ static int max9611_probe(struct i2c_client *client,
        if (ret)
                return ret;
 
-       indio_dev->name         = of_id->data;
+       indio_dev->name         = device_get_match_data(dev);
        indio_dev->modes        = INDIO_DIRECT_MODE;
        indio_dev->info         = &indio_info;
        indio_dev->channels     = max9611_channels;
        indio_dev->num_channels = ARRAY_SIZE(max9611_channels);
 
-       return devm_iio_device_register(&client->dev, indio_dev);
+       return devm_iio_device_register(dev, indio_dev);
 }
 
 static struct i2c_driver max9611_driver = {