diff options
author | Syed Rafiuddin <srafiuddin@nvidia.com> | 2013-02-11 12:49:50 +0530 |
---|---|---|
committer | Riham Haidar <rhaidar@nvidia.com> | 2013-02-13 12:30:40 -0800 |
commit | bc49c487cd62c7bc1546fdfe2f56d2feb4735729 (patch) | |
tree | 28ce69ee2e28c5e6238388fdce0985865da512e4 /drivers/power | |
parent | a6d1d5cf12f7b1005e2c766a86845f87d6843321 (diff) |
power: max17048: fix charging status
state of charge suddenly jumps to 0% resolving
the same issue.
Bug 1214186
Change-Id: I234a369b86678c8ea177c368ff828930f5ccf73b
Signed-off-by: Syed Rafiuddin <srafiuddin@nvidia.com>
Reviewed-on: http://git-master/r/199267
Reviewed-by: Riham Haidar <rhaidar@nvidia.com>
Tested-by: Riham Haidar <rhaidar@nvidia.com>
Diffstat (limited to 'drivers/power')
-rw-r--r-- | drivers/power/max17048_battery.c | 25 |
1 files changed, 3 insertions, 22 deletions
diff --git a/drivers/power/max17048_battery.c b/drivers/power/max17048_battery.c index 2550774db1a6..8068281d950e 100644 --- a/drivers/power/max17048_battery.c +++ b/drivers/power/max17048_battery.c @@ -320,8 +320,8 @@ static int max17048_write_rcomp_seg(struct i2c_client *client, int ret; uint8_t rcomp_seg_table[16]; - rs2 = rcomp_seg | 0x00FF; - rs1 = rcomp_seg >> 8; + rs2 = (rcomp_seg >> 8) & 0xff; + rs1 = rcomp_seg & 0xff; rcomp_seg_table[0] = rcomp_seg_table[2] = rcomp_seg_table[4] = rcomp_seg_table[6] = rcomp_seg_table[8] = rcomp_seg_table[10] = @@ -434,8 +434,7 @@ static int max17048_load_model_data(struct max17048_chip *chip) static int max17048_initialize(struct max17048_chip *chip) { - uint8_t ret, config, status; - uint16_t wrt_status; + uint8_t ret, config; struct i2c_client *client = chip->client; struct max17048_battery_model *mdata = chip->pdata->model_data; @@ -469,28 +468,10 @@ static int max17048_initialize(struct max17048_chip *chip) if (ret < 0) return ret; - /* Hibernate configuration */ - ret = max17048_write_word(client, MAX17048_HIBRT, mdata->hibernate); - if (ret < 0) - return ret; - ret = max17048_write_word(client, MAX17048_VRESET, mdata->vreset); if (ret < 0) return ret; - /* clears the reset indicator */ - ret = max17048_read_word(client, MAX17048_STATUS); - if (ret < 0) - return ret; - - /* Sets the EnVR bit if selected */ - status = (ret & 0xFE) | mdata->alert_on_reset; - wrt_status = status << 8; - - ret = max17048_write_word(client, MAX17048_STATUS, wrt_status); - if (ret < 0) - return ret; - /* Lock model access */ ret = max17048_write_word(client, MAX17048_UNLOCK, 0x0000); if (ret < 0) |