CPU:RK3288

系统:Android 5.1

触摸IC:GT911

1、在 menuconfig 或者 rockchip_defconfig 中支持触摸屏。具体用哪种方式需要结合编译方法。

按照瑞芯微提供的编译方式,则修改 rockchip_defconfig,这种方式在make前,需要执行 make rockchip_defconfig,生成 .config 文件。

path:kernel/arch/arm/configs/rockchip_defconfig

CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_GT9XX=y

只执行make的话,就要在make menuconfig中修改,保存后生成 .config 文件。

Device Drivers  --->
Input device support --->
[*] Touchscreens --->
<*> Goodix touch screen gt9xx support for rockchip based platform

2、修改触摸屏分辨率。

path:kernel/drivers/input/touchscreen/gt9xx/gt9xx.h

// 下面有两种定义分辨率的方式,任选一种
#define GTP_CUSTOM_CFG 1
... ...
#define GTP_1024X768
... ...
#if GTP_CUSTOM_CFG
#ifdef GTP_1024X768
#define GTP_MAX_HEIGHT 768
#define GTP_MAX_WIDTH 1024
#else
#define GTP_MAX_HEIGHT 320
#define GTP_MAX_WIDTH 480
#endif
// 触摸屏中断触发信号
#define GTP_INT_TRIGGER 0 // 0: Rising 1: Falling
#else
#define GTP_MAX_HEIGHT 4096
#define GTP_MAX_WIDTH 4096
#define GTP_INT_TRIGGER 1
#endif

3、确认触摸屏Sensor-ID,有下面两种方式

(1)根据硬件配置,需要咨询供应商。

//*************************** PART2:TODO define **********************************
// STEP_1(REQUIRED): Define Configuration Information Group(s)
// Sensor_ID Map:
/* sensor_opt1 sensor_opt2 Sensor_ID
GND GND 0
VDDIO GND 1
NC GND 2
GND NC/300K 3
VDDIO NC/300K 4
NC NC/300K 5
*/

(2)内核运行时的log可以看出来

// 获取 sensor_id
ret = gtp_i2c_read_dbl_check(ts->client, GTP_REG_SENSOR_ID, &sensor_id, );
if (SUCCESS == ret) // 获取 sensor_id 成功
{
// sensor_id 超出范围
if (sensor_id >= 0x06)
{
GTP_ERROR("Invalid sensor_id(0x%02X), No Config Sent!", sensor_id);
ts->pnl_init_error = ;
return -;
}
}
else // 获取 sensor_id 失败
{
GTP_ERROR("Failed to get sensor_id, No config sent!");
ts->pnl_init_error = ;
return -;
}
// 成功后打印 sensor_id
GTP_INFO("Sensor_ID: %d", sensor_id);

4、在dts文件中,修改触摸屏的硬件参数。

// i2c接口
&i2c4 {
// 使能
status = "okay";
// 设备地址(记得除二)
ts@5d{
compatible = "goodix,gt9xx";
reg = <0x5d>;
// 复位IO
goodix,rst-gpio = <&gpio7 GPIO_B2 GPIO_ACTIVE_HIGH>;
// 中断IO
goodix,irq-gpio = <&gpio7 GPIO_B1 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
// 中断IO默认上拉
pinctrl- = <&gpio7_b1>;
// 触摸屏配置参数,需要供应商提供,group0-group5,根据Sensor-ID决定,若ID=4,则使用goodix,cfg-group4
goodix,cfg-group0 = [
E0
8C 0D 9A
0F
8D 5C 1E 3C 4C 1D 1D 0A 0C 0E
FF FF FF FF FF FF
0A 0C 0F FF FF FF FF FF FF
FF FF FF FF FF FF FF FF
C9 ];
};
};

此时已配置完毕

若出现触摸方向x、y反了,可以联系供应商改配置文件,也可以在头文件中打开交换x、y坐标的宏

宏生效后,会在触摸按下的函数 gtp_touch_down 中,交换x、y坐标

#define GTP_CHANGE_X2Y        1       //swap x y
#if GTP_CHANGE_X2Y
GTP_SWAP(x, y);
#endif

若出现触摸方向x、y镜像了,可以联系供应商改配置文件,也可以在触摸按下的函数 gtp_touch_down 中,修改x、y坐标

// abs_x_max abs_y_max 分别是x y方向的最大值
// x 方向镜像
x = ts->abs_x_max - x;
// y 方向镜像
y = ts->abs_y_max - y;

若出现触摸不准,,触摸跳点等问题,则需要联系供应商查看硬件或者修改配置参数。

