--- /dev/null
+#ifndef _LWK_INTERRUPT_H
+#define _LWK_INTERRUPT_H
+
+/**
+ * IRQ handler return type.
+ *
+ * IRQ_NONE means we didn't handle the interrupt.
+ * IRQ_HANDLED means we did handle the interrupt.
+ * IRQ_RETVAL(x) returns IRQ_HANDLED if x is non-zero, IRQ_NONE otherwise.
+ */
+typedef int irqreturn_t;
+#define IRQ_NONE (0)
+#define IRQ_HANDLED (1)
+#define IRQ_RETVAL ((x) != 0)
+
+/**
+ * IRQ handler prototype.
+ */
+typedef irqreturn_t (*irq_handler_t)(unsigned int irq, void *dev_id);
+
+/**
+ * Registers an interrupt handler.
+ */
+extern int request_irq(unsigned int irq,
+ irq_handler_t handler,
+ unsigned long irqflags,
+ const char *devname,
+ void *dev_id);
+
+/**
+ * Unregisters an interrupt handler.
+ */
+extern void free_irq(unsigned int irq, void *dev_id);
+
+#endif