前言:
在适配新的Touch Panal之前,并没有接触过此类的驱动, 所有现简单的阅读了一下驱动代码, 代码路径为:
kernel/drivers/hid/hid_multitouch.c
适配修改代码如下:
diff --git a/kernel/drivers/hid/hid-multitouch.c b/kernel/drivers/hid/hid-multitouch.c
index 2ddb50b..c37d327 100644
--- a/kernel/drivers/hid/hid-multitouch.c
+++ b/kernel/drivers/hid/hid-multitouch.c
@@ -158,6 +158,8 @@ static void mt_post_parse(struct mt_device *td);
#define MT_CLS_GENERALTOUCH_PWT_TENFINGERS 0x0109
#define MT_CLS_VTL 0x0110
+#define MT_CLS_QINHENG 0x0111
+
#define MT_DEFAULT_MAXCONTACT 10
#define MT_MAX_MAXCONTACT 250
@@ -731,7 +733,7 @@ static void mt_process_mt_event(struct hid_device *hid, struct hid_field *fie
case HID_GD_Y:
// printk("kelland HID_GD_Y value:%d\n",value);
// if(value)
- value = (32767 - value);
+ value = (4096 - value);
//value = (9481 - value)*16450/9481;
// printk("kelland change HID_GD_Y value:%d\n",value);
if (usage->code == ABS_MT_TOOL_Y)
@@ -1093,6 +1095,8 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id
break;
}
}
总结:
- 适配的主要任务是进行坐标的正确映射, 可设置设备进入开发者模式 -- 输入 选项 进行触摸位置的辅助判断;
- Touch Panal 驱动使用input子系统进行事件管理.