最近看了一下6410的触摸驱动,有一点疑惑。所以请大神们解答。
发现6410的触摸驱动(drivers/input/touchscreen/mini6410-ts.c)中没有直接通过input子系统进行上报(因为我之前看的xpt2046的电阻触摸驱动是直接处理完就上报的),而只是将操作的坐标和松开按下拼成一个32位数(通过这个驱动的read可以读出),然后在drivers/input/touchscreen/ts-if.c 又注册的一个misc设备,在这里面注册了 input子系统,在这个ts-if设备的 ioctl 操作中 有 将 cmd 参数 分解(正好与/mini6410-ts中的拼成32位数方式相反)进行在input上报。
因此我感觉应该由一个linux应用程序会读取read触摸屏驱动mini6410-ts.c中的整理好的32位数然后通过ts-if设备的 ioctl 操作写入 cmd (32位数),这样就会通过input上报了,
所以我的疑惑如下:
(如果我的猜测有误,请大神更正)
1.这个应用程序在哪?
2.为什么要采取这样的方式?
最近研究了一阵,使用的应用是tslib,在linux的文件系统下的/etc/friendlyarm-ts-input.conf中有配置 TSLIB_TSDEVICE=/dev/touchscreen,touchscreen是mini6410-ts.c注册的设备名,这说明tslib吧mini6410-ts作为输入设备,不断read读取.
但不知道为啥要这样?友善的东西真是奇葩
[ 此帖被liwendovo在2013-07-29 16:04重新编辑 ]