Skip to content

Commit

Permalink
hwmon: (ad7418) Add device tree probing
Browse files Browse the repository at this point in the history
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 <[email protected]>
[groeck: Added missing {} to terminate ad7418_dt_ids]
Signed-off-by: Guenter Roeck <[email protected]>
  • Loading branch information
linusw authored and groeck committed Feb 25, 2019
1 parent badf14c commit f4c2965
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion drivers/hwmon/ad7418.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>

Expand Down Expand Up @@ -253,7 +254,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:
Expand Down Expand Up @@ -291,9 +295,18 @@ 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,
Expand Down

0 comments on commit f4c2965

Please sign in to comment.