diff options
| author | Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com> | 2018-08-29 08:36:10 -0400 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2018-08-29 10:07:18 -0400 |
| commit | 823f18f8b860526fc099c222619a126d57d2ad8c (patch) | |
| tree | ca57661d48a35e7b5d8bef501f09b2bbfa18205d /include/linux | |
| parent | 5b394b2ddf0347bef56e50c69a58773c94343ff3 (diff) | |
regulator: bd71837: Disable voltage monitoring for LDO3/4
There is a HW quirk in BD71837. The shutdown sequence timings for
bucks/LDOs which are enabled via register interface are changed.
At PMIC poweroff the voltage for BUCK6/7 is cut immediately at the
beginning of shut-down sequence. This causes LDO5/6 voltage
monitoring to detect under voltage and force PMIC to emergency
state instead of poweroff. Disable voltage monitoring for LDO5 and
LDO6 at probe to avoid this.
Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/mfd/rohm-bd718x7.h | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/include/linux/mfd/rohm-bd718x7.h b/include/linux/mfd/rohm-bd718x7.h index a528747f8aed..e8338e5dc10b 100644 --- a/include/linux/mfd/rohm-bd718x7.h +++ b/include/linux/mfd/rohm-bd718x7.h | |||
| @@ -78,9 +78,9 @@ enum { | |||
| 78 | BD71837_REG_TRANS_COND0 = 0x1F, | 78 | BD71837_REG_TRANS_COND0 = 0x1F, |
| 79 | BD71837_REG_TRANS_COND1 = 0x20, | 79 | BD71837_REG_TRANS_COND1 = 0x20, |
| 80 | BD71837_REG_VRFAULTEN = 0x21, | 80 | BD71837_REG_VRFAULTEN = 0x21, |
| 81 | BD71837_REG_MVRFLTMASK0 = 0x22, | 81 | BD718XX_REG_MVRFLTMASK0 = 0x22, |
| 82 | BD71837_REG_MVRFLTMASK1 = 0x23, | 82 | BD718XX_REG_MVRFLTMASK1 = 0x23, |
| 83 | BD71837_REG_MVRFLTMASK2 = 0x24, | 83 | BD718XX_REG_MVRFLTMASK2 = 0x24, |
| 84 | BD71837_REG_RCVCFG = 0x25, | 84 | BD71837_REG_RCVCFG = 0x25, |
| 85 | BD71837_REG_RCVNUM = 0x26, | 85 | BD71837_REG_RCVNUM = 0x26, |
| 86 | BD71837_REG_PWRONCONFIG0 = 0x27, | 86 | BD71837_REG_PWRONCONFIG0 = 0x27, |
| @@ -159,6 +159,33 @@ enum { | |||
| 159 | #define BUCK8_MASK 0x3F | 159 | #define BUCK8_MASK 0x3F |
| 160 | #define BUCK8_DEFAULT 0x1E | 160 | #define BUCK8_DEFAULT 0x1E |
| 161 | 161 | ||
| 162 | /* BD718XX Voltage monitoring masks */ | ||
| 163 | #define BD718XX_BUCK1_VRMON80 0x1 | ||
| 164 | #define BD718XX_BUCK1_VRMON130 0x2 | ||
| 165 | #define BD718XX_BUCK2_VRMON80 0x4 | ||
| 166 | #define BD718XX_BUCK2_VRMON130 0x8 | ||
| 167 | #define BD718XX_1ST_NODVS_BUCK_VRMON80 0x1 | ||
| 168 | #define BD718XX_1ST_NODVS_BUCK_VRMON130 0x2 | ||
| 169 | #define BD718XX_2ND_NODVS_BUCK_VRMON80 0x4 | ||
| 170 | #define BD718XX_2ND_NODVS_BUCK_VRMON130 0x8 | ||
| 171 | #define BD718XX_3RD_NODVS_BUCK_VRMON80 0x10 | ||
| 172 | #define BD718XX_3RD_NODVS_BUCK_VRMON130 0x20 | ||
| 173 | #define BD718XX_4TH_NODVS_BUCK_VRMON80 0x40 | ||
| 174 | #define BD718XX_4TH_NODVS_BUCK_VRMON130 0x80 | ||
| 175 | #define BD718XX_LDO1_VRMON80 0x1 | ||
| 176 | #define BD718XX_LDO2_VRMON80 0x2 | ||
| 177 | #define BD718XX_LDO3_VRMON80 0x4 | ||
| 178 | #define BD718XX_LDO4_VRMON80 0x8 | ||
| 179 | #define BD718XX_LDO5_VRMON80 0x10 | ||
| 180 | #define BD718XX_LDO6_VRMON80 0x20 | ||
| 181 | |||
| 182 | /* BD71837 specific voltage monitoring masks */ | ||
| 183 | #define BD71837_BUCK3_VRMON80 0x10 | ||
| 184 | #define BD71837_BUCK3_VRMON130 0x20 | ||
| 185 | #define BD71837_BUCK4_VRMON80 0x40 | ||
| 186 | #define BD71837_BUCK4_VRMON130 0x80 | ||
| 187 | #define BD71837_LDO7_VRMON80 0x40 | ||
| 188 | |||
| 162 | /* BD71837_REG_IRQ bits */ | 189 | /* BD71837_REG_IRQ bits */ |
| 163 | #define IRQ_SWRST 0x40 | 190 | #define IRQ_SWRST 0x40 |
| 164 | #define IRQ_PWRON_S 0x20 | 191 | #define IRQ_PWRON_S 0x20 |
