From 4a77f4129671b2cf94088f27bc9172670e5ed8a0 Mon Sep 17 00:00:00 2001 From: Harry Hong Date: Thu, 1 Sep 2011 20:22:11 +0900 Subject: regulator: max77663: Active-discharge mode for SDx Adding Active-discharge option for SDx rails. bug 859415 Change-Id: Ia4d3933b9dbf4a0ec646c586f99a7411d2a93371 Reviewed-on: http://git-master/r/50281 Tested-by: Harry Hong Reviewed-by: Bharat Nihalani --- drivers/regulator/max77663-regulator.c | 14 ++++++++++++++ include/linux/regulator/max77663-regulator.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/drivers/regulator/max77663-regulator.c b/drivers/regulator/max77663-regulator.c index c7d4e4f267f8..1d5715387ac6 100644 --- a/drivers/regulator/max77663-regulator.c +++ b/drivers/regulator/max77663-regulator.c @@ -86,6 +86,10 @@ #define SD_FPWM_MASK 0x04 #define SD_FPWM_SHIFT 2 +/* SD Failling slew rate Active-Discharge Mode */ +#define SD_FSRADE_MASK 0x01 +#define SD_FSRADE_SHIFT 0 + /* Voltage */ #define SDX_VOLT_MASK 0xFF #define SD1_VOLT_MASK 0x3F @@ -552,6 +556,16 @@ skip_init_apply: } } + if (pdata->flags & SD_FSRADE_DISABLE) { + ret = max77663_set_bits(parent, reg->cfg_reg, + SD_FSRADE_MASK, SD_FSRADE_MASK, 0); + if (ret < 0) { + dev_err(reg->dev, "preinit: " + "Failed to set falling slew-rate discharge mode\n"); + return ret; + } + } + if ((reg->id == MAX77663_REGULATOR_ID_SD0) && (pdata->flags & EN2_CTRL_SD0)) { val = POWER_MODE_DISABLE; diff --git a/include/linux/regulator/max77663-regulator.h b/include/linux/regulator/max77663-regulator.h index 470248d20631..093ca42d4ca7 100644 --- a/include/linux/regulator/max77663-regulator.h +++ b/include/linux/regulator/max77663-regulator.h @@ -98,6 +98,9 @@ enum max77663_regulator_fps_src { /* SD Forced PWM Mode */ #define SD_FORCED_PWM_MODE 0x20 +/* SD Failling Slew Rate Active-Discharge Mode */ +#define SD_FSRADE_DISABLE 0x40 + struct max77663_regulator_fps_cfg { enum max77663_regulator_fps_src src; enum max77663_regulator_fps_en_src en_src; -- cgit v1.2.3