diff options
author | Hyongbin Kim <hyongbink@nvidia.com> | 2013-10-10 14:21:39 +0900 |
---|---|---|
committer | Gabby Lee <galee@nvidia.com> | 2013-10-13 17:13:48 -0700 |
commit | fc3a15a409c7c1083691d5a0937c02f52dcdae22 (patch) | |
tree | bd048a938f0a69f27232f51668b93ae56dba762f /include | |
parent | 3b322b136660cdfdf51e569daa356bcc6f47fafb (diff) |
power: bq2419x: Not use charging termination
BQ2419x charger generate charging termination automatically when
Vbatt is under recharge threshold voltage(4208mA - 100mV = 4108mA) and
charging current is below ITERM(256mA).
For this reason, when Tegratab system spend more than charger power(5V*2A),
unexpect charging termination occur under 99% SOC.(around 93%~98%).
So we need to disable charging termination fuction and control charger manually.
Disable charging when SOC over 100%(set by chg_complete_soc) and
Batt voltage is over 4202mV and cahrging cuurent is under 256mA(over -256mA),
besides restart charging when SOC is under 99% or Batt voltage is under 4140V,
for prevent unexpected charging done.
Bug 1310558
Bug 1316010
Bug 1327301
Bug 1316646
Change-Id: I6f67bde43c9b209b31d4906d869f364300c846b1
Signed-off-by: Hyongbin Kim <hyongbink@nvidia.com>
Reviewed-on: http://git-master/r/289136
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Gabby Lee <galee@nvidia.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/power/bq2419x-charger.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/power/bq2419x-charger.h b/include/linux/power/bq2419x-charger.h index 65516bacd0ee..dbf68067f9cb 100644 --- a/include/linux/power/bq2419x-charger.h +++ b/include/linux/power/bq2419x-charger.h @@ -118,6 +118,9 @@ struct bq2419x_vbus_platform_data { struct bq2419x_charger_platform_data { void (*update_status)(int, int); int (*battery_check)(void); + int (*soc_check)(void); + int (*vcell_check)(void); + s32 (*current_check)(void); int max_charge_volt_mV; int max_charge_current_mA; @@ -127,6 +130,7 @@ struct bq2419x_charger_platform_data { int num_consumer_supplies; struct regulator_consumer_supply *consumer_supplies; int chg_restart_time; + int chg_complete_soc; }; /* |