1 .在tp的驱动文件中添加以下代码实现按键功能

[plain] view plaincopy
  1. static ssize_t
  2. ft5x06_virtual_keys_register(struct kobject *kobj,
  3. struct kobj_attribute *attr,
  4. char *buf)
  5. {
  6. return snprintf(buf, 200,
  7. __stringify(EV_KEY) ":" __stringify(KEY_HOME)  ":120:840:80:60"
  8. ":" __stringify(EV_KEY) ":" __stringify(KEY_BACK)   ":360:840:80:60"
  9. "\n");
  10. }
  11. static struct kobj_attribute ft5x06_virtual_keys_attr = {
  12. .attr = {
  13. .name = "virtualkeys.ft5x06_ts",
  14. .mode = S_IRUGO,
  15. },
  16. .show = &ft5x06_virtual_keys_register,
  17. };
  18. static struct attribute *ft5x06_virtual_key_properties_attrs[] = {
  19. &ft5x06_virtual_keys_attr.attr,
  20. NULL,
  21. };
  22. static struct attribute_group ft5x06_virtual_key_properties_attr_group = {
  23. .attrs = ft5x06_virtual_key_properties_attrs,
  24. };
  25. struct kobject *ft5x06_virtual_key_properties_kobj;
  26. static void __init ft5x06_touchpad_setup(void)
  27. {
  28. int rc;
  29. ft5x06_virtual_key_properties_kobj =
  30. kobject_create_and_add("board_properties", NULL);
  31. if (ft5x06_virtual_key_properties_kobj)
  32. rc = sysfs_create_group(ft5x06_virtual_key_properties_kobj,
  33. &ft5x06_virtual_key_properties_attr_group);
  34. if (!ft5x06_virtual_key_properties_kobj || rc)
  35. pr_err("%s: failed to create board_properties\n", __func__);
  36. }

另外需要在-mtp.dtsi文件中配置TP的参数和gen_vkeys

