Hello Miroslav,
I have additional inputs, I added couple of print statements to the hard_irq which should be executed when the PENIRQ signal goes low - I found that this IRQ doesn't run at all.
static irqreturn_t tsc2007_hard_irq(int irq, void *handle)
{
struct tsc2007 *ts = handle;
dev_err(&ts->client->dev, "Entering %s\n", __func__);
if (tsc2007_is_pen_down(ts))
{
dev_err(&ts->client->dev, "Pen down returns true - %s\n", __func__);
return IRQ_WAKE_THREAD;
}
if (ts->clear_penirq)
{
dev_err(&ts->client->dev, "Clear pending interrupt - %s\n", __func__);
ts->clear_penirq();
}
return IRQ_HANDLED;
}
I can also confirm that the interrupt is registered, this is output of the /proc/interrupt
root@aa-hcc:~# cat /proc/interrupts
CPU0
20: 0 INTC 4 48080000.elm
28: 34 INTC 12 edma
30: 0 INTC 14 edma_error
46: 7005 INTC 30 4819c000.i2c
52: 78107 INTC 36 da8xx_lcdc
56: 0 INTC 40 eth0
57: 28281 INTC 41 eth0
58: 11887 INTC 42 eth-tx
59: 0 INTC 43 eth0
61: 4600 INTC 45
80: 117 INTC 64 mmc0
84: 13106 INTC 68 gp_timer
86: 3 INTC 70 44e0b000.i2c
88: 149 INTC 72 OMAP UART0
94: 0 INTC 78 wkup_m3_txev
116: 0 INTC 100 gpmc
125: 0 INTC 109 53100000.sham
127: 0 INTC 111 48310000.rng
173: 0 GPIO 29 mmc0
255: 0 GPIO 16 tsc2007
Err: 0
Any thoughts on what needs to happen to setup GPIO interrupt? Also is it possible for GPIO bank3 EMU1 pin to provide a change notification interrupt?
Thank you
Regards
Santhosh