Pinctrl子系统_05_Pincontroller构造过程情景分析

本文详细介绍了Pinctrl子系统的构造过程,包括设备树的划分、引脚枚举与命名、单个引脚和多个引脚(group)的处理,以及imx6ull平台的具体实现。通过分析probe函数和设备树文件,展示了如何动态构造group信息并解析pinmux功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一节我们了解了Pinctrl子系统主要的数据结构,要想更好的掌握Pinctrl子系统,还需要知道他的构造过程

本节我们就来分析一下Pinctrl子系统的构造过程。

以内核面向对象的思想,设备树可以分为两部分,左边是Pinctrl子系统节点,用来描述Pincontroller,右边是使用Pincontroller的设备,本节我们就来分析左边Pinctrller的构造过程

学习Pinctrl子系统时,抓住他的三大作用,就可以比较清楚的分析。

  1. 引脚的枚举与命名;
  2. 引脚复用;
  3. 引脚配置;

本节主要说明引脚的枚举与命名,他会涉及两种情况:单个引脚多个引脚(group)

以imx6ull为例。

单个引脚

根据 imx6ull 设备树中,Pinctrl 节点的 compatible 属性,可以找到对应的驱动文件。

对应的驱动文件是 pinctrl-imx6ul.c,对应的probe函数是 imx6ul_pinctrl_probe 函数。

从probe函数开始,分析一下处理流程:

data 如下,他有 pins npins 成员,分表描述 单个引脚 引脚个数

imx6ul_pinctrl_pads 是一个结构体数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值