Haavard Skinnemoen | 6a4e522 | 2007-02-05 16:57:13 +0100 | [diff] [blame] | 1 | #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 */ |
| 9 | int __must_check gpio_request(unsigned int gpio, const char *label); |
| 10 | void gpio_free(unsigned int gpio); |
| 11 | |
| 12 | int gpio_direction_input(unsigned int gpio); |
David Brownell | 28735a7 | 2007-03-16 13:38:14 -0800 | [diff] [blame] | 13 | int gpio_direction_output(unsigned int gpio, int value); |
Haavard Skinnemoen | 6a4e522 | 2007-02-05 16:57:13 +0100 | [diff] [blame] | 14 | int gpio_get_value(unsigned int gpio); |
| 15 | void gpio_set_value(unsigned int gpio, int value); |
| 16 | |
David Brownell | 2ae795b | 2007-05-24 13:52:08 -0700 | [diff] [blame] | 17 | #include <asm-generic/gpio.h> /* cansleep wrappers */ |
| 18 | |
Haavard Skinnemoen | 6a4e522 | 2007-02-05 16:57:13 +0100 | [diff] [blame] | 19 | static inline int gpio_to_irq(unsigned int gpio) |
| 20 | { |
| 21 | return gpio + GPIO_IRQ_BASE; |
| 22 | } |
| 23 | |
| 24 | static inline int irq_to_gpio(unsigned int irq) |
| 25 | { |
| 26 | return irq - GPIO_IRQ_BASE; |
| 27 | } |
| 28 | |
| 29 | #endif /* __ASM_AVR32_ARCH_GPIO_H */ |