Semi-decennial update. 50% code inflation.
[cbaos.git] / include / gpio.h
blob41caed19e8a00eb6db9dca2bb1e69a87967c18a8
1 #ifndef _GPIO_H_
2 #define _GPIO_H_
4 enum gpio_mode {
5 GPIO_INPUT = 0x10,
6 GPIO_INPUT_PU = 0x11,
7 GPIO_INPUT_PD = 0x12,
8 GPIO_OUTPUT = 0x20,
9 GPIO_OUTPUT_SLOW = 0x21,
10 GPIO_ANALOG = 0x30,
13 enum gpio_irq_edge {
14 GPIO_IRQ_DISABLED,
15 GPIO_IRQ_EDGE_RISING,
16 GPIO_IRQ_EDGE_FALLING,
17 GPIO_IRQ_EDGE_BOTH,
21 void gpio_init(int pin, enum gpio_mode mode, int value);
22 void gpio_set(int pin, int value);
23 int gpio_get(int pin);
25 int gpio_irq_register(int pin, enum gpio_irq_edge edge, int (*handler)(int pin));
26 void gpio_irq_debug(void);
28 #endif