处理按钮内核模块中的按钮中断

时间:2015-11-03 06:54:12

标签: c linux linux-kernel linux-device-driver embedded-linux

我正在为freescale iMX6 quad上的linux内核4.1编写一个按钮模块

 # cat /proc/interrupts
                CPU0       CPU1       CPU2       CPU3
    173:          0          0          0          0  gpio-mxc   7 Edge      PB_RIGHT
    176:          0          0          0          0  gpio-mxc  10 Edge      PB_YESOK
    231:          0          0          0          0  gpio-mxc  31 Edge      PB_LEFT

我使用了request_irq()函数来接收LEFT,RIGHT,YESOK等按钮的中断。如下所述

ret = request_irq(173,     /* The interrupt number requested */
                 (irq_handler_t) gpioirqhandler, /* The pointer to the handler function below */
                 IRQF_TRIGGER_RISING,         /* Use the custom kernel param to set interrupt type */
                 "PB_RIGHT",  /* Used in /proc/interrupts to identify the owner */
                  NULL);

加载此模块时出现此错误,因此模块未加载。

genirq: Flags mismatch irq 173. 00000001 (PB_RIGHT) vs. 00000083 (PB_RIGHT)
Error request IRQ 173
 - code -16 , EIO 5 , EINVAL 22

需要帮助来理解并解决此问题!

由于

0 个答案:

没有答案