首页 > 系统相关 > 【Linux】Pinctrl子系统

【Linux】Pinctrl子系统

时间:2023-05-30 20:32:22浏览次数:52  
标签:引脚 芯片 复用 Pinctrl Linux 子系统

简介

Linux Pinctrl(Pin control) 是一个子系统,控制芯片的引脚复用、电气属性和其他和硬件相关的设置。本文将介绍 Linux Pinctrl 子系统的基本概念,架构和使用方法。 基本概念

学习内容【Linux】Pinctrl子系统简介 作者希希雾里

引脚(Pins)

引脚是芯片上的物理接触点,可以连接到其他芯片或外部设备。在单个芯片上,每个引脚可能具有不同的电气属性,例如 I/O 类型(输入/输出)、电压和电流。

复用(Multiplexing)

多个引脚可以通过复用的方式连接到芯片上的不同功能模块。例如,引脚可以连接到中央处理器核心、外设控制器或其他辅助电路。芯片上的引脚数量有限,因此复用是必需的。复用引脚的过程称为引脚复用。

Pinmux

pinmux 是指将芯片上的引脚配置为其所代表的功能模式之一的过程。

压制(Tri-state)

压制是指使引脚失去作用,即将引脚置于高阻抗状态。这样可以防止引脚发射信号或接收到干扰信号。

偏置(Biasing)

偏置是指调整电源和电气特性,以满足特定的需要。例如,在集成电路设计中,偏置可以用于减少功耗、提高频率或改进噪声和线性度等。

架构

Linux Pinctrl 子系统由以下组件组成:

pinctrl-core

pinctrl-core 是 Linux Pinctrl 子系统的核心。它包含了一系列公共 API,如引脚分配、引脚设置等。最重要的 API 是 pinctrllookupstate(),它根据引脚名称和模式名称检索状态配置。

pinctrl-subsystem

pinctrl-subsystem 实现了将 pinctrl-core 和芯片特定的驱动程序结合在一起的功能。它允许电路板开发人员在不了解芯片完整规格书的情况下,直接在设备树中配置引脚功能。

Pin control drivers

Pin control driver 负责操作芯片的引脚。驱动程序的开发人员必须了解芯片的完整规格书,并实现驱动程序。Pin control drivers 在内核配置时默认启用,且编译为模块形式,可根据需要加载。 使用方法 使用 Linux Pinctrl 子系统时,首先需要了解芯片的引脚布局和功能。然后,可以在设备树中为每个引脚定义一组属性。每个引脚属性组包含以下属性:

名称:引脚名称,通常是芯片型号和引脚编号的组合。 模式:引脚的功能模式,例如输入、输出、中断等。 特性:引脚的电气属性,例如速度和上拉/下拉电阻等。

当内核启动并加载驱动程序时,pinctrl-subsystem 将引脚的属性组传递给 Pin control driver。驱动程序使用这些属性来配置芯片的引脚。 在应用程序中,可以使用 pinctrllookupstate() 或 pinctrlselectstate() 函数访问 Pinctrl 状态集。pinctrllookupstate() 函数返回已注册的状态配置,而 pinctrlselectstate() 函数应用选定的状态配置。

结论

Linux Pinctrl 子系统为硬件开发人员提供了一种能够统一管理芯片引脚、复用和特性的方法。使用设备树和 Pin control driver,可以轻松配置和使用芯片的引脚。当然,在实际开发中,需要了解每个芯片的数据手册和规格书,并考虑特定的应用场景,以保证系统能够正确工作。

标签:引脚,芯片,复用,Pinctrl,Linux,子系统
From: https://blog.51cto.com/u_16060410/6381583

相关文章

  • How to use the shell command to get the version of Linux Distributions All In On
    HowtousetheshellcommandtogettheversionofLinuxDistributionsAllInOne如何使用shell命令获取Linux发行版的版本hostnamectlcat/etc/os-releaselsb_release-aLinuxDistributionsDebianUbuntuRaspberryPiOShttps://en.wikipedia.org/wiki/L......
  • 鸟哥的Linux私房菜
    ch2主机规划与磁盘分区MBR(MS-DOS)与GPT磁盘分区表p70主要分区、扩展分区、逻辑分区p72BIOS与UEFI;BIOS与启动引导程序的关系p76ch4首次登陆与在线求助man命令p135nano简单的文本编辑器命令p142ch5Linux文件权限与目录配置用户和用户组概念p150ch......
  • linux之用户和权限管理
    一、Linux安全模型3A认证用户超级管理员普通用户系统用户登陆用户用户组超级管理员组普通用户组系统组普通组用户和组的关系安全上下文二、用户和组的配置文件用户和组的主要配置文件/etc/passwd/etc/shadow/etc/group/etc/gshadow文件操作vipwvigrpwckgrpckgetnet用户和组管理命令......
  • RockyLinux9.2升级 kernel6.X 内核
    RockyLinux9.2升级内核......
  • Linux安装Docker
    1.Docker官网2.选择Manuals->DockerEngine->Install->CentOS3.执行以下命令:1.yuminstall-yyum-utils2.yum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.repo3.yuminstalldocker-cedocker-ce-clicontainerd.iodocker-b......
  • nmcli --- Linux下通过命令行管理WiFi连接
    1、建立和删除一个wifi连接创建wifi连接(SSID:hello,密码:12345678)的示例:$nmclidevicewificonnecthellopassword12345678每次命令执行后,会在/etc/NetworkManager/system-connections/目录下创建一个新文件hello来保存配置,重复执行则创建多个这样的文件。删除wifi连接的示例......
  • linux 关于for循环七个实验
    1.  2.   3.      4. 5.    6.   7.  ......
  • #yyds干货盘点#Linux编辑器vim使用
    vim:是一款编辑器,只负责写代码;相当于windows的记事本;gcc:是一款编译器,只负责程序的翻译;gdb:是一款调试器,只负责程序的调试;vim是一个功能强大的多模式编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立、编辑、显示文本文件。Vim没有菜单,只有命令。命令模式(默认):输入的任何......
  • linux 中find命令查找到文件仅显示文件名、路径名、完整路径
     001、[root@PC1test3]#lstest1test2[root@PC1test3]#tree##测试数据.├──test1│  └──a.txt└──test2└──b.txt2directories,2files[root@PC1test3]#find./-name"*.txt"##一般显示模式./test1/a.txt......
  • linux while、until、break、continue
    目录一、总结二、实验演示          一、总结forwhileuntilfor主要用于已知循环次数while条件满足才执行循环,不满足就退出循环,在绝大多数情况,while和for可以通用,while更好用死循环unti条件不满足才能循环,满足条件退出,一般不用循环控制语句:continue:......