Commit a0c54d12cfc55a440603dc2bb7d85ba203525d22

Authored by Tero Kristo
Committed by Dave Gerlach
1 parent dc4dc39876

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>

Showing 2 changed files with 13 additions and 0 deletions Side-by-side Diff

drivers/regulator/tps65218-regulator.c
... ... @@ -175,6 +175,14 @@
175 175 if (rid < TPS65218_DCDC_1 || rid > TPS65218_LDO_1)
176 176 return -EINVAL;
177 177  
  178 + /*
  179 + * Certain revisions of TPS65218 will need to have DCDC3 regulator
  180 + * enabled always, otherwise an immediate system reboot will occur
  181 + * during poweroff.
  182 + */
  183 + if (rid == TPS65218_DCDC_3 && tps->rev == TPS65218_REV_2_1)
  184 + return 0;
  185 +
178 186 if (!tps->info[rid]->strobe) {
179 187 if (rid == TPS65218_DCDC_3)
180 188 tps->info[rid]->strobe = 3;
include/linux/mfd/tps65218.h
... ... @@ -63,6 +63,11 @@
63 63 #define TPS65218_CHIPID_CHIP_MASK 0xF8
64 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 71 #define TPS65218_INT1_VPRG BIT(5)
67 72 #define TPS65218_INT1_AC BIT(4)
68 73 #define TPS65218_INT1_PB BIT(3)