aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/pinctrl
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2012-02-08 19:52:22 -0500
committerLinus Walleij <linus.walleij@linaro.org>2012-02-10 15:32:57 -0500
commit28a8d14cc74a0180323d9150c3d3dbf9dd60d55a (patch)
tree7c54436dbe7fbe172f6a293a21174a612ccd9634 /include/linux/pinctrl
parentf4e66983293f78e177bb210d19a46f083f5e8197 (diff)
pinctrl: break out a pinctrl consumer header
This breaks out a <linux/pinctrl/consumer.h> header to be used by all pinmux and pinconfig alike, so drivers needing services from pinctrl does not need to include different headers. This is similar to the approach taken by the regulator API. Acked-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'include/linux/pinctrl')
-rw-r--r--include/linux/pinctrl/consumer.h118
-rw-r--r--include/linux/pinctrl/pinconf.h39
-rw-r--r--include/linux/pinctrl/pinmux.h52
3 files changed, 118 insertions, 91 deletions
diff --git a/include/linux/pinctrl/consumer.h b/include/linux/pinctrl/consumer.h
new file mode 100644
index 00000000000..9c8513d5d0f
--- /dev/null
+++ b/include/linux/pinctrl/consumer.h
@@ -0,0 +1,118 @@
1/*
2 * Consumer interface the pin control subsystem
3 *
4 * Copyright (C) 2012 ST-Ericsson SA
5 * Written on behalf of Linaro for ST-Ericsson
6 * Based on bits of regulator core, gpio core and clk core
7 *
8 * Author: Linus Walleij <linus.walleij@linaro.org>
9 *
10 * License terms: GNU General Public License (GPL) version 2
11 */
12#ifndef __LINUX_PINCTRL_CONSUMER_H
13#define __LINUX_PINCTRL_CONSUMER_H
14
15#include <linux/list.h>
16#include <linux/seq_file.h>
17#include "pinctrl.h"
18
19/* This struct is private to the core and should be regarded as a cookie */
20struct pinmux;
21
22#ifdef CONFIG_PINMUX
23
24/* External interface to pinmux */
25extern int pinmux_request_gpio(unsigned gpio);
26extern void pinmux_free_gpio(unsigned gpio);
27extern int pinmux_gpio_direction_input(unsigned gpio);
28extern int pinmux_gpio_direction_output(unsigned gpio);
29extern struct pinmux * __must_check pinmux_get(struct device *dev, const char *name);
30extern void pinmux_put(struct pinmux *pmx);
31extern int pinmux_enable(struct pinmux *pmx);
32extern void pinmux_disable(struct pinmux *pmx);
33
34#else /* !CONFIG_PINMUX */
35
36static inline int pinmux_request_gpio(unsigned gpio)
37{
38 return 0;
39}
40
41static inline void pinmux_free_gpio(unsigned gpio)
42{
43}
44
45static inline int pinmux_gpio_direction_input(unsigned gpio)
46{
47 return 0;
48}
49
50static inline int pinmux_gpio_direction_output(unsigned gpio)
51{
52 return 0;
53}
54
55static inline struct pinmux * __must_check pinmux_get(struct device *dev, const char *name)
56{
57 return NULL;
58}
59
60static inline void pinmux_put(struct pinmux *pmx)
61{
62}
63
64static inline int pinmux_enable(struct pinmux *pmx)
65{
66 return 0;
67}
68
69static inline void pinmux_disable(struct pinmux *pmx)
70{
71}
72
73#endif /* CONFIG_PINMUX */
74
75#ifdef CONFIG_PINCONF
76
77extern int pin_config_get(const char *dev_name, const char *name,
78 unsigned long *config);
79extern int pin_config_set(const char *dev_name, const char *name,
80 unsigned long config);
81extern int pin_config_group_get(const char *dev_name,
82 const char *pin_group,
83 unsigned long *config);
84extern int pin_config_group_set(const char *dev_name,
85 const char *pin_group,
86 unsigned long config);
87
88#else
89
90static inline int pin_config_get(const char *dev_name, const char *name,
91 unsigned long *config)
92{
93 return 0;
94}
95
96static inline int pin_config_set(const char *dev_name, const char *name,
97 unsigned long config)
98{
99 return 0;
100}
101
102static inline int pin_config_group_get(const char *dev_name,
103 const char *pin_group,
104 unsigned long *config)
105{
106 return 0;
107}
108
109static inline int pin_config_group_set(const char *dev_name,
110 const char *pin_group,
111 unsigned long config)
112{
113 return 0;
114}
115
116#endif
117
118#endif /* __LINUX_PINCTRL_CONSUMER_H */
diff --git a/include/linux/pinctrl/pinconf.h b/include/linux/pinctrl/pinconf.h
index 477922cf043..f8cf156873d 100644
--- a/include/linux/pinctrl/pinconf.h
+++ b/include/linux/pinctrl/pinconf.h
@@ -53,45 +53,6 @@ struct pinconf_ops {
53 unsigned selector); 53 unsigned selector);
54}; 54};
55 55
56extern int pin_config_get(const char *dev_name, const char *name,
57 unsigned long *config);
58extern int pin_config_set(const char *dev_name, const char *name,
59 unsigned long config);
60extern int pin_config_group_get(const char *dev_name,
61 const char *pin_group,
62 unsigned long *config);
63extern int pin_config_group_set(const char *dev_name,
64 const char *pin_group,
65 unsigned long config);
66
67#else
68
69static inline int pin_config_get(const char *dev_name, const char *name,
70 unsigned long *config)
71{
72 return 0;
73}
74
75static inline int pin_config_set(const char *dev_name, const char *name,
76 unsigned long config)
77{
78 return 0;
79}
80
81static inline int pin_config_group_get(const char *dev_name,
82 const char *pin_group,
83 unsigned long *config)
84{
85 return 0;
86}
87
88static inline int pin_config_group_set(const char *dev_name,
89 const char *pin_group,
90 unsigned long config)
91{
92 return 0;
93}
94
95#endif 56#endif
96 57
97#endif /* __LINUX_PINCTRL_PINCONF_H */ 58#endif /* __LINUX_PINCTRL_PINCONF_H */
diff --git a/include/linux/pinctrl/pinmux.h b/include/linux/pinctrl/pinmux.h
index 937b3e2fa36..47e9237edd4 100644
--- a/include/linux/pinctrl/pinmux.h
+++ b/include/linux/pinctrl/pinmux.h
@@ -16,9 +16,6 @@
16#include <linux/seq_file.h> 16#include <linux/seq_file.h>
17#include "pinctrl.h" 17#include "pinctrl.h"
18 18
19/* This struct is private to the core and should be regarded as a cookie */
20struct pinmux;
21
22#ifdef CONFIG_PINMUX 19#ifdef CONFIG_PINMUX
23 20
24struct pinctrl_dev; 21struct pinctrl_dev;
@@ -88,55 +85,6 @@ struct pinmux_ops {
88 bool input); 85 bool input);
89}; 86};
90 87
91/* External interface to pinmux */
92extern int pinmux_request_gpio(unsigned gpio);
93extern void pinmux_free_gpio(unsigned gpio);
94extern int pinmux_gpio_direction_input(unsigned gpio);
95extern int pinmux_gpio_direction_output(unsigned gpio);
96extern struct pinmux * __must_check pinmux_get(struct device *dev, const char *name);
97extern void pinmux_put(struct pinmux *pmx);
98extern int pinmux_enable(struct pinmux *pmx);
99extern void pinmux_disable(struct pinmux *pmx);
100
101#else /* !CONFIG_PINMUX */
102
103static inline int pinmux_request_gpio(unsigned gpio)
104{
105 return 0;
106}
107
108static inline void pinmux_free_gpio(unsigned gpio)
109{
110}
111
112static inline int pinmux_gpio_direction_input(unsigned gpio)
113{
114 return 0;
115}
116
117static inline int pinmux_gpio_direction_output(unsigned gpio)
118{
119 return 0;
120}
121
122static inline struct pinmux * __must_check pinmux_get(struct device *dev, const char *name)
123{
124 return NULL;
125}
126
127static inline void pinmux_put(struct pinmux *pmx)
128{
129}
130
131static inline int pinmux_enable(struct pinmux *pmx)
132{
133 return 0;
134}
135
136static inline void pinmux_disable(struct pinmux *pmx)
137{
138}
139
140#endif /* CONFIG_PINMUX */ 88#endif /* CONFIG_PINMUX */
141 89
142#endif /* __LINUX_PINCTRL_PINMUX_H */ 90#endif /* __LINUX_PINCTRL_PINMUX_H */