[U-Boot,RFT,8/8] arm: dts: exynos: Add ramp delay property to LDO regulators to Odroid XU3 family

Message ID 20190209225411.32756-9-krzk@kernel.org
State RFC
Delegated to: Minkyu Kang
Headers show
Series
  • exynos: Fix reboot on Odroid HC1
Related show

Commit Message

Krzysztof Kozlowski Feb. 9, 2019, 10:54 p.m.
Add startup time to LDO regulators of S2MPS11 PMIC on Odroid XU3/XU4/HC1
family of boards to be sure the voltage is proper before relying on the
regulator.

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 <krzk@kernel.org>
---
 arch/arm/dts/exynos5422-odroidxu3.dts | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

Comments

Lukasz Majewski Feb. 11, 2019, 7:13 a.m. | #1
Hi Krzysztof,

> Add startup time to LDO regulators of S2MPS11 PMIC on Odroid
> XU3/XU4/HC1 family of boards to be sure the voltage is proper before
> relying on the regulator.
> 
> 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 <krzk@kernel.org>

Reviewed-by: Lukasz Majewski <lukma@denx.de>

> ---
>  arch/arm/dts/exynos5422-odroidxu3.dts | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/arch/arm/dts/exynos5422-odroidxu3.dts
> b/arch/arm/dts/exynos5422-odroidxu3.dts index
> 9dfae90667cf..04ecc404f907 100644 ---
> a/arch/arm/dts/exynos5422-odroidxu3.dts +++
> b/arch/arm/dts/exynos5422-odroidxu3.dts @@ -45,6 +45,7 @@
>  					regulator-name = "vdd_ldo1";
>  					regulator-min-microvolt =
> <1000000>; regulator-max-microvolt = <1000000>;
> +					regulator-ramp-delay =
> <12000>; regulator-always-on;
>  				};
>  
> @@ -52,18 +53,21 @@
>  					regulator-name = "vddq_mmc0";
>  					regulator-min-microvolt =
> <1800000>; regulator-max-microvolt = <1800000>;
> +					regulator-ramp-delay =
> <12000>; };
>  
>  				ldo4_reg: LDO4 {
>  					regulator-name = "vdd_adc";
>  					regulator-min-microvolt =
> <1800000>; regulator-max-microvolt = <1800000>;
> +					regulator-ramp-delay =
> <12000>; };
>  
>  				ldo5_reg: LDO5 {
>  					regulator-name = "vdd_ldo5";
>  					regulator-min-microvolt =
> <1800000>; regulator-max-microvolt = <1800000>;
> +					regulator-ramp-delay =
> <12000>; regulator-always-on;
>  				};
>  
> @@ -71,6 +75,7 @@
>  					regulator-name = "vdd_ldo6";
>  					regulator-min-microvolt =
> <1000000>; regulator-max-microvolt = <1000000>;
> +					regulator-ramp-delay =
> <12000>; regulator-always-on;
>  				};
>  
> @@ -78,6 +83,7 @@
>  					regulator-name = "vdd_ldo7";
>  					regulator-min-microvolt =
> <1800000>; regulator-max-microvolt = <1800000>;
> +					regulator-ramp-delay =
> <12000>; regulator-always-on;
>  				};
>  
> @@ -85,6 +91,7 @@
>  					regulator-name = "vdd_ldo8";
>  					regulator-min-microvolt =
> <1800000>; regulator-max-microvolt = <1800000>;
> +					regulator-ramp-delay =
> <12000>; regulator-always-on;
>  				};
>  
> @@ -92,6 +99,7 @@
>  					regulator-name = "vdd_ldo9";
>  					regulator-min-microvolt =
> <3000000>; regulator-max-microvolt = <3000000>;
> +					regulator-ramp-delay =
> <12000>; regulator-always-on;
>  				};
>  
> @@ -99,6 +107,7 @@
>  					regulator-name = "vdd_ldo10";
>  					regulator-min-microvolt =
> <1800000>; regulator-max-microvolt = <1800000>;
> +					regulator-ramp-delay =
> <12000>; regulator-always-on;
>  				};
>  
> @@ -106,6 +115,7 @@
>  					regulator-name = "vdd_ldo11";
>  					regulator-min-microvolt =
> <1000000>; regulator-max-microvolt = <1000000>;
> +					regulator-ramp-delay =
> <12000>; regulator-always-on;
>  				};
>  
> @@ -113,6 +123,7 @@
>  					regulator-name = "vdd_ldo12";
>  					regulator-min-microvolt =
> <1800000>; regulator-max-microvolt = <1800000>;
> +					regulator-ramp-delay =
> <12000>; regulator-always-on;
>  				};
>  
> @@ -120,12 +131,14 @@
>  					regulator-name = "vddq_mmc2";
>  					regulator-min-microvolt =
> <2800000>; regulator-max-microvolt = <2800000>;
> +					regulator-ramp-delay =
> <12000>; };
>  
>  				ldo15_reg: LDO15 {
>  					regulator-name = "vdd_ldo15";
>  					regulator-min-microvolt =
> <3300000>; regulator-max-microvolt = <3300000>;
> +					regulator-ramp-delay =
> <12000>; regulator-always-on;
>  				};
>  
> @@ -133,6 +146,7 @@
>  					regulator-name = "vdd_ldo16";
>  					regulator-min-microvolt =
> <2200000>; regulator-max-microvolt = <2200000>;
> +					regulator-ramp-delay =
> <12000>; regulator-always-on;
>  				};
>  
> @@ -140,6 +154,7 @@
>  					regulator-name = "vdd_ldo17";
>  					regulator-min-microvolt =
> <3300000>; regulator-max-microvolt = <3300000>;
> +					regulator-ramp-delay =
> <12000>; regulator-always-on;
>  				};
>  
> @@ -147,18 +162,21 @@
>  					regulator-name =
> "vdd_emmc_1V8"; regulator-min-microvolt = <1800000>;
>  					regulator-max-microvolt =
> <1800000>;
> +					regulator-ramp-delay =
> <12000>; };
>  
>  				ldo19_reg: LDO19 {
>  					regulator-name = "vdd_sd";
>  					regulator-min-microvolt =
> <2800000>; regulator-max-microvolt = <2800000>;
> +					regulator-ramp-delay =
> <12000>; };
>  
>  				ldo24_reg: LDO24 {
>  					regulator-name = "tsp_io";
>  					regulator-min-microvolt =
> <2800000>; regulator-max-microvolt = <2800000>;
> +					regulator-ramp-delay =
> <12000>; regulator-always-on;
>  				};
>  
> @@ -166,6 +184,7 @@
>  					regulator-name = "vdd_ldo26";
>  					regulator-min-microvolt =
> <3000000>; regulator-max-microvolt = <3000000>;
> +					regulator-ramp-delay =
> <12000>; regulator-always-on;
>  				};
>  




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de

