MTK 触摸屏

来源:互联网 发布:sql select 字段类型 编辑:程序博客网 时间:2024/05/20 09:09

硬件环境:MTK6735 & 触摸屏是GT9271

软件环境:Linux内核3.10 & 安卓5.1


1.reference driver文件夹中的所有文件复制到kerneldrivers/input/touchscreen/目录下 。

2.修改 Makefile:在drivers/input/touchscreen/mediatek/<project>目录下,打开Makefile文件,并在文件中增加以下条目(注意不同的(.o)文件之间用空格分开)

obj-y += gt9xx.o gt9xx_update.o goodix_tool.o
3.添加设备:找到kernel中初始化I2C总线的板级文件 

alps/kernel-3.10/arch/arm/boot/dts/<project>.dts中添加i2c信息

 I2C0@0x11007000 {     54                         gt9xx@5d {     55                                 compatible = "gt9xx";     56                                 reg = <0x5d>;     57                         };     58 

4.修改参考代码:一般情况下,移植过程中只需修改gt9xx.h文件中的内容即可,打开该头文件,按照注释中的提示移植,重点注意 TODO part的修改即可。
(1)STEP1 替换配置信息表(REQUIRED):将对应于您正在使用TP的配置信息(一般为TP厂提供的(*cfg或*txt)文件里面的内容),替换CTP_CFG_GROUP中的内容。

//*********************PART1:ON/OFF define*************************#define GTP_CUSTOM_CFG 1
// TODO: define your own default or for Sensor_ID == 0 config here.#define CTP_CFG_GROUP1 { \0x42,0xE0,0x01,0x20,0x03,0x05,0x14,0x01,0x02,0x08,\// ...}// TODO: define your config for Sensor_ID == 1 here, if needed#define CTP_CFG_GROUP2 {\}
注意事项:
(1)如果没有设置Sensor ID(详见附录),请务必将配置信息宏定义在CTP_CFG_GROUP1,并保持其他几组为空,替换完成后,需要在每行后面增加宏定义的连接符“\”;
(2)如果实际使用的sensor ID数多于参考驱动中的6组,请参照这三组完成其他组的配置通过sensor ID来区分;
(3)如果配置宏的第一行设置了配置信息的写入寄存器GTP_REG_CONFIG_DATA,则请将配置从第二行开始替换。

(2)STEP2 修改 IO 定义和 IO 操作方式(REQUIRED):将GTP_INT_PORT和GTP_RST_PORT的定义修改为对应于
该项目的引脚定义,另外还需检查后面几个关于IO操作的语句是否适用于您正在使用的平台,如果不是,则需修改成
相应的操作方式。可以使用dct。
注意事项:中断脚和复位脚应初始化为悬浮输入态。(悬浮:既不上拉,也不下拉)。
(3)STEP3 客户自定义参数(OPTIONAL):如果您需要自己指定分辨率、中断触发方式、支持的最多TOUCH数
等参数,请在ON/OFF define中打开GTP_CUSTOM_CFG宏,并参照以下修改参数。
//*********************PART1:ON/OFF define*************************#define GTP_CUSTOM_CFG 1//STEP_3(optional):Custom set some config by custom,if need.#if GTP_CUSTOM_CFG#define GTP_MAX_WIDTH 800#define GTP_MAX_HEIGHT 480#define GTP_MAX_TOUCH 5#define GTP_INT_TRIGGER 0#else#define GTP_MAX_WIDTH 4096#define GTP_MAX_HEIGHT 4096#define GTP_MAX_TOUCH 5#define GTP_INT_TRIGGER 1#endif 
(4)STEP4 配置触摸按键(OPTIONAL):如果您正在使用的TP 带有触摸按键,则需要配置触摸按键,先在
ON/OFF define中打开GTP_HAVE_TOUCH_KEY开关,然后再参照以下设置按键,按键的功能和顺序请在GTP_KEY_TAB中按需调整

//*********************PART1:ON/OFF define*************************#define GTP_HAVE_TOUCH_KEY 1//*********************PART2:TODO define****************************……//STEP_4(optional):If this project have touch key,Set touch key config.#if GTP_HAVE_TOUCH_KEY#define GTP_KEY_TAB {KEY_MENU, KEY_HOME, KEY_SEND}#endif



注意:driver同目录下的Makefile1可以指定driver的头文件路径,并且在上层目录的Makefile2会指定编译哪个目录,在alps/kernel/arch/arm/configs/<project>_defconfig.mk文件中可以指定对应宏的开关,根据这个宏然后结合Makefile2可以找到项目具体用了什么驱动。

找不到头文件:头文件路径是在driver/misc/mediatek/Makefile.custom中定义

 MTK_PROJECT_PATH_ROOT := $(srctree)/drivers/misc/mediatek/mach/$(MTK_PLATFORM)/$(ARCH_MTK_PROJECT)... -I$(MTK_PROJECT_PATH_ROOT)/touchpanel/GT9XX \


也可以在Makefile1中加入路径






 
原创粉丝点击