【Linux-驱动开发-pinctrl子系统】

Linux-驱动开发-pinctrl 子系统

  • [■ pinctrl 子系统](#■ pinctrl 子系统)
    • [■ PIN 配置信息详解 -iomuxc 节点](#■ PIN 配置信息详解 -iomuxc 节点)
    • [■ 设备树中添加 pinctrl 节点模板](#■ 设备树中添加 pinctrl 节点模板)

■ pinctrl 子系统

pinctrl 子系统主要工作内容如下:

①、获取设备树中 pin 信息。

②、根据获取到的 pin 信息来设置 pin 的复用功能

③、根据获取到的 pin 信息来设置 pin 的电气特性,比如上/下拉、速度、驱动能力等。

对于我们使用者来讲,只需要在设备树里面设置好某个 pin 的相关属性即可,其他的初始

化工作均由 pinctrl 子系统来完成, pinctrl 子系统源码目录为 drivers/pinctrl。

■ PIN 配置信息详解 -iomuxc 节点

pinctrl_hog_1 子节点就是和热插拔有关的 PIN 集合,比如 USB OTG 的 ID 引脚。

pinctrl_flexcan1 子节点是 flexcan1 这个外设所使用的 PIN,

pinctrl_wdog 子节点是 wdog 外设所使用的 PIN。

■ 设备树中添加 pinctrl 节点模板

如果需要在 iomuxc 中添加我们自定义外设的 PIN,那么需要新建一个子节点,然后将这个自定义外设的所有 PIN 配置信息都放到这个子节点中。

1、创建对应的节点

2、添加"fsl,pins"属性

3、在"fsl,pins"属性中添加 PIN 配置信息

cpp 复制代码
pinctrl_test: testgrp {
	fsl,pins = <
		MX6UL_PAD_GPIO1_IO00__GPIO1_IO00 config /*config 是具体设置值*/
	>;
};
相关推荐
sukalot4 小时前
window显示驱动开发—显示适配器的子设备
驱动开发
Evan_ZGYF丶13 小时前
【RK3576】【Android14】如何在Android14下单独编译kernel-6.1?
linux·驱动开发·android14·rk3576
sukalot1 天前
window显示驱动开发—视频呈现网络简介
驱动开发
sukalot2 天前
window显示驱动开发—为头装载和专用监视器生成自定义合成器应用(二)
驱动开发
zwhSunday2 天前
Linux驱动开发(1)概念、环境与代码框架
linux·运维·驱动开发
sukalot2 天前
window显示驱动开发—为头装载和专用监视器生成自定义合成器应用(三)
驱动开发
sukalot2 天前
window显示驱动开发—为头装载和专用监视器生成自定义合成器应用(一)
驱动开发
cxr8284 天前
基于Claude Code的 规范驱动开发(SDD)指南
人工智能·hive·驱动开发·敏捷流程·智能体
zwhSunday4 天前
Linux驱动开发(2)进一步理解驱动
linux·驱动开发
被遗忘的旋律.4 天前
Linux驱动开发笔记(十)——中断
linux·驱动开发·笔记