Message ID | 20190128210637.22323-2-linus.walleij@linaro.org (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | [1/2] hwmon: (ad741x) Add DT bindings for Analog Devices AD741x | expand |
On Mon, Jan 28, 2019 at 10:06:37PM +0100, Linus Walleij wrote: > This adds device tree probing for the AD7418 hwmon sensor. > When device tree is not enabled, stub functions will kick > in. > > Tested on the Gateway Cambria GW2358-4. > > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Applied to hwmon-next. Thanks, Guenter > --- > drivers/hwmon/ad7418.c | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/drivers/hwmon/ad7418.c b/drivers/hwmon/ad7418.c > index 76f0a5c01e8a..ec0f5d8f18c3 100644 > --- a/drivers/hwmon/ad7418.c > +++ b/drivers/hwmon/ad7418.c > @@ -19,6 +19,7 @@ > #include <linux/hwmon-sysfs.h> > #include <linux/err.h> > #include <linux/mutex.h> > +#include <linux/of_device.h> > #include <linux/delay.h> > #include <linux/slab.h> > > @@ -220,7 +221,10 @@ static int ad7418_probe(struct i2c_client *client, > > mutex_init(&data->lock); > data->client = client; > - data->type = id->driver_data; > + if (dev->of_node) > + data->type = (enum chips)of_device_get_match_data(dev); > + else > + data->type = id->driver_data; > > switch (data->type) { > case ad7416: > @@ -258,9 +262,17 @@ static const struct i2c_device_id ad7418_id[] = { > }; > MODULE_DEVICE_TABLE(i2c, ad7418_id); > > +static const struct of_device_id ad7418_dt_ids[] = { > + { .compatible = "adi,ad7416", .data = (void *)ad7416, }, > + { .compatible = "adi,ad7417", .data = (void *)ad7417, }, > + { .compatible = "adi,ad7418", .data = (void *)ad7418, }, > +}; > +MODULE_DEVICE_TABLE(of, ad7418_dt_ids); > + > static struct i2c_driver ad7418_driver = { > .driver = { > .name = "ad7418", > + .of_match_table = ad7418_dt_ids, > }, > .probe = ad7418_probe, > .id_table = ad7418_id,
diff --git a/drivers/hwmon/ad7418.c b/drivers/hwmon/ad7418.c index 76f0a5c01e8a..ec0f5d8f18c3 100644 --- a/drivers/hwmon/ad7418.c +++ b/drivers/hwmon/ad7418.c @@ -19,6 +19,7 @@ #include <linux/hwmon-sysfs.h> #include <linux/err.h> #include <linux/mutex.h> +#include <linux/of_device.h> #include <linux/delay.h> #include <linux/slab.h> @@ -220,7 +221,10 @@ static int ad7418_probe(struct i2c_client *client, mutex_init(&data->lock); data->client = client; - data->type = id->driver_data; + if (dev->of_node) + data->type = (enum chips)of_device_get_match_data(dev); + else + data->type = id->driver_data; switch (data->type) { case ad7416: @@ -258,9 +262,17 @@ static const struct i2c_device_id ad7418_id[] = { }; MODULE_DEVICE_TABLE(i2c, ad7418_id); +static const struct of_device_id ad7418_dt_ids[] = { + { .compatible = "adi,ad7416", .data = (void *)ad7416, }, + { .compatible = "adi,ad7417", .data = (void *)ad7417, }, + { .compatible = "adi,ad7418", .data = (void *)ad7418, }, +}; +MODULE_DEVICE_TABLE(of, ad7418_dt_ids); + static struct i2c_driver ad7418_driver = { .driver = { .name = "ad7418", + .of_match_table = ad7418_dt_ids, }, .probe = ad7418_probe, .id_table = ad7418_id,
This adds device tree probing for the AD7418 hwmon sensor. When device tree is not enabled, stub functions will kick in. Tested on the Gateway Cambria GW2358-4. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> --- drivers/hwmon/ad7418.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)