00001 00041 #ifndef GPIO_GPIO_IRQ_HANDLER_H_INCLUDED 00042 #define GPIO_GPIO_IRQ_HANDLER_H_INCLUDED 00043 00044 #include <slist.h> 00045 #include <chip/portmux.h> 00046 00050 struct gpio_irq_handler { 00052 struct slist_node node; 00054 gpio_pin_t pin; 00056 void (*handler)(void *data); 00058 void *data; 00059 }; 00060 00068 static inline void gpio_init_irq_handler(struct gpio_irq_handler *irqh, 00069 gpio_pin_t pin, void (*handler)(void *data), void *data) 00070 { 00071 irqh->pin = pin; 00072 irqh->handler = handler; 00073 irqh->data = data; 00074 } 00075 00081 extern void gpio_register_irq_handler(struct gpio_irq_handler *irqh); 00082 00087 extern void gpio_priv_irq_group_interrupt(void *data); 00088 00089 #endif /* GPIO_GPIO_IRQ_HANDLER_H_INCLUDED */ 00090
1.5.8