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. 快速提交一个项目到github或gitee上

    以下步骤假设你已经安装好git 一.Git 全局设置: git config --global user.name "用户名" git config --global user.e ...

  2. 多线程之NSOperation简介

    在iOS开发中,为了提升用户体验,我们通常会将操作耗时的操作放在主线程之外的线程进行处理.对于正常的简单操作,我们更多的是选择代码更少的GCD,让我们专注于自己的业务逻辑开发.NSOperation在 ...

  3. 四:MySQL系列之Python交互(四)

    该篇主要介绍MySQL数据库的分表.以及与Python的交互的基本操作等. 一.拆分表操作 1.1  准备工作 创建数据库 --> 使用数据库 --> 创建数据表 --- 添加记录 -- ...

  4. 【kernel】Centos 云上升级内核失败 如何处理【笔记记录转】

    Centos7选定默认启动的内核版本 vim /etc/grub2.cfg   修改timeout =5   修改成30天 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附 ...

  5. 【OF框架】使用IDbContextTransaction在框架中对多个实体进行事务操作

    准备 引用框架,按照规范建立数据库表及对应实体. 一.事务操作 关键代码 示例代码如下: //插入数据,使用数据库事务,不支持多连接. var dbContext = IoCHelper.Resolv ...

  6. CMake---基础练习2

    # t2/ CMakeLists.txt cmake_minimum_required(VERSION 2.8) #1 #PROJECT (HELLO) #SET(SRC_LIST main.c) # ...

  7. Stock Exchange (最大上升子子串)

    /* 题意: 给定L个整数A1,A2,...,An,按照从左到右的顺序选出尽量多的整数, 组成一个上升序列(子序列可以理解为:删除0个或者多个数,其他的数的吮吸不变). 例如,1,6,2,3,7,5, ...

  8. 从Retrofit的源码来看 HTTP

    关于Retrofit是啥,这里就不多解释了,还是先来瞅下官网: 而这次主要是了解它的底层动作机制,而在了解底层之前先来回顾一下官网的整体使用步骤: 咱们也以官网的这个例子为例,先从简单的使用开始逐步深 ...

  9. Airtest---UI自动化测试项目

    Airtest Project是网易游戏团队新开源出来的一款用于UI自动化测试的项目. testerhome中的文档介绍:https://testerhome.com/topics/12486 官方链 ...

  10. Laravel 6.0 Schedule Preventing Task Overlaps 测试

    1 目的 1.1 测试 Laravel 6.0 任务执行机制 2 意义 2.1 在日常开发中,有的任务比较复杂,在两次任务的调度周期间隔中无法完成. 2.2 为了防止重复任务的持续生成和反复调用,对服 ...