xref: /OK3568_Linux_fs/kernel/include/linux/pinctrl/pinctrl-state.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Standard pin control state definitions
4*4882a593Smuzhiyun  */
5*4882a593Smuzhiyun 
6*4882a593Smuzhiyun #ifndef __LINUX_PINCTRL_PINCTRL_STATE_H
7*4882a593Smuzhiyun #define __LINUX_PINCTRL_PINCTRL_STATE_H
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun /**
10*4882a593Smuzhiyun  * @PINCTRL_STATE_DEFAULT: the state the pinctrl handle shall be put
11*4882a593Smuzhiyun  *	into as default, usually this means the pins are up and ready to
12*4882a593Smuzhiyun  *	be used by the device driver. This state is commonly used by
13*4882a593Smuzhiyun  *	hogs to configure muxing and pins at boot, and also as a state
14*4882a593Smuzhiyun  *	to go into when returning from sleep and idle in
15*4882a593Smuzhiyun  *	.pm_runtime_resume() or ordinary .resume() for example.
16*4882a593Smuzhiyun  * @PINCTRL_STATE_INIT: normally the pinctrl will be set to "default"
17*4882a593Smuzhiyun  *	before the driver's probe() function is called.  There are some
18*4882a593Smuzhiyun  *	drivers where that is not appropriate becausing doing so would
19*4882a593Smuzhiyun  *	glitch the pins.  In those cases you can add an "init" pinctrl
20*4882a593Smuzhiyun  *	which is the state of the pins before drive probe.  After probe
21*4882a593Smuzhiyun  *	if the pins are still in "init" state they'll be moved to
22*4882a593Smuzhiyun  *	"default".
23*4882a593Smuzhiyun  * @PINCTRL_STATE_IDLE: the state the pinctrl handle shall be put into
24*4882a593Smuzhiyun  *	when the pins are idle. This is a state where the system is relaxed
25*4882a593Smuzhiyun  *	but not fully sleeping - some power may be on but clocks gated for
26*4882a593Smuzhiyun  *	example. Could typically be set from a pm_runtime_suspend() or
27*4882a593Smuzhiyun  *	pm_runtime_idle() operation.
28*4882a593Smuzhiyun  * @PINCTRL_STATE_SLEEP: the state the pinctrl handle shall be put into
29*4882a593Smuzhiyun  *	when the pins are sleeping. This is a state where the system is in
30*4882a593Smuzhiyun  *	its lowest sleep state. Could typically be set from an
31*4882a593Smuzhiyun  *	ordinary .suspend() function.
32*4882a593Smuzhiyun  */
33*4882a593Smuzhiyun #define PINCTRL_STATE_DEFAULT "default"
34*4882a593Smuzhiyun #define PINCTRL_STATE_INIT "init"
35*4882a593Smuzhiyun #define PINCTRL_STATE_IDLE "idle"
36*4882a593Smuzhiyun #define PINCTRL_STATE_SLEEP "sleep"
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun #endif /* __LINUX_PINCTRL_PINCTRL_STATE_H */
39