Pinctrl子系统_01_Pinctrl子系统介绍

2023-11-05

本节介绍在Pinctrl子系统中,将会学习哪些内容。

Pinctrl作用

Pinctrl:Pin Controller,顾名思义,就是用来控制引脚的。

一个芯片有成百上千个引脚,这些引用要怎么配置,配置成什么功能,都是通Pinctrl子系统来实现的。

如下图所示,对于一个芯片,有很多个控制器,比如GPIO控制器,I2C控制器,UART控制器,这些控制器都需要操作到引脚。但是不同的控制器,他们需要的引脚配置通常也不同

要如何实现不同引脚的配置的,就可以使用Pinctrl子系统来配置。

 Pinctrl有三大功能:

  1. 引脚的枚举与命名(Enumerating and naming)
    枚举:列出芯片有哪些引脚
    命名:各个引脚的名字叫什么
  2. 引脚复用(Multiplexing):比如用作GPIO、I2C或其他功能
  3. 引脚配置(Configuration):比如上拉、下拉、open drain、驱动强度等

实际上,在芯片内部并没有一个硬件Pinctrl——引脚控制器,但引脚控制器也并不完全是一个软件上的东西,他的背后是有硬件支持的。

首先,引脚控制器是有对应驱动的,芯片引脚控制器的驱动代码,通常是由芯片原厂提供的,是由原厂的BSP工程师编写的,一般的驱动工程师只需要使用就可以了。

通常是在设备树中使用:

  1. 指明使用哪些引脚
  2. 指明复用为哪些功能
  3. 配置为哪些状态

在一般的设备驱动程序中,甚至可以没有Pinctrl的代码。

后续内容

简单的说,后续需要掌握的内容如下:

  1. Pinctrl驱动程序如何编写,里面的重要结构体是怎么样的
  2. 分析如何在设备树中使用Pinctrl
  3. 驱动程序和设备树中的配置是如何联系到一起的,设备树中的配置是如何生效的,很明显内核会帮忙我们调用对应Pinctrl子系统中的代码,我们需要知道是如何实现的,要去分析这个过程

那么,要如何学习这些内容:

  1. 基于使用的角度驱动工程师要掌握的Pinctrl重要概念
  2. Pinctrl子系统使用示例
  3. 主要数据结构与调试方法

  4. pincontroller的数据结构构造过程情景分析(会拆分为很多节)

    1. 根据开发板的设备树信息动态地演示

  5. client端的数据结构构造过程情景分析(会拆分为很多节)

    • 根据开发板的设备树信息动态地演示

  6. 编写一个虚拟的pincontroller驱动程序

其中,1-2主要是说明如何使用(use)Pinctrl子系统;

3-4主要是说明Pinctrl子系统的实现,先说明主要的数据结构,然后根据实际的开发板来动态的演示,跟踪数据结构的构造过程,我们理解这了些数据结构怎么构成,对这个部分的实现也就基本了解了;

5主要是看看设备树中的信息,怎么和Pinctrl子系统产生联系,我们需要来分析这个过程,这个过程同样会设涉及一些数据结构,类似的,我们理解这了些数据结构怎么构成,对这个部分的实现也就基本了解了;

6主要是编写一个虚拟的pincontroller驱动程序,用来加深我们的理解。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pinctrl子系统_01_Pinctrl子系统介绍 的相关文章

