本文主要是介绍【零基础学习01】嵌入式linux驱动中pinctrl和gpio子系统实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
大家好,为了进一步提升大家对实验的认识程度,每个控制实验将加入详细控制思路与流程,欢迎交流学习。
今天给大家分享一下,linux系统里面pinctrl和gpio子系统控制实验,操作硬件为I.MX6ULL开发板。
第一:pinctrl和gpio子系统简介
Linux系统是一个庞大又完善的系统,如果采用原始裸机驱动开发方式,相当于买了一辆车,结果推着去上班。我们要学会如何使用pinctrl和gpio子系统来简化驱动开发过程。
传统方式配置pin的方式就是直接操作相应的寄存器,但是这种配置方式比较繁琐、而且容易出问题。pinctrl子系统就是为了解决这个问题而引入的,pinctrl子系统主要工作内容如下:
1、获取设备树中pin信息。
2、根据获取pin信息来设置pin的复用功能。
3、根据获取到的pin信息来设置pin的电气特性,比如上/下拉,速度,驱动能力等。
对于开发者来说,只需要设置设备树里面某个pin的相关属性即可,其他的初始化工作均有pinctrl子系统来完成,pinctrl子系统源码目录为drivers/pinctrl。
第二:实验程序编写与分析
1、添加 pinctrl 节点
I.MX6U-ALPHA 开发板上的 LED 灯使用了 GPIO1_IO03 这个 PIN,打开 imx6ull-
这篇关于【零基础学习01】嵌入式linux驱动中pinctrl和gpio子系统实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!