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