I write a dirver for mine keyboard .
At the begining ,I use the irq for the keyboard driver.
I write like
#define KEYBD_IRQ 3
AT91_SYS->AIC_SMR[3] = 0x04;
if(request_irq(KEYBD_IRQ, keybd_Interrupt, 0, "keybd_Interrupt", (void *) 0))
{
printk("\n Can not request %d irq! \n", KEYBD_IRQ);
return -EBUSY;
}
when I press a key.
systerm can call my interrupt fuction keybd_Interrupt();
But now ,I want to use fiq for my keyboard .
I changed like this:
#define KEYBD_IRQ 0
AT91_SYS->AIC_SMR[0] = 0x20;
if(request_irq(KEYBD_IRQ, keybd_Interrupt, 0, "keybd_Interrupt", (void *) 0))
{
printk("\n Can not request %d irq! \n", KEYBD_IRQ);
return -EBUSY;
}
But it does work very well.
When i press a key the systerm doesn't call my interrupte fuction keybd_Interrupt.
how can i do?
ourlinux