随着Linux的发展,dts技术是大势所趋。里面的interrupts = < >这个里面的是1个数,有的是2个数,有的是3个数。这里啰嗦两句,笔记一下。
这个数目,是由这个属性来定的。#interrupt-cells ,如果当前节点找不到,就是跟随父节点的。至于含义,说明如下。
一个cell的情况:
当前interrupt 位于他的中断控制器的索引,比如:
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>; /* Cascaded to vic */
};
二个cell的情况
第一个值: 该中断位于他的中断控制器的索引;
第二个值:触发的type
固定的取值如下:
1 = low-to-high edge triggered
2 = high-to-low edge triggered
4 = active high level-sensitive
8 = active low level-sensitive
三个cell的情况
第一个值:中断号
第二个值:触发的类型
第三个值:优先级,0级是最高的,7级是最低的;其中0级的中断系统当做 FIQ处理。
本文介绍了DTS(Device Tree Source)中不同数量的中断cells配置方法。详细解释了一个cell、两个cell及三个cell配置的具体含义及其应用场景,为理解Linux设备树中的中断配置提供指导。
1472

被折叠的 条评论
为什么被折叠?



