15.6寸 GT9110H电容触摸 RK3566 android 调试记录
需求
在RK3566泰山派原本的android11 SDK基础下,调试出15.6寸LVDS屏 + 15.6寸GT9110H电容触摸。
关于 15.6寸LVDS屏 之前已经调过就不写怎么驱动了。本文主要讲 触摸调试。
硬件
驱动
驱动用是的 SDK 中默认自带的驱动,供应商提供的驱动没有用到,以及 cfg 文件也没有用到。
设备树
触摸I2C的设备树:
&i2c5 {
status = "okay";
pinctrl-0 = <&i2c5m0_xfer>;
clock-frequency = <400000>;
gt911: gt911@14 {
compatible = "goodix,gt9xx";
reg = <0x14>;
status = "okay";
tp-size = <9110>;
max-x = <1920>;
max-y = <1080>;
pinctrl-0 = <&touch_gpio>;
touch-gpio = <&gpio3 RK_PC1 IRQ_TYPE_EDGE_RISING>;
pinctrl-names = "default";
pinctrl-1 = <&reset_gpio>;
reset-gpio = <&gpio3 RK_PC2 GPIO_ACTIVE_HIGH>;
};
};
&pinctrl {
...(省略)
gt911{
touch_gpio: touch-gpio {
rockchip,pins = <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
};
reset_gpio: reset-gpio {
rockchip,pins = <3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
};
测试方法
进入系统的开发者选项。在设置找到 关于平板电脑 -> 版本号。连续点击版本号几次直到提示进入 开发者模式
为止。
进入开发者模式后,退回设置主页,找到 系统 -> 高级 -> 开发者选项 -> 指针位置 。将指针位置的选项打开,即可看到触摸点。
调试记录
触摸范围不对
烧录上面的设备树后,发现X Y都镜像,触摸范围大小跟屏幕也不搭。
后面打开驱动源码的调试功能,看看具体啥问题。驱动源码位置:
在 gt9xx.h 中找到 DEBUG_SWITCH 宏定义并设置为 1,即可打开DEBUG选项。
完成后,编译内核烧录上电,通过 adb 调试查看日志发现在设备树中设置的像素并没有设置到屏幕里面,触摸范围是默认的1366,768。
查看日志命令:
日志输出:
可以看到它使用的触摸范围是默认的,而不是我们设置的,我的解决办法是直接写死触摸范围。
更新代码:
主要是更新为以下代码:
ts->abs_x_max 和 ts->abs_y_max 就是我们输入的参数。
设置完成后编译烧录测试应该触摸范围正常了。
触摸XY镜像
后面了解到,在设备树中,配置tp-size
参数为 9110
,而在驱动代码中,是根据这个 tp-size
来配置的是否镜像。
驱动源码中关于 tp-size
配置是否镜像的位置:
三个关键参数:
这里我全部关闭就正常了。
评论