GPIO pin Interrupt handlers in linux (arm)
arm, interrupt, linux
Solution
It really depends on the actual BSP you're using. AFAIK there's no "generic ARM9 gpio interrupt" in Linux, it's pretty much board-specific. E.g. here's an example for a PCA100 board:
static int pca100_sdhc2_init(struct device *dev, irq_handler_t detect_irq,
void *data)
{
int ret;
ret = request_irq(IRQ_GPIOC(29), detect_irq,
IRQF_DISABLED | IRQF_TRIGGER_FALLING,
"imx-mmc-detect", data);
if (ret)
printk(KERN_ERR
"pca100: Failed to reuest irq for sd/mmc detection\n");
return ret;
}
static void pca100_sdhc2_exit(struct device *dev, void *data)
{
free_irq(IRQ_GPIOC(29), data);
}
Problem
Can somebody point me at some sample code for enabling and handling user pin IO interrupts (C language) for an ARM9 in linux? I am aware that a low level driver may be needed, I just want to get some ideas on how to initialise it, then handle the messaging at the user level etc. I am familiar with ARM interrupts, and device drivers (in Windows) but I am new to linux programming. thanks