diff options
author | Tomasz Figa <t.figa@samsung.com> | 2013-04-25 15:47:59 +0200 |
---|---|---|
committer | Chanho Park <chanho61.park@samsung.com> | 2014-08-08 14:35:26 +0900 |
commit | 8a342f0cb76733064a7fb7df72b1f2a10bd4f88c (patch) | |
tree | 654c13c34ea91567c04d95bfa3616fc0de862000 /drivers/regulator/max77686.c | |
parent | 1c5ebc14b62b0362a8d61770558b77f80278fad1 (diff) | |
download | linux-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.c | 18 |
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) { \ |