惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
F
Fortinet All Blogs
阮一峰的网络日志
阮一峰的网络日志
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
WordPress大学
WordPress大学
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
罗磊的独立博客
S
SegmentFault 最新的问题
V
V2EX
V
Visual Studio Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
美团技术团队
博客园 - 三生石上(FineUI控件)
Stack Overflow Blog
Stack Overflow Blog
Y
Y Combinator Blog
MyScale Blog
MyScale Blog
D
Docker
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
M
Microsoft Research Blog - Microsoft Research
Martin Fowler
Martin Fowler
S
Secure Thoughts
B
Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Recent Announcements
Recent Announcements
MongoDB | Blog
MongoDB | Blog
C
Cisco Blogs
C
CERT Recently Published Vulnerability Notes
T
True Tiger Recordings
GbyAI
GbyAI
P
Proofpoint News Feed
P
Privacy International News Feed
Jina AI
Jina AI
The Cloudflare Blog
I
Intezer
AWS News Blog
AWS News Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
S
Security Archives - TechRepublic
NISL@THU
NISL@THU
The Register - Security
The Register - Security
Recent Commits to openclaw:main
Recent Commits to openclaw:main
P
Palo Alto Networks Blog
S
Schneier on Security
L
LINUX DO - 热门话题
C
CXSECURITY Database RSS Feed - CXSecurity.com
Security Latest
Security Latest
C
Cybersecurity and Infrastructure Security Agency CISA

博客园 - 邗影

如何去掉merge UBI的覆盖写和擦除 debug比release程序启动的快 关于CPU占用优先级的调整 关于蜂鸣器发声 麦序与声源定位 关于squashfs压缩挂载 软连接生成 线程退出未定义行为 linux文件查找 C语言弱函数 数据传输报错port unreachable D3D11绘制三角形 关于延迟测试 v4l2检测 关于数据库的性能 流媒体小记包含一些面试问题 v4l2视频采集 流媒体ZLM配置vscode远程开发 关于SPS中的帧率问题 Linux编译问题 SSl冲突问题 D3D初始化窗口显示 关于线程池
DTSI 多个模块共用同一个 GPIO 引脚冲突 问题汇总
邗影 · 2026-05-18 · via 博客园 - 邗影

一、核心本质

同一个物理 GPIO 引脚,在设备树里被两个及以上驱动 / 模块同时申请、配置、使用。


二、直接出现的问题

1. 驱动注册失败、内核报错

  • 先加载的驱动成功占用 GPIO,后加载驱动调用gpiod_get()/gpio_request()直接失败
  • 打印 gpio already requested,模块初始化直接挂掉,功能失效

2. 电平互相篡改,逻辑完全错乱

  • A 模块拉高电平,B 模块误以为是自身触发信号
  • 按键、中断、指示灯、使能脚、复位脚互相干扰
  • 按键乱触发、指示灯乱闪、外设随机启停

3. 方向模式冲突(输入 / 输出打架)

  • 一个配为输出推高低电平
  • 另一个配为输入检测电平
  • 输出强拉电平,输入采样永远不准;甚至 IO 口电平僵持,灌电流异常

4. 中断冲突最严重

  • 双方都配置该 GPIO 为中断触发(上升沿 / 下降沿 / 双边沿)
  • 中断号重复注册,内核中断紊乱、丢失中断、频繁误触发
  • 严重直接系统卡顿、死机、内核 panic

5. 电气硬件损坏风险

  • 两个模块同时设为输出:一个拉高、一个拉低 → IO 口对拉灌大电流
  • 长期使用烧毁 GPIO 引脚、主控 IO 域电路

6. 休眠 / 唤醒逻辑异常

  • 休眠时一方拉电平唤醒,另一方误唤醒整机
  • 低功耗失效,待机功耗飙升

7. 设备树编译 & 合并隐性冲突

  • 多个 dts/dtsi 重复定义gpios = <&gpioxxx ...>
  • 覆盖原有配置,实际生效的只有最后一个配置,前期配置全部失效

三、常见冲突场景

  1. 按键 GPIO 同时被按键驱动 + 唤醒驱动使用
  2. 电源使能脚 同时被功耗管理 + 外设驱动配置
  3. LED 指示灯 被两个业务模块控制
  4. 串口 / 外设复位脚 多模块共用复位控制
  5. 外部中断输入脚 多个传感器共用同一中断 IO