linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 1/3] pinctrl: Add sleep related state to indicate sleep related configs
@ 2017-07-14  8:08 Baolin Wang
       [not found] ` <eb7925c9642efb8a1ee5804a9b06f06d9f082089.1500018536.git.baolin.wang-lxIno14LUO0EEoCn2XhGlw@public.gmane.org>
  2017-07-14  8:08 ` [PATCH v5 3/3] pinctrl: sprd: Add Spreadtrum pin control driver Baolin Wang
  0 siblings, 2 replies; 11+ messages in thread
From: Baolin Wang @ 2017-07-14  8:08 UTC (permalink / raw)
  To: linus.walleij, mark.rutland, robh+dt
  Cc: linux-gpio, devicetree, linux-kernel, broonie, baolin.wang,
	baolin.wang

In some scenarios, we should set some pins as input/output/pullup/pulldown
when the specified system goes into deep sleep mode, then when the system
goes into deep sleep mode, these pins will be set automatically by hardware.

That means some pins are not controlled by any specific driver in the OS, but
need to be controlled when entering sleep mode. Thus we introduce one sleep
state config into pinconf-generic for users to configure.

Signed-off-by: Baolin Wang <baolin.wang@spreadtrum.com>
---
Changes since v4:
 - Add sleep-hardware-state config to indicate sleep related configs.
---
 .../bindings/pinctrl/pinctrl-bindings.txt          |    2 ++
 drivers/pinctrl/pinconf-generic.c                  |    2 ++
 include/linux/pinctrl/pinconf-generic.h            |    2 ++
 3 files changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
index bf3f7b0..2365a21 100644
--- a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
@@ -236,6 +236,8 @@ low-power-enable	- enable low power mode
 low-power-disable	- disable low power mode
 output-low		- set the pin to output mode with low level
 output-high		- set the pin to output mode with high level
+sleep-hardware-state	- indicate this is sleep related state which will be programmed
+			  into the registers for the sleep state.
 slew-rate		- set the slew rate
 
 For example:
diff --git a/drivers/pinctrl/pinconf-generic.c b/drivers/pinctrl/pinconf-generic.c
index ce3335a..9a7f168 100644
--- a/drivers/pinctrl/pinconf-generic.c
+++ b/drivers/pinctrl/pinconf-generic.c
@@ -46,6 +46,7 @@
 	PCONFDUMP(PIN_CONFIG_LOW_POWER_MODE, "pin low power", "mode", true),
 	PCONFDUMP(PIN_CONFIG_OUTPUT, "pin output", "level", true),
 	PCONFDUMP(PIN_CONFIG_POWER_SOURCE, "pin power source", "selector", true),
+	PCONFDUMP(PIN_CONFIG_SLEEP_HARDWARE_STATE, "sleep hardware state", NULL, false),
 	PCONFDUMP(PIN_CONFIG_SLEW_RATE, "slew rate", NULL, true),
 };
 
@@ -175,6 +176,7 @@ void pinconf_generic_dump_config(struct pinctrl_dev *pctldev,
 	{ "output-high", PIN_CONFIG_OUTPUT, 1, },
 	{ "output-low", PIN_CONFIG_OUTPUT, 0, },
 	{ "power-source", PIN_CONFIG_POWER_SOURCE, 0 },
+	{ "sleep-hardware-state", PIN_CONFIG_SLEEP_HARDWARE_STATE, 0 },
 	{ "slew-rate", PIN_CONFIG_SLEW_RATE, 0 },
 };
 
diff --git a/include/linux/pinctrl/pinconf-generic.h b/include/linux/pinctrl/pinconf-generic.h
index 7620eb1..a5d0fb4 100644
--- a/include/linux/pinctrl/pinconf-generic.h
+++ b/include/linux/pinctrl/pinconf-generic.h
@@ -80,6 +80,7 @@
  * @PIN_CONFIG_POWER_SOURCE: if the pin can select between different power
  *	supplies, the argument to this parameter (on a custom format) tells
  *	the driver which alternative power source to use.
+ * @PIN_CONFIG_SLEEP_HARDWARE_STATE: indicate this is sleep related state.
  * @PIN_CONFIG_SLEW_RATE: if the pin can select slew rate, the argument to
  *	this parameter (on a custom format) tells the driver which alternative
  *	slew rate to use.
@@ -107,6 +108,7 @@ enum pin_config_param {
 	PIN_CONFIG_LOW_POWER_MODE,
 	PIN_CONFIG_OUTPUT,
 	PIN_CONFIG_POWER_SOURCE,
+	PIN_CONFIG_SLEEP_HARDWARE_STATE,
 	PIN_CONFIG_SLEW_RATE,
 	PIN_CONFIG_END = 0x7F,
 	PIN_CONFIG_MAX = 0xFF,
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-08-31  8:46 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-14  8:08 [PATCH v5 1/3] pinctrl: Add sleep related state to indicate sleep related configs Baolin Wang
     [not found] ` <eb7925c9642efb8a1ee5804a9b06f06d9f082089.1500018536.git.baolin.wang-lxIno14LUO0EEoCn2XhGlw@public.gmane.org>
2017-07-14  8:08   ` [PATCH v5 2/3] dt-bindings: pinctrl: Add Spreadtrum SC9860 pin controller Baolin Wang
2017-08-31  7:20     ` [RESEND PATCH " Linus Walleij
2017-08-02  6:50   ` [PATCH v5 1/3] pinctrl: Add sleep related state to indicate sleep related configs Baolin Wang
2017-08-31  7:16   ` [RESEND PATCH " Linus Walleij
2017-08-31  8:07     ` Baolin Wang
2017-07-14  8:08 ` [PATCH v5 3/3] pinctrl: sprd: Add Spreadtrum pin control driver Baolin Wang
2017-07-15  2:33   ` [PATCH] pinctrl: sprd: fix platform_no_drv_owner.cocci warnings kbuild test robot
     [not found]   ` <f41270ddc53d11b746c2cc7c66b323e11381938f.1500018536.git.baolin.wang-lxIno14LUO0EEoCn2XhGlw@public.gmane.org>
2017-07-15  2:33     ` [PATCH v5 3/3] pinctrl: sprd: Add Spreadtrum pin control driver kbuild test robot
2017-08-31  7:25     ` [RESEND PATCH " Linus Walleij
     [not found]       ` <CACRpkdZ=mHqGX0sdjWaOOvib9O-bW5tJoO1fJ4_-hxKODBusjw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-08-31  8:46         ` Baolin Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).