デバイスツリーのプロパティを理解しようとしていますが、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つのセルがあります:
最初のセルは区切り番号を定義します。 2番目の単位は意味とレベルの情報を定義します。認識とレベルの情報は、次のようにエンコードする必要があります。
0 = low to high edge sensitive type enabled
...
あなたの状況は似ているかもしれませんが、一般的にチップセットとドライバの深い理解が必要です。
答え2
〜のようにうーん提案、この情報は次の場所で確認できます。カーネルデバイスツリーバインディングドキュメント。しかし、どのファイルを見るべきかは明確ではないかもしれないので、以下はいくつかの提案です。
まず、ノードcompatible
の属性文字列を確認しますinterrupt-parent
(例:この例ではgpio5)。幸いなことに、文書にはその情報に関連するすべての互換性のある属性文字列のリストが含まれており、これらの文字列を検索するとファイルが直接表示されます。
そうでない場合は、ドキュメントディレクトリを参照して互換性のある属性文字列に似た名前のファイルを見つける必要があります。同じ文書が様々なデバイスに適用されることが多く、ファイル名からモデル番号などが省略される。旧モデルもご覧いただけます。
まず、関連するサブディレクトリを確認してください(この場合は「gpio」ディレクトリの下にあります)。
名前が変更されますのでご注意ください。たとえば、Freescale("fsl") は NXP の所有になっているため、"fsl" と "nxp" を含むファイル名は役に立つ情報を提供できます。