最近在RK3399上移植了敦泰的FT5436觸摸屏驅動,分享出來供大家參考。
找敦泰廠家索取FT5436的驅動包,驅動包名稱:focaltech_touch
沒有什麼需要特別注意的地方,按照驅動包裏面的移植步驟移植即可。
1、將驅動文件打包到 focaltech_touch 文件夾, 並將 focaltech_touch 文件夾複製到 kernel/drivers/input/touchscreen 目錄下。
2、修改 touchscreen 目錄下的 Kconfig 文件,在這個文件的末尾增加如下一行:
source “drivers/input/touchscreen/focaltech_touch/Kconfig”
3、修改 touchscreen 目錄下的 Makefile 文件,在這個文件的末尾增加如下一行:
obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_touch/
4、配置dts設備樹。我編譯的固件是rk3399-firefly-aiojk4-mipi,所以在該設備樹下添加設備信息。下圖是rk3399-firefly-aiojk4-mipi所有需要使用到的設備樹。大家可以根據自己的固件名稱,找到對應的dts。(其中還包括rk3399-firefly-aiojd4.dtsi,圖中沒有標出)
在rk3399-firefly-aiojd4-mipi.dts中,添加如下信息:(一定要找對dts配置文件,我剛開始放錯了配置文件,放到了rk3399-firefly-mipi.dts裏,怎麼都調不出來)
根據電路圖,查看是哪個I2C,在該I2C下,添加驅動節點信息,由於I2C中存在觸屏驅動gsl3680,所以將其屏蔽。
修改reset-gpio引腳和irq-gpio引腳。
max-touch-number表示最多同時支持的多點觸控個數。
display-coords 表示屏幕尺寸。
have-key表示是否有按鍵。
配置完成後,編譯kernel,升級kernel.img和resource.img,如果其他正常,觸屏就可以用了。
如果配置完成後,觸屏不能用,應先查詢使用的I2C是否正確,再查詢reset-gpio和irq-gpio是否正確。用示波器測量I2C是否有數據,reset-gpio狀態是否正確,基本就這些了。