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

source code of linux/include/linux/pinctrl/pinctrl-state.h