GT9XX驱动移植说明书_for_Android_2014011401

更新时间:2024-07-06 15:40:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

GT9XXforAndroid驱动移植说明书一、驱动基本信息

支持芯片型号GT911GT9110GT9110PGT913GT915GT918GT927GT928GT960GT968GT910GT912GT960FGT950GT968FGT9158GT967GT9150GT963GT9271GT917D0x5d、0x1416位支持固件头文件,搜寻bin文件6个I2C设备地址(7位)I2C寄存器地址APK工具/ADB工具自动升级支持SensorID数二、驱动文件说明一般情况下,驱动参考资料包的referencedrivers文件夹下面包含以下几个文件,下面对每个文件的功能和使用方法进行说明:1.gt9xx.c(Required):驱动主功能文件,用来实现驱动的挂载、读取上报坐标、休眠唤醒处理等触摸屏驱动的基本功能。2.gt9xx.h(Required):驱动头文件,包含驱动中要用到的一些宏和常量的定义、外部变量和函数的声明等。3.gt9xx_update.c(Recommended):驱动用于支持固件升级的文件,对于触摸屏驱动来说,该文件不是必需的,但是强烈推荐在驱动中增加该功能,以便于您使用的触控IC在必要时升级为最新版本的固件。4.gt9xx_firmware.h(Recommended):默认存放头文件升级默认固件数组,数组默认为空。如需开启兼容GT9XXF模式(GTP_COMPATIBLE_MODE置1),您需要将GT9XXFFirmwareHeaders中相应GT9XXF文件夹下的gt9xx_firmware.h替换驱动中的同名文件。5.goodix_tool.c(Recommended):驱动中用于支持gtp_tools.apk工具和ADB工具的文件,该工具可以在装成整机后再Android上层对触控IC进行测试、调试、检测等功能,强烈推荐在驱动中增加此功能,特别是使用COB(触控IC直接layout在主板上)模式的TP时,此工具能极大的方便整机上的TP调试。1三、驱动移植STEP_BY_STEP

1.复制文件:将referencedriver文件夹中的所有文件复制到kernel的drivers/input/touchscreen/目录下。2.修改Makefile:在drivers/input/touchscreen/目录下,打开Makefile文件,并在文件中增加以下条目(注意不同的(.o)文件之间用空格分开):。obj-y+=gt9xx.ogt9xx_update.ogoodix_tool.o3.添加设备:找到kernel中初始化I2C总线的板级文件,如本驱动的开发平台real6410开发板是位于arch/arm/mach-s3c6410/mach-smdk6410.c文件中,如需要将触摸屏驱动挂载I2C0总线上,则按以下方法添加TP的i2c设备驱动即可,0x5d为该型号触控IC的i2c从设备地址,具体为多少需参阅该型号芯片的datasheet,”Goodx-TS”为i2c设备驱动名,必须与驱动参考代码中的GTP_I2C_NAME保持相同。staticstructi2c_board_infoi2c_devs0[]__initdata{{I2C_BOARD_INFO(\,0x5d),},};=4.修改参考代码:一般情况下,移植过程中只需修改gt9xx.h文件中的内容即可,打开该头文件,按照注释中的提示移植,重点注意TODOpart的修改即可。(1)STEP1替换配置信息表(REQUIRED):将对应于您正在使用TP的配置信息(一般为TP厂提供的(*cfg或*txt)文件里面的内容),替换CTP_CFG_GROUP中的内容。//TODO:defineyourowndefaultorforSensor_ID==0confighere.

#defineCTP_CFG_GROUP1{\\

0x42,0xE0,0x01,0x20,0x03,0x05,0x14,0x01,0x02,0x08,\\//...}

//TODO:defineyourconfigforSensor_ID==1here,ifneeded#defineCTP_CFG_GROUP2{\\

}

//TODO:defineyourconfigforSensor_ID==2here,ifneeded#defineCTP_CFG_GROUP3{\\

}

//TODO:defineyourconfigforSensor_ID==3here,ifneeded

2#defineCTP_CFG_GROUP4{\\

}

//TODO:defineyourconfigforSensor_ID==4here,ifneeded#defineCTP_CFG_GROUP5{\\

}

//TODO:defineyourconfigforSensor_ID==5here,ifneeded#defineCTP_CFG_GROUP6{\\

}

注意事项:

(1)如果没有设置SensorID(详见附录),请务必将配置信息宏定义在CTP_CFG_GROUP1,并保持其他几组为空,替换完成后,需要在每行后面增加宏定义的连接符“\\”;

(2)如果实际使用的sensorID数多于参考驱动中的6组,请参照这三组完成其他组的配置通过sensorID来区分;

