pinctrl-state.h 1.7 KB

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