PINCTRL 使用指南
2 Dec 2024
Read time: 1 minute(s)
PINCTRL 模块,负责管理 SOC 中各个 pin 的状态,如驱动能力,内部是否有上下拉,gpio 的输入输出,以及是否功能复用等。通过 PINCTRL 模块,将 SOC 的 pin 脚个数,各个 pin 脚可实现的功能等信息统一注册到内核中,方便系统进行统一管理。
在 linux 内核中,pin 的功能复用由 pinctrl 子系统实现,gpio 的输入、输出、中断功能由 gpio 子系统实现。而 AIC 的 PINCTRL 模块,既包括了 gpio 的输入输出功能,也包括了 pin 的功能复用。所以在驱动实现上,统一将这些功能分类整合到 pinctrl 子系统的框架下,即硬件 gpio 模块的驱动实现在 pinctrl 子系统下。PINCTRL 驱动实际包含了 3 个子系统的内容:gpio 子系统,pinctrl 子系统,以及 irqchip 子系统的驱动。
术语 | 定义 | 注释说明 |
---|---|---|
GPIO | General Purpose Input Output | 通用输入输出 |
GIC | Generic Interrupt Controller | 通用中断控制器 |
PINCTRL | Pin Controller | pin 脚控制器 |