Skip to content

Commit

Permalink
hwmon/adm1275: Support sense resistor parameter from dt
Browse files Browse the repository at this point in the history
Allow a system to specify the value of an external sense resistor in the
device tree.

Signed-off-by: Joel Stanley <joel@jms.id.au>
  • Loading branch information
shenki committed Mar 21, 2016
1 parent 5fbf374 commit dd13a2c
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 2 deletions.
19 changes: 19 additions & 0 deletions Documentation/devicetree/bindings/hwmon/adm1275.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
adm1275 temperature sensor
--------------------------

Required property:

- compatible: "adi,adm1278"
- reg: i2c device address

Optional property:

- sense-resistor: external sense resistor value in milliOhms

Example:

sensor {
reg = <0x11>;
compatible = "adi,adm1278";
sense-resistor = < 100 >
}
11 changes: 9 additions & 2 deletions drivers/hwmon/pmbus/adm1275.c
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,7 @@ static int adm1275_probe(struct i2c_client *client,
u8 block_buffer[I2C_SMBUS_BLOCK_MAX + 1];
int config, device_config;
int ret;
u32 r_sense = 1;
struct pmbus_driver_info *info;
struct adm1275_data *data;
const struct i2c_device_id *mid;
Expand Down Expand Up @@ -418,6 +419,12 @@ static int adm1275_probe(struct i2c_client *client,
if (!data)
return -ENOMEM;

ret = of_property_read_u32(client->dev.of_node, "sense-resistor",
&r_sense);
if (!ret)
dev_notice(&client->dev, "using r_sense from dt %d\n",
r_sense);

data->id = mid->driver_data;

info = &data->info;
Expand Down Expand Up @@ -591,12 +598,12 @@ static int adm1275_probe(struct i2c_client *client,
info->R[PSC_VOLTAGE_OUT] = coefficients[voindex].R;
}
if (cindex >= 0) {
info->m[PSC_CURRENT_OUT] = coefficients[cindex].m;
info->m[PSC_CURRENT_OUT] = coefficients[cindex].m * r_sense;
info->b[PSC_CURRENT_OUT] = coefficients[cindex].b;
info->R[PSC_CURRENT_OUT] = coefficients[cindex].R;
}
if (pindex >= 0) {
info->m[PSC_POWER] = coefficients[pindex].m;
info->m[PSC_POWER] = coefficients[pindex].m * r_sense;
info->b[PSC_POWER] = coefficients[pindex].b;
info->R[PSC_POWER] = coefficients[pindex].R;
}
Expand Down

0 comments on commit dd13a2c

Please sign in to comment.