diff mbox series

[6/6] ARM: dts: exynos: Add regulator suspend configuration to Odroid XU3/XU4/HC1 family

Message ID 20190620183530.5386-6-krzk@kernel.org (mailing list archive)
State New, archived
Headers show
Series [1/6] regulator: s2mps11: Consistently use local variable | expand

Commit Message

Krzysztof Kozlowski June 20, 2019, 6:35 p.m. UTC
Add the PMIC regulator suspend configuration to entire Odroid
XU3/XU4/HC1 family of boards to reduce power usage during suspend.  The
configuration is based on vendor (Hardkernel) reference kernel.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>

---

Tested on XU3 and HC1 with SD card.
---
 arch/arm/boot/dts/exynos5422-odroid-core.dtsi | 92 +++++++++++++++++++
 1 file changed, 92 insertions(+)

Comments

Marek Szyprowski June 21, 2019, 11:13 a.m. UTC | #1
Hi,

On 2019-06-20 20:35, Krzysztof Kozlowski wrote:
> Add the PMIC regulator suspend configuration to entire Odroid
> XU3/XU4/HC1 family of boards to reduce power usage during suspend.  The
> configuration is based on vendor (Hardkernel) reference kernel.
>
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>

On XU4 (booted either from eMMC or SD) this reduces power consumption in 
suspend-to-ram from 120mA to about 87mA (@5V). Suspend-to-RAM also works 
fine on XU3, XU3lite and HC1.

Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>

