Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
| 2 | /* |
| 3 | * Standard pin control state definitions |
| 4 | */ |
| 5 | |
David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame^] | 6 | #ifndef __LINUX_PINCTRL_PINCTRL_STATE_H |
| 7 | #define __LINUX_PINCTRL_PINCTRL_STATE_H |
| 8 | |
Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 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" |
David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame^] | 37 | |
| 38 | #endif /* __LINUX_PINCTRL_PINCTRL_STATE_H */ |