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