日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

高通 8x12 添加 TP和按键

發布時間:2025/4/16 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高通 8x12 添加 TP和按键 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 .在tp的驅動文件中添加以下代碼實現按鍵功能

[plain]?view plaincopy
  • static?ssize_t??
  • ft5x06_virtual_keys_register(struct?kobject?*kobj,??
  • ?????????????????struct?kobj_attribute?*attr,??
  • ?????????????????char?*buf)??
  • {??
  • ????return?snprintf(buf,?200,??
  • ????__stringify(EV_KEY)?":"?__stringify(KEY_HOME)??":120:840:80:60"??
  • ????":"?__stringify(EV_KEY)?":"?__stringify(KEY_BACK)???":360:840:80:60"??
  • ????"\n");??
  • }??
  • ??
  • static?struct?kobj_attribute?ft5x06_virtual_keys_attr?=?{??
  • ????.attr?=?{??
  • ????????.name?=?"virtualkeys.ft5x06_ts",??
  • ????????.mode?=?S_IRUGO,??
  • ????},??
  • ????.show?=?&ft5x06_virtual_keys_register,??
  • };??
  • ??
  • static?struct?attribute?*ft5x06_virtual_key_properties_attrs[]?=?{??
  • ????&ft5x06_virtual_keys_attr.attr,??
  • ????NULL,??
  • };??
  • ??
  • static?struct?attribute_group?ft5x06_virtual_key_properties_attr_group?=?{??
  • ????.attrs?=?ft5x06_virtual_key_properties_attrs,??
  • };??
  • ??
  • struct?kobject?*ft5x06_virtual_key_properties_kobj;??
  • ??
  • ??
  • static?void?__init?ft5x06_touchpad_setup(void)??
  • {??
  • ????int?rc;??
  • ????ft5x06_virtual_key_properties_kobj?=??
  • ????????????kobject_create_and_add("board_properties",?NULL);??
  • ??????
  • ??
  • ????if?(ft5x06_virtual_key_properties_kobj)??
  • ????????rc?=?sysfs_create_group(ft5x06_virtual_key_properties_kobj,??
  • ????????????????&ft5x06_virtual_key_properties_attr_group);??
  • ??
  • ????if?(!ft5x06_virtual_key_properties_kobj?||?rc)??
  • ????????pr_err("%s:?failed?to?create?board_properties\n",?__func__);??
  • ??
  • ??????
  • }??
  • 另外需要在-mtp.dtsi文件中配置TP的參數和gen_vkeys

    [plain]?view plaincopy
  • i2c@f9923000{??
  • ????focaltech@38{??
  • ????????compatible?=?"focaltech,5x06";??
  • ????????reg?=?<0x38>;??
  • ????????interrupt-parent?=?<&msmgpio>;??
  • ????????interrupts?=?<1?0x2>;??
  • ????????vdd-supply?=?<&pm8110_l19>;??
  • ????????vcc_i2c-supply?=?<&pm8110_l14>;??
  • ????????focaltech,family-id?=?<0x06>;??
  • ????????focaltech,reset-gpio?=?<&msmgpio?0?0x00>;??
  • ????????focaltech,irq-gpio?=?<&msmgpio?1?0x00>;??
  • ????????focaltech,display-coords?=?<0?0?480?854>;??
  • ????????focaltech,panel-coords?=?<0?0?480?946>;??
  • ????????focaltech,button-map=?<139?102?158>;??
  • ????????focaltech,no-force-update;??
  • ????????focaltech,i2c-pull-up;??

  • 這里主要配置touch panel的按鍵:

    [plain]?view plaincopy
  • gen-vkeys?{??
  • ????????compatible?=?"qcom,gen-vkeys";??
  • ????????label?=?"ft5x06_ts";??
  • ????????qcom,disp-maxx?=?<480>;??
  • ????????qcom,disp-maxy?=?<800>;??
  • ????????qcom,panel-maxx?=?<481>;??
  • ????????qcom,panel-maxy?=?<940>;??
  • ????????qcom,key-codes?=?<102?158?>;??//按鍵碼,TP需要幾個就寫幾個??
  • ????????qcom,y-offset?=?<0>;??
  • ????};??

  • 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和按键的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。