2018-11-13 14:48:13

by Andrei.Stefanescu

[permalink] [raw]
Subject: [PATCH 0/2] set regulator constraints for standby state

This patch series adds support for setting the regulator constraints
when entering standby Linux state.

The new bindings are called regulator-state-standby and have
the same syntax as regulator-state-mem/disk.

Before this patch, if the regulator driver implemented
set_suspend_voltage/mode the rdev_warn message: "No configuration"
(drivers/regulator/core.c:suspend_set_state) would be issued when
resuming from standby.

Andrei Stefanescu (2):
regulator: dt-bindings: add regulator-state-standby bindings
regulator: of: add support for parsing regulator-state-standby

Documentation/devicetree/bindings/regulator/regulator.txt | 5 ++++-
drivers/regulator/of_regulator.c | 5 ++++-
2 files changed, 8 insertions(+), 2 deletions(-)

--
2.7.4



2018-11-13 14:48:18

by Andrei.Stefanescu

[permalink] [raw]
Subject: [PATCH 1/2] regulator: dt-bindings: add regulator-state-standby bindings

For state-mem and state-disk regulators can have
various parameters applied such as enabled/disabled,
current mode, voltage etc.

This patch adds documentation on how to set these parameters
in the device tree for the standby state.

Signed-off-by: Andrei Stefanescu <[email protected]>
---
Documentation/devicetree/bindings/regulator/regulator.txt | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/regulator/regulator.txt b/Documentation/devicetree/bindings/regulator/regulator.txt
index 0c3a243..0a3f087 100644
--- a/Documentation/devicetree/bindings/regulator/regulator.txt
+++ b/Documentation/devicetree/bindings/regulator/regulator.txt
@@ -33,13 +33,16 @@ Optional properties:
decreases of any level. This is useful for regulators with exponential
voltage changes.
- regulator-soft-start: Enable soft start so that voltage ramps slowly
+- regulator-state-standby sub-root node for Standby mode
+ : equivalent with standby Linux sleep state, which provides energy savings
+ with a relatively quick transition back time.
- regulator-state-mem sub-root node for Suspend-to-RAM mode
: suspend to memory, the device goes to sleep, but all data stored in memory,
only some external interrupt can wake the device.
- regulator-state-disk sub-root node for Suspend-to-DISK mode
: suspend to disk, this state operates similarly to Suspend-to-RAM,
but includes a final step of writing memory contents to disk.
-- regulator-state-[mem/disk] node has following common properties:
+- regulator-state-[mem/disk/standby] node has following common properties:
- regulator-on-in-suspend: regulator should be on in suspend state.
- regulator-off-in-suspend: regulator should be off in suspend state.
- regulator-suspend-min-microvolt: minimum voltage may be set in
--
2.7.4


2018-11-13 14:49:50

by Andrei.Stefanescu

[permalink] [raw]
Subject: [PATCH 2/2] regulator: of: add support for parsing regulator-state-standby

Set the according constraints for PM_SUSPEND_STANDBY case.
Previously, only suspend to mem/disk were taken into
consideration.

Signed-off-by: Andrei Stefanescu <[email protected]>
---
drivers/regulator/of_regulator.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/regulator/of_regulator.c b/drivers/regulator/of_regulator.c
index a732f09..c711a0a 100644
--- a/drivers/regulator/of_regulator.c
+++ b/drivers/regulator/of_regulator.c
@@ -20,6 +20,7 @@
#include "internal.h"

static const char *const regulator_states[PM_SUSPEND_MAX + 1] = {
+ [PM_SUSPEND_STANDBY] = "regulator-state-standby",
[PM_SUSPEND_MEM] = "regulator-state-mem",
[PM_SUSPEND_MAX] = "regulator-state-disk",
};
@@ -185,9 +186,11 @@ static void of_get_regulation_constraints(struct device_node *np,
case PM_SUSPEND_MAX:
suspend_state = &constraints->state_disk;
break;
+ case PM_SUSPEND_STANDBY:
+ suspend_state = &constraints->state_standby;
+ break;
case PM_SUSPEND_ON:
case PM_SUSPEND_TO_IDLE:
- case PM_SUSPEND_STANDBY:
default:
continue;
}
--
2.7.4