aboutsummaryrefslogtreecommitdiff
path: root/drivers/power
diff options
context:
space:
mode:
authorJohan Palsson <johan.palsson@stericsson.com>2011-01-28 10:48:13 +0100
committerSrinidhi KASAGAR <srinidhi.kasagar@stericsson.com>2011-01-31 06:03:05 +0100
commitc73f2a05d6c5d40b7a3b87fb75d3926c94f707ef (patch)
tree488894736379b89792deb8cc6c26eadd3edeca03 /drivers/power
parentb011a5e08cc8082fb2514d498cb5a52fe516a2fa (diff)
power: ab8500_bm: End-of-charge criteria fulfilled for positive current
The battery current must be positive for end-of-charge criteria to be fulfilled. ST-Ericsson ID: ER320416 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Id499205b198929f4b5d88035bd6f9a549d03b6de Signed-off-by: Johan Palsson <johan.palsson@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/13814 Reviewed-by: Johan GARDSMARK <johan.gardsmark@stericsson.com> Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
Diffstat (limited to 'drivers/power')
-rw-r--r--drivers/power/ab8500_chargalg.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/power/ab8500_chargalg.c b/drivers/power/ab8500_chargalg.c
index 6a35841774f..a92aed90414 100644
--- a/drivers/power/ab8500_chargalg.c
+++ b/drivers/power/ab8500_chargalg.c
@@ -32,7 +32,7 @@
/* End-of-charge criteria counter */
#define EOC_COND_CNT 10
-#define EOC_MA 50
+#define EOC_MV 50
#define to_ab8500_chargalg_device_info(x) container_of((x), \
struct ab8500_chargalg, chargalg_psy);
@@ -535,10 +535,11 @@ static void ab8500_chargalg_end_of_charge(struct ab8500_chargalg *di)
if (di->charge_status == POWER_SUPPLY_STATUS_CHARGING &&
di->charge_state == STATE_NORMAL &&
!di->maintenance_chg && (di->batt_data.volt >=
- di->bat->bat_type[di->bat->batt_id].termination_vol - EOC_MA ||
+ di->bat->bat_type[di->bat->batt_id].termination_vol - EOC_MV ||
di->events.usb_cv_active || di->events.ac_cv_active) &&
di->batt_data.avg_curr <
- di->bat->bat_type[di->bat->batt_id].termination_curr) {
+ di->bat->bat_type[di->bat->batt_id].termination_curr &&
+ di->batt_data.avg_curr > 0) {
if (++di->eoc_cnt >= EOC_COND_CNT) {
di->eoc_cnt = 0;
di->charge_status = POWER_SUPPLY_STATUS_FULL;