input 輸入裝置平台驅動

2021-06-10 10:36:28 字數 1469 閱讀 3274

1,主機環境:vmare下linux5.7 ,384記憶體。

2,編譯編譯環境:arm-linux-gcc v4.4.3

3,開發板:fl2440,4m nor flash,256m nand flash。

移植參照mini2440的示例**:

1:  首先是平台裝置的註冊

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

/*平台資源的定義*/

static struct gpio_keys_button fl2440_buttons = ,,,

,};static struct gpio_keys_platform_data fl2440_button_data = ;

static void my_dev_release(struct device *dev)

static struct platform_device fl2440_button_device =

};static int __init platform_init(void)

static void __exit platform_exit(void)

module_init(platform_init);

module_exit(platform_exit);

module_author("smart.zhao");

module_license("gpl");

module_alias("platform:fl2440buttons");

2:  下面是平台驅動的註冊。

直接使用drivers\intput\keyboard\gpio_keys.c作為平台驅動。

3: 當載入完驅動,裝置後系統會有以下提示

intpu: gpio-keys as /devices/platform/gpio-keys/input/intput0

4:  測試平台裝置和驅動是否正常工作。

以下是測試**:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

int main(void)

for (;;)

close(buttons_fd);

return 0;

}5:  如果有需要加入核心的話,那麼只需要把平台裝置的**加入到arch\arm\plat-s3c24xx\common-smdk.c中即可。

Linux裝置驅動 input輸入子系統

不同的輸入裝置 如按鍵 鍵盤 觸控螢幕 滑鼠等 都有它們的差異性 如中斷 讀鍵值 座標值是裝置相關的 及共同性 如輸入事件的緩衝區管理以及字元裝置驅動的file operations介面則對輸入裝置是通用的 因此在linux核心中設計了input輸入子系統來完成輸入裝置之間的共性工作,而我們只需要使...

驅動之路四 adc驅動(input裝置)

開發板 smdk6410 開發環境 linux 突然想起一點,寫這些驅動,核心需要配成支援搶占才行。前面的部落格已經將其它的基本知識都解釋了,這裡也就不過多的闡述了,咱就直接寫 吧 這次寫的是adc驅動,將其做為輸入裝置進行使用,先寫標頭檔案,s3c adc.h ifndef adc h defin...

輸入裝置驅動之按鍵裝置驅動

linux輸入子系統就是乙個基於分層模式的系統,其基本的層次分解如下圖所示。在圖中我們可以發現輸入子系統主要包括三個部分裝置驅動層 input driver 核心層 input core 和輸入事件驅動層。輸入子系統的劃分使得輸入裝置的驅動程式設計越來越簡單,但是其中的思想採用我們學習的重點和難點。...