Commit c88eba5a authored by Jonathan Cameron's avatar Jonathan Cameron

iio:adc:max9611: Switch to generic firmware properties.

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: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
parent fdb726c4
...@@ -22,7 +22,8 @@ ...@@ -22,7 +22,8 @@
#include <linux/iio/iio.h> #include <linux/iio/iio.h>
#include <linux/iio/sysfs.h> #include <linux/iio/sysfs.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_device.h> #include <linux/mod_devicetable.h>
#include <linux/property.h>
#define DRIVER_NAME "max9611" #define DRIVER_NAME "max9611"
...@@ -513,11 +514,9 @@ static int max9611_probe(struct i2c_client *client, ...@@ -513,11 +514,9 @@ static int max9611_probe(struct i2c_client *client,
const struct i2c_device_id *id) const struct i2c_device_id *id)
{ {
const char * const shunt_res_prop = "shunt-resistor-micro-ohms"; 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 max9611_dev *max9611;
struct iio_dev *indio_dev; struct iio_dev *indio_dev;
struct device *dev = &client->dev;
unsigned int of_shunt; unsigned int of_shunt;
int ret; int ret;
...@@ -528,15 +527,14 @@ static int max9611_probe(struct i2c_client *client, ...@@ -528,15 +527,14 @@ static int max9611_probe(struct i2c_client *client,
i2c_set_clientdata(client, indio_dev); i2c_set_clientdata(client, indio_dev);
max9611 = iio_priv(indio_dev); max9611 = iio_priv(indio_dev);
max9611->dev = &client->dev; max9611->dev = dev;
max9611->i2c_client = client; max9611->i2c_client = client;
mutex_init(&max9611->lock); 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) { if (ret) {
dev_err(&client->dev, dev_err(dev, "Missing %s property for %pfw node\n",
"Missing %s property for %pOF node\n", shunt_res_prop, dev_fwnode(dev));
shunt_res_prop, of_node);
return ret; return ret;
} }
max9611->shunt_resistor_uohm = of_shunt; max9611->shunt_resistor_uohm = of_shunt;
...@@ -545,13 +543,13 @@ static int max9611_probe(struct i2c_client *client, ...@@ -545,13 +543,13 @@ static int max9611_probe(struct i2c_client *client,
if (ret) if (ret)
return 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->modes = INDIO_DIRECT_MODE;
indio_dev->info = &indio_info; indio_dev->info = &indio_info;
indio_dev->channels = max9611_channels; indio_dev->channels = max9611_channels;
indio_dev->num_channels = ARRAY_SIZE(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 = { static struct i2c_driver max9611_driver = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment