公司动态

展锐平台 触摸调试TP bringup

📅 2026/8/5 23:41:51
展锐平台 触摸调试TP bringup
前言一般lcd和tp应该是一起点亮的这里分开了详细lcd点亮方法查看上一篇lcd bringup参考修改目录STEP1把厂商给得驱动放入文件夹ker/kernel6.6/unisoc-modules/touchscreen/修改对应的Kconfig和makefile,这里是tp驱动是否被加载和编译的关键文件# # Unisoc touchscreen (NEW )configuration # config TOUCHSCREEN_ILITEK_V3_SPI tristate ILITEK V3 SPI Support help This is support ilitek v3 spi touchscreen. if you want to use ilitek v3 spi touchscreen. please say m.# Makefile for the ILITEK touchscreen driver. ifneq ($(strip $(BSP_KERNEL_VERSION)),kernel5.15) BSP_MODULES_OUT : ${COMMON_OUT_DIR}/unisoc_modules/kernel6.1/touchscreen/ilitek BSP_KERNEL_PATH : ${ROOT_DIR}/kernel6.1 KO_MODULE_OUT : $(BSP_MODULES_OUT) else KO_MODULE_NAME : ilitek KO_MODULE_OUT : $(BSP_MODULES_OUT)/$(KO_MODULE_NAME) endif ccflags-y -Wall ccflags-y -I$(srctree)/drivers/unisoc_platform/nest/touchscreen/core/ KO_MODULE_KBUILD : $(CURDIR)/Kbuild .PHONY: modules modules_install clean modules: mkdir -p $(KO_MODULE_OUT) ln -snf $(KO_MODULE_KBUILD) $(KO_MODULE_OUT)/Kbuild ln -snf $(CURDIR) $(KO_MODULE_OUT)/source $(MAKE) -C $(BSP_KERNEL_PATH) M$(KO_MODULE_OUT) src$(CURDIR) $ modules_install: $(MAKE) -C $(BSP_KERNEL_PATH) M$(KO_MODULE_OUT) $ # Remove the out directory wholly clean: #$(MAKE) -C $(BSP_KERNEL_PATH) M$(KO_MODULE_OUT) src$(CURDIR) $ rm -rf $(KO_MODULE_OUT) ########################################################################## ilitek-y : \ ilitek_v3.o \ ilitek_v3_spi.o \ ilitek_v3_qcom.o \ ilitek_v3_ic.o \ ilitek_v3_touch.o \ ilitek_v3_mp.o \ ilitek_v3_hostdl.o \ ilitek_v3_node.o obj-$(CONFIG_TOUCHSCREEN_ILITEK_V3_SPI) ilitek.omakefile建议参考同级目录的tp驱动这里ilitek-y表示生成 ilitek.o 这个目标文件时需要把这些 .o 合并进去。STEP2在此目录添加对应的dtsiker\kernel6.6\unisoc\arch\arm64\boot\dts\sprd\touchscreen// SPDX-License-Identifier: (GPL-2.0 OR MIT) /* * Unisoc TP dts file * * Copyright (C) 2020, Unisoc Inc. * */ #include dt-bindings/gpio/gpio.h spi3 { status ok; #address-cells 1; #size-cells 0; /* Novatek device tree node */ touchpanel0 { compatible tchip,ilitek; /*pinctrl*/ pinctrl-names spi_di_0,spi_di_1, spi_do_0,spi_do_1, spi_clk_0,spi_clk_1, spi_csn_0,spi_csn_1, tp_extconf0,tp_extconf1; pinctrl-0 ilitek_spi_di_0; pinctrl-1 ilitek_spi_di_1; pinctrl-2 ilitek_spi_do_0; pinctrl-3 ilitek_spi_do_1; pinctrl-4 ilitek_spi_clk_0; pinctrl-5 ilitek_spi_clk_1; pinctrl-6 ilitek_spi_csn_0; pinctrl-7 ilitek_spi_csn_1; pinctrl-8 tp_extconf0; pinctrl-9 tp_extconf1; reg 0; //Same as CS ID status ok; spi-max-frequency 25000000; touch,irq-gpio ap_gpio 19 GPIO_ACTIVE_HIGH; touch,eic-irq-gpio eic_async 18 GPIO_ACTIVE_HIGH; //touch,reset-gpio ap_gpio 29 GPIO_ACTIVE_HIGH; wakeup-source; }; }; pin_controller { ilitek_spi_di_0: tp_spi_di_default { pins UMS9360_SPI3_DI; function func3; }; ilitek_spi_di_1: tp_spi_di_active { pins UMS9360_SPI3_DI; function func1; }; ilitek_spi_do_0: tp_spi_do_default { pins UMS9360_SPI3_DO; function func3; }; ilitek_spi_do_1: tp_spi_do_active { pins UMS9360_SPI3_DO; function func1; }; ilitek_spi_clk_0: tp_spi_clk_default { pins UMS9360_SPI3_CLK; function func3; }; ilitek_spi_clk_1: tp_spi_clk_active { pins UMS9360_SPI3_CLK; function func1; }; ilitek_spi_csn_0: tp_spi_csn_default { pins UMS9360_SPI3_CSN0; function func3; }; ilitek_spi_csn_1: tp_spi_csn_active { pins UMS9360_SPI3_CSN0; function func1; }; tp_extconf0: extint0 { pins UMS9360_EXTINT2; function func1; }; tp_extconf1: gpio { pins UMS9360_EXTINT2; function func4; }; };需要注意这里的tp中断脚有ap-gpio模式和eic_async中断模式后续调试双击唤醒有用STEP3在对应的主dtsi中包含tp驱动dtsiker\kernel6.6\unisoc\arch\arm64\boot\dts\sprd\ums9360\#include ../touchscreen/ums9360-touch_ilitek_spi_1600x2400.dtsiSTEP4展锐平台tp最后跑的是\ker\kernel6.6\unisoc\drivers\unisoc_platform\nest\touchscreen这里可以通过软链接/脚本的方式把ker\kernel6.6\unisoc-modules\touchscreen\ilitek挪过来进入目录cd ker/kernel6.6/unisoc/drivers/unisoc_platform/nest/touchscreen执行ln -s ../../../../../unisoc-modules/touchscreen/ilitek ilitek然后确认即可推上服务器的时候记得把软连接也加上diff --git a/unisoc/drivers/unisoc_platform/nest/touchscreen/ilitek b/unisoc/drivers/unisoc_platform/nest/touchscreen/ilitek new file mode 120000 index 000000000..a3b5973dd --- /dev/null b/unisoc/drivers/unisoc_platform/nest/touchscreen/ilitek -0,0 1 ../../../../../unisoc-modules/touchscreen/ilitek/STEP5加入编译链unisoc/arch/arm64/configs/sprd_gki_qogirl8.fragment添加Kconfig对应的宏CONFIG_TOUCHSCREEN_ILITEK_V3_SPImunisoc/unisoc_bazels/ums9360_user.bzl unisoc/unisoc_bazels/ums9360_userdebug.bzl添加对应的ko模块drivers/unisoc_platform/nest/touchscreen/ilitek/ilitek.ko,添加对应的Kconfig和makefile/unisoc/drivers/unisoc_platform/Kconfigsource drivers/unisoc_platform/nest/touchscreen/ilitek/Kconfig/unisoc/drivers/unisoc_platform/Makefileobj-$(CONFIG_TOUCHSCREEN_ILITEK_V3_SPI) nest/touchscreen/ilitek/