我們下面通過自己編譯個最簡單的按鍵輸入程式,來學習和理解input子系統。
程式的功能就是乙個單獨的按鍵,按下後產生中斷並執行相應的程式,**如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include//s3c2410_gpf0_eint
#include
module_license("gpl");
module_author("daisy");
module_description("this is my input button driver for daisy");
#define device_name "button_daisy"
static struct input_dev *button_dev;
static irqreturn_t button_interrupt(int irq, void* dummy)
static int __init input_button_init(void)
button_dev = input_allocate_device();
if(!button_dev)
button_dev->evbit[0] = bit(ev_key);
button_dev->keybit[bit_word(btn_0)] = bit(btn_0);
err = input_register_device(button_dev);
if (err)
err_free_irq:
free_irq(irq_eint0, button_interrupt);
err_free_dev:
input_free_device(button_dev);
return err;
}static void input_button_exit(void)
module_init(input_button_init);
module_exit(input_button_exit);
說明:2、對於input子系統的使用,首先就是
button_dev = input_allocate_device();
接著設定一些button_dev的引數,我們先來看struct input_dev這個結構體:
struct input_dev cdev;
struct list_head
h_list;
struct list_head
node;
};初始化的最後一步就是input_register_device(button_dev)把自己的input裝置註冊進input子系統。
下面的文章將會繼續介紹input子系統的其他部分,從而對input子系統的整體有乙個全面的認識。
linux驅動 Input 輸入子系統
1,哪些驅動裝置使用驅動子系統更方便簡單?像按鍵,觸控螢幕,滑鼠等輸入裝置我們可以採用input介面函式來實現裝置驅動,那麼採用input輸入子系統有什麼優點?其實一句話,採用input輸入子系統可以使驅動程式變得異常簡單。2,input輸入子系統的體系結構 主要包括三大體系結構 裝置驅動層driv...
Linux裝置驅動之 input子系統
什麼是input input子系統處理輸入事務,任何輸入裝置的驅動程式都可以通過input輸入子系統提供的介面註冊到核心,利用子系統提供的功能來與使用者空間互動。輸入裝置一般包括鍵盤,滑鼠,觸控螢幕等,在核心中都是以輸入裝置出現的。下面分析input輸入子系統的結構,以及功能實現。linux中inp...
Linux裝置驅動 input輸入子系統
不同的輸入裝置 如按鍵 鍵盤 觸控螢幕 滑鼠等 都有它們的差異性 如中斷 讀鍵值 座標值是裝置相關的 及共同性 如輸入事件的緩衝區管理以及字元裝置驅動的file operations介面則對輸入裝置是通用的 因此在linux核心中設計了input輸入子系統來完成輸入裝置之間的共性工作,而我們只需要使...