summaryrefslogtreecommitdiff
path: root/drivers/regulator
diff options
context:
space:
mode:
authorJin Park <jinyoungp@nvidia.com>2012-01-17 15:24:11 +0900
committerRohan Somvanshi <rsomvanshi@nvidia.com>2012-02-03 05:40:49 -0800
commit667897e801ee752b526972060ec6b011fea53df1 (patch)
tree26796609a593d52ddfe6b279670c84c6c4c7464a /drivers/regulator
parent6e4900f78de77aa5336ca2212122d978fd0057eb (diff)
regulator: max77663: Add Global Low-Power Mode
Added GLPM(Global Low-Power Mode) to support Low-Power Mode during sleep mode. Bug 924686 Reviewed-on: http://git-master/r/75627 Change-Id: Ia4be1b6b24de95f29ac173bed71c045a246cbcde Signed-off-by: Jin Park <jinyoungp@nvidia.com> Signed-off-by: Varun Wadekar <vwadekar@nvidia.com> Reviewed-on: http://git-master/r/78701 Reviewed-by: Automatic_Commit_Validation_User
Diffstat (limited to 'drivers/regulator')
-rw-r--r--drivers/regulator/max77663-regulator.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/regulator/max77663-regulator.c b/drivers/regulator/max77663-regulator.c
index 68b13dec1a66..c961ab05d2b0 100644
--- a/drivers/regulator/max77663-regulator.c
+++ b/drivers/regulator/max77663-regulator.c
@@ -448,7 +448,8 @@ static int max77663_regulator_enable(struct regulator_dev *rdev)
{
struct max77663_regulator *reg = rdev_get_drvdata(rdev);
struct max77663_regulator_platform_data *pdata = _to_pdata(reg);
- int power_mode = POWER_MODE_NORMAL;
+ int power_mode = (pdata->flags & GLPM_ENABLE) ?
+ POWER_MODE_GLPM : POWER_MODE_NORMAL;
if (reg->fps_src != FPS_SRC_NONE) {
dev_dbg(&rdev->dev, "enable: Regulator %s using %s\n",
@@ -523,11 +524,13 @@ static int max77663_regulator_set_mode(struct regulator_dev *rdev,
unsigned int mode)
{
struct max77663_regulator *reg = rdev_get_drvdata(rdev);
+ struct max77663_regulator_platform_data *pdata = _to_pdata(reg);
u8 power_mode;
int ret;
if (mode == REGULATOR_MODE_NORMAL)
- power_mode = POWER_MODE_NORMAL;
+ power_mode = (pdata->flags & GLPM_ENABLE) ?
+ POWER_MODE_GLPM : POWER_MODE_NORMAL;
else if (mode == REGULATOR_MODE_STANDBY)
power_mode = POWER_MODE_LPM;
else
@@ -619,7 +622,9 @@ static int max77663_regulator_preinit(struct max77663_regulator *reg)
* from SRC_0, SRC_1 and SRC_2. */
if ((reg->fps_src != FPS_SRC_NONE) && (pdata->fps_src == FPS_SRC_NONE)
&& (reg->power_mode != POWER_MODE_NORMAL)) {
- ret = max77663_regulator_set_power_mode(reg, POWER_MODE_NORMAL);
+ val = (pdata->flags & GLPM_ENABLE) ?
+ POWER_MODE_GLPM : POWER_MODE_NORMAL;
+ ret = max77663_regulator_set_power_mode(reg, val);
if (ret < 0) {
dev_err(reg->dev, "preinit: Failed to "
"set power mode to POWER_MODE_NORMAL\n");
@@ -655,7 +660,8 @@ static int max77663_regulator_preinit(struct max77663_regulator *reg)
}
if (pdata->init_enable)
- val = POWER_MODE_NORMAL;
+ val = (pdata->flags & GLPM_ENABLE) ?
+ POWER_MODE_GLPM : POWER_MODE_NORMAL;
else
val = POWER_MODE_DISABLE;