diff options
author | Jin Park <jinyoungp@nvidia.com> | 2012-01-17 15:24:11 +0900 |
---|---|---|
committer | Rohan Somvanshi <rsomvanshi@nvidia.com> | 2012-02-03 05:40:49 -0800 |
commit | 667897e801ee752b526972060ec6b011fea53df1 (patch) | |
tree | 26796609a593d52ddfe6b279670c84c6c4c7464a /drivers/regulator | |
parent | 6e4900f78de77aa5336ca2212122d978fd0057eb (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.c | 14 |
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; |