regulator: s2mps11: Set default ramp delay for S2MPS11 LDOs
authorKrzysztof Kozlowski <k.kozlowski@samsung.com>
Mon, 18 Apr 2016 13:33:10 +0000 (15:33 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 18 Apr 2016 16:31:38 +0000 (17:31 +0100)
Driver did not provide default value for ramp delay for LDOs which lead
to warning in dmesg, e.g. on Odroid XU4:

[    1.486076] vdd_ldo9: ramp_delay not set
[    1.506875] vddq_mmc2: ramp_delay not set
[    1.523766] vdd_ldo15: ramp_delay not set
[    1.544702] vdd_sd: ramp_delay not set

The datasheet for all the S2MPS1x family is inconsistent here and does
not specify unambiguously the value of ramp delay for LDO. It mentions
30 mV/us in one timing diagram but then omits it completely in LDO
regulator characteristics table (it is specified for bucks).

However the vendor kernels for Galaxy S5 and Odroid XU3 use values of 12
mV/us or 24 mV/us.

Without the ramp delay value the consumers do not wait for voltage
settle after changing it. Although the proper value of ramp delay for
LDOs is unknown, it seems safer to use at least some value from
reference kernel than to leave it unset.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/s2mps11.c
include/linux/mfd/samsung/core.h

index 46e5a2922c4d415bbf416e22aa49a7d064659708..47c7de8f39e9d54098a67cd5544a10e8d7891cb2 100644 (file)
@@ -267,6 +267,7 @@ static struct regulator_ops s2mps11_buck_ops = {
        .ops            = &s2mps11_ldo_ops,             \
        .type           = REGULATOR_VOLTAGE,            \
        .owner          = THIS_MODULE,                  \
+       .ramp_delay     = RAMP_DELAY_12_MVUS,           \
        .min_uV         = MIN_800_MV,                   \
        .uV_step        = step,                         \
        .n_voltages     = S2MPS11_LDO_N_VOLTAGES,       \
index 6bc4bcd488acb70e75234c1b66352d69eabe267b..5a23dd4df432e2e05537997ee578fd33ac3e18ac 100644 (file)
@@ -30,6 +30,9 @@
 #define MIN_600_MV             600000
 #define MIN_500_MV             500000
 
+/* Ramp delay in uV/us */
+#define RAMP_DELAY_12_MVUS     12000
+
 /* Macros to represent steps for LDO/BUCK */
 #define STEP_50_MV             50000
 #define STEP_25_MV             25000