增加 interrupts 内容.
Signed-off-by: rick.chan <chenyang@autoai.com>
This commit is contained in:
parent
f10258d407
commit
a18a99cc53
|
@ -70,6 +70,45 @@ reg = <address1 size1 [address2 size2] [address3 size3]...>;
|
|||
* interrupt-parent:设备节点通过这个关键字指定其依附的中断控制器 phandle,如果没有指定,则继承父节点的 interrupt-parent 配置;
|
||||
* interrupt:设备节点里使用,一般包含中断号、触发方法等。具体有多少个 cell,由 #interrupt-cells 决定,每个 cell 的具体含义,一般由驱动决定。
|
||||
|
||||
多个中断可以用 interrupts 描述。interrupts 属性后面,会有不同的参数,有时是两个,有时是三个。
|
||||
|
||||
两个的时候一般是这样出现:
|
||||
|
||||
```dts
|
||||
interrupt-parent = <&gpio2>;
|
||||
interrupts = <29 0>;
|
||||
```
|
||||
|
||||
一般这样表明:中断控制器是GPIO2,然后使用它的29号中断。(这里的29号,就是指29号引脚),0是指触发的方式(上升沿、下降沿等)。
|
||||
|
||||
三个的时候一般是这样出现:
|
||||
|
||||
```dts
|
||||
interrupts = <0 37 1>;
|
||||
interrupts = <GIC_SPI 37 1>;
|
||||
interrupts = <GIC_PPI 37 1>;
|
||||
```
|
||||
|
||||
第一个参数表示是 IPI、PPI、SPI、SGI 其中的一个。第二个参数表示:是第一个参数里面的第几个。第三个参数表示:中断触发的类型(上升沿、下降沿等)。
|
||||
|
||||
IPI、PPI、SPI、SGI 是 ARM 规范的中断,含义如下:
|
||||
|
||||
* IPI:inter-processer interrupt 中断号0~15
|
||||
* PPI:per processor interrupts 中断号16~31
|
||||
* SPI:shared processor interrupts 中断号 32 ~32+224
|
||||
* SGI:software generated interrupts (SGI).
|
||||
|
||||
中断类型的值如下:
|
||||
|
||||
```cpp
|
||||
#define IRQ_TYPE_NONE 0
|
||||
#define IRQ_TYPE_EDGE_RISING 1
|
||||
#define IRQ_TYPE_EDGE_FALLING 2
|
||||
#define IRQ_TYPE_EDGE_BOTH (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING)
|
||||
#define IRQ_TYPE_LEVEL_HIGH 4
|
||||
#define IRQ_TYPE_LEVEL_LOW 8
|
||||
```
|
||||
|
||||
### DTS 示例
|
||||
|
||||
一个简单的 dts 文件示例如下:
|
||||
|
|
Loading…
Reference in New Issue