(3)如果配置宏的第一行设置了配置信息的写入寄存器GTP_REG_CONFIG_DATA,则请将配置从第二行开始替换。

(2)STEP2修改IO定义和IO操作方式(REQUIRED):将GTP_INT_PORT和GTP_RST_PORT的定义修改为对应于该项目的引脚定义,另外还需检查后面几个关于IO操作的语句是否适用于您正在使用的平台,如果不是,则需修改成相应的操作方式。//STEP_2(REQUIRED):ChangeI/Odefine&I/Ooperationmode.#defineGTP_INT_PORTS3C64XX_GPN(15)#defineGTP_RST_PORTS3C64XX_GPL(10)#defineGTP_INT_IRQgpio_to_irq(GTP_INT_PORT)……

#defineGTP_GPIO_AS_INPUT(pin)do{\\gpio_direction_input(pin);\\s3c_gpio_setpull(pin,S3C_GPIO_PULL_NONE);\\}while(0)注意事项:中断脚和复位脚应初始化为悬浮输入态。(悬浮:既不上拉,也不下拉)。(3)STEP3客户自定义参数(OPTIONAL):如果您需要自己指定分辨率、中断触发方式、支持的最多TOUCH数等参数,请在ON/OFFdefine中打开GTP_CUSTOM_CFG宏,并参照以下修改参数。//*********************PART1:ON/OFFdefine*************************#defineGTP_CUSTOM_CFG……

1//*********************PART2:TODOdefine****************************3//STEP_3(optional):Custom#ifGTP_CUSTOM_CFG#defineGTP_MAX_WIDTH#defineGTP_MAX_HEIGHT#defineGTP_MAX_TOUCH#defineGTP_INT_TRIGGER#else#defineGTP_MAX_WIDTH#defineGTP_MAX_HEIGHT#defineGTP_MAX_TOUCH#defineGTP_INT_TRIGGER#endifsetsomeconfigbycustom,ifneed.800480504096409651(4)STEP4配置触摸按键(OPTIONAL):如果您正在使用的TP带有触摸按键,则需要配置触摸按键,先在ON/OFFdefine中打开GTP_HAVE_TOUCH_KEY开关,然后再参照以下设置按键,按键的功能和顺序请在GTP_KEY_TAB中按需调整。//*********************PART1:ON/OFFdefine*************************#defineGTP_HAVE_TOUCH_KEY……1//*********************PART2:TODOdefine****************************//STEP_4(optional):Ifthisprojecthavetouchkey,Settouchkeyconfig.#ifGTP_HAVE_TOUCH_KEY#defineGTP_KEY_TAB{KEY_MENU,KEY_HOME,KEY_SEND}#endif(5)STEP5增加包含文件(OPTIONAL):在该头文件的前面增加对应您使用平台所必须的#include包含文件,这个步骤也是可选的,根据您编译的情况按需加入。(6)GT9XXF兼容说明GT9XXF目前的IC有GT910,GT912,GT950,GT960F,GT968F。在驱动中做出了兼容处理,其宏开关为GTP_COMPATIBLE_MODE,如果需开启此开关,请先将GT9XXFFirmwareHeaders文件夹中的对应GT9XXF文件夹下的gt9xx_firmware.h替换驱动中的gt9xx_firmware.h。另请确保GTP_DRIVER_SEND_CFG开启,另请开启GTP_ESD_PROTECT开关。即推荐组合:4#defineGTP_COMPATIBLE_MODE#defineGTP_DRIVER_SEND_CFG#defineGTP_ESD_PROTECT

111如果断电关屏的方式采用小系统的方式,您需要开启如下开关:#define#define#define#define#defineGTP_COMPATIBLE_MODEGTP_DRIVER_SEND_CFGGTP_ESD_PROTECT

GTP_POWER_CTRL_SLEEPGTP_FL_LITTLE_SYSTEM11111(7)自动升级说明

使用自动升级您需要开启宏GTP_AUTO_UDPATE,自动升级有两种方式:①搜寻BIN文件升级:GT9XX预设文件路径为/data/_goodix_update_.bin和/sdcard/_goodix_udpate_.bin,GT9XXF为/data/_fl_update_.bin和/sdcard/_fl_update_.bin。②固件数组升级:使用gt9xx_firmware.h中的固件数组gtp_default_FW进行升级,您需要开启GTP_AUTO_UDPATE与GTP_HEADER_FW_UPDATE。此种方式GT9XXF不支持。IC类型非GT9XXF,如需要自动升级配置,您需要同时开启宏GTP_AUTO_UPDATE_CFG。配置自动升级路径预设为:/data/_goodix_config_.cfg和/data/_goodix_config_.cfg。使用①的方式会与BIN文件一齐搜寻,如找到则先进行配置升级;使用②的方式,将在升级完固件之后进行文件搜寻升级。(8)手势/滑动唤醒相关说明

