Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 77101e7a authored by Ashish Chavan's avatar Ashish Chavan Committed by Gerrit - the friendly Code Review server
Browse files

power: smb1398: Fix charge pump initial configuration



Add additional steps before enabling DIV2_CP operations.

Change-Id: Ia7b5ef992976c4d59eb441668f4f01b7530e1d76
Signed-off-by: default avatarAshish Chavan <ashichav@codeaurora.org>
parent 2cf9dd2a
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -82,6 +82,7 @@
#define EN_SWITCHER			BIT(0)

#define MISC_DIV2_3LVL_CTRL_REG		0x2632
#define MISC_DIV2_3LVL_CTRL_MASK	GENMASK(7, 0)
#define EN_DIV2_CP			BIT(2)
#define EN_3LVL_BULK			BIT(1)
#define EN_CHG_2X			BIT(0)
@@ -91,6 +92,7 @@
#define SW_EN_SWITCHER_BIT		BIT(3)

#define MISC_CFG1_REG			0x2635
#define MISC_CFG1_MASK			GENMASK(7, 0)
#define CFG_OP_MODE_MASK		GENMASK(2, 0)
#define OP_MODE_DISABLED		0
#define OP_MODE_3LVL_BULK		1
@@ -1781,6 +1783,20 @@ static int smb1398_div2_cp_hw_init(struct smb1398_chip *chip)
		return rc;
		}

	/* Initial configuration needed before enabling DIV2_CP operations */
	rc = smb1398_masked_write(chip, MISC_DIV2_3LVL_CTRL_REG,
				MISC_DIV2_3LVL_CTRL_MASK, 0x04);
	if (rc < 0) {
		dev_err(chip->dev, "set EN_DIV2_CP failed, rc=%d\n", rc);
		return rc;
	}

	rc = smb1398_masked_write(chip, MISC_CFG1_REG, MISC_CFG1_MASK, 0x02);
	if (rc < 0) {
		dev_err(chip->dev, "set OP_MODE_COMBO failed, 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);