Commit 2d8119d7 authored by Stefan Brüns's avatar Stefan Brüns Committed by Jonathan Cameron

iio: adc: ina2xx: Use LSB specifier instead of divider in config

While the config uses the physical value corresponding to the LSB
for both the power and the bus voltage register, the shunt voltage is
specified as parts of 1 mV. Use the LSB physical value for all registers.

No functional change.
Signed-off-by: default avatarStefan Brüns <stefan.bruens@rwth-aachen.de>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 2e644384
...@@ -115,7 +115,7 @@ enum ina2xx_ids { ina219, ina226 }; ...@@ -115,7 +115,7 @@ enum ina2xx_ids { ina219, ina226 };
struct ina2xx_config { struct ina2xx_config {
u16 config_default; u16 config_default;
int calibration_factor; int calibration_factor;
int shunt_div; int shunt_voltage_lsb; /* nV */
int bus_voltage_shift; /* position of lsb */ int bus_voltage_shift; /* position of lsb */
int bus_voltage_lsb; /* uV */ int bus_voltage_lsb; /* uV */
int power_lsb; /* uW */ int power_lsb; /* uW */
...@@ -138,7 +138,7 @@ static const struct ina2xx_config ina2xx_config[] = { ...@@ -138,7 +138,7 @@ static const struct ina2xx_config ina2xx_config[] = {
[ina219] = { [ina219] = {
.config_default = INA219_CONFIG_DEFAULT, .config_default = INA219_CONFIG_DEFAULT,
.calibration_factor = 40960000, .calibration_factor = 40960000,
.shunt_div = 100, .shunt_voltage_lsb = 10000,
.bus_voltage_shift = INA219_BUS_VOLTAGE_SHIFT, .bus_voltage_shift = INA219_BUS_VOLTAGE_SHIFT,
.bus_voltage_lsb = 4000, .bus_voltage_lsb = 4000,
.power_lsb = 20000, .power_lsb = 20000,
...@@ -147,7 +147,7 @@ static const struct ina2xx_config ina2xx_config[] = { ...@@ -147,7 +147,7 @@ static const struct ina2xx_config ina2xx_config[] = {
[ina226] = { [ina226] = {
.config_default = INA226_CONFIG_DEFAULT, .config_default = INA226_CONFIG_DEFAULT,
.calibration_factor = 5120000, .calibration_factor = 5120000,
.shunt_div = 400, .shunt_voltage_lsb = 2500,
.bus_voltage_shift = 0, .bus_voltage_shift = 0,
.bus_voltage_lsb = 1250, .bus_voltage_lsb = 1250,
.power_lsb = 25000, .power_lsb = 25000,
...@@ -204,9 +204,9 @@ static int ina2xx_read_raw(struct iio_dev *indio_dev, ...@@ -204,9 +204,9 @@ static int ina2xx_read_raw(struct iio_dev *indio_dev,
case IIO_CHAN_INFO_SCALE: case IIO_CHAN_INFO_SCALE:
switch (chan->address) { switch (chan->address) {
case INA2XX_SHUNT_VOLTAGE: case INA2XX_SHUNT_VOLTAGE:
/* processed (mV) = raw/shunt_div */ /* processed (mV) = raw * lsb(nV) / 1000000 */
*val2 = chip->config->shunt_div; *val = chip->config->shunt_voltage_lsb;
*val = 1; *val2 = 1000000;
return IIO_VAL_FRACTIONAL; return IIO_VAL_FRACTIONAL;
case INA2XX_BUS_VOLTAGE: case INA2XX_BUS_VOLTAGE:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment