正文

8.4 MSM中的實(shí)現(xiàn)

Android系統(tǒng)級(jí)深入開(kāi)發(fā):移植與調(diào)試 作者:韓超


MSM的mahimahi平臺(tái)具有觸摸屏,軌跡球和簡(jiǎn)易的按鍵,這些功能在Android中的

8.4.1  觸摸屏,軌跡球和按鍵驅(qū)動(dòng)程序

MSM的Mahimahi平臺(tái)的用戶輸入設(shè)備包括了以下幾個(gè)Event設(shè)備。

  /dev/input/event4:幾個(gè)按鍵

  /dev/input/event2:觸摸屏

  /dev/input/event5:軌跡球

MSM觸摸屏的驅(qū)動(dòng)程序在drivers/input/touchscreen目錄中的synaptics_i2c_rmi.c,這是一個(gè)i2c觸摸屏的驅(qū)動(dòng)程序。

MSM系統(tǒng)包含了按鍵和軌跡球的功能,具體的驅(qū)動(dòng)程序在arch/arm/mach-msm/目錄board-mahimahi-keypad.c文件中實(shí)現(xiàn)。

board-mahimahi-keypad.c中的全局定義如下所示:

實(shí)現(xiàn)包括了驅(qū)動(dòng)程序和用戶空間的內(nèi)容。

按鍵和軌跡球是通過(guò)GPIO系統(tǒng)來(lái)實(shí)現(xiàn)的,因此定義了gpio_event_info類型的數(shù)組。"mahimahi-keypad"和"mahimahi-nav"分別是兩個(gè)設(shè)備的名稱。gpio_event_info 指針各式的數(shù)組mahimahi_input_info中包含了mahimahi_keypad_matrix_info.info,mahimahi_keypad_key_ info.info,jogball_x_axis.info.info和jogball_y_axis.info.info。

按鍵驅(qū)動(dòng)是一個(gè)利用GPIO矩陣的驅(qū)動(dòng),由gpio_event_matrix_info矩陣定義,定義還需要包含按鍵的GPIO矩陣和input設(shè)備的信息,內(nèi)容如下所示:

mahimahi_keypad_key_matrix _info和mahimahi_keypad _info是gpio_event_matrix_info類型的結(jié)構(gòu)體,分別負(fù)責(zé)兩個(gè)和一個(gè)按鍵的處理,實(shí)際上,MSM的Mahimahi平臺(tái)基本上只有三個(gè)按鍵:Power,音量增加按鍵和音量減少按鍵。音量增加和音量減少的掃描碼分別是KEY_VOLUMEUP(=115)和KEY_VOLUMEDOWN(=114)。

提示:音量控制的兩個(gè)按鍵在全鍵盤(pán)的qwerty.kl有所定義,同時(shí)符合Linux的input設(shè)備和Android的按鍵標(biāo)準(zhǔn)。

軌跡球部分也是由GPIO實(shí)現(xiàn)的,由X方向和Y方向兩部分組成,內(nèi)容如下所示:

 

這里的軌跡球是用jog_axis_info類型的結(jié)構(gòu)體進(jìn)行定義的,這種設(shè)備的類型(type)是相對(duì)設(shè)備EV_REL。

 


上一章目錄下一章

Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)