Linux 驱动之 Pinctrl 子系统
Pinctrl 概述
关于 pinctrl 主要可以归结为两类设置,其中一类是功能选择,即一组 gpio 是用于 iic 还是 uart 还是就作为普通 gpio 来用,另一类是 gpio 的特性配置,即上拉、下拉、驱动能力和速率的配置。而 pinctrl 主要负责这两类配置的管理工作。总结起来 pinctrl 主要完成以下三种功能:
- 引脚枚举与命名 (Enumerating and naming)
- 引脚复用 (Multiplexing):比如用作 GPIO、I2C 或其他功能
- 引脚配置 (Configuration):比如上拉、下来、open drain、驱动强度等