ds2760_battery: implement set_charged() feature
authorDaniel Mack <daniel@caiaq.de>
Thu, 23 Jul 2009 18:35:54 +0000 (20:35 +0200)
committerAnton Vorontsov <cbouatmailru@gmail.com>
Thu, 30 Jul 2009 13:49:16 +0000 (17:49 +0400)
commit8d631ccff8d90fce77b42f01b3872595c599cbf9
tree7a3d3e2e1eefc930d216a8998eed8c05fb8a39ea
parente5f5ccb646bc6009572b5c23201b5e81638ff150
ds2760_battery: implement set_charged() feature

The ds2760's internal current meter is not reliable enough as it has an
inacurracy of around ~15%. Without any correction for that error, the
current accumulator is couting up all the time, even though the battery
is already fully charged and hence destroys the static information. The
longer it is connected, the worse is the aberration.

Fortunately, this can be corrected by the DS2760_CURRENT_OFFSET_BIAS
register. Using the external power_supply_set_battery_charged()
function, this register is now gauging the measurement.

A delayed work is used to debounce flaky GPIO signals and to let the
current value settle. Also see Maxim's application note AN4188.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Cc: Szabolcs Gyurko <szabolcs.gyurko@tlt.hu>
Cc: Matt Reimer <mreimer@vpop.net>
Cc: Anton Vorontsov <cbou@mail.ru>
Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
drivers/power/ds2760_battery.c