【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 是具体设置值*/
	>;
};
相关推荐
广药门徒1 小时前
Linux 驱动开发中,主设备号和次设备号不同的两个驱动能否正常工作
linux·运维·驱动开发
脑洞代码2 小时前
ADXL345 SPI加速度传感器Linux驱动开发笔记
linux·驱动开发·笔记
熙xi.21 小时前
DHT11温湿度传感器Linux驱动开发完整流程
linux·运维·驱动开发
RT-Thread物联网操作系统2 天前
RT-Thread Studio 正式支持GD32H7高性能系列MCU | 技术集结
驱动开发·单片机·嵌入式硬件
被遗忘的旋律.2 天前
Linux驱动开发笔记(十三)——platform设备驱动
linux·驱动开发·笔记
Y unes4 天前
《i.MX6ULL LED 驱动实战:内核模块开发与 GPIO 控制》
linux·c语言·驱动开发·vscode·ubuntu·嵌入式
闻道且行之4 天前
KickPi RK3568平台SPI内核驱动开发
驱动开发·rk3568·kernel·spi·kickpi
sukalot4 天前
windows显示驱动开发-缩放桌面图像(二)
windows·驱动开发
趙小贞4 天前
字符设备驱动开发流程与实战:以 LED 驱动为例
linux·c语言·驱动开发
DeeplyMind5 天前
AMD rocr-libhsakmt分析系列3-4:svm-reserve模式实现分析
linux·驱动开发·1024程序员节·amdgpu·kfd·rocr