Lines Matching full:gpio
3 * Coldfire generic GPIO support.
12 #include <asm-generic/gpio.h>
15 int __mcfgpio_get_value(unsigned gpio);
16 void __mcfgpio_set_value(unsigned gpio, int value);
17 int __mcfgpio_direction_input(unsigned gpio);
18 int __mcfgpio_direction_output(unsigned gpio, int value);
19 int __mcfgpio_request(unsigned gpio);
20 void __mcfgpio_free(unsigned gpio);
23 static inline int __gpio_get_value(unsigned gpio) in __gpio_get_value() argument
25 if (gpio < MCFGPIO_PIN_MAX) in __gpio_get_value()
26 return __mcfgpio_get_value(gpio); in __gpio_get_value()
31 static inline void __gpio_set_value(unsigned gpio, int value) in __gpio_set_value() argument
33 if (gpio < MCFGPIO_PIN_MAX) in __gpio_set_value()
34 __mcfgpio_set_value(gpio, value); in __gpio_set_value()
37 static inline int __gpio_cansleep(unsigned gpio) in __gpio_cansleep() argument
39 if (gpio < MCFGPIO_PIN_MAX) in __gpio_cansleep()
45 static inline int __gpio_to_irq(unsigned gpio) in __gpio_to_irq() argument
50 static inline int gpio_direction_input(unsigned gpio) in gpio_direction_input() argument
52 if (gpio < MCFGPIO_PIN_MAX) in gpio_direction_input()
53 return __mcfgpio_direction_input(gpio); in gpio_direction_input()
58 static inline int gpio_direction_output(unsigned gpio, int value) in gpio_direction_output() argument
60 if (gpio < MCFGPIO_PIN_MAX) in gpio_direction_output()
61 return __mcfgpio_direction_output(gpio, value); in gpio_direction_output()
66 static inline int gpio_request(unsigned gpio, const char *label) in gpio_request() argument
68 if (gpio < MCFGPIO_PIN_MAX) in gpio_request()
69 return __mcfgpio_request(gpio); in gpio_request()
74 static inline void gpio_free(unsigned gpio) in gpio_free() argument
76 if (gpio < MCFGPIO_PIN_MAX) in gpio_free()
77 __mcfgpio_free(gpio); in gpio_free()
84 * The Freescale Coldfire family is quite varied in how they implement GPIO.
102 /* These parts have GPIO organized by 8 bit ports */
111 /* These parts have GPIO organized by 16 bit ports */
120 /* These parts have GPIO organized by 32 bit ports */
129 #define mcfgpio_bit(gpio) (1 << ((gpio) % MCFGPIO_PORTSIZE)) argument
130 #define mcfgpio_port(gpio) ((gpio) / MCFGPIO_PORTSIZE) argument
137 * These parts have an 'Edge' Port module (external interrupt/GPIO) which uses
138 * read-modify-write to change an output and a GPIO module which has separate
144 * read-modify-write as well as those controlled by the EPORT and GPIO modules.
148 /* The m5441x EPORT doesn't have its own GPIO port, uses PORT C */
154 #define MCFGPIO_SETR_PORT(gpio) (MCFGPIO_SETR + \ argument
155 mcfgpio_port(gpio - MCFGPIO_SCR_START))
157 #define MCFGPIO_CLRR_PORT(gpio) (MCFGPIO_CLRR + \ argument
158 mcfgpio_port(gpio - MCFGPIO_SCR_START))
163 #define MCFGPIO_SETR_PORT(gpio) 0 argument
164 #define MCFGPIO_CLRR_PORT(gpio) 0 argument
171 /* return the port pin data register for a gpio */
172 static inline u32 __mcfgpio_ppdr(unsigned gpio) in __mcfgpio_ppdr() argument
178 if (gpio < 16) in __mcfgpio_ppdr()
180 else if (gpio < 32) in __mcfgpio_ppdr()
185 if (gpio < 32) in __mcfgpio_ppdr()
194 if (gpio < 8) in __mcfgpio_ppdr()
197 else if (gpio < 16) in __mcfgpio_ppdr()
199 else if (gpio < 24) in __mcfgpio_ppdr()
201 else if (gpio < 32) in __mcfgpio_ppdr()
203 else if (gpio < 40) in __mcfgpio_ppdr()
208 return MCFGPIO_PPDR + mcfgpio_port(gpio - MCFGPIO_SCR_START); in __mcfgpio_ppdr()
214 /* return the port output data register for a gpio */
215 static inline u32 __mcfgpio_podr(unsigned gpio) in __mcfgpio_podr() argument
221 if (gpio < 16) in __mcfgpio_podr()
223 else if (gpio < 32) in __mcfgpio_podr()
228 if (gpio < 32) in __mcfgpio_podr()
237 if (gpio < 8) in __mcfgpio_podr()
240 else if (gpio < 16) in __mcfgpio_podr()
242 else if (gpio < 24) in __mcfgpio_podr()
244 else if (gpio < 32) in __mcfgpio_podr()
246 else if (gpio < 40) in __mcfgpio_podr()
251 return MCFGPIO_PODR + mcfgpio_port(gpio - MCFGPIO_SCR_START); in __mcfgpio_podr()
257 /* return the port direction data register for a gpio */
258 static inline u32 __mcfgpio_pddr(unsigned gpio) in __mcfgpio_pddr() argument
264 if (gpio < 16) in __mcfgpio_pddr()
266 else if (gpio < 32) in __mcfgpio_pddr()
271 if (gpio < 32) in __mcfgpio_pddr()
280 if (gpio < 8) in __mcfgpio_pddr()
283 else if (gpio < 16) in __mcfgpio_pddr()
285 else if (gpio < 24) in __mcfgpio_pddr()
287 else if (gpio < 32) in __mcfgpio_pddr()
289 else if (gpio < 40) in __mcfgpio_pddr()
294 return MCFGPIO_PDDR + mcfgpio_port(gpio - MCFGPIO_SCR_START); in __mcfgpio_pddr()