目录
一、概述
暂时未实际应用过pinctrl,暂时是以理论基础来撰写改文档,如有错误后续会持续补充。
pinctrl主要是为了简化以及统一gpio的配置而产生。
pinctrl子系统的功能:
(1)管理系统中所有的可以控制的pin,在系统初始化的时候,枚举所有可以控制的pin,并标识这些pin。
(2)管理这些pin的复用(Multiplexing)。对于SOC而言,其引脚除了配置成普通的GPIO之外,若干个引脚还可以组成一个pin group,行程特定的功能。pin control subsystem要管理所有的pin group。
(3)配置这些pin的特性。例如使能或关闭引脚上的pull-up、pull-down电阻,配置引脚的driver strength。
对于pinctrl的背景可以参考文档linux内核中的GPIO系统之(1):软件框架,讲的比较清楚。
二、pinctrl的使用方法
pinctrl的使用主要包括两部分内容,一是dts配置,二是设备驱动中的使用。
dts配置:
pinctrl的背景可以参考文档

本文档详细介绍了Linux内核中的Pinctrl子系统,用于简化和统一GPIO配置。Pinctrl管理所有可控制的pin,处理引脚复用和配置特性。在设备驱动中,通过dts配置和API调用来使用Pinctrl。同时,文章提到了pinctrl与GPIO子系统的关系,并分析了驱动流程。高通SDM845平台的Pinctrl控制器和驱动也被提及。


被折叠的 条评论
为什么被折叠?



