pinctrl子系统gpio子系统与硬件之间的联系

GPIO与IOMUXC寄存器共同配置IO口


GPIO寄存器与gpio子系统相关联;控制IO口输入输出。

led {compatible = "gpio-leds";led0{label = "red_led"; gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;status = "okay";};
};

IOMUXC寄存器主要控制复用模式MUX_MODE和引脚设置pad settings。
IOMUXC寄存器与pinctrl子系统相关联;对应到设备树上是iomuxc节点与iomuxc_snvs节点,这两个节点是用来描述IOMUXC的。追加的内容是实际引脚功能的配置及引脚参数信息配置。

&iomuxc {pinctrl-names = "default";pinctrl-0 = <&pinctrl_hog_1>;imx6ul-evk {pinctrl_led: ledgrp {fsl,pins = <MX6UL_PAD_GPIO1_IO03__GPIO1_IO03    0x30b0>;};};
};

pinctrl子系统

引脚控制子系统能够管理引脚复用。DT中需要引脚以某种方式多路复用的设备必须声明它们所需的引脚控制配置。
引脚控制子系统提供以下两部分。
引脚复用:使同一引脚能够重用于不同的目的,例如一个引脚可以是UART TX引脚,GPIO线或HSI数据线。多路复用会影响引脚组或单个引脚。
引脚配置:应用引脚的电气特性,如上拉,下拉,驱动强度,去抖间隔等。

pinctrl-<id>:这允许提供设备某种状态所需的pinctrl配置列表。它是phandle列表,指向引脚配置节点。这些引用的引脚配置节点必须是它们配置的引脚控制器的子节点。
pinctrl-name:这允许为列表中的每个状态提供名称。

gpio子系统

从硬件角度来看,GPIO是功能,是引脚可以运行的模式。从软件角度来看,GPIO只不过是数据线,可以作为输入或输出使用,并且只能有两个值(1表示高电平,0表示低电平)。

GPIO控制器属性:
gpio-controller;
gpio-cells:决定用于GPIO说明符的单元数。
GPIO属性:
<name>-gpios:其中<name>的命名要足以描述这些GPIO的用途
<name>-gpio:其中<name>的命名要足以描述这些GPIO的用途
IRQ控制器属性:
interrupt-controller;
interrupt-cells确定指定中断时使用的单元数。
IRQ属性:
interrupt-parent:中断的引脚号
interrupts:表示中断标志

gpio子系统API函数

of函数:
int of_gpio_named_count(struct device_node *np, const char *propname) /* 获取设备树gpios属性中定义了几个gpio信息 */
int of_gpio_count(struct device_node *np) /* 获取设备树任意属性中定义了几个gpio信息 */
int of_get_named_gpio(struct device_node *np, const char *propname, int index) /* 从属性名中获取gpio */
gpio操作函数:
gpio_request(unsigned gpio, const char *label) /* 申请IO口 */
int gpio_direction_input(unsigned gpio) /* 设置IO口输入 */
int gpio_direction_output(unsigned gpio, int value) /* 设置IO口输入 */
int __gpio_get_value(unsigned gpio) /* 获取IO口值 */
void __gpio_set_value(unsigned gpio, int value) /* 设置IO口值 */
void gpio_free(unsigned gpio) /* 释放IO口 */

