I'm using an imx6ull board.
I implemented a new SPI device driver in it. That driver contains a diagnostic interrupt, which checks for faults before initialization of the device.
The interrupt is a GPIO interrupt. So I implemented as follows,
adc->diag_irq = gpio_to_irq(6);
ret = devm_request_irq(adc->dev, adc->diag_irq, diagnostic_handler, IRQF_TRIGGER_RISING, "DIAG_END", 0);
I implemented this in the driver probe() and immediately enabled start diagnostics bit.
Once the bit is set, within 8mesc it receives diag_end interrupt. It is a one time process before initialization of the device.
But the processor doesn't read the interrupt. The diagnostic check and device initialization are done in the probe() only.
I manually gave interrupt. That time I found my ISR is working. Which means, the interrupt implementation and ISR registrations are working.
Why is it not receiving the interrupt? Any timing issue like debouncing.
Could you suggest a solution to solve this issue?