- Status Closed
- Percent Complete
- Task Type Feature Request
- Category Core
- Operating System Release 1 (Zaxxon)
- Severity High
- Reported Version Hotfix 4
Attached to Project: OpenPandora Main OS
Opened by David - 22.10.2010
Last edited by Michael Mrozek - 21.06.2011
Opened by David - 22.10.2010
Last edited by Michael Mrozek - 21.06.2011
FS#195 - Start re-recharge of battery sooner
Increase battery LVL_4 and LVL_3 threshold.
After reaching 100%, in some cases the charge circuit enters "battery full" state, stops charging, and begins to discharge. This is not entirely unexpected behavior according to the spec sheet, although I don't fully understand exactly the situations in which it completes charging. Once the battery is full, the battery will begin discharging. The charge circuit automatically restarts the recharge once the voltage has gone below a certain level (crosses below the LVL_3 voltage threshold)
The default LVL_3 voltage threshold is 3.902 volts which is at about 80-85% battery level as recorded by bq27500 chip. In my opinion, this is way too low.
Setting the BCIMFTH2 register to 0xCB increases the voltage threshold to about 4.003 volts which is about 93%.
Setting it to 0xDC may also be worthwhile, which is just over 95%.
By default, if a user leaves their Pandora plugged in overnight, they may wake up to find their Pandora has stopped charging and the capacity has dropped to almost 80%, which can be quite startling to some users who will then report it as a bug.
This change will ensure that it never drops below 93-95%, a much more acceptable level.
Specific code changes suggested, in the /drivers/power/twl4030_bci_battery.c file, somewhere in the twl4030_bci_battery_probe function (or a function called by it), add the lines:
/********************************/
#define KEY_FTH2 0x7F
#define REG_BCIMFTH2 0x017
ret = twl4030_i2c_write_u8(TWL4030_MODULE_MAIN_CHARGE, KEY_FTH2, REG_BCIMFKEY);
if (ret)
return ret;
ret = twl4030_i2c_write_u8(TWL4030_MODULE_MAIN_CHARGE, 0xDC, REG_BCIMFTH2);
if (ret)
return ret;
/********************************/
(Move defines to the top, as appropriate)