【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 是具体设置值*/
	>;
};
相关推荐
恒锐丰-罗生20 小时前
国产电机驱动 SS6635E|宽压大电流单通道 H 桥芯片全面总结
驱动开发·嵌入式硬件·硬件工程
编程圈子2 天前
电机驱动开发学习25. 弱磁控制与全速域增益调度
驱动开发·学习
T型码农要学习2 天前
eMMC_命令整理
linux·驱动开发·emmc
恒锐丰-罗生2 天前
率能半导体 SS6840 单通道 H 桥电机驱动芯片深度解析
驱动开发·嵌入式硬件·硬件工程
恒锐丰-罗生3 天前
国产 H 桥驱动 SS6289|18V/4A 有刷电机驱动芯片性与应用分析 内置采样 + 多保护,门锁 / 机器人优选器件
驱动开发·嵌入式硬件·硬件工程
hkNaruto3 天前
【AI】规范驱动开发(SDD)团队实践指南 v2
人工智能·驱动开发
维多利加5143 天前
RK3588刷机救砖记录(晨芯时代)
驱动开发
做一个AK梦3 天前
测试驱动开发-TDD
驱动开发·tdd
恒锐丰-罗生4 天前
SS8103 芯片解析:45V 同步整流降压半桥恒流驱动控制器 大功率光源国产优选 告别低灰闪烁!
驱动开发·嵌入式硬件·硬件工程
小此方4 天前
Re:Linux系统篇(五十七)线程篇 · 十:基于环形缓冲的生产者消费者模型与信号量
linux·运维·驱动开发