> 文档中心 > openharmony移植之编写电阻触摸屏驱动

openharmony移植之编写电阻触摸屏驱动

之前有写过一篇关于Gt911触摸的文章,今天写一篇关于如何在openharmony上调试电阻屏触摸驱动,
首先需要修改如下两个文件,将我们的驱动文件加入驱动编译框架中,

diff --git a/drivers/adapter/khdf/linux/model/input/Kconfig b/drivers/adapter/khdf/linux/model/input/Kconfigindex 7257f0b098..838263383a 100755--- a/drivers/adapter/khdf/linux/model/input/Kconfig+++ b/drivers/adapter/khdf/linux/model/input/Kconfig@@ -18,3 +18,10 @@ config DRIVERS_HDF_TP_2P35_FT6236     depends on DRIVERS_HDF_INPUT     helpAnswer Y to enable HDF TP 2P35 FT6236 driver.++config DRIVERS_HDF_TP_4P_T113+    bool "Enable HDF tp 4P T113 driver"+    default n+    depends on DRIVERS_HDF_INPUT+    help+      Answer Y to enable HDF TP 4P T113 driver.diff --git a/drivers/adapter/khdf/linux/model/input/Makefile b/drivers/adapter/khdf/linux/model/input/Makefileindex 024bc5e2d1..73c0758cb3 100644--- a/drivers/adapter/khdf/linux/model/input/Makefile+++ b/drivers/adapter/khdf/linux/model/input/Makefile@@ -27,6 +27,8 @@ obj-$(CONFIG_DRIVERS_HDF_TP_5P5_GT911) += \ $(INPUT_ROOT_DIR)/touchscreen/touch_gt911.o obj-$(CONFIG_DRIVERS_HDF_TP_2P35_FT6236) += \ $(INPUT_ROOT_DIR)/touchscreen/touch_ft6336.o+obj-$(CONFIG_DRIVERS_HDF_TP_4P_T113) += \+      $(INPUT_ROOT_DIR)/touchscreen/touch_t113.o ccflags-y += -Iinclude/../drivers/hdf/framework/model/input/driver \-Iinclude/../drivers/hdf/framework/model/input/driver/input_bus_ops \diff --git a/kernel/linux/config/linux-5.4/arch/arm/configs/t113_nand_linux_small_defconfig b/kernel/linux/config/linux-5.4/arch/arm/configs/t113_nand_linux_small_defconfigindex 5516967977..51f92549e6 100644--- a/kernel/linux/config/linux-5.4/arch/arm/configs/t113_nand_linux_small_defconfig+++ b/kernel/linux/config/linux-5.4/arch/arm/configs/t113_nand_linux_small_defconfig@@ -263,6 +263,7 @@ CONFIG_DRIVERS_HDF_PLATFORM_I2C=y CONFIG_DRIVERS_HDF_INPUT=y CONFIG_DRIVERS_HDF_TP_5P5_GT911=y # CONFIG_DRIVERS_HDF_TP_2P35_FT6236 is not set+CONFIG_DRIVERS_HDF_TP_4P_T113=y # CONFIG_DRIVERS_HDF_WIFI is not set # CONFIG_DRIVERS_HDF_BT is not set # CONFIG_DRIVERS_HDF_SENSOR is not set

然后可以使用hb build -f编译测试下,有没有编译我们新加入的文件。加入的文件在drivers/framework/model/input/driver/touchscreen/touch_t113.c,然后就可以开始编写电阻触摸屏驱动了。
首先需要添加驱动入口

struct HdfDriverEntry g_touchT113ChipEntry = {    .moduleVersion = 1,    .moduleName = "HDF_TOUCH_T113",    .Init = HdfT113ChipInit,};HDF_INIT(g_touchT113ChipEntry);

然后对应的在文件vendor/xingyun/t113_nand/hdf_config/device_info/device_info.hcs中添加如下内容。

diff --git a/vendor/xingyun/t113_nand/hdf_config/device_info/device_info.hcs b/vendor/xingyun/t113_nand/hdf_config/device_info/device_info.hcsindex 7acc319ff2..f91710d77e 100755--- a/vendor/xingyun/t113_nand/hdf_config/device_info/device_info.hcs+++ b/vendor/xingyun/t113_nand/hdf_config/device_info/device_info.hcs@@ -83,6 +83,15 @@ root {serviceName = "hdf_touch_gt911_service";deviceMatchAttr = "zsj_gt911_5p5";   }+ device1 :: deviceNode {+      policy = 0;+      priority = 130;+      preload = 0;+      permission = 0660;+      moduleName = "HDF_TOUCH_T113";+      serviceName = "hdf_touch_t113_service";+      deviceMatchAttr = "mc_t113_4p4";+  }      }  }

然后我们可以编译验证下,是否能成功执行我们的,可以

[D/devmgr_service] DevmgrServiceUpdateStatus host:input_host 1 device:hdf_input_event1 1 status:1[    5.006949] [W/driver_loader] failed to load node, property is null, match attr is: mc_t113_4p4[    5.016821] [I/touch_t113] HdfT113ChipInit: enter