blob: 80a21aa9ae77016158e12bad83064ca4a9d2a39f [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
17static inline int gpio_to_irq(unsigned int gpio)
18{
19 return gpio + GPIO_IRQ_BASE;
20}
21
22static inline int irq_to_gpio(unsigned int irq)
23{
24 return irq - GPIO_IRQ_BASE;
25}
26
27#endif /* __ASM_AVR32_ARCH_GPIO_H */