九鼎创展论坛中文版English
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 667|回复: 5

Linux+Qt 在安卓6.1的源码下如何配置10.1的屏幕触屏设置

[复制链接]
发表于 2018-9-3 18:28:54 | 显示全部楼层 |阅读模式
按照指导手册上的修改了x3399-development-board.dts中的数据,如下:       
    gt9xx: gt9xx@14 {
                compatible = "goodix,gt9xx";
                reg = <0x14>;
                touch-gpio = <&gpio1 20 IRQ_TYPE_EDGE_RISING>;
                reset-gpio = <&gpio1 9 GPIO_ACTIVE_LOW>;
                max-x = <2560>;
                max-y = <1600>;
                tp-size = <101>;
        };
        &rk_screen {
            assigned-clocks = <&cru PLL_VPLL>;
            assigned-clock-rates = <245000000>;
         /*#include "lcd-mipi-7inch-wy070ml.dtsi"*/
            #include "lcd-edp-ltl101dl03.dtsi"
         /* #include "lcd-edp-lp079qx1.dtsi" */};

但是对QT下屏幕的触屏没有作用,请问一下这个需要怎么处理呢

回复

使用道具 举报

发表于 2018-9-5 16:21:33 | 显示全部楼层
驱动需要修改,补丁如下(-表示去掉,+表示增加):
diff --git a/kernel/drivers/input/touchscreen/gt9xx/gt9xx.c b/kernel/drivers/input/touchscreen/gt9xx/gt9xx.c
index b4a538f..0bc94e0 100644
--- a/kernel/drivers/input/touchscreen/gt9xx/gt9xx.c
+++ b/kernel/drivers/input/touchscreen/gt9xx/gt9xx.c
@@ -434,12 +434,9 @@ static void gtp_touch_down(struct goodix_ts_data* ts,s32 id,s32 x,s32 y,s32 w)
     input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, w);
#else
     input_report_key(ts->input_dev, BTN_TOUCH, 1);
-    input_report_abs(ts->input_dev, ABS_MT_POSITION_X, x);
-    input_report_abs(ts->input_dev, ABS_MT_POSITION_Y, y);
-    input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, w);
-    input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, w);
-    input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID, id);
-    input_mt_sync(ts->input_dev);
+    input_report_abs(ts->input_dev, ABS_X, x);
+    input_report_abs(ts->input_dev, ABS_Y, y);
+    input_sync(ts->input_dev);
#endif

     GTP_DEBUG("ID:%d, X:%d, Y:%d, W:%d", id, x, y, w);
@@ -496,11 +493,8 @@ static void gtp_pen_init(struct goodix_ts_data *ts)
     input_set_capability(ts->pen_dev, EV_KEY, BTN_STYLUS2);
#endif

-    input_set_abs_params(ts->pen_dev, ABS_MT_POSITION_X, 0, ts->abs_x_max, 0, 0);
-    input_set_abs_params(ts->pen_dev, ABS_MT_POSITION_Y, 0, ts->abs_y_max, 0, 0);
-    input_set_abs_params(ts->pen_dev, ABS_MT_PRESSURE, 0, 255, 0, 0);
-    input_set_abs_params(ts->pen_dev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0);
-    input_set_abs_params(ts->pen_dev, ABS_MT_TRACKING_ID, 0, 255, 0, 0);
+    input_set_abs_params(ts->pen_dev, ABS_X, 0, ts->abs_x_max, 0, 0);
+    input_set_abs_params(ts->pen_dev, ABS_Y, 0, ts->abs_y_max, 0, 0);

     ts->pen_dev->name = "goodix-pen";
     ts->pen_dev->id.bustype = BUS_I2C;
@@ -531,12 +525,9 @@ static void gtp_pen_down(s32 x, s32 y, s32 w, s32 id)
     input_report_abs(ts->pen_dev, ABS_MT_TOUCH_MAJOR, w);
#else
     input_report_key(ts->pen_dev, BTN_TOUCH, 1);
-    input_report_abs(ts->pen_dev, ABS_MT_POSITION_X, x);
-    input_report_abs(ts->pen_dev, ABS_MT_POSITION_Y, y);
-    input_report_abs(ts->pen_dev, ABS_MT_PRESSURE, w);
-    input_report_abs(ts->pen_dev, ABS_MT_TOUCH_MAJOR, w);
-    input_report_abs(ts->pen_dev, ABS_MT_TRACKING_ID, id);
-    input_mt_sync(ts->pen_dev);
+    input_report_abs(ts->pen_dev, ABS_X, x);
+    input_report_abs(ts->pen_dev, ABS_Y, y);
+    input_sync(ts->pen_dev);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-6 11:30:21 | 显示全部楼层
lxz 发表于 2018-9-5 16:21
驱动需要修改,补丁如下(-表示去掉,+表示增加):
diff --git a/kernel/drivers/input/touchscreen/gt9xx ...

谢谢您的指导,修改之后,还是不支持触摸,我查看了一下打印信息:
[    0.847588] rk-screen screen: rockchip screen probe success
[    0.848151] rk32-edp rk32-edp: cannot get pd
[    0.848301] rk32-edp rk32-edp: rk32 edp driver probe success
[    0.848726] rk3399-dsi
我的是10.1的edp的屏幕。在安卓下都是触摸是没问题的,应该不是焊接的问题吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-11 15:31:40 | 显示全部楼层
你好,https://blog.csdn.net/a694543965/article/details/79935086,我根据这个网站上的方法查到触屏有反馈信息,但是在获取x,y轴的触摸范围是返回值都是0.
x abs lastest value=0                                                        
x abs min=0                                                                     
x abs max=0                                                                 
y abs lastest value=0                                                        
y abs min=0                                                                     
y abs max=0                                                                  
pressure abs lastest value=0                                                   
pressure abs min=0                                                              
pressure abs max=0
即返回这样的数据,这个是因为驱动哪里不对么?并且还有一个问题就是,修改前的代码可以支持安卓下的触摸,但修改后安卓下的触摸也不支持了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-11 15:33:09 | 显示全部楼层
qaz731378628 发表于 2018-9-11 15:31
你好,https://blog.csdn.net/a694543965/article/details/79935086,我根据这个网站上的方法查到触屏有反 ...

会不会是因为触屏的驱动没有加载进去呢?
回复 支持 反对

使用道具 举报

发表于 2018-9-18 16:59:37 | 显示全部楼层
请使用这个测试镜像:
链接:https://pan.baidu.com/s/1owjPzqaFKRSntAKOk32lFw 密码:su6c
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳市九鼎创展科技官方论坛 ( 粤ICP备11028681号-2  

GMT+8, 2018-12-19 09:20 , Processed in 0.088581 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表