我试图理解设备树interrupts
属性,但找不到很好的解释。
例如,如果有一个节点具有以下几行:
interrupt-parent = <&gpio5>;
interrupts = <9 0>;
我如何弄清楚幻数<9 0>
与什么相关?它是位掩码、GPIO 端口号、引脚号、优先级、边缘还是其他?
该interrupt-parent
节点如下所示(我想对于大多数 ARM 设备来说都是类似的):
gpio5: gpio@1234 {
compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
reg = <0x30240000 0x10000>;
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
答案1
您可以从以下位置获取一些信息内核文档它描述了中断属性。
继续下面的例子 OpenPIC 中断控制器 有 2 个单元格:
第一个单元格定义中断号。第二个单元定义了意义和电平信息。感知和电平信息应编码如下:
0 = low to high edge sensitive type enabled
...
您的情况可能类似,但通常需要您对芯片组和驱动程序有深入的了解。
答案2
作为嗯建议,此信息应可在内核设备树绑定文档。但是,要查看哪个文件可能并不明显,因此这里有一些建议:
首先检查节点compatible
中的属性字符串interrupt-parent
(即本例中的 gpio5)。如果幸运的话,文档将包含与该信息相关的所有兼容属性字符串的列表,并且在搜索任何这些字符串时该文件将直接显示。
如果不是这种情况,您必须浏览文档目录并查找名称与兼容属性字符串类似的文件。通常,相同的文档适用于一系列设备,并且文件名中省略了型号等内容。您还可以查找较旧的型号。
首先检查相关子目录(在本例中它位于“gpio”目录下)。
请注意名称变更。例如,飞思卡尔(“fsl”)现在归 NXP 所有,因此包含“fsl”和“nxp”的文件名可能会提供有用的信息。