aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKrzysztof Kozlowski <k.kozlowski@samsung.com>2016-04-29 06:59:51 -0400
committerMark Brown <broonie@kernel.org>2016-04-29 07:31:39 -0400
commita9597305d97f6cf7c9e89dc1461e834c446d91fd (patch)
tree30082d1a5e5b8c70db61f0c4abe34ef9f16b50fd
parent314a8203b6de2df164399996ece1412ae8f6270d (diff)
regulator: max77686: Configure enable time to properly handle regulator enable
The enable time for buck regulators was not configured but actually is essential: consumers, like usb3503, doing hard reset (regulator off/on) should wait for the regulator to settle. Configure the enable time according to datasheet. Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--drivers/regulator/max77686-regulator.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/regulator/max77686-regulator.c b/drivers/regulator/max77686-regulator.c
index d1ab6a4da88f..ac4fa581e0a5 100644
--- a/drivers/regulator/max77686-regulator.c
+++ b/drivers/regulator/max77686-regulator.c
@@ -41,6 +41,8 @@
41#define MAX77686_LDO_LOW_UVSTEP 25000 41#define MAX77686_LDO_LOW_UVSTEP 25000
42#define MAX77686_BUCK_MINUV 750000 42#define MAX77686_BUCK_MINUV 750000
43#define MAX77686_BUCK_UVSTEP 50000 43#define MAX77686_BUCK_UVSTEP 50000
44#define MAX77686_BUCK_ENABLE_TIME 40 /* us */
45#define MAX77686_DVS_ENABLE_TIME 22 /* us */
44#define MAX77686_RAMP_DELAY 100000 /* uV/us */ 46#define MAX77686_RAMP_DELAY 100000 /* uV/us */
45#define MAX77686_DVS_RAMP_DELAY 27500 /* uV/us */ 47#define MAX77686_DVS_RAMP_DELAY 27500 /* uV/us */
46#define MAX77686_DVS_MINUV 600000 48#define MAX77686_DVS_MINUV 600000
@@ -422,6 +424,7 @@ static struct regulator_ops max77686_buck_dvs_ops = {
422 .min_uV = MAX77686_BUCK_MINUV, \ 424 .min_uV = MAX77686_BUCK_MINUV, \
423 .uV_step = MAX77686_BUCK_UVSTEP, \ 425 .uV_step = MAX77686_BUCK_UVSTEP, \
424 .ramp_delay = MAX77686_RAMP_DELAY, \ 426 .ramp_delay = MAX77686_RAMP_DELAY, \
427 .enable_time = MAX77686_BUCK_ENABLE_TIME, \
425 .n_voltages = MAX77686_VSEL_MASK + 1, \ 428 .n_voltages = MAX77686_VSEL_MASK + 1, \
426 .vsel_reg = MAX77686_REG_BUCK5OUT + (num - 5) * 2, \ 429 .vsel_reg = MAX77686_REG_BUCK5OUT + (num - 5) * 2, \
427 .vsel_mask = MAX77686_VSEL_MASK, \ 430 .vsel_mask = MAX77686_VSEL_MASK, \
@@ -439,6 +442,7 @@ static struct regulator_ops max77686_buck_dvs_ops = {
439 .min_uV = MAX77686_BUCK_MINUV, \ 442 .min_uV = MAX77686_BUCK_MINUV, \
440 .uV_step = MAX77686_BUCK_UVSTEP, \ 443 .uV_step = MAX77686_BUCK_UVSTEP, \
441 .ramp_delay = MAX77686_RAMP_DELAY, \ 444 .ramp_delay = MAX77686_RAMP_DELAY, \
445 .enable_time = MAX77686_BUCK_ENABLE_TIME, \
442 .n_voltages = MAX77686_VSEL_MASK + 1, \ 446 .n_voltages = MAX77686_VSEL_MASK + 1, \
443 .vsel_reg = MAX77686_REG_BUCK1OUT, \ 447 .vsel_reg = MAX77686_REG_BUCK1OUT, \
444 .vsel_mask = MAX77686_VSEL_MASK, \ 448 .vsel_mask = MAX77686_VSEL_MASK, \
@@ -456,6 +460,7 @@ static struct regulator_ops max77686_buck_dvs_ops = {
456 .min_uV = MAX77686_DVS_MINUV, \ 460 .min_uV = MAX77686_DVS_MINUV, \
457 .uV_step = MAX77686_DVS_UVSTEP, \ 461 .uV_step = MAX77686_DVS_UVSTEP, \
458 .ramp_delay = MAX77686_DVS_RAMP_DELAY, \ 462 .ramp_delay = MAX77686_DVS_RAMP_DELAY, \
463 .enable_time = MAX77686_DVS_ENABLE_TIME, \
459 .n_voltages = MAX77686_DVS_VSEL_MASK + 1, \ 464 .n_voltages = MAX77686_DVS_VSEL_MASK + 1, \
460 .vsel_reg = MAX77686_REG_BUCK2DVS1 + (num - 2) * 10, \ 465 .vsel_reg = MAX77686_REG_BUCK2DVS1 + (num - 2) * 10, \
461 .vsel_mask = MAX77686_DVS_VSEL_MASK, \ 466 .vsel_mask = MAX77686_DVS_VSEL_MASK, \