[plain] view plaincopy
  1. i2c@f9923000{
  2. focaltech@38{
  3. compatible = "focaltech,5x06";
  4. reg = <0x38>;
  5. interrupt-parent = <&msmgpio>;
  6. interrupts = <1 0x2>;
  7. vdd-supply = <&pm8110_l19>;
  8. vcc_i2c-supply = <&pm8110_l14>;
  9. focaltech,family-id = <0x06>;
  10. focaltech,reset-gpio = <&msmgpio 0 0x00>;
  11. focaltech,irq-gpio = <&msmgpio 1 0x00>;
  12. focaltech,display-coords = <0 0 480 854>;
  13. focaltech,panel-coords = <0 0 480 946>;
  14. focaltech,button-map= <139 102 158>;
  15. focaltech,no-force-update;
  16. focaltech,i2c-pull-up;

这里主要配置touch panel的按键:

[plain] view plaincopy
  1. gen-vkeys {
  2. compatible = "qcom,gen-vkeys";
  3. label = "ft5x06_ts";
  4. qcom,disp-maxx = <480>;
  5. qcom,disp-maxy = <800>;
  6. qcom,panel-maxx = <481>;
  7. qcom,panel-maxy = <940>;
  8. qcom,key-codes = <102 158 >;  //按键码,TP需要几个就写几个
  9. qcom,y-offset = <0>;
  10. };

key_codes究竟是多少,在头文件kernel/include/linux/input.h 中定义,解析这些参数的函数是在driver/input/touchscreen/gen_vkeys.c,其中用的的函数还是这个

vkey_obj = kobject_create_and_add("board_properties", NULL);
if (!vkey_obj) {
dev_err(&pdev->dev, "unable to create kobject\n");
return -ENOMEM;
}

ret = sysfs_create_group(vkey_obj, &vkey_grp);
if (ret) {
dev_err(&pdev->dev, "failed to create attributes\n");
goto destroy_kobj;
}

这个实现的方法跟8x25的基本一样,只不过这里注册成了驱动。记住如果使能这个功能的话,在配置文件中CONFIG_TOUCHSCREEN_GEN_VKEYS=y

下面是成功添加后的截图

0
0
  • 上一篇

高通 8x12 添加 TP和按键相关推荐

  1. 高通平台之TP代码分析

    TP驱动芯片厂商主要有:Goodix(汇顶),FocalTech(敦泰科技),cypress(赛普拉斯),synaptics(新思). TP驱动的调试主要是将接口调通. 从TP厂商获取驱动和配置资料. ...

  2. SM7250(高通5G)平台TP bringup

    文章首次写在个人微信公众号[Linux驱动]. #近况说明 从3月到5月中旬,这段时间一直在做高通5G中端手机平台的项目.硬件平台为SM7250,软件平台为android Q(10),截至目前,搭载这 ...

  3. 高通8x12平台开机画面制作工具

    你可能在网上看到很到关于手动更换手机开机图片的文章,想想自己的开机画面是小两口,好基友的照片多么个性啊.但是你有没有发现,网上下载的什么"一键生成"之类的,在你的手机上不能用啊,( ...

  4. 【高通SDM660平台 Android 10.0】(19) --- Camera_focus、Camera_snapshot、volume_up 按键工作原理分析

    [高通SDM660平台 Android 10.0]19 --- Camera_focus.Camera_snapshot.volume_up 按键工作原理分析 一. DTS代码配置 二. Kernel ...

  5. 高通平台TP和LCD 驱动Porting流程

    ELAN 6730 高通820 8996平台Porting手册 1.Touch porting 创建Touch驱动文件夹 cd android/kernel/msm-3.18/drivers/inpu ...

  6. 高通安卓调试LCD几方面总结

    来公司上班现在已经整整一个月了,蔽人不才,能力有限,学习进度缓慢,不过也是有一点点的收获与心得,在这里写出来与大家分享,养成良好的记录习惯也免得后忘记. 不啰嗦了,开入正题.来公司一个月左右的时间,主 ...

  7. 高通开发笔记---yukon worknote

    点击打开链接 daily build http://android-ci-platform.cnbj.sonyericsson.net/job/daily_build_jb-mr2-yukon/ DL ...

  8. 乐2的android版本,乐视2高通|MIUI10|安卓6.0|最终完美版|极速_最新最全的乐2高通版ROM刷机包下载、刷机...

    乐视2高通|MIUI10|安卓6.0|最终完美版|极速流畅|稳定实用|摇晃手势|DDK设置|养老专用 更新编译工具ROM体积更小相机切换不卡 因为Magisk的关系开机会有系统提示完全不影响 精简桌面 ...

  9. 【高通SDM660平台 Android 10.0】(21) --- 高通Camera persist使用手册

    在网上看到一位兄弟针对高通平台 camera 相关属性总结的特别好,特意转载过来备份下,以供后续调试使用. 原文: <高通Camera persist使用手册> 基于MSM8996平台PL ...

最新文章

  1. 一文详解C++文件读写(FileStorage、txt)
  2. 网站外链优化布局和新增技巧介绍!
  3. python 培训-Python培训周末班|python是什么?能干什么?
  4. java类加载过程_面试官:java类的加载过程
  5. APNIC IP 库
  6. cnblog div+CSS 布局常识 8问
  7. Java线程池的学习记录
  8. 肖忠付武汉大学计算机学院,丁立新(武汉大学计算机学院教授)_百度百科
  9. 计算机键盘运算符号输入,电脑上感叹号怎么打出来(电脑键盘符号大全)
  10. 【易通慧谷】供应链金融六大模式解析
  11. textlive、sublime和SumatraPDF配置
  12. Java 循环语句折纸小游戏
  13. 仿B站的视频评论列表
  14. NetWorker Pro for Mac (菜单栏网速监测显示工具) v8.11
  15. 服务器部署MySQL过程
  16. PDF文件如何删除页面
  17. dynamic_cast用法总结
  18. 转载:KOF97坂琦良心得
  19. tkmbatis 日志_springboot+maven+tk.mybatis+generator逆向工程
  20. 车牌识别(一)BMP文件读写

热门文章

  1. ccombox获取选择的文本_PC端最好用的翻译软件,支持引擎切换、文本朗读
  2. 自动转换会出现的问题
  3. vue展示信息卡片_vue实现登录和个人信息组件展示
  4. python算不算编程_Python 并不适合职场编程
  5. JavaWeb开发概述
  6. Android数据存储与持久化
  7. 第四篇:Mysql查询-多表联合查询-及子查询
  8. 服务器策略文件,如何解决服务器对文件请求的缓存策略教程
  9. 晶振波形不是正弦波_10天电子入门-电感/晶振/声音
  10. python文件分发_python 写一个文件分发小程序