【資料圖】
1. 簡(jiǎn)介
[專欄總目錄]本文是基于RK3588平臺(tái), 電容觸控芯片GT9XX觸摸調(diào)試總結(jié)。觸摸芯片:電容觸控芯片GT9271驅(qū)動(dòng)代碼:"kerneldriversinputouchscreengt9xxgt9xx.c"(驅(qū)動(dòng)用的是系統(tǒng)自帶的驅(qū)動(dòng)代碼)2. 電容觸控芯片GT9XX觸摸調(diào)試
2.1 調(diào)試總覽,調(diào)試步驟分析
步驟 ① 先將gt9xx驅(qū)動(dòng)添加進(jìn)SDK編譯規(guī)則步驟 ② dts配置步驟 ③ 觸摸編譯燒寫,調(diào)試2.2 調(diào)試過程
步驟 ① :將gt9xx驅(qū)動(dòng)添加進(jìn)kernel編譯規(guī)則一.在Makefile添加:`obj-$(CONFIG_TOUCHSCREEN_GT9XX)+= gt9xx/`Makefile所在路徑:"kerneldriversinputouchscreenMakefile"二.在Kconfig添加:`config TOUCHSCREEN_GT9XX的說明Kconfig所在路徑:"kerneldriversinputouchscreenKconfig"三. 在 rockchip_defconfig中添加:CONFIG_TOUCHSCREEN_GT9XX=y
步驟 ② dts配置&i2c6 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = < &i2c6m0_xfer >; clock-frequency = < 400000 >; gt9xx: gt9xx@14 { status = "okay"; compatible = "goodix,gt9xx"; reg = < 0x14 >; pinctrl-names = "default"; pinctrl-0 = < >9xx_gpio >; touch-gpio = < &gpio0 RK_PD3 IRQ_TYPE_LEVEL_HIGH >; reset-gpio = < &gpio0 RK_PC6 GPIO_ACTIVE_HIGH >; max-x = < 1200 >; max-y = < 1920 >; tp-size = < 89 >; tp-supply = < &vcc_lcd_mipi1 >; configfile-num = < 1 >; };};
步驟 ③ 觸摸編譯燒寫,調(diào)試2.3 調(diào)試問題總結(jié)
當(dāng)觸摸點(diǎn)與屏幕響應(yīng)點(diǎn)相反時(shí):在gt9xx.c驅(qū)動(dòng)源文件里修改:
方法一:根據(jù)觸摸反饋調(diào)整下面值:
if (val == 89) { m89or101 = TRUE; gtp_change_x2y = TRUE; //X,Y軸互換 gtp_x_reverse = TRUE; //X軸反向 gtp_y_reverse = FALSE; //Y軸反向}
方法二:或者在事件上報(bào)函數(shù)里修改:
input_report_abs(ts- >input_dev, ABS_MT_POSITION_X, ts- >abs_x_max-x);input_report_abs(ts- >input_dev, ABS_MT_POSITION_Y, ts- >abs_y_max-y);
觸摸不太精準(zhǔn),位置偏下一點(diǎn)點(diǎn)。解決辦法:更換GT9271_Config_20170526.cfg文件的配置。系統(tǒng)自帶的cfg文件有點(diǎn)偏差,找屏幕廠商更換1200 * 1920的cfg文件
審核編輯 黃宇
關(guān)鍵詞: