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

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 with
additional buck9 suspend configuration (for USB hub suspend and proper
reset).

Energy consumption measurements from Marek Szyprowski during suspend to
RAM:
 - all at 5 V power supply,
 - before: next-20190620,
 - after: next-20190620 + this patch + suspend configuration for s2mps11
          regulator driver,

Board              | before [mA] | after [mA] |
Odroid HC1         |         120 |       7-10 |
Odroid XU4, sdcard |          88 |        6-9 |
Odroid XU4, eMMC   |         100 |        6-9 |

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Tested-by: Anand Moon <linux.amoon@gmail.com>
This commit is contained in:
Krzysztof Kozlowski 2019-06-20 20:34:57 +02:00
parent 1f513ee3e0
commit 3e7f057681
1 changed files with 96 additions and 0 deletions

View File

@ -177,6 +177,10 @@ ldo4_reg: LDO4 {
regulator-name = "vdd_adc"; regulator-name = "vdd_adc";
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>; regulator-max-microvolt = <1800000>;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
ldo5_reg: LDO5 { ldo5_reg: LDO5 {
@ -184,6 +188,10 @@ ldo5_reg: LDO5 {
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>; regulator-max-microvolt = <1800000>;
regulator-always-on; regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
ldo6_reg: LDO6 { ldo6_reg: LDO6 {
@ -191,6 +199,10 @@ ldo6_reg: LDO6 {
regulator-min-microvolt = <1000000>; regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>; regulator-max-microvolt = <1000000>;
regulator-always-on; regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
ldo7_reg: LDO7 { ldo7_reg: LDO7 {
@ -198,6 +210,10 @@ ldo7_reg: LDO7 {
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>; regulator-max-microvolt = <1800000>;
regulator-always-on; regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
ldo8_reg: LDO8 { ldo8_reg: LDO8 {
@ -205,6 +221,10 @@ ldo8_reg: LDO8 {
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>; regulator-max-microvolt = <1800000>;
regulator-always-on; regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
ldo9_reg: LDO9 { ldo9_reg: LDO9 {
@ -212,6 +232,10 @@ ldo9_reg: LDO9 {
regulator-min-microvolt = <3000000>; regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>; regulator-max-microvolt = <3000000>;
regulator-always-on; regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
ldo10_reg: LDO10 { ldo10_reg: LDO10 {
@ -219,6 +243,10 @@ ldo10_reg: LDO10 {
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>; regulator-max-microvolt = <1800000>;
regulator-always-on; regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
ldo11_reg: LDO11 { ldo11_reg: LDO11 {
@ -226,6 +254,10 @@ ldo11_reg: LDO11 {
regulator-min-microvolt = <1000000>; regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>; regulator-max-microvolt = <1000000>;
regulator-always-on; regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
ldo12_reg: LDO12 { ldo12_reg: LDO12 {
@ -239,6 +271,10 @@ ldo13_reg: LDO13 {
regulator-name = "vddq_mmc2"; regulator-name = "vddq_mmc2";
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2800000>; regulator-max-microvolt = <2800000>;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
ldo14_reg: LDO14 { ldo14_reg: LDO14 {
@ -253,6 +289,10 @@ ldo15_reg: LDO15 {
regulator-min-microvolt = <3300000>; regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>; regulator-max-microvolt = <3300000>;
regulator-always-on; regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
ldo16_reg: LDO16 { ldo16_reg: LDO16 {
@ -267,18 +307,30 @@ ldo17_reg: LDO17 {
regulator-min-microvolt = <3300000>; regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>; regulator-max-microvolt = <3300000>;
regulator-always-on; regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
ldo18_reg: LDO18 { ldo18_reg: LDO18 {
regulator-name = "vdd_emmc_1V8"; regulator-name = "vdd_emmc_1V8";
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>; regulator-max-microvolt = <1800000>;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
ldo19_reg: LDO19 { ldo19_reg: LDO19 {
regulator-name = "vdd_sd"; regulator-name = "vdd_sd";
regulator-min-microvolt = <2800000>; regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>; regulator-max-microvolt = <2800000>;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
ldo20_reg: LDO20 { ldo20_reg: LDO20 {
@ -307,6 +359,10 @@ ldo23_reg: LDO23 {
regulator-min-microvolt = <1100000>; regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>; regulator-max-microvolt = <1100000>;
regulator-always-on; regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
ldo24_reg: LDO24 { ldo24_reg: LDO24 {
@ -328,6 +384,10 @@ ldo26_reg: LDO26 {
regulator-name = "vdd_ldo26"; regulator-name = "vdd_ldo26";
regulator-min-microvolt = <800000>; regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3950000>; regulator-max-microvolt = <3950000>;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
ldo27_reg: LDO27 { ldo27_reg: LDO27 {
@ -335,6 +395,10 @@ ldo27_reg: LDO27 {
regulator-min-microvolt = <1000000>; regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>; regulator-max-microvolt = <1000000>;
regulator-always-on; regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
ldo28_reg: LDO28 { ldo28_reg: LDO28 {
@ -342,6 +406,10 @@ ldo28_reg: LDO28 {
regulator-name = "vdd_ldo28"; regulator-name = "vdd_ldo28";
regulator-min-microvolt = <800000>; regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3950000>; regulator-max-microvolt = <3950000>;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
ldo29_reg: LDO29 { ldo29_reg: LDO29 {
@ -420,6 +488,10 @@ buck1_reg: BUCK1 {
regulator-max-microvolt = <1300000>; regulator-max-microvolt = <1300000>;
regulator-always-on; regulator-always-on;
regulator-boot-on; regulator-boot-on;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
buck2_reg: BUCK2 { buck2_reg: BUCK2 {
@ -428,6 +500,10 @@ buck2_reg: BUCK2 {
regulator-max-microvolt = <1500000>; regulator-max-microvolt = <1500000>;
regulator-always-on; regulator-always-on;
regulator-boot-on; regulator-boot-on;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
buck3_reg: BUCK3 { buck3_reg: BUCK3 {
@ -436,6 +512,10 @@ buck3_reg: BUCK3 {
regulator-max-microvolt = <1400000>; regulator-max-microvolt = <1400000>;
regulator-always-on; regulator-always-on;
regulator-boot-on; regulator-boot-on;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
buck4_reg: BUCK4 { buck4_reg: BUCK4 {
@ -444,6 +524,10 @@ buck4_reg: BUCK4 {
regulator-max-microvolt = <1400000>; regulator-max-microvolt = <1400000>;
regulator-always-on; regulator-always-on;
regulator-boot-on; regulator-boot-on;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
buck5_reg: BUCK5 { buck5_reg: BUCK5 {
@ -460,6 +544,10 @@ buck6_reg: BUCK6 {
regulator-max-microvolt = <1500000>; regulator-max-microvolt = <1500000>;
regulator-always-on; regulator-always-on;
regulator-boot-on; regulator-boot-on;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
buck7_reg: BUCK7 { buck7_reg: BUCK7 {
@ -484,12 +572,20 @@ buck9_reg: BUCK9 {
regulator-max-microvolt = <3750000>; regulator-max-microvolt = <3750000>;
regulator-always-on; regulator-always-on;
regulator-boot-on; regulator-boot-on;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
buck10_reg: BUCK10 { buck10_reg: BUCK10 {
regulator-name = "vdd_vmem"; regulator-name = "vdd_vmem";
regulator-min-microvolt = <2850000>; regulator-min-microvolt = <2850000>;
regulator-max-microvolt = <2850000>; regulator-max-microvolt = <2850000>;
regulator-state-mem {
regulator-off-in-suspend;
};
}; };
}; };
}; };