blob: af7f9535bab32bcaf29a1d253756cfb3f7526142 [file] [log] [blame]
Haavard Skinnemoen6a4e5222007-02-05 16:57:13 +01001#ifndef __ASM_AVR32_ARCH_GPIO_H
2#define __ASM_AVR32_ARCH_GPIO_H
3
4#include <linux/compiler.h>
5#include <asm/irq.h>
6
7
8/* Arch-neutral GPIO API */
9int __must_check gpio_request(unsigned int gpio, const char *label);
10void gpio_free(unsigned int gpio);
11
12int gpio_direction_input(unsigned int gpio);
David Brownell28735a72007-03-16 13:38:14 -080013int gpio_direction_output(unsigned int gpio, int value);
Haavard Skinnemoen6a4e5222007-02-05 16:57:13 +010014int gpio_get_value(unsigned int gpio);
15void gpio_set_value(unsigned int gpio, int value);
16
David Brownell2ae795b2007-05-24 13:52:08 -070017#include <asm-generic/gpio.h> /* cansleep wrappers */
18
Haavard Skinnemoen6a4e5222007-02-05 16:57:13 +010019static inline int gpio_to_irq(unsigned int gpio)
20{
21 return gpio + GPIO_IRQ_BASE;
22}
23
24static inline int irq_to_gpio(unsigned int irq)
25{
26 return irq - GPIO_IRQ_BASE;
27}
28
29#endif /* __ASM_AVR32_ARCH_GPIO_H */