/*************************************************************************          I.MX6 Goodix GT9xx touchscreen driver porting* 声明:*     本文主要是记录GT9xx电容Touch移植过程中遇到的一些问题。**                                      2016-1-27 深圳 南山平山村 曾剑锋***********************************************************************/一、参考文档:GT9XX驱动移植说明书_for_Android_2014011401.pdf二、error 1:1. 出错信息:1. 直接将驱动放在kernel里系统会卡死,出错信息如下:USB Gadget resume beginsfsl_udc_resume, Wait for wakeup thread finishesdr_controller_run: udc out low power modeUSB Gadget resume endsfsl-usb2-udc: bind to driver android_usb mousedev: PS/2 mouse device common for all miceinput: gpio-keys as /devices/platform/gpio-keys/input/input0<<-GTP-INFO->> GTP driver installing...<<-GTP-INFO->> GTP Driver Version: V2.4<2014/11/28><<-GTP-INFO->> GTP Driver Built@11:15:29, Jan 26 2016<<-GTP-INFO->> GTP I2C Address: 0x5d<<-GTP-INFO->> Guitar reset<<-GTP-INFO->> Chip Type: GOODIX_GT9<<-GTP-INFO->> IC Version: 9157_1040<<-GTP-INFO->> X_MAX: 720, Y_MAX: 1280, TRIGGER: 0x01<<-GTP-INFO->> create proc entry gt9xx_config successinput: goodix-ts as /devices/virtual/input/input1<<-GTP-INFO->> GTP works in interrupt mode.<<-GTP-INFO->> Applied memory size:2562.<<-GTP-INFO->> Applied memory size:2562.<<-GTP-INFO->> I2C function: without pre and end cmd!<<-GTP-INFO->> Create proc entry success!mtk_tpd: hotknot_device register failedUSB Gadget resume beginsfsl_udc_resume, Wait for wakeup thread finishesehci_fsl_bus_suspend begins, Host 1ehci_fsl_bus_suspend ends, Host 1<系统会卡死在这里,接下来没有任何信息输出>2. 作为模块加入内核,使用久了,系统也会卡死:root@android:/ # cd /data/localroot@android:/data/local # lsgt9xxm.kotmproot@android:/data/local # insmod gt9xxm.ko                                    <<-GTP-INFO->> GTP driver installing...<<-GTP-INFO->> GTP Driver Version: V2.4<2014/11/28><<-GTP-INFO->> GTP Driver Built@11:40:19, Jan 26 2016<<-GTP-INFO->> GTP I2C Address: 0x5d<<-GTP-INFO->> Guitar reset<<-GTP-INFO->> Chip Type: GOODIX_GT9<<-GTP-INFO->> IC Version: 9157_1040<<-GTP-INFO->> X_MAX: 720, Y_MAX: 1280, TRIGGER: 0x01<<-GTP-INFO->> create proc entry gt9xx_config successinput: goodix-ts as /devices/virtual/input/input1cpufreq_interactive_input_connect: connect to goodix-ts<<-GTP-INFO->> GTP works in interrupt mode.<<-GTP-INFO->> Applied memory size:2562.<<-GTP-INFO->> Applied memory size:2562.<<-GTP-INFO->> I2C function: without pre and end cmd!root@android:/data/local # <<-GTP-INFO->> Create proc entry success!mtk_tpd: hotknot_device register failed2. 解决方法:1. cat gt9xx.h......#define HOTKNOT_ENABLE        0    // hotknot module#define HOTKNOT_BLOCK_RW      0    // block rw operation in hotknot ......2. cat goodix_tool.cs32 init_wr_node(struct i2c_client *client){......#if 0if (misc_register(&hotknot_misc_device)){printk("mtk_tpd: hotknot_device register failed\n");return FAIL;}#endif......} 3. 思路来源:1. 想通过尽可能减少驱动的功能来判断驱动哪里出了问题。2. cat gt9xx.h......#define HOTKNOT_ENABLE        1    // hotknot module#define HOTKNOT_BLOCK_RW      1    // block rw operation in hotknot ......3. 如上所述,不需要该功能,当然我也不知道这是什么功能。4. 改为如下内容:#define HOTKNOT_ENABLE        0    // hotknot module#define HOTKNOT_BLOCK_RW      0    // block rw operation in hotknot 5. 报错如下:......CC      drivers/input/touchscreen/gt9xx.odrivers/input/touchscreen/gt9xx.c: In function 'goodix_ts_suspend':drivers/input/touchscreen/gt9xx.c:2735:5: warning: unused variable 'buf' [-Wunused-variable]CC      drivers/input/touchscreen/gt9xx_update.oCC      drivers/input/touchscreen/goodix_tool.odrivers/input/touchscreen/goodix_tool.c: In function 'init_wr_node':drivers/input/touchscreen/goodix_tool.c:346:21: error: 'hotknot_misc_device' undeclared (first use in this function)drivers/input/touchscreen/goodix_tool.c:346:21: note: each undeclared identifier is reported only once for each function it appears indrivers/input/touchscreen/goodix_tool.c: At top level:drivers/input/touchscreen/goodix_tool.c:855:16: warning: 'hotknot_write' defined but not used [-Wunused-function]drivers/input/touchscreen/goodix_tool.c:1243:16: warning: 'hotknot_read' defined but not used [-Wunused-function]make[3]: *** [drivers/input/touchscreen/goodix_tool.o] Error 1make[2]: *** [drivers/input/touchscreen] Error 2make[1]: *** [drivers/input] Error 2make: *** [drivers] Error 2error: make uImage failed../remake.sh: 18: exit: Illegal number: -16. 既然已经禁止了,那么不可能还有hotknot_misc_device设备注册的,也就意味着这个版本的驱动有错。7. 综上所述:可能是我们的kernel不支持hotknot这个功能导致的。三、error 2:1. 触摸屏点击有效,但是不准确,TP厂没有给矫正文件,后来FAE确认是由于矫正配置参数的问题。2. 修改gt9xx.h文件:......#define GTP_DRIVER_SEND_CFG   1......3. 配置参数:#define CTP_CFG_GROUP0 {\0x46,0xD0,0x02,0x00,0x05,0x0A,0x05,0x40,0x01,0x08,\0x28,0x0F,0x50,0x32,0x03,0x05,0x00,0x00,0x00,0x00,\0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8A,0x0A,0x0B,\0x2E,0x30,0x31,0x0D,0x00,0x00,0x00,0x02,0x03,0x1D,\0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,\0x00,0x21,0x41,0x94,0xC5,0x02,0x07,0x00,0x00,0x04,\0x9E,0x23,0x00,0x8D,0x28,0x00,0x80,0x2E,0x00,0x74,\0x35,0x00,0x69,0x3C,0x00,0x69,0x00,0x00,0x00,0x00,\0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\0x00,0x00,0x16,0x14,0x12,0x10,0x0E,0x0C,0x0A,0x08,\0x06,0x04,0x02,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,\0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\0x00,0x00,0x16,0x13,0x18,0x12,0x1C,0x10,0x1D,0x0F,\0x0A,0x1E,0x00,0x24,0x22,0x02,0x21,0x04,0x20,0x06,\0x1F,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,\0x00,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\0x9F,0xFF,0xFF,0xFF,0x00,0x01\}

