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:08 编辑
您好,因为软件代码比较多,具体的可能没法帮您看,因为这需要更多的时间来看代码,非常抱歉,您可以参考按键的那块,这个是使用的中断;还可以查看CPU手册和代码相结合一块去看,一个引脚只需要配置一个pinmux功能,如果这个有作为其他功能使用, 您需要去掉,非常抱歉,具体的问题需要您多辛苦一下。
页:
[1]