RK3288 GT触摸屏移植调试的更多相关文章

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

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

  2. android TP驱动移植调试笔记(转)

    1. 添加I2C 设备 TP 一般采用的是I2C 作为数据和命令接口,所以TP 驱动也可以归类为I2C 驱动.TP驱动的主要逻辑不在这里,但是了解了Linux 的I2C 体系架构,就可以对整个驱动流程 ...

  3. RK3288 USB触摸屏无法使用,需要添加PID和VID

    RK3288  Android5.1 现象:USB 接口触摸屏插到板子上,触摸屏无法使用,有可能出现更奇葩的,同一套代码,有的板子可以用,有的板子不能用. 1.打开串口调试,插上触摸屏,读取触摸屏的 ...

  4. RK3288 USB触摸屏与USB摄像头同时使用时触摸卡顿

    CPU:RK3288 系统:Android 5.1 当USB触摸屏与USB摄像头同时使用时,有时会出现触摸卡顿,看似按键按下没有弹起. getevent 查看触摸屏上报,只有 DOWN,没有 UP,正 ...

  5. RK3288 HDMI配置和调试

    RK3288 最大输出分辨率为 3840x2160 HDMI 驱动代码位于 kernel/drivers/video/rockchip/hdmi/rockchip-hdmiv2 目录 1.设置默认输出 ...

  6. Android触摸屏配置调试

    前几天搞乐蛙时,进入后是鼠标模式,好坑爹的模式有木有~~ 但是大蛋给出了解决方法,我不怕不怕啦~让我们向大牛致敬!!! 首先输入Command查看你的input配置~ adb shell dumpsy ...

  7. rk3288 ov8858 camera移植

    平台:瑞芯的rk3288 SDK:4.4/5.0/5.1 作者:fulinux *****本文同意转载.只是请注明出处:http://blog.csdn.net/fulinus**** rk3288的 ...

  8. 触摸屏 adb调试

    1.adb shell cat /proc/kmsg 这条命令肯定是要放在第一位的,可以打印内核信息,对应于驱动程序中的printk语句. 如果出现以下提示,说明权限不够,可以通过adb root获取 ...

  9. [RK3288][Android6.0] 音频调试方法小结【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/70053135 Platform: ROCKCHIPOS: Android 6.0Kernel ...

随机推荐

  1. 20145329 《网络对抗技术》PC平台逆向破解

    shellcode注入 实践是在非常简单的一个预设条件下完成的: (1)关闭堆栈保护 (2)关闭堆栈执行保护 (3)关闭地址随机化 (4)在x32环境下 (5)在Linux实践环境 shellcode ...

  2. Cooperation.GTST团队第四周项目总结

    项目进展 这周我们的主要学习内容是: 1.研究学习如何导入博客详情页. 2.继续研究如何使用博客园的相关接口,导入相关jar包实现页面整体效果: 在我们使用其它APP或者上网浏览论坛.网页等时,通常都 ...

  3. 第二章 第二个spring-boot程序

    上一节的代码是spring-boot的入门程序,也是官方文档上的一个程序.这一节会引入spring-boot官方文档推荐的方式来开发代码,并引入我们在spring开发中service层等的调用. 1. ...

  4. asp.net自定义控件之加载层

    知识点:JQuery.Ajax.自定义控件 该文旨在给大家开发自定义控件(结合js)一个思路,一个简单的示例,可能在实际项目中并不会这样做. 先来看看效果: 1.在静态页面里开发好想要的效果 jQue ...

  5. 2016湘潭邀请赛—Gambling

    http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1244 题意:有a个红球,b个绿球,c个黄球,先拿完a个红球一等奖,先拿完b ...

  6. 利用IntelliJ IDEA创建第一个Groovy工程

    因为某些原因,需要学习一下Groovy.关于Groovy的入门教程请看这篇文章http://www.ibm.com/developerworks/cn/education/java/j-groovy/ ...

  7. hdu4289最小割

    最近博客断更了一段时间啊,快期末了,先把这个专题搞完再说 最小割=最大流 拆点方法很重要,刚开始我拆点不对就wa了,然后改进后tle,应该是数组开小了,一改果然是 #include<map> ...

  8. 为什么ubuntu窗口语言选择中文后,中文字体反而变丑了?

    首先出现这个问题是因为ubuntu在更新语言包后,会安装ukai和uming两个字体,不知道为啥ubuntu要这样设计,反正挺烦人的,又丑又不清楚,把这两个卸掉就行了 sudo apt-get rem ...

  9. UVA-10129 Play on Words (判断欧拉道路的存在性)

    题目大意:给出一系列单词,当某个单词的首字母和前一个单词的尾字母相同,则这两个单词能链接起来.给出一系列单词,问是否能够连起来. 题目分析:以单词的首尾字母为点,单词为边建立有向图,便是判断图中是否存 ...

  10. 006PHP文件处理—— 目录操作 删除目录 删除置顶类型文件

    <?php /** * 目录操作 删除目录 删除置顶类型文件 */ //echo rmdir('61') or die('目录删除失败'); //删除一个目录中有其他文件的内容的方法: //第1 ...