2017-12-07 14 views
0

Linux(newbieレベル)を実行しているSoC用の簡単なGPIOドライバを開発中です IRQ番号がデータシートの番号と異なるため、私は問題に直面しています。カーネルIRQドメインリスト

効果的なIRQマネージャがIRQドメインを作成する可能性があることを知りました。 しかし、

unsigned int irq_find_mapping(struct irq_domain * domain、irq_hw_number_t hwirq)にはドメイン構造が必要です。 プレートフォームに使用可能なドメインを一覧表示する方法を教えてください。 ありがとうございます。 irq_domain_mapping
name mapped linear-max direct-max devtree_node gpio-dwapb 29 29 0 /soc/[email protected]/gpio-controller ... 99 0x00019 none
ファイル:/ procの/
99 ... 25 edge gpiolib
を中断しかし、DTSファイルが
interrupts = <0x00000000 0x000000a5 0x00000004>

+0

'cat/sys/kernel/debug/irq_domain_mapping'です。 * CONFIG_IRQ_DOMAIN_DEBUG = y *がカーネル構成に含まれていることを確認してください。 – 0andriy

+0

質問を編集しました。中断はDTSファイルの197にマップされますが、Linuxでは99に設定されています – SOFuser

+0

3つのファイル(/ proc/interrupts、irq_domain_mapping、問題のコードを含むDTS)をすべて収集すると良いでしょう。いくつかのインターネット共有(ペーストビンのような)w/**フル**コンテンツ。 – 0andriy

答えて

0
dwapbマネージャーと197で中断をマッピングし、ここで

ファイルのいくつかのファイルのコンテンツです

考慮すべき点がたくさんあります:

  1. /proc/interruptsは、それを直接使用できるIRQ番号を与えます。
  2. BSPのドキュメントには、ドライバによって割り当てられた/使用されているIRQが記載されています。
  3. カーネルコード/ arch/arm/your-platformファイルを参照すると、割り当てられたIRQ番号が表示されます。
  4. デバイスツリーファイルは、IRQ番号を識別するための最適なオプションです。
+0

あなたのサポートに感謝します、他の人が私のニーズを満たしていないので、私は第3の提案をチェックします – SOFuser

+0

OPに私のコメントを見てください。 – 0andriy