rk33399 i2c触摸调试的经验总结linux触摸屏gt9xx驱动调试记录和注意事项

* 调试gt9xx触摸屏,终于调试好了,我总结的问题:

  1. v2.4版本,goodix官方原版的gt9xx代码是不能用的,所以我们用4418已经稳定的gt9xx驱动代码。必须用meld认真对比官方代码和我们4418的代码,一点点改掉,以防编译出错。

  2. 要下在设备树里面,向ic下发goodix,cfg-group0,否则屏幕不能用。

  3. 先看原理图,去顶电源脚(vcc),中断脚(irq),和复位脚(rst)。 注意rst,irq在设备树定义的时候,不要搞错搞乱了,互换对调了。

  4. 看看gt9xx.c源码,查找of_property, of_get, of_node …等设备树的函数,确定解析的名字,不要搞错了,参考网上的资料,例如,这次我解析的就是: goodix,rst-gpio, goodix,irq-gpio

  5. 内核要关掉内核的重复配置,否则会提示出错,driver already registed… ,make menuconfig 关闭如下项目:> Device Drivers > Input device support > Touchscreens > Goodix I2C touchscreen

  6. 刚刚开始调试,必须先打开调试选项,不如你没有足够的调试信息效率低下。打开方法:
    在gt9xx.h中,定义如下:
    #define GTP_DEBUG_ON 1
    #define GTP_DEBUG_ARRAY_ON 0
    #define GTP_DEBUG_FUNC_ON 1
    #define GTP_CONFIG_OF 1//打开设备树木,记得要定义,现在都用设备树

  7. gt9xx i2c地址是linux代码显示的,和手册上的实际地址不一样,linux代码里面的是实际的除以2(因为最后一位是读写位),goodix的地址有两,分别是0x28,和0xba, 但是linux的地址就是14 和 5d。

  8. 要在设备树上定义cfg下发,不然触摸芯片不工作,cfg配置是一个数组,厂家给的。

  9. 高版本的android 4.4+, 要打开:GTP_ICS_SLOT_REPORT, 而且,input_report_key(ts->pen_dev, BTN_TOUCH, 0) 函数改变了。 最后的flag填入0既可。

猜你喜欢

转载自blog.csdn.net/mynameislinduan/article/details/103922340