Linux驱动 2026年6月11日 2 分钟

GPIO子系统驱动分析

子系统层次图 接口实现地址 2. 重要的3个核心数据结构 记住GPIO Controller的要素,这有助于理解它的驱动…

子系统层次图

接口实现地址

2. 重要的3个核心数据结构

记住GPIO Controller的要素,这有助于理解它的驱动程序:

  • 一个GPIO Controller里有多少个引脚?有哪些引脚?
  • 需要提供函数,设置引脚方向、读取/设置数值
  • 需要提供函数,把引脚转换为中断

以Linux面向对象编程的思想,一个GPIO Controller必定会使用一个结构体来表示,这个结构体必定含有这些信息:

  • GPIO引脚信息
  • 控制引脚的函数
  • 中断相关的函数

gpio_device结构体并不需要我们自己去创建,我们需要创建的是gpio_chip结构体

每个GPIO控制器中当个引脚描述符结构体

不同的GPIO控制器使用链表相连

当GPIO子系统单个引脚获得之后如何调用函数进行设置

上一篇 arch_initcall何时被调用及device_node何时加入platform总线

arch_initcall 何时被调用及 device_node 何时加入 platform 总线 问题一:arch_i...

下一篇 GPIO子系统源码分析

在probe函数中申请一个结构体 获取资源和地址 需要重点关注的函数 主要流程就是分配->设置->注册 核心函数