I.MX6 Goodix GT9xx touchscreen driver porting相关推荐

  1. I.MX6 ar1020 SPI device driver hacking

    /************************************************************************************* I.MX6 ar1020 ...

  2. AliOS Things 硬件抽象层(HAL)对接系列2 — SPI driver porting

    HAL层(Hardware abstraction layer) 的目的是为了屏蔽底层不同芯片平台的差异,从而使驱动层上面的软件不会随芯片平台而改变.AliOS Things定义了全面的HAL抽象层, ...

  3. Touch driver porting

    1>将驱动code加入源码kernel目录,touch driver是drivers/input/touchscreen 可以直接放到这里,也可以新建个目录放进去,看自己喜好-我是建了个目录,会 ...

  4. android 双触摸屏(touchscreen)实现--kernel driver

    背景 本文主要实现一个Android系统,调试两个相同的TP设备,使用同一个TP的驱动. 最终实现结果,两个TP都可以控制Android,正常报点. 实现过程: 硬件连接介绍: 软件实现: 在dtsi ...

  5. 触摸屏GT9xx移植

    下载GT9xx的源码http://download.csdn.net/detail/u012724126/6506027 解压并编写Makefile文件,gt9xx.c的源码并不需要修改,gt9xx. ...

  6. 正点原子gt9xx系列linux驱动移植

    写这个博客的前景: 正点原子的RGB电容触摸屏触摸芯片系列: 4.3 寸屏  480x272分辨率 使用的触摸芯片是gt9xx系列 4.3寸屏 800x480分辨率 使用的触摸芯片是gt9xx系列 7 ...

  7. firefly-rk3288j开发板 TP实验之GT9XX触摸驱动

    linux TP实验之GT9XX触摸驱动 1 准备工作 开发板:aio-rk3288j SDK版本:rk3288_linux_release_20210304 下载工具:Linux_Upgrade_T ...

  8. IMX6 GT9xx(GT911) 驱动移植(不包含 TSLIB 移植)

    实验环境: 飞思卡尔 IMX6 系列内核 配套使用 TSLIB 用于作为读写接口 记得删除 pointercal 一般位于 /etc 下,这东西对于电容屏没啥作用 附带 QT 将触摸事件改变配置 ex ...

  9. 触摸屏gt9xx系列芯片驱动调试

    平台:STM32MP157 触摸屏芯片:gt911 驱动:goodix.c 现在很多平台都使用gt9xx系列的触摸屏,我在imx6dl平台和imx6ull平台都调试过这个芯片. 这次刚好调试157平台 ...

最新文章

  1. Flash Builder 4 安装ANT插件
  2. 转载:如何快速转载CSDN及博客园中的博客
  3. select及触发方式,select监听多链接,select与epoll的实现区别
  4. Java调优:Mybaitis的缓存优化
  5. O2O年度反思:流量不再为王不赚钱就得死
  6. C/C++ debug(一)
  7. 【转】 TechED2010与我(三) —— 初识云计算
  8. matlab一个figure画多个子图,和多个figure画多个图。
  9. oracle创建PDB数据库
  10. 银行电话精准营销的探索性分析并基于XGboost进行潜在客户预测建模
  11. 如何在markdown中打出上标、下标和一些特殊符号 from jianshuer 这是朕的江山
  12. 沐风微信营销水库模型二:建设专属秘密武器库!
  13. C语言程序设计——用户密码输入与判断
  14. cdrx8如何批量导出jpg_CDR怎么批量导出图片
  15. c++读取wav音频方法
  16. PostgreSQL数据库进程数据结构——ProcGlobal
  17. 堆和栈内存的比较 in C++【C++学习笔记】
  18. python 二维相关系数计算
  19. 删除页眉上的横线和删除分页符
  20. P1734 最大约数和 01背包变形

热门文章

  1. 深入浅出ShellExecute
  2. mysql 分页测试,
  3. CmsEasy20160825前台无限制GetShell复现
  4. 我的第一个纯手写jQuery插件
  5. Java数据库——CallableStatement接口
  6. XML+SQL=数据库的未来?
  7. BCH应无惧11月,奋力求发展
  8. BCH社区公益广告位计划
  9. memcache---mongodb---redis比较
  10. VMware CTO:未来VMware NSX与思科ACI将有更多整合