Linux驱动:LED驱动之五——pinctrl和gpio子系统形式的LED驱动

本文介绍了如何利用Linux中的pinctrl和gpio子系统简化LED驱动开发,避免直接操作寄存器。内容涵盖pinctrl子系统功能、设备树配置、gpio子系统使用以及驱动源码和测试程序的编译。
摘要由CSDN通过智能技术生成

1、前言

  前面两篇的LED驱动都是操作寄存器的方法,这种方式就会导致每操作一个gpio都要在驱动程序里先配置它复用为哪个功能的引脚、电阻上下拉、速度等等寄存器。而接下来pinctrl子系统和gpio子系统这种方式就是,我们在使用一个gpio引脚时,只需要在设备树里选择它的哪个复用功能,然后再给这个pin引脚配置电气属性等,剩下的就由内核来初始化配置。这样就大大方便我们的驱动开发,不需要每次使用一个gpio引脚时都要写一长串的寄存器配置。

2、pinctrl子系统

2.1 功能简介
  • 配置pin引脚的复用功能;
  • 配置pin引脚的电气特性:内部电阻上下拉、速度等。

2.2 pinctrl在设备树中的格式

以IMX6ULL为例,在imx6ull-14x14-evk.dts中的定义格式:

  • 在iomuxc节点的子节点imx6ul-evk中定义;
  • 节点名称节点要以“pinctrl_”开头;
  • pinctrl节点的属性名称必须为“fsl,pins”;
  • pinctrl节点的“fsl,pins”属性内容为pin引脚和配置值。

2.3 pinctrl在设备树中的示例

imx6ull-14x14-evk.dts:

pinctrl_hog_1:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

R-QWERT

你的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值