diff --git a/drivers/power/qcom-charger/smb138x-charger.c b/drivers/power/qcom-charger/smb138x-charger.c index 54cd5c158411..c77204482553 100644 --- a/drivers/power/qcom-charger/smb138x-charger.c +++ b/drivers/power/qcom-charger/smb138x-charger.c @@ -32,7 +32,11 @@ /* Registers that are not common to be mentioned in smb-reg.h */ #define SMB2CHG_MISC_ENG_SDCDC_CFG2 (MISC_BASE + 0xC1) -#define ENG_SDCDC_SEL_OOB_VTH_BIT BIT(0) +#define ENG_SDCDC_SEL_OOB_VTH_BIT BIT(0) + +#define SMB2CHG_MISC_ENG_SDCDC_CFG6 (MISC_BASE + 0xC5) +#define DEAD_TIME_MASK GENMASK(7, 4) +#define HIGH_DEAD_TIME_MASK GENMASK(7, 4) enum { OOB_COMP_WA_BIT = BIT(0), @@ -648,6 +652,14 @@ static int smb138x_init_hw(struct smb138x *chip) "Couldn't configure the oob comp threh rc = %d\n", rc); return rc; } + + rc = smblib_masked_write(chg, SMB2CHG_MISC_ENG_SDCDC_CFG6, + DEAD_TIME_MASK, HIGH_DEAD_TIME_MASK); + if (rc < 0) { + dev_err(chg->dev, + "Couldn't configure the sdcdc cfg 6 reg rc = %d\n", rc); + return rc; + } } return rc; @@ -927,6 +939,14 @@ static int smb138x_slave_probe(struct smb138x *chip) "Couldn't configure the oob comp threh rc = %d\n", rc); return rc; } + + rc = smblib_masked_write(chg, SMB2CHG_MISC_ENG_SDCDC_CFG6, + DEAD_TIME_MASK, HIGH_DEAD_TIME_MASK); + if (rc < 0) { + dev_err(chg->dev, + "Couldn't configure the sdcdc cfg 6 reg rc = %d\n", rc); + return rc; + } } /* suspend usb input */