随机推荐

  • swagger 接口测试,用 python 写自动化时该如何处理?

    在使用Python进行Swagger接口测试时 可以使用requests库来发送HTTP请求 并使用json库和yaml库来处理响应数据 以下是一个简单的示例代码 import requests import json import yam
  • 排序算法性能分析

    目录 实现插入排序 冒泡排序 选择排序 合并排序 快速排序算法 从小到大 插入排序 冒泡排序 选择排序 快速排序 五种排序 现在有10亿的数据 每个数据四个字节 请快速挑选出最大的十个数 并在小规模数据上验证算法的正确性 方法一 规模为10
  • javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with pad

    今天在做AES加密时 项目中出现javax crypto IllegalBlockSizeException Input length must be multiple of 16 when decrypting with padded c
  • 关于centos7虚拟机的问题:主机无法ping通虚拟机

    这个问题困扰了我好几天 我创建好了虚拟机就用MX ssh远程连接 发现连接超时 再三确认ip 和端口过后 还是无法连接 后来尝试在虚拟机里ping主机ip 和网关 都没有问题 问题在于主机无法ping通虚拟机ip 好在 我在网上浏览了一篇文
  • MobaXterm远程登录VirtualBox中的Linux常见问题

    2020 12 02 1 先检查linux是否开启shh服务 ssh localhost 1 如果提示 ssh connect to host localhost port 22 Connection refused 则需要下载安装ssh
  • MMDeploy详解

    MMDeploy详解 1 简介 1 1 流程简介 1 1 1 模型转换 Model Converter 1 1 2 MMDeploy 模型 MMDeploy Model 1 1 3 推理 SDK Inference SDK 1 2 支持多种
  • 5年 Python 功力,总结了 10个开发技巧!高效率开发真正的秘诀(二)

    话接上文 我又来了分享我学习到的10个开发技巧啦 学习的路上 只有多多交流才能更好更快的解决难题 在这里还是要推荐下我自己建的Python学习Q群 249029188 群里都是学Python的 如果你想学或者正在学习Python 欢迎你加入
  • camera调试:serdes camera调试

    serdes是串行器和解串器的简写 顾名思义是一种将并行数据转换成串行数据发送 将接收的串行数据转换成并行数据的 器件 camera常用的接口是MIPI高速接口 MIPI的传输距离受限 传输距离过大容易导致信号质量不佳 影响图像数据的传输
  • 多组输入方法【C语言基础】

    EOF为End Of File的缩写 通常在文本的最后存在此字符表示资料结束 在C语言中 或更精确地说成C标准函数库中表示文件结束符 end of file 在while循环中以EOF作为文件结束标志 这种以EOF作为文件结束标志的文件 必
  • 在校大学生用Python当爬虫一个月能赚3000吗?

    这个问题我挺有发言权的 我人之前和现在就是靠Python撸代码挣零花钱的 现在校学生时间多 自由度大 都知道淘宝没有什么不能卖的 合法的 基本上不论软硬件 不论是实物或服务 我研究生期间在淘宝做过python数据分析的活 每月撸代码撸出生活
  • PS全套插件一键安装包Pro中文版

    PS全套插件一键安装包Pro安装教程 1 下载解压 得到软件的安装原程序 2 双击 Project1 exe 开始安装 点击继续 3 软件能自动识别Ps软件版本和安装位置 若电脑上有多个Ps软件版本 请选择需要安装插件的版本 若只有一个Ps
  • 2020-05-07

    可不可以有大神救救孩子 Python作业不会做
  • mysql驱动版本支持

    Connector J 5 1 支持Mysql 4 1 Mysql 5 0 Mysql 5 1 Mysql 6 0 alpha这些版本 Connector J 5 0 支持MySQL 4 1 MySQL 5 0 servers distri
  • ecahrts给地图添加贴图纹理

    有个可视化需求给地图添加纹理 翻了好久没翻到成品 希望这篇文章对后面的人有所帮助吧 虽然echarts文档里面也有说明 但是echarts文档对一些配置属性确实不敢恭维 实现是以html实现的 vue其实一样的道理 不会差距太大 html代
  • 数据库计算引擎的优化技术:向量化执行与代码生成

    原文链接 https zhuanlan zhihu com p 100933389 阿尔德里竹 作者 徐飞 李德竹 随着数据库软硬件技术的发展 经典的 SQL 计算引擎逐渐成为数据库系统的性能瓶颈 尤其是对于涉及到大量计算的 OLAP 场景
  • 【自学】恶意代码分析

    恶意代码分析 绿盟 李东宏老师 恶意样本分析手册 理论篇 API函数篇 常用方法篇 特殊方法篇 通讯篇 溯源篇 文件封装篇 工具篇 上 下 反调试篇 上 下 虚拟机检测篇 上 下 逆向心法修炼 FLARE ONCHALLENGE4TH FL
  • Qt知识笔记(七)—— 控件

    Qt知识笔记 七 控件 按钮组 QPushButton QToolButton QRadioButton QCheckBox 容器组 QFrame QGroup Box Scroll Area Tool Box Tab Widget Sta
  • 计算机开机没反应怎么办,告诉你电脑开机没反应怎么办

    小伙伴你们在使用电脑的过程中有木有遇到过开机没反应的现象呢 相信的将或多或少都有遇到过吧 那么小伙伴你们找到怎么解决这个问题吗 不知道的话 那么 下面就由小编来将解决电脑开机没反应的方法来告诉你们吧 在使用电脑的时候我们经常都会碰到这样或是
  • linux上传文件夹到hdfs,Linux上传本地文件到Hadoop的HDFS文件系统

    记录如何将本地文件上传至HDFS中 前提是已经启动了hadoop成功 nodedate都成功启动 先切换到HDFS用户 创建一个input文件夹 zhangsf hadoop1 hdfs dfs mkdir input 查看创建的文件夹在
  • Pinctrl子系统_01_Pinctrl子系统介绍

    本节介绍在Pinctrl子系统中 将会学习哪些内容 Pinctrl作用 Pinctrl Pin Controller 顾名思义 就是用来控制引脚的 一个芯片有成百上千个引脚 这些引用要怎么配置 配置成什么功能 都是通Pinctrl子系统来实