diff options
author | Tero Kristo <t-kristo@ti.com> | 2016-08-10 08:23:55 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2016-08-10 13:21:55 -0400 |
commit | 23a34f9d03a5d40a6234855bc069da370708cc9e (patch) | |
tree | 5cfb55dab22dcf39278c0194ba85c5930be33e61 | |
parent | f11fa1796a4b4f8c6d4ced37e8824276ec57057d (diff) |
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: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r-- | drivers/regulator/tps65218-regulator.c | 8 | ||||
-rw-r--r-- | include/linux/mfd/tps65218.h | 5 |
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/regulator/tps65218-regulator.c b/drivers/regulator/tps65218-regulator.c index d1e631d64a20..eb0f5b13841a 100644 --- a/drivers/regulator/tps65218-regulator.c +++ b/drivers/regulator/tps65218-regulator.c | |||
@@ -180,6 +180,14 @@ static int tps65218_pmic_set_suspend_disable(struct regulator_dev *dev) | |||
180 | if (rid < TPS65218_DCDC_1 || rid > TPS65218_LDO_1) | 180 | if (rid < TPS65218_DCDC_1 || rid > TPS65218_LDO_1) |
181 | return -EINVAL; | 181 | return -EINVAL; |
182 | 182 | ||
183 | /* | ||
184 | * Certain revisions of TPS65218 will need to have DCDC3 regulator | ||
185 | * enabled always, otherwise an immediate system reboot will occur | ||
186 | * during poweroff. | ||
187 | */ | ||
188 | if (rid == TPS65218_DCDC_3 && tps->rev == TPS65218_REV_2_1) | ||
189 | return 0; | ||
190 | |||
183 | if (!tps->info[rid]->strobe) { | 191 | if (!tps->info[rid]->strobe) { |
184 | if (rid == TPS65218_DCDC_3) | 192 | if (rid == TPS65218_DCDC_3) |
185 | tps->info[rid]->strobe = 3; | 193 | tps->info[rid]->strobe = 3; |
diff --git a/include/linux/mfd/tps65218.h b/include/linux/mfd/tps65218.h index 85e464e32c43..d1db9527fab5 100644 --- a/include/linux/mfd/tps65218.h +++ b/include/linux/mfd/tps65218.h | |||
@@ -63,6 +63,11 @@ | |||
63 | #define TPS65218_CHIPID_CHIP_MASK 0xF8 | 63 | #define TPS65218_CHIPID_CHIP_MASK 0xF8 |
64 | #define TPS65218_CHIPID_REV_MASK 0x07 | 64 | #define TPS65218_CHIPID_REV_MASK 0x07 |
65 | 65 | ||
66 | #define TPS65218_REV_1_0 0x0 | ||
67 | #define TPS65218_REV_1_1 0x1 | ||
68 | #define TPS65218_REV_2_0 0x2 | ||
69 | #define TPS65218_REV_2_1 0x3 | ||
70 | |||
66 | #define TPS65218_INT1_VPRG BIT(5) | 71 | #define TPS65218_INT1_VPRG BIT(5) |
67 | #define TPS65218_INT1_AC BIT(4) | 72 | #define TPS65218_INT1_AC BIT(4) |
68 | #define TPS65218_INT1_PB BIT(3) | 73 | #define TPS65218_INT1_PB BIT(3) |