You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Goodix GT911触摸屏上电64秒后才产生I2C信号问题求助

Goodix GT911触摸屏上电64秒延迟响应问题排查与解决

问题核心分析

从dmesg日志和硬件监测结果来看,延迟的关键触发点在于:

  1. 驱动在1.6秒左右完成芯片识别,但因找不到goodix_911_cfg.bin配置固件,进入了sysfs fallback的等待流程,这个等待时长恰好对应64秒的延迟
  2. 设备树中同时配置了interrupts和irq-gpios,可能导致中断处理逻辑冲突,进一步加剧初始化延迟
  3. 电源部分使用dummy regulator,可能不符合GT911的上电时序要求

分步解决方案

1. 解决固件加载问题

驱动加载时找不到配置固件是触发64秒等待的直接原因:

  • 获取对应GT911版本(日志显示版本为1060)的官方配置文件goodix_911_cfg.bin
  • 将文件放置到系统的/lib/firmware/目录下
  • 重启系统后,检查dmesg日志,确认不再出现Falling back to sysfs fallback for: goodix_911_cfg.bin的提示

2. 修正设备树中断配置

Goodix驱动优先使用irq-gpios处理中断,同时配置interrupts会导致逻辑冲突:

  • 删除设备树中的interrupt-parent和interrupts节点,仅保留irq-gpios配置
  • 修改后的设备树片段:
&i2c1 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_i2c1>;
 status = "okay";
 clock-frequency = <100000>;
 gt911@5d {
  compatible = "goodix,gt911";
  reg = <0x5d>;
  irq-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>;
  reset-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
  touchscreen-size-x = <1024>;
  touchscreen-size-y = <600>;
  touchscreen-inverted-x = <0>;
  touchscreen-inverted-y = <0>;
 };
};

3. 完善电源 regulator 配置

dummy regulator无法提供稳定的电源时序,需配置真实电源节点:

  • 在GT911的设备树节点中添加电源供应配置,示例如下:
gt911@5d {
 // 保留原有配置
 AVDD28-supply = <&reg_2p8v>;
 VDDIO-supply = <&reg_1p8v>;
};

注意:reg_2p8v和reg_1p8v需是系统中已定义的有效电源 regulator 节点

4. 优化芯片复位逻辑

若上述步骤无效,可手动强化复位时序:

  • 修改goodix.c驱动的goodix_probe函数,添加主动复位逻辑:
// 确保reset_gpio已获取
gpiod_set_value(reset_gpio, 0);
msleep(10); // 保持复位至少10ms
gpiod_set_value(reset_gpio, 1);
msleep(50); // 等待芯片完成初始化
  • 重新编译内核并烧录

验证方式

  • 重启系统后,查看dmesg日志,确认input: Goodix Capacitive TouchScreen的注册时间提前至几秒内
  • 用示波器监测I2C总线,确认触摸事件触发时立即产生通信信号

内容的提问来源于stack exchange,提问作者ahmet cihan Akınca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 03:43:26