Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
linux
gpio.h
Go to the documentation of this file.
1
#ifndef __LINUX_GPIO_H
2
#define __LINUX_GPIO_H
3
4
#include <linux/errno.h>
5
6
/* see Documentation/gpio.txt */
7
8
/* make these flag values available regardless of GPIO kconfig options */
9
#define GPIOF_DIR_OUT (0 << 0)
10
#define GPIOF_DIR_IN (1 << 0)
11
12
#define GPIOF_INIT_LOW (0 << 1)
13
#define GPIOF_INIT_HIGH (1 << 1)
14
15
#define GPIOF_IN (GPIOF_DIR_IN)
16
#define GPIOF_OUT_INIT_LOW (GPIOF_DIR_OUT | GPIOF_INIT_LOW)
17
#define GPIOF_OUT_INIT_HIGH (GPIOF_DIR_OUT | GPIOF_INIT_HIGH)
18
19
/* Gpio pin is open drain */
20
#define GPIOF_OPEN_DRAIN (1 << 2)
21
22
/* Gpio pin is open source */
23
#define GPIOF_OPEN_SOURCE (1 << 3)
24
25
#define GPIOF_EXPORT (1 << 4)
26
#define GPIOF_EXPORT_CHANGEABLE (1 << 5)
27
#define GPIOF_EXPORT_DIR_FIXED (GPIOF_EXPORT)
28
#define GPIOF_EXPORT_DIR_CHANGEABLE (GPIOF_EXPORT | GPIOF_EXPORT_CHANGEABLE)
29
36
struct
gpio
{
37
unsigned
gpio
;
38
unsigned
long
flags
;
39
const
char
*
label
;
40
};
41
42
#ifdef CONFIG_GENERIC_GPIO
43
44
#ifdef CONFIG_ARCH_HAVE_CUSTOM_GPIO_H
45
#include <asm/gpio.h>
46
#else
47
48
#include <
asm-generic/gpio.h
>
49
50
static
inline
int
gpio_get_value
(
unsigned
int
gpio
)
51
{
52
return
__gpio_get_value
(gpio);
53
}
54
55
static
inline
void
gpio_set_value
(
unsigned
int
gpio
,
int
value
)
56
{
57
__gpio_set_value
(gpio, value);
58
}
59
60
static
inline
int
gpio_cansleep
(
unsigned
int
gpio
)
61
{
62
return
__gpio_cansleep
(gpio);
63
}
64
65
static
inline
int
gpio_to_irq
(
unsigned
int
gpio
)
66
{
67
return
__gpio_to_irq
(gpio);
68
}
69
70
static
inline
int
irq_to_gpio
(
unsigned
int
irq)
71
{
72
return
-
EINVAL
;
73
}
74
75
#endif
76
77
#else
78
79
#include <linux/kernel.h>
80
#include <linux/types.h>
81
#include <linux/errno.h>
82
#include <
linux/bug.h
>
83
84
struct
device
;
85
struct
gpio_chip;
86
87
static
inline
bool
gpio_is_valid(
int
number)
88
{
89
return
false
;
90
}
91
92
static
inline
int
gpio_request
(
unsigned
gpio
,
const
char
*
label
)
93
{
94
return
-
ENOSYS
;
95
}
96
97
static
inline
int
devm_gpio_request
(
struct
device
*
dev
,
unsigned
gpio
,
98
const
char
*
label
)
99
{
100
return
-
ENOSYS
;
101
}
102
103
static
inline
int
gpio_request_one
(
unsigned
gpio
,
104
unsigned
long
flags
,
const
char
*
label
)
105
{
106
return
-
ENOSYS
;
107
}
108
109
static
inline
int
devm_gpio_request_one
(
struct
device
*
dev
,
unsigned
gpio
,
110
unsigned
long
flags
,
const
char
*
label
)
111
{
112
return
-
ENOSYS
;
113
}
114
115
static
inline
int
gpio_request_array
(
const
struct
gpio
*array,
size_t
num)
116
{
117
return
-
ENOSYS
;
118
}
119
120
static
inline
void
gpio_free
(
unsigned
gpio
)
121
{
122
might_sleep
();
123
124
/* GPIO can never have been requested */
125
WARN_ON
(1);
126
}
127
128
static
inline
void
devm_gpio_free
(
struct
device
*
dev
,
unsigned
gpio
)
129
{
130
might_sleep
();
131
132
/* GPIO can never have been requested */
133
WARN_ON
(1);
134
}
135
136
static
inline
void
gpio_free_array
(
const
struct
gpio
*array,
size_t
num)
137
{
138
might_sleep
();
139
140
/* GPIO can never have been requested */
141
WARN_ON
(1);
142
}
143
144
static
inline
int
gpio_direction_input
(
unsigned
gpio
)
145
{
146
return
-
ENOSYS
;
147
}
148
149
static
inline
int
gpio_direction_output
(
unsigned
gpio
,
int
value
)
150
{
151
return
-
ENOSYS
;
152
}
153
154
static
inline
int
gpio_set_debounce
(
unsigned
gpio
,
unsigned
debounce)
155
{
156
return
-
ENOSYS
;
157
}
158
159
static
inline
int
gpio_get_value
(
unsigned
gpio
)
160
{
161
/* GPIO can never have been requested or set as {in,out}put */
162
WARN_ON
(1);
163
return
0;
164
}
165
166
static
inline
void
gpio_set_value
(
unsigned
gpio
,
int
value
)
167
{
168
/* GPIO can never have been requested or set as output */
169
WARN_ON
(1);
170
}
171
172
static
inline
int
gpio_cansleep
(
unsigned
gpio
)
173
{
174
/* GPIO can never have been requested or set as {in,out}put */
175
WARN_ON
(1);
176
return
0;
177
}
178
179
static
inline
int
gpio_get_value_cansleep
(
unsigned
gpio
)
180
{
181
/* GPIO can never have been requested or set as {in,out}put */
182
WARN_ON
(1);
183
return
0;
184
}
185
186
static
inline
void
gpio_set_value_cansleep
(
unsigned
gpio
,
int
value
)
187
{
188
/* GPIO can never have been requested or set as output */
189
WARN_ON
(1);
190
}
191
192
static
inline
int
gpio_export(
unsigned
gpio
,
bool
direction_may_change)
193
{
194
/* GPIO can never have been requested or set as {in,out}put */
195
WARN_ON
(1);
196
return
-
EINVAL
;
197
}
198
199
static
inline
int
gpio_export_link(
struct
device
*
dev
,
const
char
*
name
,
200
unsigned
gpio
)
201
{
202
/* GPIO can never have been exported */
203
WARN_ON
(1);
204
return
-
EINVAL
;
205
}
206
207
static
inline
int
gpio_sysfs_set_active_low(
unsigned
gpio
,
int
value
)
208
{
209
/* GPIO can never have been requested */
210
WARN_ON
(1);
211
return
-
EINVAL
;
212
}
213
214
static
inline
void
gpio_unexport(
unsigned
gpio
)
215
{
216
/* GPIO can never have been exported */
217
WARN_ON
(1);
218
}
219
220
static
inline
int
gpio_to_irq
(
unsigned
gpio
)
221
{
222
/* GPIO can never have been requested or set as input */
223
WARN_ON
(1);
224
return
-
EINVAL
;
225
}
226
227
static
inline
int
irq_to_gpio
(
unsigned
irq)
228
{
229
/* irq can never have been returned from gpio_to_irq() */
230
WARN_ON
(1);
231
return
-
EINVAL
;
232
}
233
234
#endif
235
236
#endif
/* __LINUX_GPIO_H */
Generated on Thu Jan 10 2013 12:49:41 for Linux Kernel by
1.8.2