TouchPanel_Driver_Porting(TP驱动移植)
来源:互联网 发布:医院数据库容量计算 编辑:程序博客网 时间:2024/04/30 16:36
以当前项目K9为例:
一、配置步骤
1.查看TP驱动代码目录
user3@rlk-buildsrv20:~/K9/kernel-3.18/drivers/input/touchscreen/mediatek$ lsft5446 Kconfig tpd_calibrate.c tpd.hft5x0x GT9271TB_hotknot Makefile tpd_calibrate.h tpd_init.cGT1151 GT928 met_ftrace_touch.h tpd_common_probe.c tpd_misc.cGT1151TB GT9XX_hotknot mtk_tpd.c tpd_debug.c tpd_setting.cGT5668 GT9XX_hotknot_phone synaptics_3320_50 tpd_debug.h unified_driver_4GT910 GT9XX_hotknot_scp synaptics_i2c_rmi4 tpd_default.cGT911 GT9XXTB_hotknot tpd_button.c tpd_default.h
2.添加驱动代码
如果需要新添加一套TP代码,例如:GT917D
首先将驱动代码加入kernel-3.18/drivers/input/touchscreen/mediatek目录下,
添加后当前目录已经有GT917D驱动代码
user3@rlk-buildsrv20:~/K9/kernel-3.18/drivers/input/touchscreen/mediatek$ lsft5446 GT917D Kconfig tpd_calibrate.c tpd.hft5x0x GT9271TB_hotknot Makefile tpd_calibrate.h tpd_init.cGT1151 GT928 met_ftrace_touch.h tpd_common_probe.c tpd_misc.cGT1151TB GT9XX_hotknot mtk_tpd.c tpd_debug.c tpd_setting.cGT5668 GT9XX_hotknot_phone synaptics_3320_50 tpd_debug.h unified_driver_4GT910 GT9XX_hotknot_scp synaptics_i2c_rmi4 tpd_default.cGT911 GT9XXTB_hotknot tpd_button.c tpd_default.h
3.添加配置
然后再配置当前目录下的Kconfig和Makefile文件
在Kconfig文件中添加配置
config TOUCHSCREEN_MTK_GT917D bool "GT917D for Mediatek package" default n help Say Y here if you have GT917D 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/GT917D/Kconfig"
在Makefile文件中添加配置
obj-$(CONFIG_TOUCHSCREEN_MTK_GT917D) += GT917D/
4.在版本里添加配置
在user3@rlk-buildsrv20:~/K9/rlk_projects/k9_h8018_a1/kernel$ ls
user3@rlk-buildsrv20:~/K9/rlk_projects/k9_h8018_a1/kernel$ lsrlk6580_we_n_debug_defconfig rlk6580_we_n_defconfig
分别在rlk6580_we_n_debug_defconfig 和 rlk6580_we_n_defconfig文件中添加配置
CONFIG_INPUT_TOUCHSCREEN=yCONFIG_TOUCHSCREEN_MTK=y CONFIG_TOUCHSCREEN_MTK_GT917D=y
如果项目分为好几个bom例如
user3@rlk-buildsrv20:~/K9/rlk_projects$ lsk9_h8018_a1 k9_h8018_a1_gmo k9_h8018_c1 k9_h8018_c1_gmo
则每个bom都需要配置
二、编译
编译命令:
user3@rlk-buildsrv20:~/K9$ source rlk_setenv.sh k9_h8018_a1;make -j24 2>&1 |tee build.c
默认编译的是eng版本,如果需要编译user版本则命令为
source rlk_setenv.sh k9_h8018_a1 user
source rlk_setenv.sh k9_h8018_a1 eng
如果只编译kernel,则
source rlk_setenv.sh k9_h8018_a1;make kernel bootimage -j24 2>&1 |tee build.c
三、编译成功之后
查看一下目录里有没有生成所添加TP模块GT917D
user3@rlk-buildsrv20:~/K9/out/target/product/rlk6580_we_n/obj/KERNEL_OBJ/drivers/input/touchscreen/mediatek$ lsbuilt-in.o modules.order tpd_calibrate.o tpd_default.o tpd_setting.oft5446 mtk_tpd.o tpd_common_probe.o tpd_init.oGT917D tpd_button.o tpd_debug.o tpd_misc.o
有则添加成功,没有则需查看哪里配置不成功
这样一套TP驱动代码就添加成功了。
如果是开始项目的话,则需要再根据项目的原理图,在dws中配置i2c,GPIO;注意上电方式(DMA上电还是PMIC上电,上电电压是多少等);在dts中兼容二供屏
和节点信息,固件版本信息,selinux权限设置等。
再有就是有些功能部分,例如:手势,皮套等
附:
1.编译命令详解
source rlk_setenv.sh k9_h8018_a1 eng/user ;make -j24 2>&1 |tee build.log
Source rlk_setenv.sh:重新执行当前修改的文件
k9_h8018_a1: bom号
Eng/user: eng版本或者user版本 (不写默认为eng版本)
2>&1 : 将标准错误重定向到标准输出
tee build.log : 将log输出到控制台和文件 (以防文件格式不对可以写成.c文件)
2.selinux权限设置
添加user版本访问读写权限时
根据节点位置需要修改的文件不同:
节点在/proc/ 下 ,需要修改
user3@rlk-buildsrv20:~/K9/device/mediatek/common/sepolicy/basic$file.teshell.tegenfs_contexts
节点在/system/下的,则需要修改
user3@rlk-buildsrv20:~/K9/device/mediatek/common/sepolicy/basic$file.teshell.tefile_contexts
- TouchPanel_Driver_Porting(TP驱动移植)
- MTK TP驱动移植
- android TP驱动移植调试笔记
- MTK MT8163 7.0 TP驱动简单移植
- MTK MT8163 7.0 TP驱动简单移植
- MTK MT8163 7.0 TP驱动简单移植
- 移植TP-LINK TL-WN721N 驱动到micro2440(by liukun321咕唧咕唧)
- 移植TP-LINK TL-WN721N 驱动到micro2440(by liukun321咕唧咕唧)
- TP----Android系统移植之按键驱动篇
- 过 DNF TP 驱动保护(一)
- 过 DNF TP 驱动保护(二)
- 过 DNF TP 驱动保护(一)
- 过 DNF TP 驱动保护(二)
- 过 DNF TP 驱动保护(一)
- 过 DNF TP 驱动保护(二)
- 过 DNF TP 驱动保护(一)
- 过 DNF TP 驱动保护(二)
- 过 DNF TP 驱动保护(一)
- 在windows下开发MR时,提交运行时,出现java.net.UnknownHostException:XXX异常
- java 四则运算 栈的实现
- 人工智能是移动互联网下一幕 公有链平台能为AI带来什么?
- 求能除尽1至n的最小整数
- Monte Carlo ---- MC MC
- TouchPanel_Driver_Porting(TP驱动移植)
- 树形显示
- mybatis中的oracle和mysql分页
- Spring+HBase+phoenix踩过的坑
- 使用DataDirectory---WinForm程序中两份mdf文件问题的解决
- python入门系列17―——正则表达式2
- 页面跳转,js和SpringMVC
- C语言位运算
- 状况