1. 程式人生 > >關於device tree中的interrupts選項

關於device tree中的interrupts選項

隨著Linux的發展,dts技術是大勢所趨。裡面的interrupts = <   >這個裡面的是1個數,有的是2個數,有的是3個數。這裡囉嗦兩句,筆記一下。

這個數目,是由這個屬性來定的。#interrupt-cells ,如果當前節點找不到,就是跟隨父節點的。至於含義,說明如下。

一個cell的情況:

當前interrupt 位於他的中斷控制器的索引,比如:

    vic: [email protected] {
        compatible = "arm,versatile-vic";
        interrupt-controller;
        #interrupt-cells = <1>;
        reg = <0x10140000 0x1000>;
    };  


    sic:

[email protected] {
        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處理。