rockchip rk3368(px5)车载开发之路3,触摸屏触摸正常

本系列记载作者来到一个新的车载后装市场小公司,负责从新开始维护一套代码的心路过程。系统使用瑞芯微的rk3368芯片,版本是PX5_Android_8.0_release_20180726,从无到有的每个patch修改以及思考。其中着重点是驱动和系统相关,由于涉及到公司保密,所以APP部分暂时不贴过多的代码,只是针对系统bug进行记录。

2020_02_13

文章后面有调试经验总结!!!

目前触摸屏使用的是gt911,与原生的版本使用的是一样的。触摸屏通过getevent有数据输出,只是方向和xy轴反了应该。通过鼠标进入setting打开相关的触摸轨迹显示后,发现了一些规律,从而在软件驱动层面进行修改,以使得gt911报点正常。
在这里插入图片描述

diff --git a/arch/arm64/boot/dts/rockchip/rk3368-px5-evb-android.dts b/arch/arm64/boot/dts/rockchip/rk3368-px5-evb-android.dts
index 9fb9e65..1a618d3 100644
--- a/arch/arm64/boot/dts/rockchip/rk3368-px5-evb-android.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3368-px5-evb-android.dts
@@ -765,9 +765,9 @@
                reg = <0x14>;
                touch-gpio = <&gpio3 RK_PD4 IRQ_TYPE_LEVEL_HIGH>;
                reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
-               max-x = <1024>;
-               max-y = <600>;
-               tp-size = <910>;
+               max-x = <1280>;
+               max-y = <480>;
+               tp-size = <911>;
                tp-supply = <&vcc_io>;
                status = "okay";
        };
diff --git a/drivers/input/touchscreen/gt9xx/gt9xx.c b/drivers/input/touchscreen/gt9xx/gt9xx.c
index 6db7e39..d558aeb 100644
--- a/drivers/input/touchscreen/gt9xx/gt9xx.c
+++ b/drivers/input/touchscreen/gt9xx/gt9xx.c
@@ -2639,9 +2639,9 @@ static int goodix_ts_probe(struct i2c_client *client, const struct i2c_device_id
        } else if (val == 911) {
                m89or101 = FALSE;
                bgt911 = TRUE;
-               gtp_change_x2y = TRUE;
-               gtp_x_reverse = FALSE;
-               gtp_y_reverse = TRUE;
+               gtp_change_x2y = FALSE;
+               gtp_x_reverse = TRUE;
+               gtp_y_reverse = FALSE;
        } else if (val == 970) {
                m89or101 = FALSE;
                bgt911 = FALSE;

至此,触摸屏使用正常

后记:
刚刚看到同时发的3篇文章,就该文件点击量比较高,估计是大家搜索触摸屏关键字后,对这个主题比较关注,不好意思的是题主的系统,触摸屏的选型时候,与原生SDK的一致,所以最后调试的工作量很小(做项目本无可厚非,毕竟现在最贵的就是人力)。但是很多人搜索的时候,估计遇到的触摸屏文件比笔者大很多,至此,笔者将十多年的调试驱动的干货,针对触摸屏这里,做一个分享(仅仅涉及到调试通过)。

1.拿到一个板子,先看原理图,了解该触摸ic的供电,i2c所属总线,reset相关的控制脚。
2.kernel下面检查dts和driver下面驱动文件是否都配置好了(进入了编译)
3.系统起来后,通过adb进入到

px5:/ # cat /sys/bus/i2c/devices/2-0014/name
gt9xx

其中2是说明我们tp挂载在i2c bus2上面,14说明我们的i2c地址是0x14
对应驱动dts文件形态为:

&i2c2 {
        status = "okay";
        clock-frequency = <200000>;

        gt9xx: gt9xx@14 {
                compatible = "goodix,gt9xx";
                reg = <0x14>;
                touch-gpio = <&gpio3 RK_PD4 IRQ_TYPE_LEVEL_HIGH>;
                reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
                max-x = <1280>;
                max-y = <480>;
                tp-size = <101>;
                tp-supply = <&vcc_io>;
                status = "okay";
        };

4.检查驱动文件是否正常编译,通过adb进入

px5:/ # ls /sys/bus/i2c/drivers/Goodix-TS/
2-0014/  bind     uevent   unbind

此时我本地的驱动状态良好,首先有drivers/Goodix-TS目录,说明驱动文件被正常编译进去了。然后目录下面还有2-0014.说明bind正常。若文件都有,但是bind失败,需要按照log去查找是不是i2c的通信没通,然后仔细确定是总线问题(i2c上拉电阻)。还是其他reset,上电等问题。
5.若正常bind后,通过getevent当触摸屏幕时候应该可以看到报点。
6.打开setting里面的开发者模式,里面有触摸划线功能打开,然后随机触摸,根据点的规律修改报点方向和分辨率。
注意:一般厂家,都是将报点方向和分辨率交由驱动去配置,此时触摸屏报点都是一样的,变化的是内核根据方向和分辨率对报点做二次处理。但是为了更加精细化调节触摸屏(不同的ito图案,会有细微差别的),可以要求触摸ic厂家升级ic固件,此时报点分辨率和方向是ic算出来的,内核直接进行上报即可。

如果大家想学习触摸驱动的流程,建议看下drivers/input/touchscreen/egalax_ts.c。基本属于超级精简的可用的触摸屏驱动skeleton

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Rockchip RK3588是一款高性能的芯片,主要用于移动设备和嵌入式系统。它支持USB接口,可以用于连接外部设备,并进行数据传输和通信。 关于Rockchip RK3588 USB开发指南,以下是一些建议和指导: 1. 创建USB连接:首先,需要在嵌入式系统中创建一个USB连接。这可以通过配置硬件和软件来完成。硬件方面,需要确保RK3588芯片和USB接口的正确连接。软件方面,可以使用相应的驱动程序和库来管理和控制USB连接。 2. USB驱动程序开发:为了实现与外部设备的数据交换,需要编写USB驱动程序。这些驱动程序可以通过使用底层的USB协议和API来完成。可以选择使用已有的USB驱动程序框架,如libusb等,也可以根据具体需求自行编写驱动程序。 3. 数据传输和通信:一旦USB连接建立并配置完毕,就可以通过USB接口进行数据传输和通信。可以使用USB的各种传输模式,如批量传输、中断传输或等时传输,根据实际需求选择合适的模式。 4. USB设备接口开发:如果需要将RK3588芯片作为USB设备使用,还需要进行USB设备接口开发。可以根据设备规范和需求,设计并实现相应的USB接口。 5. 软件开发工具:为了更便捷地进行Rockchip RK3588 USB开发,可以使用相应的软件开发工具。Rockchip提供了开发工具包(SDK)和调试工具,可以加快开发过程,并提供调试和优化的功能。 总之,Rockchip RK3588 USB开发指南涵盖了创建USB连接、USB驱动程序开发、数据传输和通信、USB设备接口开发等内容。通过合理的设计和开发,可以充分利用RK3588的强大性能和USB接口的灵活性,实现丰富的移动设备和嵌入式系统功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值