Hello,
I put the Ethernet network device on Omap beagle board, which runs
Linux 2.6.22.18.
I want to use GPIO 17 as an interrupt source from the network device.
I added the code in probe function of the network device as
followings;
ks8851_probe()
{
#define GPIO17 17
u32 irq;
omap_request_gpio( GPIO17 );
irq = gpio_to_irq( GPIO17 ); //
IRQ=177
gpio_direction_input( GPIO17 );
request_irq(irq,
ks8851_interrupt,IRQF_TRIGGER_LOW,"ks8851isr", dev); //LOW Level
trigger
:
(omitted)
}
After compiling the Linux kernel including the code above, I loaded
the new kernel on the omap beagle board.
When the kenel starts to work, kernel calls interrupt handler
( ks8851_interrupt ) endlessly. After debugging, I find that it can
not clear the interrupt status. More specifically, clear bit17 of
OMAP24XX_GPIO_IRQSTATUS1 in _clear_gpio_irqbank() and read back
immediately. The read-back value is still set, which I think causes
the issue.
Is there any idea to fix this issue?
Any kind of comments will be highly appreciated.
Rdx,
David J. Choi