mangoh git repo commit 57a33ecfabf109e98aee724a24294b18f3c9a4d3
I have tried to use the pin 11 (WP_GPIO_1_lvl) as an interrupt input. From the schematics I found that the pin has the internal GPIO number #22. Exporting the GPIO from sysfs, configuring as input and checking the value works fine, so mapping of the pin to GPIO number seems correct.
I have also measured the IRQ line, it goes from high to low as expected, so external hardware works correct as well. From /proc/interrupts the IRQ (74) is shown as mapped to the driver (also referring to GPIO number 22).
Here is the kernel code for configuring the GPIO as interrupt (simplified code, the original code includes error checking, no errors are reported):
int irq = gpio_to_irq(22);
request_threaded_irq(irq, NULL, some_ist, IRQF_TRIGGER_FALLING | IRQF_ONESHOT, DEVICE_NAME, priv);
As pointed out before, none of the function calls fail, /proc/interrupts reports the IRQ 74 from GPIO 22 being mapped to the driver and the signal has been measured to go from HIGH to LOW but the interrupt handler has not been called. Btw., gpio_xxx calls happen from different driver than the irq request but that should not matter afaik.
Any ideas why this does not work?