之前没有搞过,楼主提出来时临时去看了一下,我不太确定怎么弄,不如大家讨论一下。
我感觉这个方向应该是这样的:
hwmsen_dev.c这个文件里hwmsen_probe()函数hwm_obj->idev = input_allocate_device();注册了输入设备。
而mtk_tpd.c这个文件里 tpd_probe()这个函数里也有if((tpd->dev=input_allocate_device())==NULL) 这样的操作。
在linux里所有的输入设备其实应该是共用一套体系:在input.h头文件里定义了这一套系统所用到的参数,比如ABS_***这样的宏,不正是在TP里面用到的么,那么光感也要用到这些宏,那我们在TP的驱动里判断完状态之后,使用这些宏向上报告一下事件是不是就OK了呢?
比如TP的驱动里有这样的函数 static int tpd_up(int x, int y,int p) {
input_report_abs(tpd->dev, ABS_PRESSURE, 0);
input_report_key(tpd->dev, BTN_TOUCH, 0);
input_report_abs(tpd->dev, ABS_MT_TOUCH_MAJOR, 0);
input_report_abs(tpd->dev, ABS_MT_POSITION_X, x);
input_report_abs(tpd->dev, ABS_MT_POSITION_Y, y);
//printk("U[%4d %4d %4d] ", x, y, 0);
input_mt_sync(tpd->dev);
TPD_UP_DEBUG_TRACK(x,y);
return 1;
}
那我把这里面的宏换成光感相关的宏,是不是就可以了呢?现在,工作是不是就剩下光感相关的宏及意义了呢?
以上是我的思路。
大家讨论一下么