Messages in this thread Patch in this message | | | From | dirk.brandewie@gmail ... | Subject | [PATCH 4/5] max17042: Fix value scaling for VCELL and avgVCELL | Date | Tue, 24 Jan 2012 09:26:07 -0800 |
| |
From: Bruce Robertson <bruce.e.robertson@intel.com>
The bottom three bits of the register are don't care bits. The LSB value is 625 uV. Adjust the returned values appropriately
Signed-off-by: Bruce Robertson <bruce.e.robertson@intel.com> Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com> Acked-by: MyungJoo Ham <myungjoo.ham@samsung.com> --- drivers/power/max17042_battery.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/power/max17042_battery.c b/drivers/power/max17042_battery.c index e0a4430..6e96b58 100644 --- a/drivers/power/max17042_battery.c +++ b/drivers/power/max17042_battery.c @@ -148,11 +148,15 @@ static int max17042_get_property(struct power_supply *psy, break; case POWER_SUPPLY_PROP_VOLTAGE_NOW: val->intval = max17042_read_reg(chip->client, - MAX17042_VCELL) * 83; /* 1000 / 12 = 83 */ + MAX17042_VCELL); + val->intval >>= 3; + val->intval *= 625; /* Units of LSB = 625 uV */ break; case POWER_SUPPLY_PROP_VOLTAGE_AVG: val->intval = max17042_read_reg(chip->client, - MAX17042_AvgVCELL) * 83; + MAX17042_AvgVCELL); + val->intval >>= 3; + val->intval *= 625; /* Units of LSB = 625 uV */ break; case POWER_SUPPLY_PROP_CAPACITY: val->intval = max17042_read_reg(chip->client, -- 1.7.7.5
| |