Skip to content

Commit

Permalink
hwmon: (ina2xx) Add device tree support to pass the shunt resistor
Browse files Browse the repository at this point in the history
Adding another way that is device tree to pass the shunt resistor
value to driver except for platform data.

Signed-off-by: Tang Yuantian <Yuantian.Tang@freescale.com>
[Guenter Roeck: Added missing of.h include]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
  • Loading branch information
Tang Yuantian authored and Guenter Roeck committed Jun 27, 2013
1 parent 87438c2 commit 31e7ad7
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 1 deletion.
22 changes: 22 additions & 0 deletions Documentation/devicetree/bindings/i2c/ina2xx.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
ina2xx properties

Required properties:
- compatible: Must be one of the following:
- "ti,ina219" for ina219
- "ti,ina220" for ina220
- "ti,ina226" for ina226
- "ti,ina230" for ina230
- reg: I2C address

Optional properties:

- shunt-resistor
Shunt resistor value in micro-Ohm

Example:

ina220@44 {
compatible = "ti,ina220";
reg = <0x44>;
shunt-resistor = <1000>;
};
4 changes: 3 additions & 1 deletion Documentation/hwmon/ina2xx
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,6 @@ The INA226 monitors both a shunt voltage drop and bus supply voltage.
The INA230 is a high or low side current shunt and power monitor with an I2C
interface. The INA230 monitors both a shunt voltage drop and bus supply voltage.

The shunt value in micro-ohms can be set via platform data.
The shunt value in micro-ohms can be set via platform data or device tree.
Please refer to the Documentation/devicetree/bindings/i2c/ina2xx.txt for bindings
if the device tree is used.
5 changes: 5 additions & 0 deletions drivers/hwmon/ina2xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
#include <linux/hwmon.h>
#include <linux/hwmon-sysfs.h>
#include <linux/jiffies.h>
#include <linux/of.h>

#include <linux/platform_data/ina2xx.h>

Expand Down Expand Up @@ -221,6 +222,7 @@ static int ina2xx_probe(struct i2c_client *client,
struct ina2xx_data *data;
struct ina2xx_platform_data *pdata;
int ret;
u32 val;
long shunt = 10000; /* default shunt value 10mOhms */

if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_WORD_DATA))
Expand All @@ -234,6 +236,9 @@ static int ina2xx_probe(struct i2c_client *client,
pdata =
(struct ina2xx_platform_data *)client->dev.platform_data;
shunt = pdata->shunt_uohms;
} else if (!of_property_read_u32(client->dev.of_node,
"shunt-resistor", &val)) {
shunt = val;
}

if (shunt <= 0)
Expand Down

0 comments on commit 31e7ad7

Please sign in to comment.