Linux设备树学习(三)Pinctrl

Linux内核3.0之后引入的pinctrl子系统,旨在解决之前通过目标板配置文件初始化引脚功能的繁琐和易出错问题。该子系统提供了引脚枚举、复用和配置等功能,支持GPIO、I2C等。驱动程序通过三个步骤与pinctrl交互:获取句柄、设定状态和释放句柄。pinctrl-core抽象层负责提供底层通信接口,驱动访问pin以及GPIO访问能力。
摘要由CSDN通过智能技术生成

活动地址:CSDN21天学习挑战赛

背景

直译:控制引脚。Linux kernel 3.0之前的内核,对于pin的功能配置都是通过目标板的配置文件(arch/arm/mach-*)来初始化的,这种配置方式比较繁琐,十分容易出现问题(例如,pin的功能配置冲突)。Linux kernel 3.0之后,为了解决上述问题引入了pinctrl子系统。

功能

(1)引脚枚举与命名

(2)引脚复用(GPIO、I2C等)

(3)引脚配置(上拉、下拉、开漏、驱动强度等)

pinctrl相关概念

普通的driver调用pin control subsystem 的接口就是只有三个步骤

(1)驱动加载或是运行时,获取pin control state holder的句柄(struct pinctrl)

(2)设定pin control的状态(struct pinctrl_state)

(3)驱动卸载或是退出时,释放pin control state holder的句柄

pinctrl子系统的软件架构见下图:图来源Linux内核之pinctrl子系统 - 知乎

 pinctrl-core抽象层主要的功能就是提供三种服务:

(1)为SoC pin controler drvier提供底层通信接口的能力
(2)为Driver提供访问pin的能力,即driver配置pin复用能、配置引脚的电气特性
(3)为GPIO子系统提供GPIO访问的能力

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值