手势/滑动唤醒相关联的宏为GTP_GESTURE_WAKEUP。此功能需添加如下电路(电路详细设计请参考Datasheet):在INT引脚上串接RC电路,R:680欧,C:680p,如下图:5

B端接GT91XINT,C端接hostINT,host的INT上不能接上拉电阻。四、附录

1.SensorID:如果同一个项目中,使用几家TP厂的TP,并且都使用GOODIX的同一款IC,则可以对触控IC设置SensorID,主机在初始化的时候发送相应ID的配置信息,从而区分不同厂家的TP。SensorID的设置方法一般是layout时对IC的某一个或者几个IO口进行上拉、下拉或者悬空等设置,每款芯片的设置方法有所差异,具体请参照各IC的datasheet。2.IC固件和配置信息:固件是IC内部运行的程序,固件是针对一款IC的,而配置信息则是在固件运行的前期对固件进行初始化的一个数组,主机上电后通过I2C发送给IC,IC才能正常运行,配置信息是针对一款TP的,TP的结构、工艺、通道数等大部分修改都需要通过修改配置信息来适应。3.配置版本号与固化配置:GT9XX配置信息的第一个数据为配置信息版本号,只有发送的配置信息的版本号大于或等于芯片中保存的配置版本号时,发送的配置信息才会被GT9XX接受并生效,如果调试过程中发现配置信息发不下去,请首先读出芯片中的配置信息版本号,看是否满足要求。将IC配置版本配置为0x5A(90)以上,驱动将不会发送配置,以此可达到固化配置的目的,否刚驱动将会将IC配置版本清为0x41(65)。4.SLOT报点方式:有些android4.0系统上层配置必须采用SLOT方式报点,此时若驱动依旧采取传统的报点方式,android上层可能会将上报的坐标识别成相对坐标,如果出现这种现象,请将GTP_ICS_SLOT_REPORT宏打开,将报点方式切换到SLOT方式即可。详细内容请参考linux输入子系统和android上层InputReader.cpp中关于上报事件的相关资料。5.ESD防护机制:是指在驱动中增加一个线程,来查询IC的工作状态,如果发现工作异常,则复位IC,主要用于较强ESD条件下的避免TP失效,您可以根据ESD测试结果来决定是否打开该功能。6注意:该功能使用的前提是CTP芯片的VDD可由主机控制开关或主机可以通过RESET控制CTP芯片复位。6.宏开关定义:驱动中gt9xx.h在ON/OFFdefine部分定义了一些宏开关,以便在调试的过程中使用,0表示关闭该功能,1表示打开功能,各开关的释义如下:?#defineGTP_DEBUG_ON//调试信息开关,打开则输出调试信息?#define?#define?#define?#define?#define?#define?#define?#define?#define?#define?#define?#define?#define?#defineGTP_DEBUG_ARRAY_ON//调试数组开关,用于调试时打印一片内存的内容GTP_DEBUG_FUNC_ON//调试函数开关,用于跟踪函数调用流程GTP_CUSTOM_CFG//客户定制配置开关,用于客户自行修改某些参数GTP_HAVE_TOUCH_KEY//触摸按键开关,仅带有触摸按键的TP需要打开GTP_AUTO_UPDATE//开机搜寻bin文件进行固件升级GTP_HEADER_FW_UPDATE//使用gt9xx_firmware.h中的固件升级,)需开启GTP_AUTO_UPDATE)GTP_AUTO_UPDATE_CFG//搜寻.cfg文件升级(需开启GTP_AUTO_UPDATE)GTP_ESD_PROTECT//ESD防护机制开关GTP_ICS_SLOT_REPORT//android4.0以上配置成slot方式报点GTP_GESTURE_WAKEUP//手势唤醒GTP_COMPATIBLE_MODE//兼容GT9XXF模式GTP_LITTLE_SYSTEM//带小系统的GT9XXF,需同开启POWER_CTRL_SLEEPGTP_WITH_PEN//笔事件支持GTP_PEN_HAVE_BUTTON//主动笔带有按键五、版本修订记录文档版本V1.0V1.2V1.4V1.6V1.8V2.0修订初次建立SLOT方式滑动唤醒,头文件升级重新排版GT9XXF兼容说明,滑动唤醒说明,自动升级说明手势唤醒说明日期2012-08-312012-10-152013-03-112013-06-082013-08-062014-01-147

本文来源:https://www.bwwdw.com/article/q61.html

Top