MTK 驱动开发(28)--6797平台 TP 移植
1、 修改kernel-3.18\arch\arm64\configs\len6797_6m_n_debug_defconfig、6797_6m_n_defconfig
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_MTK=y
#CONFIG_TOUCHSCREEN_MTK_FT6X36=y
CONFIG_TOUCHSCREEN_MTK_GT1151=y //打开指定的tp,关闭其他的
#CONFIG_TOUCHSCREEN_MTK_GSLX680=y
2、device\ivvi\ivvi6797_6m_n
修改device\XXX\ProjectConfig.mk
CUSTOM_KERNEL_TOUCHPANEL = GT1XX //修改为指定tp
3、把厂家的代码放到kernel-3.18\drivers\input\touchscreen\mediatek\
4、kernel-3.18\drivers\input\touchscreen\mediatek\Kconfig 添加:
if INPUT_TOUCHSCREEN
config TOUCHSCREEN_MTK
tristate "MediaTek Touch Panel Driver"
default n
help
Say Y here if you have MediaTek touch panel.
If unsure, say N.
To compile this dirver as a module, choose M here: the
module will be called.
source "drivers/input/touchscreen/mediatek/GT1151/Kconfig"
5、 在kernel-3.18\drivers\input\touchscreen\mediatek\Makefile 添加:
obj-$(CONFIG_TOUCHSCREEN_MTK) += GT1151/
6、tp常用调试方法:
1. adb查看tp型号: -- 从log中查看
2. 查看tp报点
2.1 驱动中有打印的话:
cat /proc/kmsg | grep "tpd"
cat /proc/kmsg | grep -i "key|power|backlight"
2.2 可以直接从input设备节点/dev/input/event读取
getevent -i
getevent -t /dev/input/event5 (event?,用[getevent -i] 查看)
-- 查看到的是原始数据,看不出坐标点,只能看出有无上报
2.3 查看hal层收到的数据
3. 在tp还不通的时候/frameworks/base/include/ui/KeycodeLabels.h中定义了很多keyevent
inut keyevent 3 //home
inut keyevent 4 //back
inut keyevent 26 //power
4 检查硬件
用万用表测量6个引脚的电压:
正常工作电压 休眠电压
INT 1.8V 0V
RST 1.8V 1.8V
VDD 2.8V 2.8V
SDA 1.8V 1.8V
SCL 1.8V 1.8V
GND 0V 0V
通过[万用表]查看中断脚有无中断 - 实测可以
通过[万用表]查看TP的GND是否与主板的GND导通
通过[示波器]查看sda有无数据波形
二、如何使能tp的log
1 GT5668 默认打开 GTP_DEBUG() 由宏控制
#define GTP_DEBUG_ON 1 // enable log printed by GTP_DEBUG(...)
2 ft6xx6_ges 默认关闭 TPD_DEBUG()
-- 暂时没找到哪边开关
三、虚拟按键
1 虚拟按键坐标通常写在dts中,也可能写死在驱动,具体看驱动
&touch {
tpd-resolution = <720 1280>; // 分辨率 - 不用这里的,而是用defconfig中的lcm宽与高
use-tpd-button = <1>; // 虚拟按键使能
tpd-key-num = <3>; // 虚拟按键个数
tpd-key-local= <139 172 158 0>; // 虚拟按键坐标 - 兑换139 与158的位置可以按键对换
tpd-key-dim-local = <90 883 100 40 230 883 100 40 370 883 100 40 0 0 0 0>;
2 通过sys节点读取
cat /sys/board_properties/virtualkeys.mtk-tpd // 获取软件中虚拟按键坐标
2.1 读取底层TP虚拟安静键值
cat proc/kmsg | grep "tpd"
2.2 读取上层TP虚拟安静键值
logcat | grep "keyCode"
3 从input设备节点/dev/input/event?读取
getevent -i
getevent -t /dev/input/event5 // 获取tp在内核中通过input上报的数据
-----虚拟按键跟tp供用一个input设备
四、tp翻转180度
kernel-3.18\drivers\input\touchscreen\mediatek\ft6x36\focaltech_core.c 打开宏:
#define CONFIG_TPD_ROTATE_180
驱动中有:(没有可以自己实现)
#if defined(CONFIG_TPD_ROTATE_90) || defined(CONFIG_TPD_ROTATE_270) || defined(CONFIG_TPD_ROTATE_180)
static void tpd_rotate_180(int *x, int *y)
{
*y = TPD_RES_Y + 1 - *y; // TPD_RES_Y -- mtk_tpd.c从defconfig的CONFIG_LCM_HEIGT获得
*x = TPD_RES_X + 1 - *x;
}
#endif
static void tpd_down(int x, int y, int p, int id)
{
#if defined(CONFIG_TPD_ROTATE_180)
tpd_rotate_180(&x, &y);
#endif
...
input_report_abs(tpd->dev, ABS_MT_POSITION_X, x);
}
五、相同ic的tp模组做兼容 - 根据读寄存器OxB8,
MTK 驱动开发(28)--6797平台 TP 移植相关推荐
- MTK 驱动开发(29)---TP 驱动移植
对于MTK TP驱动移植一般分为六部分: 1.硬件IO口配置: 2.TP驱动移植: 3.I2C通信: 4.中断触发: 5.数据上报: 6.虚拟按键: 硬件电路: 1.GPIO配置 打开 mediate ...
- MTK 驱动开发(30)---Memory 移植
一.MTK 平台和高通平台在器件选型时都要求选择已经验证过的器件,第一步需要QVL验证 1) 根据硬件原理图和EMMC 和DDR厂家的芯片资料, 确定EMMC 和DDR 64+4,型号如下: EMM ...
- MTK 驱动开发(27)---TP 驱动分析
MTK TP 驱动分析
- MTK 驱动开发(16)---LCM 移植
对于LCM驱动移植,一般分为三部曲: 1.硬件IO口配置: 2.确保LCM背光能够正常点亮: 3.LCM驱动移植: 硬件电路: 1.GPIO配置 打开 mediatek\dct\DrvGen.exe ...
- MTK 驱动开发(40 )---TP乱跳频原因
触摸屏(TP)乱跳原因总结 导致触摸屏乱跳的原因大概分为5类: (1) 触摸屏硬件通道损坏 (2)触摸屏固件版本太低 (3) 触摸屏工作电压异常 (4) 射频干扰 (5)触摸屏校准异常 硬 ...
- MTK 驱动开发(32)---Sensor 移植及调试2
接续上一节,本文主要介绍驱动部分的客制化 3. Sensor Driver 的客制化 主要涉及三个方面: 1)配置 codegen.dws ---I2C 地址.eint.gpio 2)配置驱动参数 3 ...
- MTK 驱动开发(31)---Sensor 移植及调试1
1.Android sensor 框架描述 1.1.Android 支持的sensor 类型 1.2.Android sensor 系统架构 1.3.HAL 和Driver的工作流程 1.4 sens ...
- MTK 驱动开发(31)---Sensor 移植及调试(1)
1.Android sensor 框架描述 1.1.Android 支持的sensor 类型 1.2.Android sensor 系统架构 1.3.HAL 和Driver的工作流程 1.4 sens ...
- 详解关于MTK驱动开发学习教程
MTK驱动开发学习教程是本文要介绍的内容,主要是来了解MTK的驱动开发的过程,文章中很详细的讲解了这个问题,具体内容来看本文详解. 一.Charge Parameters. 1.相关文件chr_par ...
最新文章
- 服务器挖chia用什么系统,Chia是什么?Chia挖矿服務器配置
- ASIC与FPGA能达到的频率差异巨大是为什么
- 2013秋东北计算机在线作业,2013秋奥鹏东北师范大学计算机应用基础第三次在线作业及答案.doc...
- 揭秘-选择迅捷PDF转Word转换器的原因
- Tomcat 5 5 JNDI Resource 配置
- unity DOTS的学习总结之Job System
- oracle gather trace,Oracle 12C R2-新特性-新增两个视图:方便查看trace文件和内容
- Spring Boot 执行流程
- java deadlock oracle_【DEADLOCK】Oracle“死锁”模拟
- 汽车用众大牌大屏幕导航仪凯立德地图升级方法
- c语言 众数,C语言实现查找一组数中的众数
- 打印机 linux 共享文件夹,linux 连接windows打印机
- 风控模型开发的特征选择与常用数据源介绍
- XV6实验环境的搭建
- 程序员的转正述职报告
- Windows 7钉子户
- 【赠书】熊德意老师的一部不止于技术的神经机器翻译“百科全书”
- 从Folding@home项目看GPU通用计算发展
- 嵌入式期末大作业——家用智能晾衣杆
- 手淘商品详情api接口|淘宝商品详情API接口文档
热门文章
- 内核并发控制---原子操作(来自网易)
- mint linux更新内核,如何在Ubuntu/Linux Mint中安装最新Linux 5.2.5内核
- PSNR和SSIM的matlab源代码,图像质量评价指标之 PSNR 和 SSIM
- linux下qt制作日历,课内资源
- pip命令安装pygeme后 IDLE import pygame报错
- 安装 RabbitMQ
- uva11609(组合数学,快速幂)
- Postgresql添加/删除触发器示例
- Spring Security整合JWT,实现单点登录,So Easy~!
- (转)postgresql+postgis空间数据库使用总结