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

推荐订阅源

大猫的无限游戏
大猫的无限游戏
博客园 - 【当耐特】
Cloudbric
Cloudbric
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Attack and Defense Labs
Attack and Defense Labs
爱范儿
爱范儿
The Cloudflare Blog
腾讯CDC
Security Archives - TechRepublic
Security Archives - TechRepublic
TaoSecurity Blog
TaoSecurity Blog
云风的 BLOG
云风的 BLOG
Recent Announcements
Recent Announcements
C
Check Point Blog
Schneier on Security
Schneier on Security
S
Schneier on Security
J
Java Code Geeks
B
Blog RSS Feed
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
Stack Overflow Blog
Stack Overflow Blog
博客园_首页
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
A
About on SuperTechFans
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Google DeepMind News
Google DeepMind News
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
A
Arctic Wolf
S
Secure Thoughts
P
Palo Alto Networks Blog
The Last Watchdog
The Last Watchdog
SecWiki News
SecWiki News
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 三生石上(FineUI控件)
D
Darknet – Hacking Tools, Hacker News & Cyber Security
量子位
U
Unit 42
I
InfoQ
D
DataBreaches.Net
P
Privacy International News Feed
T
Troy Hunt's Blog
博客园 - 叶小钗
T
Threatpost
博客园 - Franky
K
Kaspersky official blog
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
www.infosecurity-magazine.com
www.infosecurity-magazine.com
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Cisco Blogs

博客园 - 邗影

关于音频PA结构腔体 球面渲染 关于linux和shi脚本常用的通配符 关于fread读不满一块和读不满count的返回值 如何去掉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