static int eint_open(struct inode *inode, struct file *filp)
{
// unsigned long flag;
// if (usage == 0)
// {
request_irq(IRQ_EXT3, eint_irq_handle, SA_INTERRUPT, "my" DEVICE_NAME, NULL);
// local_irq_save(flag);
// PinSel0Save = inl(PINSEL0) & 0xa00cc0cc;
// PinSel1Save = inl(PINSEL1) & 0x26400301;
// outl(3<<8,PINSEL1);
PINSEL1=3<<8;
outl(1<<3,EXTINT);
outl(0x00,EXTMODE);
VICIntEnable=1<<17;
// outl(1<<17, VICIntEnable);
// local_irq_restore(flag);
// }
// usage++;
MOD_INC_USE_COUNT;
return 0; /* success */
}
在OPEN函数里设置外内部中断相关寄存器,这样可以嘛?
|