Linux设备树中断节点语法官方文档

本文最后更新于 2024年10月21日 下午

1) 中断客户端节点

描述生成中断的设备的节点必须包含一个interrupts属性、一个interrupts-extended属性或两者都包含。如果同时存在这两个属性,则后者应优先考虑;前者可以提供以兼容不识别后者的软件。这些属性包含一个中断说明符的列表,每个输出中断一个。中断说明符的格式由中断控制器决定;具体见下面第2节。

示例

1
2
interrupt-parent = <&intc1>;
interrupts = <5 0>, <6 0>;

interrupt-parent属性用于指定中断路由到的控制器,并包含一个引用中断控制器节点的单个 phandle。该属性是可以继承的,因此可以在中断客户端节点或其任何父节点中指定。列在interrupts属性中的中断始终参考节点的中断父级。

interrupts-extended属性是一种特殊形式;当一个节点需要引用多个中断父级或不同于继承的中断父级时非常有用。该属性中的每个条目包含父级 phandle 和中断说明符。

示例

1
interrupts-extended = <&intc1 5 1>, <&intc2 1 0>;

2) 中断控制器节点

一个设备被标记为中断控制器使用interrupt-controller属性。该属性是一个空的布尔属性。一个额外的#interrupt-cells属性定义了指定单个中断所需的单元数。

中断控制器的绑定需要定义中断说明符的长度和格式。以下两种变体是常用的:

a) 单个单元

#interrupt-cells属性设置为 1,单个单元定义控制器中的中断索引。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vic: intc@10140000 {
compatible = "arm,versatile-vic";
interrupt-controller;
#interrupt-cells = <1>;
reg = <0x10140000 0x1000>;
};

sic: intc@10003000 {
compatible = "arm,versatile-sic";
interrupt-controller;
#interrupt-cells = <1>;
reg = <0x10003000 0x1000>;
interrupt-parent = <&vic>;
interrupts = <31>; /* 级联到 vic */
};

b) 两个单元

#interrupt-cells属性设置为 2,第一个单元定义控制器中的中断索引,第二个单元用于指定以下标志之一:

  • bits[3:0] 触发类型和电平标志:
    • 1 = 低到高边缘触发
    • 2 = 高到低边缘触发
    • 4 = 活动高电平敏感
    • 8 = 活动低电平敏感

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
i2c@7000c000 {
gpioext: gpio-adnp@41 {
compatible = "ad,gpio-adnp";
reg = <0x41>;

interrupt-parent = <&gpio>;
interrupts = <160 1>;

gpio-controller;
#gpio-cells = <1>;

interrupt-controller;
#interrupt-cells = <2>;

nr-gpios = <64>;
};

sx8634@2b {
compatible = "smtc,sx8634";
reg = <0x2b>;

interrupt-parent = <&gpioext>;
interrupts = <3 0x8>;

#address-cells = <1>;
#size-cells = <0>;

threshold = <0x40>;
sensitivity = <7>;
};
};

3) 中断唤醒父节点

某些 SoC 中的中断控制器总是通电,并且选择性地将中断路由到它们,以便从挂起状态唤醒 SoC。这些中断控制器不属于父中断控制器的类别,可以通过wakeup-parent属性指定,并包含一个引用唤醒能力中断控制器的单个 phandle。

示例

1
wakeup-parent = <&pdc_intc>;

翻译自内核文档:Documentation/devicetree/bindings/interrupt-controller/interrupts.txt


Linux设备树中断节点语法官方文档
https://www.shangyexin.com/2024/10/21/interrupts/
作者
Yasin
发布于
2024年10月21日
许可协议