From a4f06c51fc7adb14557b07c886d89e2afc1e8bec Mon Sep 17 00:00:00 2001 From: Ashish Chavan Date: Fri, 17 Jul 2020 14:11:37 +0530 Subject: [PATCH] power: smb1398: Do not disable FP_FET during IREV condition Allow the charger to recover after a momentary IREV condition by using the configuration-bit to not-disable FP-FET in IREV. Change-Id: I22cad3bbc4bde0a143e3ff6e068e750a2c40e34b Signed-off-by: Ashish Chavan --- drivers/power/supply/qcom/smb1398-charger.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/power/supply/qcom/smb1398-charger.c b/drivers/power/supply/qcom/smb1398-charger.c index c53942003ad8..35e099d7c94e 100644 --- a/drivers/power/supply/qcom/smb1398-charger.c +++ b/drivers/power/supply/qcom/smb1398-charger.c @@ -92,6 +92,7 @@ #define MISC_CFG0_REG 0x2634 #define DIS_SYNC_DRV_BIT BIT(5) #define SW_EN_SWITCHER_BIT BIT(3) +#define CFG_DIS_FPF_IREV_BIT BIT(1) #define MISC_CFG1_REG 0x2635 #define MISC_CFG1_MASK GENMASK(7, 0) @@ -1985,6 +1986,14 @@ static int smb1398_div2_cp_hw_init(struct smb1398_chip *chip) return rc; } + /* Do not disable FP_FET during IREV conditions */ + rc = smb1398_masked_write(chip, MISC_CFG0_REG, CFG_DIS_FPF_IREV_BIT, 0); + if (rc < 0) { + dev_err(chip->dev, "Couldn't set CFG_DIS_FPF_IREV_BIT, rc=%d\n", + rc); + return rc; + } + /* switcher enable controlled by register */ rc = smb1398_masked_write(chip, MISC_CFG0_REG, SW_EN_SWITCHER_BIT, SW_EN_SWITCHER_BIT);