diff options
Diffstat (limited to 'include/linux/pinctrl')
| -rw-r--r-- | include/linux/pinctrl/devinfo.h | 10 | ||||
| -rw-r--r-- | include/linux/pinctrl/pinctrl-state.h | 8 |
2 files changed, 18 insertions, 0 deletions
diff --git a/include/linux/pinctrl/devinfo.h b/include/linux/pinctrl/devinfo.h index 281cb91ddcf5..05082e407c4a 100644 --- a/include/linux/pinctrl/devinfo.h +++ b/include/linux/pinctrl/devinfo.h | |||
| @@ -24,10 +24,14 @@ | |||
| 24 | * struct dev_pin_info - pin state container for devices | 24 | * struct dev_pin_info - pin state container for devices |
| 25 | * @p: pinctrl handle for the containing device | 25 | * @p: pinctrl handle for the containing device |
| 26 | * @default_state: the default state for the handle, if found | 26 | * @default_state: the default state for the handle, if found |
| 27 | * @init_state: the state at probe time, if found | ||
| 28 | * @sleep_state: the state at suspend time, if found | ||
| 29 | * @idle_state: the state at idle (runtime suspend) time, if found | ||
| 27 | */ | 30 | */ |
| 28 | struct dev_pin_info { | 31 | struct dev_pin_info { |
| 29 | struct pinctrl *p; | 32 | struct pinctrl *p; |
| 30 | struct pinctrl_state *default_state; | 33 | struct pinctrl_state *default_state; |
| 34 | struct pinctrl_state *init_state; | ||
| 31 | #ifdef CONFIG_PM | 35 | #ifdef CONFIG_PM |
| 32 | struct pinctrl_state *sleep_state; | 36 | struct pinctrl_state *sleep_state; |
| 33 | struct pinctrl_state *idle_state; | 37 | struct pinctrl_state *idle_state; |
| @@ -35,6 +39,7 @@ struct dev_pin_info { | |||
| 35 | }; | 39 | }; |
| 36 | 40 | ||
| 37 | extern int pinctrl_bind_pins(struct device *dev); | 41 | extern int pinctrl_bind_pins(struct device *dev); |
| 42 | extern int pinctrl_init_done(struct device *dev); | ||
| 38 | 43 | ||
| 39 | #else | 44 | #else |
| 40 | 45 | ||
| @@ -45,5 +50,10 @@ static inline int pinctrl_bind_pins(struct device *dev) | |||
| 45 | return 0; | 50 | return 0; |
| 46 | } | 51 | } |
| 47 | 52 | ||
| 53 | static inline int pinctrl_init_done(struct device *dev) | ||
| 54 | { | ||
| 55 | return 0; | ||
| 56 | } | ||
| 57 | |||
| 48 | #endif /* CONFIG_PINCTRL */ | 58 | #endif /* CONFIG_PINCTRL */ |
| 49 | #endif /* PINCTRL_DEVINFO_H */ | 59 | #endif /* PINCTRL_DEVINFO_H */ |
diff --git a/include/linux/pinctrl/pinctrl-state.h b/include/linux/pinctrl/pinctrl-state.h index b5919f8e6d1a..23073519339f 100644 --- a/include/linux/pinctrl/pinctrl-state.h +++ b/include/linux/pinctrl/pinctrl-state.h | |||
| @@ -9,6 +9,13 @@ | |||
| 9 | * hogs to configure muxing and pins at boot, and also as a state | 9 | * hogs to configure muxing and pins at boot, and also as a state |
| 10 | * to go into when returning from sleep and idle in | 10 | * to go into when returning from sleep and idle in |
| 11 | * .pm_runtime_resume() or ordinary .resume() for example. | 11 | * .pm_runtime_resume() or ordinary .resume() for example. |
| 12 | * @PINCTRL_STATE_INIT: normally the pinctrl will be set to "default" | ||
| 13 | * before the driver's probe() function is called. There are some | ||
| 14 | * drivers where that is not appropriate becausing doing so would | ||
| 15 | * glitch the pins. In those cases you can add an "init" pinctrl | ||
| 16 | * which is the state of the pins before drive probe. After probe | ||
| 17 | * if the pins are still in "init" state they'll be moved to | ||
| 18 | * "default". | ||
| 12 | * @PINCTRL_STATE_IDLE: the state the pinctrl handle shall be put into | 19 | * @PINCTRL_STATE_IDLE: the state the pinctrl handle shall be put into |
| 13 | * when the pins are idle. This is a state where the system is relaxed | 20 | * when the pins are idle. This is a state where the system is relaxed |
| 14 | * but not fully sleeping - some power may be on but clocks gated for | 21 | * but not fully sleeping - some power may be on but clocks gated for |
| @@ -20,5 +27,6 @@ | |||
| 20 | * ordinary .suspend() function. | 27 | * ordinary .suspend() function. |
| 21 | */ | 28 | */ |
| 22 | #define PINCTRL_STATE_DEFAULT "default" | 29 | #define PINCTRL_STATE_DEFAULT "default" |
| 30 | #define PINCTRL_STATE_INIT "init" | ||
| 23 | #define PINCTRL_STATE_IDLE "idle" | 31 | #define PINCTRL_STATE_IDLE "idle" |
| 24 | #define PINCTRL_STATE_SLEEP "sleep" | 32 | #define PINCTRL_STATE_SLEEP "sleep" |
