writel( readl(S3C64XX_GPPCON)&(~(0x3 << 1) ) | (0x3<<1), S3C64XX_GPPCON);
request_irq( IRQ_EINT_GROUP(8, 1), ir_interrupt, 0, "mydev", NULL);
需在GPP1上外接一个红外,以上返回EINVAL
查看 request_threaded_irq 源码:
if ((irqflags & IRQF_SHARED) && !dev_id)
return -EINVAL;
desc = irq_to_desc(irq);
if (!desc)
return -EINVAL;
if (!irq_settings_can_request(desc))
return -EINVAL;
if (!handler) {
if (!thread_fn)
return -EINVAL;
handler = irq_default_primary_handler;
}
不知道怎么回事,0组中断申请没有问题
现调试到是irq_settings_can_request不能通过