diff options
author | Krzysztof Kozlowski <k.kozlowski@samsung.com> | 2016-04-29 06:59:51 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2016-04-29 07:31:39 -0400 |
commit | a9597305d97f6cf7c9e89dc1461e834c446d91fd (patch) | |
tree | 30082d1a5e5b8c70db61f0c4abe34ef9f16b50fd | |
parent | 314a8203b6de2df164399996ece1412ae8f6270d (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.c | 5 |
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, \ |