linux/arch/avr32/mach-at32ap/include/mach/gpio.h
<<
>>
Prefs
   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/* Some GPIO chips can manage IRQs; some can't.  The exact numbers can
   9 * be changed if needed, but for the moment they're not configurable.
  10 */
  11#define ARCH_NR_GPIOS   (NR_GPIO_IRQS + 2 * 32)
  12
  13
  14/* Arch-neutral GPIO API, supporting both "native" and external GPIOs. */
  15#include <asm-generic/gpio.h>
  16
  17static inline int gpio_get_value(unsigned int gpio)
  18{
  19        return __gpio_get_value(gpio);
  20}
  21
  22static inline void gpio_set_value(unsigned int gpio, int value)
  23{
  24        __gpio_set_value(gpio, value);
  25}
  26
  27static inline int gpio_cansleep(unsigned int gpio)
  28{
  29        return __gpio_cansleep(gpio);
  30}
  31
  32
  33static inline int gpio_to_irq(unsigned int gpio)
  34{
  35        if (gpio < NR_GPIO_IRQS)
  36                return gpio + GPIO_IRQ_BASE;
  37        return -EINVAL;
  38}
  39
  40static inline int irq_to_gpio(unsigned int irq)
  41{
  42        return irq - GPIO_IRQ_BASE;
  43}
  44
  45#endif /* __ASM_AVR32_ARCH_GPIO_H */
  46