当前位置: 代码迷 >> 综合 >> 2022-04-08 将设备树中断标志 interrupt-parent interrupts 映射到devm_request_irq,自动从dts里面获取client->irq 中断号。
  详细解决方案

2022-04-08 将设备树中断标志 interrupt-parent interrupts 映射到devm_request_irq,自动从dts里面获取client->irq 中断号。

热度:29   发布时间:2023-11-27 10:40:10.0

一、linux 驱动里面probe有这样一段,自动从dts里面获取client->irq 中断号。在您的probe()函数中,client->irq将包含IRQ编号。

二、让我们看一下i2c_device_probe()函数(它probe()是调用驱动程序函数的地方)。

static int i2c_device_probe(struct device *dev)
{...if (dev->of_node) {...irq = of_irq_get(dev->of_node, 0);}...client->irq = irq;...status = driver->probe(client, i2c_match_id(driver->id_table, client));
}

因此,client->irq在驱动程序的探测功能中已经包含IRQ编号。

三、我这里做个简单是测试,client->irq获取到irq编号和用gpio_to_irq方法、of_irq_get三个方法获取到中断编号是一样的。

  1、dts和测试代码

  2、看打印log,获取到中断编号都是96 

  3、执行cat /proc/interrupts看中断是否注册ok

 五、参考文章

将设备树中断标志映射到devm_request_irq | 经验摘录

Linux 内核中断与驱动中应用_老理说的好的博客-CSDN博客

中断在设备树中的使用_弋阳yoga的博客-CSDN博客_中断设备树

  相关解决方案