#ifndef __ASM_AVR32_ARCH_GPIO_H #define __ASM_AVR32_ARCH_GPIO_H #include <linux/compiler.h> #include <asm/irq.h> /* Some GPIO chips can manage IRQs; some can't. The exact numbers can * be changed if needed, but for the moment they're not configurable. */ #define ARCH_NR_GPIOS (NR_GPIO_IRQS + 2 * 32) /* Arch-neutral GPIO API, supporting both "native" and external GPIOs. */ #include <asm-generic/gpio.h> static inline int gpio_get_value(unsigned int gpio) { return __gpio_get_value(gpio); } static inline void gpio_set_value(unsigned int gpio, int value) { __gpio_set_value(gpio, value); } static inline int gpio_cansleep(unsigned int gpio) { return __gpio_cansleep(gpio); } static inline int gpio_to_irq(unsigned int gpio) { if (gpio < NR_GPIO_IRQS) return gpio + GPIO_IRQ_BASE; return -EINVAL; } static inline int irq_to_gpio(unsigned int irq) { return irq - GPIO_IRQ_BASE; } #endif /* __ASM_AVR32_ARCH_GPIO_H */ |