From 667897e801ee752b526972060ec6b011fea53df1 Mon Sep 17 00:00:00 2001 From: Jin Park Date: Tue, 17 Jan 2012 15:24:11 +0900 Subject: 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 Signed-off-by: Varun Wadekar Reviewed-on: http://git-master/r/78701 Reviewed-by: Automatic_Commit_Validation_User --- drivers/regulator/max77663-regulator.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'drivers/regulator') 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; -- cgit v1.2.3