[AndroidO] [RK3399] -- 适配新的usb touch Panal

前言:

    在适配新的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;
                }
        }

总结:

  1. 适配的主要任务是进行坐标的正确映射, 可设置设备进入开发者模式 -- 输入 选项 进行触摸位置的辅助判断;
  2. Touch Panal 驱动使用input子系统进行事件管理.

你可能感兴趣的:(AndroidO,RK3399)