From bd74cdd3bc14d4db47553f244f3da54a3faa28c2 Mon Sep 17 00:00:00 2001 From: "[A" Date: Mon, 10 Oct 2022 14:33:54 +0800 Subject: [PATCH] SC89890H update register val fail Modify: SC89890H update register val fail Change-Id: Ic0e4cfaa3b5ba551cde0277612387536526723f6 Signed-off-by: Reviewed-on: https://gerrit.mot.com/2399909 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Lei Chen Reviewed-by: Haijian Ma Reviewed-by: Xiangpo Zhao Submit-Approved: Jira Key --- .../power/bq2589x_chg_mmi/bq2589x_charger.c | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/drivers/power/bq2589x_chg_mmi/bq2589x_charger.c b/drivers/power/bq2589x_chg_mmi/bq2589x_charger.c index 1dc4fd55b1c8..5fcd37f3492b 100644 --- a/drivers/power/bq2589x_chg_mmi/bq2589x_charger.c +++ b/drivers/power/bq2589x_chg_mmi/bq2589x_charger.c @@ -721,16 +721,23 @@ int bq2589x_is_enabled_charging(struct charger_device *chg_dev, bool *en) int bq2589x_pumpx_enable(struct bq2589x *bq, int enable) { u8 val; - int ret; - + int ret; + int retry_cnt; + if (enable) val = BQ2589X_PUMPX_ENABLE << BQ2589X_EN_PUMPX_SHIFT; else - val = BQ2589X_PUMPX_DISABLE << BQ2589X_EN_PUMPX_SHIFT; - - ret = bq2589x_update_bits(bq, BQ2589X_REG_04, BQ2589X_EN_PUMPX_MASK, val); - - return ret; + val = BQ2589X_PUMPX_DISABLE << BQ2589X_EN_PUMPX_SHIFT; + + for (retry_cnt = 3; retry_cnt > 0; retry_cnt--) { + ret = bq2589x_update_bits(bq, BQ2589X_REG_04, BQ2589X_EN_PUMPX_MASK, val); + if(!ret) + break; + msleep(10); + dev_info(bq->dev,"%s:enable pumpx:%d retry_cnt=%d\n", __func__, enable,retry_cnt); + } + + return ret; } int bq2589x_pumpx_increase_volt(struct bq2589x *bq)