x86 Linux 用のデバイス ドライバーを開発中です。デバイスには、PCH の GPIO に接続されたピンがあり、割り込みを生成します。その GPIO ピンに関連付けられた IRQ を要求し、割り込みハンドラーをインストールするにはどうすればよいですか?
5958 次
1 に答える
5
あなたが探しているヘッダーファイルは
#include <linux/gpio.h>
最初に行う必要があるのは、特定の GPIO を割り当てることです。この呼び出しを使用してそれを行うことができます:
#define GPIO //gpio number
...
if(gpio_request(GPIO, "Description"))
//fail
...
自分用の GPIO ピンを取得したら、そのための IRQ を取得できます。
int irq = 0;
if((irq = gpio_to_irq(GPIO)) < 0 /*irq number can't be less than zero*/)
//fail
...
ここで、通常のカーネル ルーチンを使用して IRQ ハンドラーを登録します。
#include <linux/interrupt.h>
...
int result = request_irq(irq, handler_function,
IRQF_TRIGGER_LOW, /*here is where you set up on what event should the irq occur*/
"Description", "Device description");
if(result)
//fail
...
モジュールのクリーンアップを行うときはfree_irq
、 と を忘れないでください。gpio_free
そうしないと、その GPIO ピンを再度割り当てることができなくなります。
于 2013-09-07T14:06:31.103 に答える