Patch

diff --git a/arch/arm/dts/exynos5422-odroidxu3.dts b/arch/arm/dts/exynos5422-odroidxu3.dts
index 9dfae90667cf..04ecc404f907 100644
--- a/arch/arm/dts/exynos5422-odroidxu3.dts
+++ b/arch/arm/dts/exynos5422-odroidxu3.dts
@@ -45,6 +45,7 @@ 
 					regulator-name = "vdd_ldo1";
 					regulator-min-microvolt = <1000000>;
 					regulator-max-microvolt = <1000000>;
+					regulator-ramp-delay = <12000>;
 					regulator-always-on;
 				};
 
@@ -52,18 +53,21 @@ 
 					regulator-name = "vddq_mmc0";
 					regulator-min-microvolt = <1800000>;
 					regulator-max-microvolt = <1800000>;
+					regulator-ramp-delay = <12000>;
 				};
 
 				ldo4_reg: LDO4 {
 					regulator-name = "vdd_adc";
 					regulator-min-microvolt = <1800000>;
 					regulator-max-microvolt = <1800000>;
+					regulator-ramp-delay = <12000>;
 				};
 
 				ldo5_reg: LDO5 {
 					regulator-name = "vdd_ldo5";
 					regulator-min-microvolt = <1800000>;
 					regulator-max-microvolt = <1800000>;
+					regulator-ramp-delay = <12000>;
 					regulator-always-on;
 				};
 
