Browse Source

max17042_battery: Bugfix of incorrect voltage register value interpretation

The calculation had error in getting voltage values from
MAX17042 registers. The least bit denotes 78.125uV (625/8).

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Philip Rakity <prakity@marvell.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
MyungJoo Ham 14 years ago
parent
commit
cf7a8c03db
1 changed files with 4 additions and 4 deletions
  1. 4 4
      drivers/power/max17042_battery.c

+ 4 - 4
drivers/power/max17042_battery.c

@@ -111,12 +111,12 @@ static int max17042_get_property(struct power_supply *psy,
 		val->intval *= 10000; /* Units of LSB = 10mV */
 		break;
 	case POWER_SUPPLY_PROP_VOLTAGE_NOW:
-		val->intval = max17042_read_reg(chip->client,
-				MAX17042_VCELL) * 83; /* 1000 / 12 = 83 */
+		val->intval = max17042_read_reg(chip->client, MAX17042_VCELL)
+			    * 625 / 8;
 		break;
 	case POWER_SUPPLY_PROP_VOLTAGE_AVG:
-		val->intval = max17042_read_reg(chip->client,
-				MAX17042_AvgVCELL) * 83;
+		val->intval = max17042_read_reg(chip->client, MAX17042_AvgVCELL)
+			    * 625 / 8;
 		break;
 	case POWER_SUPPLY_PROP_CAPACITY:
 		val->intval = max17042_read_reg(chip->client,