pinctrl子系统和gpio子系统相关推荐

  1. 【嵌入式Linux】嵌入式Linux驱动开发基础知识之Pinctrl子系统和GPIO子系统的使用

    文章目录 前言 1.Pinctrl子系统 1.1.为什么有Pinctrl子系统 1.2.重要的概念 1.3.代码中怎么引用pinctrl 2.GPIO子系统 2.1.为什么有GPIO子系统 2.2.在 ...

  2. 普元EOS中, 子系统和portal不在同一个域中,使用jquery的jsonp来解决portal跨域访问

    转至元数据起始 [背景] 子系统和portal不在同一个域中且项目中要求不能使用nginx.apache等反向代理软件,故使用jsonp从代码角度解决ajax跨域问题 [实现思路] 通过jquery的 ...

  3. Babylon.js 3.3发布:更强大的粒子系统和WebVR支持

    Babylon.js 3.3版本利用微软混合现实工具包(MRTK)的功能来改进WebVR开发,并改进了其粒子系统控件. MRTK提供了一系列脚本和组件来加速混合现实应用程序的开发.为了简化GUI VR ...

  4. unity粒子系统_【笔记】关于unity的粒子系统和UI之间的位置冲突解决

    终于解决了去年毕设解决的problem:主菜单的背景添加了Particle System,但是它总是跳到camera最前面挡住其他子菜单的Panel. 当时用的最土但最有效的办法:移动不同UI元素间Z ...

  5. vt linux tty中文,Linux输入子系统和tty关系影述

    多转自 1.Linux输入子系统(Input Subsystem): 在Linux中,输入子系统是由输入子系统设备驱动层.输入子系统核心层(Input Core)和输入子系统事件处理层(Event H ...

  6. wsl Linux子系统和windows主机文件系统互相访问方法

    1. windows查看linux文件 打开文件资源管理器,然后在目录窗口输入 \\wsl$ .回车就可以看到所有的子系统了.如图: 2. linux 子系统中查看 win目录 命令行打开 /mnt ...

  7. pinctrl和gpio子系统

    目录 1.pinctrl子系统 1)pinctrl子系统简介 2)I.MX6ULL的的pinctrl子系统驱动 3)设备树中添加pinctrl节点模板 2.gpio子系统 1)gpio子系统简介 2) ...

  8. 【正点原子Linux连载】第四十五章 pinctrl和gpio子系统实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  9. 【正点原子MP157连载】第二十五章 pinctrl和gpio子系统实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

最新文章

  1. 【问题收录】ubuntu下weka链接mysql数据库
  2. mysql多个实例 主从库_mysql主从复制系列(1)搭建多个mysql实例环境
  3. svn服务器搭建和使用_简单使用nodejs搭建一个静态服务器
  4. 计算机信息安全专业欧洲排名,美国大学信息安全专业排名TOP10一览 加州大学伯克利分校居首...
  5. chrome恐龙游戏_如何玩没有互联网的Google Chrome恐龙游戏-在线和离线
  6. P1464 Function
  7. 第七节:SpringBoot高级属性配置二
  8. swagger : Could not resolve reference because of: Could not resolve pointer
  9. Anniversary party 员工的活跃度问题 (树形dp)
  10. 攻防世界 用什么工具_橱柜清洁、控油方法 厨房清洁工具用什么好
  11. 视觉特效·AI视频抠图·换脸
  12. 百度地图添加多个大头针自定义图片
  13. Android Miracast 花屏问题分析
  14. python代码做图_如何用Python代码制作图
  15. Android-PickerView系列之封装篇(三)
  16. MySql服务器忘记密码? 这几步轻松重置密码。
  17. TFS2010安装办法及序列号
  18. 查看windows日志
  19. 摘录了个锂电\碱电的尺寸对照
  20. Eclipse Debug setp into无法进入源码中的解决办法

热门文章

  1. efcore调用函数_EF Core 3.1 执行sql语句的几种方法
  2. Java 并发编程之线程池 ScheduledThreadPool
  3. html5触摸事件判断滑动方向,H5触摸事件中如何判断用户滑动方向
  4. 刷新iframe页面
  5. linux 查看hdfs文件,Hadoop之HDFS文件操作
  6. java获取教务系统成绩,Java httpClient 正方教务管理系统模拟登陆,爬取学生成绩和培养计划...
  7. java线程下载文件_Java多线程下载文件实例详解
  8. sap委外采购订单冲销 102_SAP那些事-实战篇-68-谈谈SAP的库存设计理念
  9. Python 学习过程问题记录
  10. GET 和 POST的区别(转载)