当前位置: 首页 > news >正文

展锐平台 触摸调试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.o

makefile建议参考同级目录的tp驱动

这里ilitek-y

表示:生成 ilitek.o 这个目标文件时,需要把这些 .o 合并进去。

STEP2

在此目录添加对应的dtsi

ker\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 */ touchpanel@0 { 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驱动dtsi

ker\kernel6.6\unisoc\arch\arm64\boot\dts\sprd\ums9360\

#include "../touchscreen/ums9360-touch_ilitek_spi_1600x2400.dtsi"

STEP4

展锐平台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_SPI=m

unisoc/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/Kconfig

source "drivers/unisoc_platform/nest/touchscreen/ilitek/Kconfig"

/unisoc/drivers/unisoc_platform/Makefile

obj-$(CONFIG_TOUCHSCREEN_ILITEK_V3_SPI) += nest/touchscreen/ilitek/
http://www.jsqmd.com/news/1336165/

相关文章:

  • GRNN神经网络+NSGAII多目标优化算法,工艺参数优化、工程设计优化!(Matlab)
  • 海门中捷缝纫机门店选购指南
  • 告别手动听写!这4款视频转文字工具,让我一天省下3小时
  • linux 蓝牙调试相关指令
  • 2026年中频点焊机比较好的厂家:技术实力与适配场景深度解析 - 全域品牌推荐
  • 2026优选红外防潮防霉系统:破解仓储资产隐形损耗的深层方案 - 企业深度能力测评
  • Agent能跑Demo却过不了面试,工程化能力差在哪
  • 【2026盐城配镜完全手册】深度测评艾尚/大上海/光明三大门店,揭秘行业潜规则与避坑攻略 - 微城市网络
  • 【AI社群冷启动失效真相】:92%团队忽略的3个数据断点与实时干预公式
  • Unity WebGL发布避坑指南:从内存管理到字体渲染的实战解决方案
  • 《ESP32 物联网全栈实战-11》小程序进阶
  • 天津管道疏通公司口碑**:2026年本地正规品牌综合对比与推荐 - 园子一号
  • 寂静猎人:每天问一遍AI,看看AI的观点
  • 全星研发项目管理APQP软件系统——让研发合规与效率一步到位
  • 合肥管道疏通公司口碑**:2026年本地正规品牌综合对比与推荐 - 园子一号
  • WinCC组合框控件:实现PLC变量安全赋值与模式选择
  • AI Agent学习:上下文工程(Context Engineering)心得总结(李博杰《深入理解 AI Agent》2.1,2.2观后总结)
  • 在功率半导体(如 IGBT 或 SiC MOSFET)的驱动电路与测试中,栅电阻(Gate Resistor)用于控制功率器件开通和关断的速度,抑制寄生振荡
  • Flutter应用版本逆向分析:从APK/IPA中提取Flutter SDK版本号的实战指南
  • 厦门各区小学上学期期中语文、数学、英语试卷及答案解析
  • 什么是减振器吊环连杆凸焊机?一篇读懂其定义、价值与实现路径 - 全域品牌推荐
  • PHP Composer依赖管理机制与优化实战
  • 智谱清言转 word 工具推荐:首选「AI 导出鸭」平板版,专治智谱清言输出乱码,一键无损导出 Word,完美还原公式表格与代码流程图。
  • 游戏抽奖概率模型解析:从独立事件到保底机制的策略规划
  • 开封管道疏通公司口碑**:2026年本地正规品牌综合对比与推荐 - 园子一号
  • 2026年企业培训考核选型指南:为何它能成为在线考试平台首选?
  • 【语音增强】组稀疏信号去噪:非凸正则化,凸优化研究附Matlab代码
  • 兄弟,IPA 又传不上去了
  • 嵌入式开发IO口扩展实战:I2C总线驱动PCF8574与MCP23017芯片详解
  • 【仅限首批内测者】扣子v2.3.1表单触发器Beta API提前解锁:支持条件分支+异步队列+失败重试(附迁移清单)