Re: [PATCH 07/13] power: supply: bq25890: Enable charging on boards where we skip reset

Yauhen Kharuzhy
2021-11-07T18:32:11Z

On Sat, Oct 30, 2021 at 08:28:07PM +0200, Hans de Goede wrote:
> On boards where the "ti,skip-init" boolean property is set we don't reset
> the charger; and on some boards where the fw takes care of initalizition
> F_CHG_CFG is set to 0 before handing control over to the OS.
>
> Explicitly set F_CHG_CFG to 1 on boards where we don't reset the charger,
> so that charging is always enabled on these boards, like it is always
> enabled on boards where we do reset the charger.

We should check if an OTG host mode with powering of bus by bq25890 is
not enabled before enable charging. If we boot with OTG device
connected, this can cause troubles.

>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
> drivers/power/supply/bq25890_charger.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/drivers/power/supply/bq25890_charger.c b/drivers/power/supply/bq25890_charger.c
> index 280821a6a6c6..aa4d04d20cdc 100644
> --- a/drivers/power/supply/bq25890_charger.c
> +++ b/drivers/power/supply/bq25890_charger.c
> @@ -689,6 +689,17 @@ static int bq25890_hw_init(struct bq25890_device *bq)
> dev_dbg(bq->dev, "Reset failed %d\n", ret);
> return ret;
> }
> + } else {
> + /*
> + * Ensure charging is enabled, on some boards where the fw
> + * takes care of initalizition F_CHG_CFG is set to 0 before
> + * handing control over to the OS.
> + */
> + ret = bq25890_field_write(bq, F_CHG_CFG, 1);
> + if (ret < 0) {
> + dev_dbg(bq->dev, "Enabling charging failed %d\n", ret);
> + return ret;
> + }
> }
>
> /* disable watchdog */
> --
> 2.31.1
>

--
Yauhen Kharuzhy