我正在使用 linux 内核设备树,乍一看似乎缺少具有多个中断父节点的节点的功能。我有一个控制自定义 ARM 嵌入式板的驱动程序,它从多个 GPIO 中断父级获取 GPIO 和引脚中断,并管理板载电池、电压低 irq、reset_pending irq 等。
我发现了一个来源,有人似乎已经破解了额外的功能来处理这个问题,但这不是官方的,并且涉及修改我不想要的中断源文件。该修改增加了对这样一个称为“中断扩展”的术语的支持。这里中断父级在元组中指定。
#interrupt-cells = <2>;
interrupts-extended = <&gpio3 21 1>, <&gpio7 13 2>; /* voltage/reset irq */
我还没有找到任何方法或示例来说明如何使用中断映射属性来实现简单的 gpio 中断映射,所以我不知所措。
如果我只使用一个 GPIO 中断父级,那么正确的方法就是这样。
interrupt-parent = <&gpio1>;
interrupts = <9 2>, <8,1>;
但这仅允许声明一个中断父级,其中在“中断”中指定了多个中断,并且它们都必须属于指定的父级。我正在使用 2 个中断父母,gpio7 和 gpio3。
在设备树的单个设备节点中实现具有不同中断父级的多个中断的正确方法是什么?