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