summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorSivaram Nair <sivaramn@nvidia.com>2013-01-14 16:11:39 +0200
committerSimone Willett <swillett@nvidia.com>2013-01-17 17:10:48 -0800
commit8ce9a56a1a6e3a7cf35481d457e0e99aa7b6ece9 (patch)
tree6b447e292248854be95a552d4da41ba1b9ac66f6 /drivers
parent50d9ba35309b3d3909559557494a4fb1599b8a4f (diff)
power: max77665: pass CHGIN_ILIM to update_status
This is a WAR for problems mentioned in the bug report (see below). Instead of passing true, the charging limit (a non-zero) value is passed into the update_status callback function. This will be exploited by the fuel guage driver in order to calculate the battery depletion values. Bug 1214607 Change-Id: I16bdcd99aafd1e03d0377cb6849352dbaa1e2ad9 Signed-off-by: Sivaram Nair <sivaramn@nvidia.com> (cherry picked from commit bf9d20d92ae4c2b5c4796260bc34901f4f5e9cb1) Reviewed-on: http://git-master/r/191636 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/power/max77665-charger.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/power/max77665-charger.c b/drivers/power/max77665-charger.c
index 6270fc18ee34..52331b44c559 100644
--- a/drivers/power/max77665-charger.c
+++ b/drivers/power/max77665-charger.c
@@ -302,6 +302,14 @@ error:
static int max77665_enable_charger(struct max77665_charger *charger)
{
int ret = 0;
+ uint32_t val = 0;
+ int ilim;
+
+ ret = max77665_read_reg(charger, MAX77665_CHG_CNFG_09, &val);
+ if (ret)
+ goto error;
+ val &= 0x7F;
+ ilim = max_t(int, 60, val * 20);
if (charger->plat_data->update_status)
charger->plat_data->update_status(false);
@@ -316,7 +324,7 @@ static int max77665_enable_charger(struct max77665_charger *charger)
power_supply_changed(&charger->usb);
charger->plat_data->curr_lim = 500;
if (charger->plat_data->update_status)
- charger->plat_data->update_status(true);
+ charger->plat_data->update_status(ilim);
}
if (extcon_get_cable_state(charger->edev, "USB-Host")) {
@@ -333,7 +341,7 @@ static int max77665_enable_charger(struct max77665_charger *charger)
charger->ac_online = 1;
power_supply_changed(&charger->ac);
if (charger->plat_data->update_status)
- charger->plat_data->update_status(true);
+ charger->plat_data->update_status(ilim);
}
ret = max77665_charger_init(charger);