diff options
author | Stephen Warren <swarren@nvidia.com> | 2012-03-02 15:05:48 -0500 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2012-03-05 05:25:11 -0500 |
commit | 1e2082b520721734c358f776d34a069867214c8e (patch) | |
tree | 4d11e15a4127ad69faf7555864480a6fafe5422c /drivers/pinctrl/pinconf.h | |
parent | 6e5e959dde0d92d177f035652aeaa77f9330c9c6 (diff) |
pinctrl: enhance mapping table to support pin config operations
The pinctrl mapping table can now contain entries to:
* Set the mux function of a pin group
* Apply a set of pin config options to a pin or a group
This allows pinctrl_select_state() to apply pin configs settings as well
as mux settings.
v3: Fix find_pinctrl() to iterate over the correct list.
s/_MUX_CONFIGS_/_CONFIGS_/ in mapping table macros.
Fix documentation to use correct mapping table macro.
v2: Added numerous extra PIN_MAP_*() special-case macros.
Fixed kerneldoc typo. Delete pinctrl_get_pin_id() and
replace it with pin_get_from_name(). Various minor fixes.
Updates due to rebase.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Dong Aisheng <dong.aisheng@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/pinconf.h')
-rw-r--r-- | drivers/pinctrl/pinconf.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/drivers/pinctrl/pinconf.h b/drivers/pinctrl/pinconf.h index 1d6ea9de75fc..0ded227661a5 100644 --- a/drivers/pinctrl/pinconf.h +++ b/drivers/pinctrl/pinconf.h | |||
@@ -15,6 +15,16 @@ | |||
15 | 15 | ||
16 | int pinconf_check_ops(struct pinctrl_dev *pctldev); | 16 | int pinconf_check_ops(struct pinctrl_dev *pctldev); |
17 | 17 | ||
18 | int pinconf_validate_map(struct pinctrl_map const *map, int i); | ||
19 | |||
20 | int pinconf_map_to_setting(struct pinctrl_map const *map, | ||
21 | struct pinctrl_setting *setting); | ||
22 | void pinconf_free_setting(struct pinctrl_setting const *setting); | ||
23 | int pinconf_apply_setting(struct pinctrl_setting const *setting); | ||
24 | |||
25 | void pinconf_show_map(struct seq_file *s, struct pinctrl_map const *map); | ||
26 | void pinconf_show_setting(struct seq_file *s, | ||
27 | struct pinctrl_setting const *setting); | ||
18 | void pinconf_init_device_debugfs(struct dentry *devroot, | 28 | void pinconf_init_device_debugfs(struct dentry *devroot, |
19 | struct pinctrl_dev *pctldev); | 29 | struct pinctrl_dev *pctldev); |
20 | 30 | ||
@@ -25,6 +35,36 @@ static inline int pinconf_check_ops(struct pinctrl_dev *pctldev) | |||
25 | return 0; | 35 | return 0; |
26 | } | 36 | } |
27 | 37 | ||
38 | static inline int pinconf_validate_map(struct pinctrl_map const *map, int i) | ||
39 | { | ||
40 | return 0; | ||
41 | } | ||
42 | |||
43 | static inline int pinconf_map_to_setting(struct pinctrl_map const *map, | ||
44 | struct pinctrl_setting *setting) | ||
45 | { | ||
46 | return 0; | ||
47 | } | ||
48 | |||
49 | static inline void pinconf_free_setting(struct pinctrl_setting const *setting) | ||
50 | { | ||
51 | } | ||
52 | |||
53 | static inline int pinconf_apply_setting(struct pinctrl_setting const *setting) | ||
54 | { | ||
55 | return 0; | ||
56 | } | ||
57 | |||
58 | static inline void pinconf_show_map(struct seq_file *s, | ||
59 | struct pinctrl_map const *map) | ||
60 | { | ||
61 | } | ||
62 | |||
63 | static inline void pinconf_show_setting(struct seq_file *s, | ||
64 | struct pinctrl_setting const *setting) | ||
65 | { | ||
66 | } | ||
67 | |||
28 | static inline void pinconf_init_device_debugfs(struct dentry *devroot, | 68 | static inline void pinconf_init_device_debugfs(struct dentry *devroot, |
29 | struct pinctrl_dev *pctldev) | 69 | struct pinctrl_dev *pctldev) |
30 | { | 70 | { |