本文只是依照MTK MT8163 7.0框架移植进行的实际操作,基于驱动代码已经ok的情况下,并没有考虑到调试层面,如有需要必须抓log等各种方法进行调试!
GT9xx驱动及驱动文件简介
1.GT9xx驱动基本信息
2.驱动文件说明
驱动移植step by step
3.touchscreen中driver复制及makefile Kconfig修改
4.硬件电路及gpio配置
5.dts defconfig中配置tp信息
GT9xx驱动及驱动文件简介
1.GT9xx驱动基本信息
2.驱动文件说明
kernel-3.18/drivers/input/touchscreen/mediatek/GT9XX$ find .
.
./gt9xx_extents.c
./Kconfig
./include
./include/tpd_gt9xx_common.h
./include/firmware1
./include/firmware1/gt9xx_firmware.h
./include/config0
./include/config0/gt9xx_config.h
./include/firmware0
./include/firmware0/gt9xx_firmware.h
./include/config1
./include/config1/gt9xx_config.h
./gt9xx_update.c
./gt9xx_driver.c
./goodix_tool.c
./Makefile
(1)gt9xx_driver.c :驱动主功能文件,用来初始化触摸屏、实现驱动的挂载、读取上报坐标、休眠唤醒处理等触摸屏驱动的基本功能。
(2)./include/config0/gt9xx_config.h:存放CTP_CFG_GROUP数组及TP的配置信息,一般为TP厂提 供的(*cfg或*txt)文件里面的内容,tp参数调试好根据sensorID替换数组里面的内容即可。目前我们代码生效的是./include/config0/gt9xx_config.h(调试tp参数改这)
(3)./include/tpd_gt9xx_common.h:驱动头文件,包含驱动中要用到的一些宏和常量的定义、外部变量和函数的声明等。
(4)./include/firmware0/gt9xx_firmware.h:tp固件,汇顶提供
(5)goodix_tool.c:驱动中用于支持gtp_tools.apk工具和ADB工具的文件,该工具可以在装成整机后再在Android上层对触控IC进行测试、调试、检测等功能,强烈推荐在驱动中增加此功能,特别是使用COB(触控IC直接layout在主板上)模式的TP时,此工具能极大的方便整机上的TP调试
(6)gt9xx_update.c:驱动用于支持固件升级的文件,对于触摸屏驱动来说,该文件不是必需的。
(7)Kconfig:GTP的一些变量宏定义,依赖于TOUCHSCREEN_MTK_GT9XX,tp驱动必须确保config GTP_DRIVER_SEND_CFG为y,out/target/product/hiteq8163_tb_n/obj/KERNEL_OBJ/.config
编译完成后,可以在找到相关config,确保此Kconfig中的配置生效,如不一直,彻查编译规则看哪里受影响了(调试期间遇到CONFIG_GTP_DRIVER_SEND_CFG=n是由于默认编译别的tp所致)
驱动移植step by step
3. touchscreen中driver复制及makefile Kconfig修改
(1)将原厂给的GT9XX/驱动文件拷贝至:kernel-3.18/drivers/input/touchscreen/mediatek/ 目录
kernel-3.18/drivers/input/touchscreen/mediatek/GT9XX$ ls
goodix_tool.c gt9xx_driver.c gt9xx_extents.c gt9xx_update.c include Kconfig Makefile
(2)Makefile修改kernel-3.18/drivers/input/touchscreen/mediatek/Makefile
添加:
+obj-$(CONFIG_TOUCHSCREEN_MTK_GT9XX) += GT9XX/
(3)Kconfig修改kernel-3.18/drivers/input/touchscreen/mediatek/Kconfig
添加: