Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Krzysztof Kozlowski and committed by
Mark Brown
a9597305 314a8203

+5
+5
drivers/regulator/max77686-regulator.c
··· 41 41 #define MAX77686_LDO_LOW_UVSTEP 25000 42 42 #define MAX77686_BUCK_MINUV 750000 43 43 #define MAX77686_BUCK_UVSTEP 50000 44 + #define MAX77686_BUCK_ENABLE_TIME 40 /* us */ 45 + #define MAX77686_DVS_ENABLE_TIME 22 /* us */ 44 46 #define MAX77686_RAMP_DELAY 100000 /* uV/us */ 45 47 #define MAX77686_DVS_RAMP_DELAY 27500 /* uV/us */ 46 48 #define MAX77686_DVS_MINUV 600000 ··· 424 422 .min_uV = MAX77686_BUCK_MINUV, \ 425 423 .uV_step = MAX77686_BUCK_UVSTEP, \ 426 424 .ramp_delay = MAX77686_RAMP_DELAY, \ 425 + .enable_time = MAX77686_BUCK_ENABLE_TIME, \ 427 426 .n_voltages = MAX77686_VSEL_MASK + 1, \ 428 427 .vsel_reg = MAX77686_REG_BUCK5OUT + (num - 5) * 2, \ 429 428 .vsel_mask = MAX77686_VSEL_MASK, \ ··· 442 439 .min_uV = MAX77686_BUCK_MINUV, \ 443 440 .uV_step = MAX77686_BUCK_UVSTEP, \ 444 441 .ramp_delay = MAX77686_RAMP_DELAY, \ 442 + .enable_time = MAX77686_BUCK_ENABLE_TIME, \ 445 443 .n_voltages = MAX77686_VSEL_MASK + 1, \ 446 444 .vsel_reg = MAX77686_REG_BUCK1OUT, \ 447 445 .vsel_mask = MAX77686_VSEL_MASK, \ ··· 460 456 .min_uV = MAX77686_DVS_MINUV, \ 461 457 .uV_step = MAX77686_DVS_UVSTEP, \ 462 458 .ramp_delay = MAX77686_DVS_RAMP_DELAY, \ 459 + .enable_time = MAX77686_DVS_ENABLE_TIME, \ 463 460 .n_voltages = MAX77686_DVS_VSEL_MASK + 1, \ 464 461 .vsel_reg = MAX77686_REG_BUCK2DVS1 + (num - 2) * 10, \ 465 462 .vsel_mask = MAX77686_DVS_VSEL_MASK, \