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原始代码调试的更多相关文章

  1. RK3399 focaltech敦泰触摸屏移植调试

    CPU:RK3399 系统:Android 7.1 IC:FT5406 focaltech(敦泰)触摸屏也是比较常用的,但是相对汇顶,就比较少用 RK的源码中虽然有 focaltech 的代码,但没有 ...

  2. 汇顶科技&&硬件类笔试题目

    汇顶科技硬件类笔试题目,每年都有变化,但是题目类型都差不多.汇顶科技17年在南京地区大概招了20个左右吧,给的待遇还是不错的,工作地点上海深圳

  3. 汇顶指纹传感器GF919深度解析

    前言: 随着指纹识别技术的日益普遍,其在手机上的应用也得到了广泛关注.作为全球第一款Android正面按压指纹识别手机,魅族MX4 Pro所搭载的国产指纹识别系统可谓是赚足了眼球,这就是由汇顶科技提供 ...

  4. RK平台LCD调试说明【转】

    本文转载自:http://blog.csdn.net/u014770862/article/details/76274951?locationNum=2&fps=1 RK平台LCD调试说明 原 ...

  5. RPC远程过程调用学习之路(一):用最原始代码还原PRC框架

    RPC: Remote Procedure Call 远程过程调用,即业务的具体实现不是在自己系统中,需要从其他系统中进行调用实现,所以在系统间进行数据交互时经常使用. rpc的实现方式有很多,可以通 ...

  6. access链接最原始代码,两种

    using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web ...

  7. [置顶] NO.4 使用预处理器进行调试

    <c++ primer>第四版 p190 ************************************************************************* ...

  8. MSM8909的触摸屏驱动导致的熄屏后重新亮屏速度慢的原因!【转】

    转自:https://blog.csdn.net/kk20000/article/details/83041081 使用的汇顶的触摸驱动的时候会重新亮屏速度慢3秒,而在使用另外一个敦泰触摸驱动的时候没 ...

  9. RK3399 Android 7.1 删除repo后编译报错

    CPU:RK3399 系统:Android 7.1 瑞芯微使用的是 repo 来进行代码管理,但我们需要用 git 来管理,所以就删除了 repo,但是编译就报错,如下:Server is alrea ...

随机推荐

  1. MySql数据库操作之数据约束

    首先数据库的外键是数据库提供的一种完整性约束.在许多数据库的书上也会介绍到,然而对于外键这个完整性性约束究竟应该在数据库端实现,还是在项目业务端实现很多人有着不同的意见. 个人开发(小型应用).数据库 ...

  2. win10 下的YOLO v3 的编译与使用

    部署环境:win10 +CUDA 10.0 + vs2017 + opencv 3.4.0  代码版本是 https://github.com/AlexeyAB/darknet 1.初始准备 (1)下 ...

  3. [networking][sdn] BGP/EGP/IGP是什么

    引子 这是一个惊悚的故事,胆小的人不要点开.整个故事,是从这张图开始的. 整个图,分左中右三块.左边是tom和他所在的网络.右边是jerry和他所在的网络.这两个网络可以在世界上的任何一个角落.彼此有 ...

  4. git命令——git status、git diff

    前言 当对项目做了更改时,我们通常需要知道具体改了哪些文件,哪些文件更改了没有暂存,哪些文件改了并且已加入到暂存区等待下次commit.上述任务使用git status都可以帮我们解决.但是想要知道文 ...

  5. 【问题】man命令打开的手册上链接怎么展开?

    参考:How to follow links in linux man pages? 前言 在使用man查看命令帮助的时候,有些文字下面会有下划线.给人的感觉是一个链接,但是又打不开.那么到底是不是链 ...

  6. linux网络编程之socket编程(十一)

    今天继续学习socket编程,这次主要是学习超时方法的封装,内容如下: ①.alarm[不常用,了解既可] 它的实现思路是这样的: 但是这种方案有一定的问题,因为闹钟可能会作为其它的用途,这时所设置的 ...

  7. JDBC课程3--通过ResultSet执行查询操作

    内容:  ResultSet 结果集,封装了使用JDBC 进行查询;JDBCTools.release(rs,st, conn); 这个模块进行了更新, 同时结束的时候也关闭ResultSet,结束该 ...

  8. can't assign to struct fileds in map

    原文: https://haobook.readthedocs.io/zh_CN/latest/periodical/201611/zhangan.html --------------------- ...

  9. VSCode - Beautify 插件配置

    1. 在工作目录下建立.jsbeautifyrc文件 官方文档 { "brace_style": "none,preserve-inline", "i ...

  10. LightOJ-1008-Fibsieve`s Fantabulous Birthday(推公式)

    链接: https://vjudge.net/problem/LightOJ-1008 题意: Fibsieve had a fantabulous (yes, it's an actual word ...