aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/regulator/max77686.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/regulator/max77686.c b/drivers/regulator/max77686.c
index 0c1541754e8c..09b0d8c20a9d 100644
--- a/drivers/regulator/max77686.c
+++ b/drivers/regulator/max77686.c
@@ -99,8 +99,8 @@ static unsigned int max77686_get_opmode_shift(int id)
99 } 99 }
100} 100}
101 101
102/* Some BUCKS supports Normal[ON/OFF] mode during suspend */ 102/* Some BUCKs and LDOs supports Normal[ON/OFF] mode during suspend */
103static int max77686_buck_set_suspend_disable(struct regulator_dev *rdev) 103static int max77686_set_suspend_disable(struct regulator_dev *rdev)
104{ 104{
105 unsigned int val, shift; 105 unsigned int val, shift;
106 struct max77686_data *max77686 = rdev_get_drvdata(rdev); 106 struct max77686_data *max77686 = rdev_get_drvdata(rdev);
@@ -195,6 +195,9 @@ static int max77686_enable(struct regulator_dev *rdev)
195 195
196 shift = max77686_get_opmode_shift(id); 196 shift = max77686_get_opmode_shift(id);
197 197
198 if (max77686->opmode[id] == MAX77686_OFF_PWRREQ)
199 max77686->opmode[id] = MAX77686_NORMAL;
200
198 return regmap_update_bits(rdev->regmap, rdev->desc->enable_reg, 201 return regmap_update_bits(rdev->regmap, rdev->desc->enable_reg,
199 rdev->desc->enable_mask, 202 rdev->desc->enable_mask,
200 max77686->opmode[id] << shift); 203 max77686->opmode[id] << shift);
@@ -247,6 +250,7 @@ static struct regulator_ops max77686_ldo_ops = {
247 .set_voltage_sel = regulator_set_voltage_sel_regmap, 250 .set_voltage_sel = regulator_set_voltage_sel_regmap,
248 .set_voltage_time_sel = regulator_set_voltage_time_sel, 251 .set_voltage_time_sel = regulator_set_voltage_time_sel,
249 .set_suspend_mode = max77686_ldo_set_suspend_mode, 252 .set_suspend_mode = max77686_ldo_set_suspend_mode,
253 .set_suspend_disable = max77686_set_suspend_disable,
250}; 254};
251 255
252static struct regulator_ops max77686_buck1_ops = { 256static struct regulator_ops max77686_buck1_ops = {
@@ -258,7 +262,7 @@ static struct regulator_ops max77686_buck1_ops = {
258 .get_voltage_sel = regulator_get_voltage_sel_regmap, 262 .get_voltage_sel = regulator_get_voltage_sel_regmap,
259 .set_voltage_sel = regulator_set_voltage_sel_regmap, 263 .set_voltage_sel = regulator_set_voltage_sel_regmap,
260 .set_voltage_time_sel = regulator_set_voltage_time_sel, 264 .set_voltage_time_sel = regulator_set_voltage_time_sel,
261 .set_suspend_disable = max77686_buck_set_suspend_disable, 265 .set_suspend_disable = max77686_set_suspend_disable,
262}; 266};
263 267
264static struct regulator_ops max77686_buck_dvs_ops = { 268static struct regulator_ops max77686_buck_dvs_ops = {
@@ -271,7 +275,7 @@ static struct regulator_ops max77686_buck_dvs_ops = {
271 .set_voltage_sel = regulator_set_voltage_sel_regmap, 275 .set_voltage_sel = regulator_set_voltage_sel_regmap,
272 .set_voltage_time_sel = regulator_set_voltage_time_sel, 276 .set_voltage_time_sel = regulator_set_voltage_time_sel,
273 .set_ramp_delay = max77686_set_ramp_delay, 277 .set_ramp_delay = max77686_set_ramp_delay,
274 .set_suspend_disable = max77686_buck_set_suspend_disable, 278 .set_suspend_disable = max77686_set_suspend_disable,
275}; 279};
276 280
277#define regulator_desc_ldo(num) { \ 281#define regulator_desc_ldo(num) { \