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@xxxxxxxxxx> 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,