From c7f8cad07f41f08b7e7f6e8adc2df9e81a1b5d0f Mon Sep 17 00:00:00 2001 From: Anirudh Ghayal Date: Tue, 8 Dec 2020 09:22:41 +0530 Subject: [PATCH] power: smb1355: Extend minoff-time and dead-time for SMB1355 To improve OVP handling increase the min-offtime and dead-time as per hardware recommendation. Change-Id: I28040808d6c114b718aad0e0ab63554683e7746f Signed-off-by: Anirudh Ghayal --- drivers/power/supply/qcom/smb1355-charger.c | 23 +++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/power/supply/qcom/smb1355-charger.c b/drivers/power/supply/qcom/smb1355-charger.c index 3c8ab4f77602..43b2c1f3aae4 100644 --- a/drivers/power/supply/qcom/smb1355-charger.c +++ b/drivers/power/supply/qcom/smb1355-charger.c @@ -144,6 +144,13 @@ #define MISC_CHGR_TRIM_OPTIONS_REG (MISC_BASE + 0x55) #define CMD_RBIAS_EN_BIT BIT(2) +#define MISC_ENG_SDCDC_RESERVE1_REG (MISC_BASE + 0xC4) +#define MINOFF_TIME_MASK BIT(6) + +#define MISC_ENG_SDCDC_CFG8_REG (MISC_BASE + 0xC7) +#define DEAD_TIME_MASK GENMASK(2, 0) +#define DEAD_TIME_32NS 0x4 + #define MISC_ENG_SDCDC_INPUT_CURRENT_CFG1_REG (MISC_BASE + 0xC8) #define PROLONG_ISENSE_MASK GENMASK(7, 6) #define PROLONG_ISENSEM_SHIFT 6 @@ -1383,6 +1390,22 @@ static int smb1355_init_hw(struct smb1355 *chip) return rc; } + /* Extend min-offtime same as blanking time */ + rc = smb1355_masked_write(chip, MISC_ENG_SDCDC_RESERVE1_REG, + MINOFF_TIME_MASK, 0); + if (rc < 0) { + pr_err("Couldn't set MINOFF_TIME rc=%d\n", rc); + return rc; + } + + /* Set dead-time to 32ns */ + rc = smb1355_masked_write(chip, MISC_ENG_SDCDC_CFG8_REG, + DEAD_TIME_MASK, DEAD_TIME_32NS); + if (rc < 0) { + pr_err("Couldn't set DEAD_TIME to 32ns rc=%d\n", rc); + return rc; + } + /* Configure DIE temp Low threshold */ if (chip->dt.hw_die_temp_mitigation) { range = (chip->dt.die_temp_threshold - DIE_LOW_RANGE_BASE_DEGC)