禾瑞亚科触摸屏驱动程序移植过程与遇到的问题--egalax_i2c

1.在板级文件中添加对i2c的支持(不同平台文件名不一样)

2.将驱动文件移动kernel/driver/input/touchscreen/下   增加Makefile和Kconfig的对egalax_i2c触摸屏部分

3.在设备上加载egalax_i2c.ko文件

4.首先调试触摸屏:

      1)检测i2c总线上是否有该设备

      2)读取触摸屏的所有寄存器值

      3)操作触摸屏的寄存器

 确定OK,则可以cat  /eventN,触摸后有乱码则表示移植驱动OK

遇到问题1:驱动出现 cut here 错误

解决方法:未申请GPIO,用gpio_request申请,一般申请中断引脚和复位引脚

遇到问题2:触摸屏一直复位

解决方法:电平测量复位引脚

遇到问题3:i2c检测正常,驱动正常,点击屏幕无反应

解决方法:1)先看中断引脚号是否正确以及是否申请,若未将中断引脚申请中断号,则无法进入中断处理函数

                    2)如1)正确,则将中断引脚配置成输出,手动改变电平值,并测量是否成功(应用层方法,驱动层方法以及直接操作GPIO寄存器 都可以尝试改变GPIO值),我就出现过不管采用哪种方法,中断引脚的值一直是低,而触摸屏配置的是低电平触发,结果就是一直在处理中断,后面通过去除上拉电阻解决的(捂脸,总觉得这方法不对),最后将中断引脚配置为输入,通过点击屏,可以向主控发送中断信号

遇到问题4.  tslib支持触摸屏时,一直处于while循环当中

解决方法:现在绝大多数的触摸屏都是支持单点和多点触摸,但是tslib只支持单点触摸,所以要用ABS_X和ABS_Y这部分,才能跟tslib的代码匹配上

遇到问题5:selected device is not a touchscreen I understand

解决方法:1.没有选中对应的eventN,2.没有使用ABS_X和ABS_Y   3.没有增加pressure值传入(touch down = 1    touch up = 0)

4.内核版本和编译器版本不同

 

你可能感兴趣的:(禾瑞亚科触摸屏驱动程序移植过程与遇到的问题--egalax_i2c)