@@ -71,6 +75,7 @@ 
 					regulator-name = "vdd_ldo6";
 					regulator-min-microvolt = <1000000>;
 					regulator-max-microvolt = <1000000>;
+					regulator-ramp-delay = <12000>;
 					regulator-always-on;
 				};
 
@@ -78,6 +83,7 @@ 
 					regulator-name = "vdd_ldo7";
 					regulator-min-microvolt = <1800000>;
 					regulator-max-microvolt = <1800000>;
+					regulator-ramp-delay = <12000>;
 					regulator-always-on;
 				};
 
@@ -85,6 +91,7 @@ 
 					regulator-name = "vdd_ldo8";
 					regulator-min-microvolt = <1800000>;
 					regulator-max-microvolt = <1800000>;
+					regulator-ramp-delay = <12000>;
 					regulator-always-on;
 				};
 
@@ -92,6 +99,7 @@ 
 					regulator-name = "vdd_ldo9";
 					regulator-min-microvolt = <3000000>;
 					regulator-max-microvolt = <3000000>;
+					regulator-ramp-delay = <12000>;
 					regulator-always-on;
 				};
 
@@ -99,6 +107,7 @@ 
 					regulator-name = "vdd_ldo10";
 					regulator-min-microvolt = <1800000>;
 					regulator-max-microvolt = <1800000>;
+					regulator-ramp-delay = <12000>;
 					regulator-always-on;
 				};
 
@@ -106,6 +115,7 @@ 
 					regulator-name = "vdd_ldo11";
 					regulator-min-microvolt = <1000000>;
 					regulator-max-microvolt = <1000000>;
+					regulator-ramp-delay = <12000>;
 					regulator-always-on;
 				};
 
@@ -113,6 +123,7 @@ 
 					regulator-name = "vdd_ldo12";
 					regulator-min-microvolt = <1800000>;
 					regulator-max-microvolt = <1800000>;
+					regulator-ramp-delay = <12000>;
 					regulator-always-on;
 				};
 
@@ -120,12 +131,14 @@ 
 					regulator-name = "vddq_mmc2";
 					regulator-min-microvolt = <2800000>;
 					regulator-max-microvolt = <2800000>;
+					regulator-ramp-delay = <12000>;
 				};
 
 				ldo15_reg: LDO15 {
 					regulator-name = "vdd_ldo15";
 					regulator-min-microvolt = <3300000>;
 					regulator-max-microvolt = <3300000>;
+					regulator-ramp-delay = <12000>;
 					regulator-always-on;
 				};
 
@@ -133,6 +146,7 @@ 
 					regulator-name = "vdd_ldo16";
 					regulator-min-microvolt = <2200000>;
 					regulator-max-microvolt = <2200000>;
+					regulator-ramp-delay = <12000>;
 					regulator-always-on;
 				};
 
@@ -140,6 +154,7 @@ 
 					regulator-name = "vdd_ldo17";
 					regulator-min-microvolt = <3300000>;
 					regulator-max-microvolt = <3300000>;
+					regulator-ramp-delay = <12000>;
 					regulator-always-on;
 				};
 
@@ -147,18 +162,21 @@ 
 					regulator-name = "vdd_emmc_1V8";
 					regulator-min-microvolt = <1800000>;
 					regulator-max-microvolt = <1800000>;
+					regulator-ramp-delay = <12000>;
 				};
 
 				ldo19_reg: LDO19 {
 					regulator-name = "vdd_sd";
 					regulator-min-microvolt = <2800000>;
 					regulator-max-microvolt = <2800000>;
+					regulator-ramp-delay = <12000>;
 				};
 
 				ldo24_reg: LDO24 {
 					regulator-name = "tsp_io";
 					regulator-min-microvolt = <2800000>;
 					regulator-max-microvolt = <2800000>;
+					regulator-ramp-delay = <12000>;
 					regulator-always-on;
 				};
 
@@ -166,6 +184,7 @@ 
 					regulator-name = "vdd_ldo26";
 					regulator-min-microvolt = <3000000>;
 					regulator-max-microvolt = <3000000>;
+					regulator-ramp-delay = <12000>;
 					regulator-always-on;
 				};