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

Commit 23a34f9d authored by Tero Kristo's avatar Tero Kristo Committed by Mark Brown
Browse files

regulator: tps65218: do not disable DCDC3 during poweroff on broken PMICs



Some versions of tps65218 do not seem to support poweroff modes properly
if DCDC3 regulator is shut-down. Thus, keep it enabled even during
poweroff if the version info matches the broken silicon revision.

Signed-off-by: default avatarTero Kristo <t-kristo@ti.com>
Signed-off-by: default avatarDave Gerlach <d-gerlach@ti.com>
Signed-off-by: default avatarKeerthy <j-keerthy@ti.com>
Acked-by: default avatarLee Jones <lee.jones@linaro.org>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent f11fa179
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -180,6 +180,14 @@ static int tps65218_pmic_set_suspend_disable(struct regulator_dev *dev)
	if (rid < TPS65218_DCDC_1 || rid > TPS65218_LDO_1)
	if (rid < TPS65218_DCDC_1 || rid > TPS65218_LDO_1)
		return -EINVAL;
		return -EINVAL;


	/*
	 * Certain revisions of TPS65218 will need to have DCDC3 regulator
	 * enabled always, otherwise an immediate system reboot will occur
	 * during poweroff.
	 */
	if (rid == TPS65218_DCDC_3 && tps->rev == TPS65218_REV_2_1)
		return 0;

	if (!tps->info[rid]->strobe) {
	if (!tps->info[rid]->strobe) {
		if (rid == TPS65218_DCDC_3)
		if (rid == TPS65218_DCDC_3)
			tps->info[rid]->strobe = 3;
			tps->info[rid]->strobe = 3;
+5 −0
Original line number Original line Diff line number Diff line
@@ -63,6 +63,11 @@
#define TPS65218_CHIPID_CHIP_MASK	0xF8
#define TPS65218_CHIPID_CHIP_MASK	0xF8
#define TPS65218_CHIPID_REV_MASK	0x07
#define TPS65218_CHIPID_REV_MASK	0x07


#define TPS65218_REV_1_0		0x0
#define TPS65218_REV_1_1		0x1
#define TPS65218_REV_2_0		0x2
#define TPS65218_REV_2_1		0x3

#define TPS65218_INT1_VPRG		BIT(5)
#define TPS65218_INT1_VPRG		BIT(5)
#define TPS65218_INT1_AC		BIT(4)
#define TPS65218_INT1_AC		BIT(4)
#define TPS65218_INT1_PB		BIT(3)
#define TPS65218_INT1_PB		BIT(3)