LiuTGM 发表于 2017-8-16 15:09:54

IMX6DL外部中断注册失败

我用IMX6DL 要写一个外部中断驱动程序,用request_irq(SABRESD_POWER_OFF,buttons_irq, IRQF_TRIGGER_FALLING|IRQF_TRIGGER_RISING, "S2", NULL);注册中断失败,跟踪发现是在
request_threaded_irq函数中的
if (!irq_settings_can_request(desc))
                {
                return -EINVAL;
}

这里返回出错的,这问题是出在哪里呢?


这是因为这个IO口已经注册过了吗?      可是我已经这个io口原来的驱动注释了啊,
static struct gpio_keys_button imx6q_buttons[] = {
        GPIO_BUTTON(SABRESD_VOLUME_UP, KEY_VOLUMEUP, 1, "volume-up", 0, 1),
        GPIO_BUTTON(SABRESD_VOLUME_DN, KEY_VOLUMEDOWN, 1, "volume-down", 0, 1),
        //GPIO_BUTTON(SABRESD_POWER_OFF, KEY_POWER, 1, "power", 1, 1),
};
这样做对吗?


飞凌-unix 发表于 2017-8-17 09:06:13

本帖最后由 飞凌-unix 于 2017-8-17 09:08 编辑

您好,因为软件代码比较多,具体的可能没法帮您看,因为这需要更多的时间来看代码,非常抱歉,您可以参考按键的那块,这个是使用的中断;还可以查看CPU手册和代码相结合一块去看,一个引脚只需要配置一个pinmux功能,如果这个有作为其他功能使用, 您需要去掉,非常抱歉,具体的问题需要您多辛苦一下。
页: [1]
查看完整版本: IMX6DL外部中断注册失败