Edit online

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 子系统的驱动。

1. 术语定义
术语 定义 注释说明
GPIO General Purpose Input Output 通用输入输出
GIC Generic Interrupt Controller 通用中断控制器
PINCTRL Pin Controller pin 脚控制器