diff mbox

regulator: s2mps11: Remove unused set_voltage_time_sel

Message ID 1460965378-5256-1-git-send-email-k.kozlowski@samsung.com (mailing list archive)
State Not Applicable
Headers show

Commit Message

Krzysztof Kozlowski April 18, 2016, 7:42 a.m. UTC
On S2MPS11 and S2MPS14 devices the default implementation of
set_voltage_time_sel() for LDO regulators was not doing anything useful
because users did not provide ramp delay in Device Tree so the
set_voltage_time_sel() exited with status 0. This could be seen 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 these devices is inconsistent 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). To make more
confusion, the vendor kernel for Galaxy S5 and Odroid XU3 uses sometimes
value of 12 mV/us.

Overall, since the ramp delay is not currently provided by DT and it is
unclear what is the correct value anyway, the safest choice seems to be
to remove the implementation of set_voltage_time_sel() for S2MPS11 and
S2MPS14 LDOs thus getting rid of the warning.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
---
 drivers/regulator/s2mps11.c | 2 --
 1 file changed, 2 deletions(-)

Comments

Mark Brown April 18, 2016, 9:57 a.m. UTC | #1
On Mon, Apr 18, 2016 at 09:42:58AM +0200, Krzysztof Kozlowski wrote:

> On S2MPS11 and S2MPS14 devices the default implementation of
> set_voltage_time_sel() for LDO regulators was not doing anything useful
> because users did not provide ramp delay in Device Tree so the
> set_voltage_time_sel() exited with status 0. This could be seen in
> dmesg, e.g. on Odroid XU4:

That's not the bug, the bug is that the driver is providing the
operation without providing a non-zero value for it.  The device tree
configuration is to override what the driver is doing.
Krzysztof Kozlowski April 18, 2016, 10:36 a.m. UTC | #2
On 04/18/2016 11:57 AM, Mark Brown wrote:
> On Mon, Apr 18, 2016 at 09:42:58AM +0200, Krzysztof Kozlowski wrote:
> 
>> On S2MPS11 and S2MPS14 devices the default implementation of
>> set_voltage_time_sel() for LDO regulators was not doing anything useful
>> because users did not provide ramp delay in Device Tree so the
>> set_voltage_time_sel() exited with status 0. This could be seen in
>> dmesg, e.g. on Odroid XU4:
> 
> That's not the bug, the bug is that the driver is providing the
> operation without providing a non-zero value for it.  The device tree
> configuration is to override what the driver is doing.

So your recommendation would be to set the ramp_delay value in
regulator_desc structure?

The problem is that value of 30 mv/us in datasheet looks untrustworthy
(copied from other pages) and vendor kernel (which should be a
reference) uses 12 mv/us. Anyway setting any value greater than 0 seems
like better idea than just sticking to 0...

Best regards,
Krzysztof

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mark Brown April 18, 2016, 11 a.m. UTC | #3
On Mon, Apr 18, 2016 at 12:36:52PM +0200, Krzysztof Kozlowski wrote:
> On 04/18/2016 11:57 AM, Mark Brown wrote:

> > That's not the bug, the bug is that the driver is providing the
> > operation without providing a non-zero value for it.  The device tree
> > configuration is to override what the driver is doing.

> So your recommendation would be to set the ramp_delay value in
> regulator_desc structure?

Or at least fix the changelog to describe the problem more clearly.

> The problem is that value of 30 mv/us in datasheet looks untrustworthy
> (copied from other pages) and vendor kernel (which should be a
> reference) uses 12 mv/us. Anyway setting any value greater than 0 seems
> like better idea than just sticking to 0...

Yup.  Probably the more conservative value is going to be safer.
diff mbox

Patch

diff --git a/drivers/regulator/s2mps11.c b/drivers/regulator/s2mps11.c
index 64a262f10845..437b1b3b26c9 100644
--- a/drivers/regulator/s2mps11.c
+++ b/drivers/regulator/s2mps11.c
@@ -246,7 +246,6 @@  static struct regulator_ops s2mps11_ldo_ops = {
 	.disable		= regulator_disable_regmap,
 	.get_voltage_sel	= regulator_get_voltage_sel_regmap,
 	.set_voltage_sel	= regulator_set_voltage_sel_regmap,
-	.set_voltage_time_sel	= regulator_set_voltage_time_sel,
 };
 
 static struct regulator_ops s2mps11_buck_ops = {
@@ -606,7 +605,6 @@  static struct regulator_ops s2mps14_reg_ops = {
 	.disable		= regulator_disable_regmap,
 	.get_voltage_sel	= regulator_get_voltage_sel_regmap,
 	.set_voltage_sel	= regulator_set_voltage_sel_regmap,
-	.set_voltage_time_sel	= regulator_set_voltage_time_sel,
 	.set_suspend_disable	= s2mps14_regulator_set_suspend_disable,
 };