summaryrefslogtreecommitdiff
path: root/drivers/regulator/max77686.c
diff options
context:
space:
mode:
authorTomasz Figa <t.figa@samsung.com>2013-04-25 15:47:59 +0200
committerChanho Park <chanho61.park@samsung.com>2014-08-08 14:35:26 +0900
commit8a342f0cb76733064a7fb7df72b1f2a10bd4f88c (patch)
tree654c13c34ea91567c04d95bfa3616fc0de862000 /drivers/regulator/max77686.c
parent1c5ebc14b62b0362a8d61770558b77f80278fad1 (diff)
downloadlinux-3.10-8a342f0cb76733064a7fb7df72b1f2a10bd4f88c.tar.gz
linux-3.10-8a342f0cb76733064a7fb7df72b1f2a10bd4f88c.tar.bz2
linux-3.10-8a342f0cb76733064a7fb7df72b1f2a10bd4f88c.zip
regulator: max77686: Add set_suspend_enable callback for buck regulators
Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Diffstat (limited to 'drivers/regulator/max77686.c')
-rw-r--r--drivers/regulator/max77686.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/regulator/max77686.c b/drivers/regulator/max77686.c
index 20935b1a6ed..0b55f55a506 100644
--- a/drivers/regulator/max77686.c
+++ b/drivers/regulator/max77686.c
@@ -91,6 +91,22 @@ static int max77686_buck_set_suspend_disable(struct regulator_dev *rdev)
return 0;
}
+static int max77686_buck_set_suspend_enable(struct regulator_dev *rdev)
+{
+ unsigned int val;
+ struct max77686_data *max77686 = rdev_get_drvdata(rdev);
+
+ if (rdev->desc->id == MAX77686_BUCK1)
+ val = MAX77686_OPMODE_MASK;
+ else
+ val = MAX77686_OPMODE_MASK << MAX77686_OPMODE_BUCK234_SHIFT;
+
+ max77686->opmode[rdev->desc->id] = val;
+ return regmap_update_bits(rdev->regmap, rdev->desc->enable_reg,
+ rdev->desc->enable_mask,
+ val);
+}
+
/* Some LDOs supports [LPM/Normal]ON mode during suspend state */
static int max77686_set_suspend_mode(struct regulator_dev *rdev,
unsigned int mode)
@@ -226,6 +242,7 @@ static struct regulator_ops max77686_buck1_ops = {
.set_voltage_sel = regulator_set_voltage_sel_regmap,
.set_voltage_time_sel = regulator_set_voltage_time_sel,
.set_suspend_disable = max77686_buck_set_suspend_disable,
+ .set_suspend_enable = max77686_buck_set_suspend_enable,
};
static struct regulator_ops max77686_buck_dvs_ops = {
@@ -239,6 +256,7 @@ static struct regulator_ops max77686_buck_dvs_ops = {
.set_voltage_time_sel = regulator_set_voltage_time_sel,
.set_ramp_delay = max77686_set_ramp_delay,
.set_suspend_disable = max77686_buck_set_suspend_disable,
+ .set_suspend_enable = max77686_buck_set_suspend_enable,
};
#define regulator_desc_ldo(num) { \