3

x86 Linux 用のデバイス ドライバーを開発中です。デバイスには、PCH の GPIO に接続されたピンがあり、割り込みを生成します。その GPIO ピンに関連付けられた IRQ を要求し、割り込みハンドラーをインストールするにはどうすればよいですか?

4

1 に答える 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 に答える