ret =devm_request_threaded_irq(&pdev->dev, pm805->irq_audio_short1,NULL, pm805_short_handler, IRQF_ONESHOT,"audio_short1", pm805);if(ret <0) dev_err(&pdev->dev,"Failed to request IRQ: #%d: %d\n", pm805->irq_audio_short1, ret); ret =devm_request_threaded_irq(&pdev->de...
int irq = gpio_to_irq(gpio); int ret = devm_request_threaded_irq(dev, irq, NULL, irq_handler, IRQF_TRIGGER_FALLING | IRQF_ONESHOT, "my_interrupt", NULL); if (ret) { dev_err(dev, "Unable to request IRQ: %d\n", irq); return ret; } ``` 在上面的代码示例中,我们首先通过 gpio...
IRQF_ONESHOT:经常用在线程中断中,以确保IRQ在线程处理程序完成之前保持禁用状态; __IRQF_TIMER:定时器中断 ,定时器中断标志组合如下 #define IRQF_TIMER(__IRQF_TIMER | IRQF_NO_SUSPEND | IRQF_NO_THREAD) 触发方式 Level-triggered:中断在没有得到响应之前,一直触发。 Edge-triggered:中断仅仅触发一次 Linux内...