|
第一節 input 輸入子系統簡(jiǎn)單介紹 --- rockchip_gslX680_rk3168.c
觸摸屏驅動(dòng)注冊到 input 子系統中后要遵循的框架結構如下:
1.input dev 的注冊,參考 gsl_ts_init_ts()函數;
2.input 事件的注冊,這部分沒(méi)有明顯的調用 input 子系統的 input_register_handler()函數,說(shuō)明是用的系統缺省注冊的 handler,即 evdev --- 一個(gè)原始的(raw)輸入設備事件。
圖1
第二節 電路原理圖介紹
下圖來(lái)源于文檔 3128_sdk_a02_20170325.pdf 中第 19 頁(yè)。
如下圖可以確定 TP 是通過(guò) I2c 與 cpu 相互通信的,cpu 作為主設備,TP 作為從設備。TOUCH_INT 是用中斷的形式用作告訴 cpu 已經(jīng)有觸摸產(chǎn)生,cpu 可以從 I2c 接口讀數據了。TOUCH_RST 是用作觸摸的休眠/喚醒。
圖2
第三節 TP 驅動(dòng)代碼結構
$(dir)\rk3128-source\kernel\drivers\input\touchscreen\rockchip_gslX680_rk3128.c
--- input device driver
$(dir)\rk3128-source\kernel\drivers\input\evdev.c
--- input event handler
第四節 .config 文件的配置選擇
kernel 目錄中輸入 make ARCH=arm menuconfig 然后按下列步驟選擇
Device Drivers --->
Input device support--->
Touchscreens --->
<*> gslX680 touchscreen driver
選擇之后在.config 文件中會(huì )有如下項被設置:
CONFIG_TOUCHSCREEN_GSLX680=y
相應的配置文件目錄位于:
X:\rk3128-study\rk3128-source\kernel\drivers\input\touchscreen\Kconfig
config TOUCHSCREEN_GSLX680
tristate "gslX680 touchscreen driver"
help
gslX680 touchscreen driver
第五節 實(shí)驗代碼
1.dts part:
代碼1
2.增加一個(gè)可以動(dòng)態(tài)測試的函數到驅動(dòng)中,用戶(hù)可以通過(guò) adb shell 或者串口去輸入數據完成觸摸屏功能測試。
代碼2
3.測試命令
命令輸入路徑/sys/class/touchscreen_test
關(guān)閉觸摸功能:
echo sleep > touchscreen
echo wake > touchscreen
鏡像觸摸屏坐標:
echo mirror > touchscreen
4.代碼調試中遇到問(wèn)題
觸摸掛上去后沒(méi)有反應:a.中斷產(chǎn)生了嗎?可以通過(guò)在中斷響應函數中增加調試信 息;b.I2c 通信正常嗎?這個(gè)可能要接個(gè)示波器或 usb 邏輯分析儀去看波形是否正常。
第六節 實(shí)驗步驟 --- 鏡像后的坐標如何調節
cd /sys/class/touchscreen_test
echo mirror > touchscreen
第七節 實(shí)驗現象
點(diǎn)擊位置倒向,需要修改代碼
report_data()中的兩個(gè)地方 --- 自己做實(shí)驗了
更多完整學(xué)習資料和對應開(kāi)源套件,請登陸官網(wǎng):“瘋殼”
文件下載請點(diǎn)擊:
5、觸摸屏驅動(dòng)實(shí)驗.pdf
(446.7 KB)
2022-7-15 14:27 上傳
點(diǎn)擊文件名下載附件
下載積分: 積分 -1
|
|