Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/avr32/mach-at32ap/include/mach/gpio.h
10820 views
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
17
static inline int gpio_get_value(unsigned int gpio)
18
{
19
return __gpio_get_value(gpio);
20
}
21
22
static inline void gpio_set_value(unsigned int gpio, int value)
23
{
24
__gpio_set_value(gpio, value);
25
}
26
27
static inline int gpio_cansleep(unsigned int gpio)
28
{
29
return __gpio_cansleep(gpio);
30
}
31
32
33
static 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
40
static 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
47