[RK3399] 汇顶gt9xx触摸屏在RK原始代码调试
CPU:RK3399
系统:Android 7.1
触摸屏:1024x768 8inch
触摸IC:GT9271
基于RK3399,从瑞芯微服务器更新到最新的 Android 7.1 代码中,瑞芯微已经将汇顶触摸屏的代码做了一些改动,与汇顶官方提供的不一致。
初步来看,瑞芯微更改后的代码,为开发者提供了更多的便利。
比如:x/y坐标反了,x、y坐标镜像了,这些问题开发者就可以解决,不用再联系 FAE 修改配置文件。
1、将 gt9xx 文件夹添加到编译中,修改 rockchip_defconfig 文件,或者在 kernel 中执行 make menuconfig 指令都可以
新代码中一般都默认支持了,不需要额外手动打开
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_GT9XX=y
2、在 dts 文件中根据硬件原理图修改触屏参数
"tp-size” 这个参数表面看是 tp 的尺寸,实际好像是可以随意定义,在代码中只是通过这个参数来选择配置信息和触摸调整。
此时我定义为 ic 的型号
&i2c4 {
status = "okay";
i2c-scl-rising-time-ns = <>;
i2c-scl-falling-time-ns = <>;
clock-frequency = <>;
gt9xx: gt9xx@ {
compatible = "goodix,gt9xx";
// tp ic设备地址
reg = <0x14>;
// tp 中断脚和复位脚
touch-gpio = <&gpio1 IRQ_TYPE_LEVEL_LOW>;
reset-gpio = <&gpio1 GPIO_ACTIVE_HIGH>;
// tp 分辨率
max-x = <>;
max-y = <>;
// tp 尺寸
tp-size = <>;
// tp 电压
tp-supply = <&vcc3v0_tp>;
};
};
3、添加触摸屏的配置信息参数
新代码的 gt9xx.cfg.h 中按照 tp 的尺寸定义了一些数组,数组中将配置文件包含进来即可,不用再将参数拷贝出来,放到指定数组中
如果有尺寸和分辨率合适的就可以直接用,或者只修改数组中包含的配置文件即可
目前调试的 tp 没有合适的数组,现在就开始按照规则创建配置信息数组
FAE 提供的配置文件 GT9271_Config_20190827.cfg 也需要拷贝到当前目录,文件名自己随意定义
diff --git a/kernel/drivers/input/touchscreen/gt9xx/gt9xx_cfg.h b/kernel/drivers/input/touchscreen/gt9xx/gt9xx_cfg.h
index c667948..2d81563
--- a/kernel/drivers/input/touchscreen/gt9xx/gt9xx_cfg.h
+++ b/kernel/drivers/input/touchscreen/gt9xx/gt9xx_cfg.h
@@ -, +, @@ u8 gtp_dat_7[] = {
#include "WGJ10187_GT910_Config_20140623_104014_0X41.cfg"
}; +u8 gtp_dat_8[] = {
+ /* <1024, 768> 8.0 */
+ #include "GT9271_Config_20190827.cfg"
+};
+
#endif /* _GOODIX_GT9XX_CFG_H_ */
4、在源码中根据 tp-size 设置 tp 方向是否需要镜像、切换,还有需要使用的配置参数
如果 bgt927 设置为 TRUE,其他的 bgtxxx 都要设置 FALSE
开始调试时,下面三个参数都设置为 FALSE,然后根据 bgt927 选择配置参数,编译烧录后根据实际现象再调整下面三个参数
gtp_change-x2y:x、y交换方向
gtp_x_reverse:x 方向坐标镜像
gtp_y_reverse:y 方向左边镜像
diff --git a/kernel/drivers/input/touchscreen/gt9xx/gt9xx.c b/kernel/drivers/input/touchscreen/gt9xx/gt9xx.c
index 6db7e39..f23c4af
--- a/kernel/drivers/input/touchscreen/gt9xx/gt9xx.c
+++ b/kernel/drivers/input/touchscreen/gt9xx/gt9xx.c
@@ -, +, @@ static u8 m89or101 = TRUE;
static u8 bgt911 = FALSE;
static u8 bgt970 = FALSE;
static u8 bgt910 = FALSE;
+static u8 bgt927 = FALSE;
static u8 gtp_change_x2y = TRUE;
static u8 gtp_x_reverse = FALSE;
static u8 gtp_y_reverse = TRUE;
@@ -, +, @@ static s32 gtp_init_panel(struct goodix_ts_data *ts)
cfg_info_len[] = CFG_GROUP_LEN(gtp_dat_7);
} + if (bgt927) {
+ send_cfg_buf[] = gtp_dat_8;
+ cfg_info_len[] = CFG_GROUP_LEN(gtp_dat_8);
+ }
+
GTP_DEBUG_FUNC();
GTP_DEBUG("Config Groups\' Lengths: %d, %d, %d, %d, %d, %d",
cfg_info_len[], cfg_info_len[], cfg_info_len[], cfg_info_len[],
@@ -, +, @@ static int goodix_ts_probe(struct i2c_client *client, const struct i2c_device_id
gtp_change_x2y = TRUE;
gtp_x_reverse = FALSE;
gtp_y_reverse = TRUE;
+ } else if (val == ) {
+ m89or101 = FALSE;
+ bgt927 = TRUE;
+ gtp_change_x2y = TRUE;
+ gtp_x_reverse = TRUE;
+ gtp_y_reverse = FALSE;
} ts->tp_regulator = devm_regulator_get(&client->dev, "tp");
这是汇顶官方提供的标准代码,有需要的可以自己下载移植
链接:https://pan.baidu.com/s/1aBFIO0L0Edwlplv1T0nm6A
提取码:0uj3
[RK3399] 汇顶gt9xx触摸屏在RK原始代码调试的更多相关文章
- RK3399 focaltech敦泰触摸屏移植调试
CPU:RK3399 系统:Android 7.1 IC:FT5406 focaltech(敦泰)触摸屏也是比较常用的,但是相对汇顶,就比较少用 RK的源码中虽然有 focaltech 的代码,但没有 ...
- 汇顶科技&&硬件类笔试题目
汇顶科技硬件类笔试题目,每年都有变化,但是题目类型都差不多.汇顶科技17年在南京地区大概招了20个左右吧,给的待遇还是不错的,工作地点上海深圳
- 汇顶指纹传感器GF919深度解析
前言: 随着指纹识别技术的日益普遍,其在手机上的应用也得到了广泛关注.作为全球第一款Android正面按压指纹识别手机,魅族MX4 Pro所搭载的国产指纹识别系统可谓是赚足了眼球,这就是由汇顶科技提供 ...
- RK平台LCD调试说明【转】
本文转载自:http://blog.csdn.net/u014770862/article/details/76274951?locationNum=2&fps=1 RK平台LCD调试说明 原 ...
- RPC远程过程调用学习之路(一):用最原始代码还原PRC框架
RPC: Remote Procedure Call 远程过程调用,即业务的具体实现不是在自己系统中,需要从其他系统中进行调用实现,所以在系统间进行数据交互时经常使用. rpc的实现方式有很多,可以通 ...
- access链接最原始代码,两种
using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web ...
- [置顶] NO.4 使用预处理器进行调试
<c++ primer>第四版 p190 ************************************************************************* ...
- MSM8909的触摸屏驱动导致的熄屏后重新亮屏速度慢的原因!【转】
转自:https://blog.csdn.net/kk20000/article/details/83041081 使用的汇顶的触摸驱动的时候会重新亮屏速度慢3秒,而在使用另外一个敦泰触摸驱动的时候没 ...
- RK3399 Android 7.1 删除repo后编译报错
CPU:RK3399 系统:Android 7.1 瑞芯微使用的是 repo 来进行代码管理,但我们需要用 git 来管理,所以就删除了 repo,但是编译就报错,如下:Server is alrea ...
随机推荐
- MySql数据库操作之数据约束
首先数据库的外键是数据库提供的一种完整性约束.在许多数据库的书上也会介绍到,然而对于外键这个完整性性约束究竟应该在数据库端实现,还是在项目业务端实现很多人有着不同的意见. 个人开发(小型应用).数据库 ...
- win10 下的YOLO v3 的编译与使用
部署环境:win10 +CUDA 10.0 + vs2017 + opencv 3.4.0 代码版本是 https://github.com/AlexeyAB/darknet 1.初始准备 (1)下 ...
- [networking][sdn] BGP/EGP/IGP是什么
引子 这是一个惊悚的故事,胆小的人不要点开.整个故事,是从这张图开始的. 整个图,分左中右三块.左边是tom和他所在的网络.右边是jerry和他所在的网络.这两个网络可以在世界上的任何一个角落.彼此有 ...
- git命令——git status、git diff
前言 当对项目做了更改时,我们通常需要知道具体改了哪些文件,哪些文件更改了没有暂存,哪些文件改了并且已加入到暂存区等待下次commit.上述任务使用git status都可以帮我们解决.但是想要知道文 ...
- 【问题】man命令打开的手册上链接怎么展开?
参考:How to follow links in linux man pages? 前言 在使用man查看命令帮助的时候,有些文字下面会有下划线.给人的感觉是一个链接,但是又打不开.那么到底是不是链 ...
- linux网络编程之socket编程(十一)
今天继续学习socket编程,这次主要是学习超时方法的封装,内容如下: ①.alarm[不常用,了解既可] 它的实现思路是这样的: 但是这种方案有一定的问题,因为闹钟可能会作为其它的用途,这时所设置的 ...
- JDBC课程3--通过ResultSet执行查询操作
内容: ResultSet 结果集,封装了使用JDBC 进行查询;JDBCTools.release(rs,st, conn); 这个模块进行了更新, 同时结束的时候也关闭ResultSet,结束该 ...
- can't assign to struct fileds in map
原文: https://haobook.readthedocs.io/zh_CN/latest/periodical/201611/zhangan.html --------------------- ...
- VSCode - Beautify 插件配置
1. 在工作目录下建立.jsbeautifyrc文件 官方文档 { "brace_style": "none,preserve-inline", "i ...
- LightOJ-1008-Fibsieve`s Fantabulous Birthday(推公式)
链接: https://vjudge.net/problem/LightOJ-1008 题意: Fibsieve had a fantabulous (yes, it's an actual word ...