之前有写过一篇关于Gt911触摸的文章,今天写一篇关于如何在openharmony上调试电阻屏触摸驱动,
首先需要修改如下两个文件,将我们的驱动文件加入驱动编译框架中,
diff --git a/drivers/adapter/khdf/linux/model/input/Kconfig b/drivers/adapter/khdf/linux/model/input/Kconfig
index 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
help
Answer 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/Makefile
index 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_defconfig
index 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.hcs
index 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