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