power: bq25890: Enable continuous conversion for ADC at charging
authorYauhen Kharuzhy <jekhor@gmail.com>
Sun, 7 Nov 2021 20:20:01 +0000 (23:20 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 11 Jan 2022 14:35:17 +0000 (15:35 +0100)
commit 80211be1b9dec04cc2805d3d81e2091ecac289a1 upstream.

Instead of one shot run of ADC at beginning of charging, run continuous
conversion to ensure that all charging-related values are monitored
properly (input voltage, input current, themperature etc.).

Signed-off-by: Yauhen Kharuzhy <jekhor@gmail.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/power/supply/bq25890_charger.c

index 945c325..fe81480 100644 (file)
@@ -581,12 +581,12 @@ static irqreturn_t __bq25890_handle_irq(struct bq25890_device *bq)
 
        if (!new_state.online && bq->state.online) {        /* power removed */
                /* disable ADC */
-               ret = bq25890_field_write(bq, F_CONV_START, 0);
+               ret = bq25890_field_write(bq, F_CONV_RATE, 0);
                if (ret < 0)
                        goto error;
        } else if (new_state.online && !bq->state.online) { /* power inserted */
                /* enable ADC, to have control of charge current/voltage */
-               ret = bq25890_field_write(bq, F_CONV_START, 1);
+               ret = bq25890_field_write(bq, F_CONV_RATE, 1);
                if (ret < 0)
                        goto error;
        }