summaryrefslogtreecommitdiff
path: root/drivers/hwmon/pmbus/isl68137.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/hwmon/pmbus/isl68137.c')
-rw-r--r--drivers/hwmon/pmbus/isl68137.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/hwmon/pmbus/isl68137.c b/drivers/hwmon/pmbus/isl68137.c
index 52cf62e45a86..97b61836f53a 100644
--- a/drivers/hwmon/pmbus/isl68137.c
+++ b/drivers/hwmon/pmbus/isl68137.c
@@ -65,6 +65,7 @@ enum chips {
raa228246,
raa229001,
raa229004,
+ raa229141,
raa229621,
};
@@ -73,6 +74,7 @@ enum variants {
raa_dmpvr2_1rail,
raa_dmpvr2_2rail,
raa_dmpvr2_2rail_nontc,
+ raa_dmpvr2_2rail_pmbus,
raa_dmpvr2_3rail,
raa_dmpvr2_hv,
};
@@ -336,10 +338,9 @@ static int isl68137_probe_from_dt(struct device *dev,
struct isl68137_data *data)
{
const struct device_node *np = dev->of_node;
- struct device_node *child;
int err;
- for_each_child_of_node(np, child) {
+ for_each_child_of_node_scoped(np, child) {
if (strcmp(child->name, "channel"))
continue;
@@ -400,6 +401,17 @@ static int isl68137_probe(struct i2c_client *client)
info->read_word_data = raa_dmpvr2_read_word_data;
info->write_word_data = raa_dmpvr2_write_word_data;
break;
+ case raa_dmpvr2_2rail_pmbus:
+ info->format[PSC_VOLTAGE_IN] = linear,
+ info->format[PSC_VOLTAGE_OUT] = linear,
+ info->format[PSC_CURRENT_IN] = linear;
+ info->format[PSC_CURRENT_OUT] = linear;
+ info->format[PSC_POWER] = linear;
+ info->format[PSC_TEMPERATURE] = linear;
+ info->pages = 2;
+ info->read_word_data = raa_dmpvr2_read_word_data;
+ info->write_word_data = raa_dmpvr2_write_word_data;
+ break;
case raa_dmpvr2_3rail:
info->read_word_data = raa_dmpvr2_read_word_data;
info->write_word_data = raa_dmpvr2_write_word_data;
@@ -470,6 +482,7 @@ static const struct i2c_device_id raa_dmpvr_id[] = {
{"raa228246", raa_dmpvr2_2rail_nontc},
{"raa229001", raa_dmpvr2_2rail},
{"raa229004", raa_dmpvr2_2rail},
+ {"raa229141", raa_dmpvr2_2rail_pmbus},
{"raa229621", raa_dmpvr2_2rail},
{}
};