> ---
>
> Tested on XU3 and HC1 with SD card.
> ---
>   arch/arm/boot/dts/exynos5422-odroid-core.dtsi | 92 +++++++++++++++++++
>   1 file changed, 92 insertions(+)
>
> diff --git a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
> index 0f967259ad29..5a4f7dd2568b 100644
> --- a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
> +++ b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
> @@ -177,6 +177,10 @@
>   				regulator-name = "vdd_adc";
>   				regulator-min-microvolt = <1800000>;
>   				regulator-max-microvolt = <1800000>;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			ldo5_reg: LDO5 {
> @@ -184,6 +188,10 @@
>   				regulator-min-microvolt = <1800000>;
>   				regulator-max-microvolt = <1800000>;
>   				regulator-always-on;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			ldo6_reg: LDO6 {
> @@ -191,6 +199,10 @@
>   				regulator-min-microvolt = <1000000>;
>   				regulator-max-microvolt = <1000000>;
>   				regulator-always-on;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			ldo7_reg: LDO7 {
> @@ -198,6 +210,10 @@
>   				regulator-min-microvolt = <1800000>;
>   				regulator-max-microvolt = <1800000>;
>   				regulator-always-on;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			ldo8_reg: LDO8 {
> @@ -205,6 +221,10 @@
>   				regulator-min-microvolt = <1800000>;
>   				regulator-max-microvolt = <1800000>;
>   				regulator-always-on;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			ldo9_reg: LDO9 {
> @@ -212,6 +232,10 @@
>   				regulator-min-microvolt = <3000000>;
>   				regulator-max-microvolt = <3000000>;
>   				regulator-always-on;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			ldo10_reg: LDO10 {
> @@ -219,6 +243,10 @@
>   				regulator-min-microvolt = <1800000>;
>   				regulator-max-microvolt = <1800000>;
>   				regulator-always-on;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			ldo11_reg: LDO11 {
> @@ -226,6 +254,10 @@
>   				regulator-min-microvolt = <1000000>;
>   				regulator-max-microvolt = <1000000>;
>   				regulator-always-on;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			ldo12_reg: LDO12 {
> @@ -239,6 +271,10 @@
>   				regulator-name = "vddq_mmc2";
>   				regulator-min-microvolt = <1800000>;
>   				regulator-max-microvolt = <2800000>;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			ldo14_reg: LDO14 {
> @@ -253,6 +289,10 @@
>   				regulator-min-microvolt = <3300000>;
>   				regulator-max-microvolt = <3300000>;
>   				regulator-always-on;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			ldo16_reg: LDO16 {
> @@ -267,18 +307,30 @@
>   				regulator-min-microvolt = <3300000>;
>   				regulator-max-microvolt = <3300000>;
>   				regulator-always-on;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			ldo18_reg: LDO18 {
>   				regulator-name = "vdd_emmc_1V8";
>   				regulator-min-microvolt = <1800000>;
>   				regulator-max-microvolt = <1800000>;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			ldo19_reg: LDO19 {
>   				regulator-name = "vdd_sd";
>   				regulator-min-microvolt = <2800000>;
>   				regulator-max-microvolt = <2800000>;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			ldo20_reg: LDO20 {
> @@ -307,6 +359,10 @@
>   				regulator-min-microvolt = <1100000>;
>   				regulator-max-microvolt = <1100000>;
>   				regulator-always-on;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			ldo24_reg: LDO24 {
> @@ -328,6 +384,10 @@
>   				regulator-name = "vdd_ldo26";
>   				regulator-min-microvolt = <800000>;
>   				regulator-max-microvolt = <3950000>;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			ldo27_reg: LDO27 {
> @@ -335,6 +395,10 @@
>   				regulator-min-microvolt = <1000000>;
>   				regulator-max-microvolt = <1000000>;
>   				regulator-always-on;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			ldo28_reg: LDO28 {
> @@ -342,6 +406,10 @@
>   				regulator-name = "vdd_ldo28";
>   				regulator-min-microvolt = <800000>;
>   				regulator-max-microvolt = <3950000>;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			ldo29_reg: LDO29 {
> @@ -420,6 +488,10 @@
>   				regulator-max-microvolt = <1300000>;
>   				regulator-always-on;
>   				regulator-boot-on;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			buck2_reg: BUCK2 {
> @@ -428,6 +500,10 @@
>   				regulator-max-microvolt = <1500000>;
>   				regulator-always-on;
>   				regulator-boot-on;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			buck3_reg: BUCK3 {
> @@ -436,6 +512,10 @@
>   				regulator-max-microvolt = <1400000>;
>   				regulator-always-on;
>   				regulator-boot-on;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			buck4_reg: BUCK4 {
> @@ -444,6 +524,10 @@
>   				regulator-max-microvolt = <1400000>;
>   				regulator-always-on;
>   				regulator-boot-on;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			buck5_reg: BUCK5 {
> @@ -460,6 +544,10 @@
>   				regulator-max-microvolt = <1500000>;
>   				regulator-always-on;
>   				regulator-boot-on;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   
>   			buck7_reg: BUCK7 {
> @@ -490,6 +578,10 @@
>   				regulator-name = "vdd_vmem";
>   				regulator-min-microvolt = <2850000>;
>   				regulator-max-microvolt = <2850000>;
> +
> +				regulator-state-mem {
> +					regulator-off-in-suspend;
> +				};
>   			};
>   		};
>   	};

Best regards
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
index 0f967259ad29..5a4f7dd2568b 100644
--- a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
@@ -177,6 +177,10 @@ 
 				regulator-name = "vdd_adc";
 				regulator-min-microvolt = <1800000>;
 				regulator-max-microvolt = <1800000>;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			ldo5_reg: LDO5 {
@@ -184,6 +188,10 @@ 
 				regulator-min-microvolt = <1800000>;
 				regulator-max-microvolt = <1800000>;
 				regulator-always-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			ldo6_reg: LDO6 {
@@ -191,6 +199,10 @@ 
 				regulator-min-microvolt = <1000000>;
 				regulator-max-microvolt = <1000000>;
 				regulator-always-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			ldo7_reg: LDO7 {
@@ -198,6 +210,10 @@ 
 				regulator-min-microvolt = <1800000>;
 				regulator-max-microvolt = <1800000>;
 				regulator-always-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			ldo8_reg: LDO8 {
@@ -205,6 +221,10 @@ 
 				regulator-min-microvolt = <1800000>;
 				regulator-max-microvolt = <1800000>;
 				regulator-always-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			ldo9_reg: LDO9 {
@@ -212,6 +232,10 @@ 
 				regulator-min-microvolt = <3000000>;
 				regulator-max-microvolt = <3000000>;
 				regulator-always-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			ldo10_reg: LDO10 {
@@ -219,6 +243,10 @@ 
 				regulator-min-microvolt = <1800000>;
 				regulator-max-microvolt = <1800000>;
 				regulator-always-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			ldo11_reg: LDO11 {
@@ -226,6 +254,10 @@ 
 				regulator-min-microvolt = <1000000>;
 				regulator-max-microvolt = <1000000>;
 				regulator-always-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			ldo12_reg: LDO12 {
@@ -239,6 +271,10 @@ 
 				regulator-name = "vddq_mmc2";
 				regulator-min-microvolt = <1800000>;
 				regulator-max-microvolt = <2800000>;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			ldo14_reg: LDO14 {
@@ -253,6 +289,10 @@ 
 				regulator-min-microvolt = <3300000>;
 				regulator-max-microvolt = <3300000>;
 				regulator-always-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			ldo16_reg: LDO16 {
@@ -267,18 +307,30 @@ 
 				regulator-min-microvolt = <3300000>;
 				regulator-max-microvolt = <3300000>;
 				regulator-always-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			ldo18_reg: LDO18 {
 				regulator-name = "vdd_emmc_1V8";
 				regulator-min-microvolt = <1800000>;
 				regulator-max-microvolt = <1800000>;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			ldo19_reg: LDO19 {
 				regulator-name = "vdd_sd";
 				regulator-min-microvolt = <2800000>;
 				regulator-max-microvolt = <2800000>;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			ldo20_reg: LDO20 {
@@ -307,6 +359,10 @@ 
 				regulator-min-microvolt = <1100000>;
 				regulator-max-microvolt = <1100000>;
 				regulator-always-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			ldo24_reg: LDO24 {
@@ -328,6 +384,10 @@ 
 				regulator-name = "vdd_ldo26";
 				regulator-min-microvolt = <800000>;
 				regulator-max-microvolt = <3950000>;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			ldo27_reg: LDO27 {
@@ -335,6 +395,10 @@ 
 				regulator-min-microvolt = <1000000>;
 				regulator-max-microvolt = <1000000>;
 				regulator-always-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			ldo28_reg: LDO28 {
@@ -342,6 +406,10 @@ 
 				regulator-name = "vdd_ldo28";
 				regulator-min-microvolt = <800000>;
 				regulator-max-microvolt = <3950000>;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			ldo29_reg: LDO29 {
@@ -420,6 +488,10 @@ 
 				regulator-max-microvolt = <1300000>;
 				regulator-always-on;
 				regulator-boot-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			buck2_reg: BUCK2 {
@@ -428,6 +500,10 @@ 
 				regulator-max-microvolt = <1500000>;
 				regulator-always-on;
 				regulator-boot-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			buck3_reg: BUCK3 {
@@ -436,6 +512,10 @@ 
 				regulator-max-microvolt = <1400000>;
 				regulator-always-on;
 				regulator-boot-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			buck4_reg: BUCK4 {
@@ -444,6 +524,10 @@ 
 				regulator-max-microvolt = <1400000>;
 				regulator-always-on;
 				regulator-boot-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			buck5_reg: BUCK5 {
@@ -460,6 +544,10 @@ 
 				regulator-max-microvolt = <1500000>;
 				regulator-always-on;
 				regulator-boot-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 
 			buck7_reg: BUCK7 {
@@ -490,6 +578,10 @@ 
 				regulator-name = "vdd_vmem";
 				regulator-min-microvolt = <2850000>;
 				regulator-max-microvolt = <2850000>;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
 			};
 		};
 	};