主题 : linux3.0.1 外部中断组1~9,驱动中request失败 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 94812
精华: 0
发帖: 1
金钱: 5 两
威望: 1 点
综合积分: 2 分
注册时间: 2013-07-24
最后登录: 2017-09-13
楼主  发表于: 2013-07-26 17:41

 linux3.0.1 外部中断组1~9,驱动中request失败

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不能通过