• Daniel Mack's avatar
    ds2760_battery: implement set_charged() feature · 8d631ccf
    Daniel Mack authored
    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: default avatarDaniel 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: default avatarAnton Vorontsov <cbouatmailru@gmail.com>
    8d631ccf
ds2760_battery.c 16.5 KB