检测不到中断,无法进入中断处理程序。
注册和初始化中断用了两个函数
1)kxtf9_init_irq();
2)ret = request_irq(client->irq, kxtf9_irq_handler, IRQF_TRIGGER_LOW, "kxtf9", client);//IRQF_TRIGGER_HIGH
kxtf9_init_irq如下:
static int kxtf9_init_irq(void)
{
int ret = 0;
ret = gpio_request(KXTF9_IRQ_GPIO, "kxtf9_irq");
if (ret) {
printk("gpio_requset failed, return: %d\n", ret);
goto err_request_gpio;
}
ret = gpio_direction_input(KXTF9_IRQ_GPIO);
if (ret) {
printk("set kxtf9_irq gpio's direction failed, return: %d\n",
ret);
gpio_free(KXTF9_IRQ_GPIO);
}
err_request_gpio:
return ret;
}
ret的返回结果是0,应该是表示成功的;
但无论我将request_irq中的flag设成IRQF_TRIGGER_LOW还是IRQF_TRIGGER_HIGH,中断处理函数kxtf9_irq_handler都没有执行。请大虾指点。