当前位置: 首页 > news >正文

itop-3568开发板驱动学习笔记(25)设备树(四)GPIO 实例分析

《【北京迅为】itop-3568开发板驱动开发指南.pdf》 学习笔记

文章目录

  • GPIO 控制器
    • 必要属性
    • 其他属性
  • 指定 GPIO 引脚

和时钟类似,GPIO 在设备树中也存在两层定义,首先是 GPIO 控制器,这部分由芯片原厂工程师编写,相当于 GPIO 底层引脚定义;另一层则是用户引用的部分,一般用于外设引脚配置。

以 iTOP-3568 的 GPIO 设备树为例:

GPIO 控制器

GPIO 控制器例子:

在这里插入图片描述

必要属性

在 GPIO 控制器中,必须有 #gpio-cells 和 gpio-controller 属性,

#gpio-cells 表示其他节点使用该 GPIO 控制器需要几个参数来表示使用的 GPIO,
gpio-controller 表示该节点是一个 GPIO 控制器。

其他属性

上面的例子中还用到了 gpio-ranges 属性

gpio-ranges <&x a b c> 可以把 GPIO 的 b ~ (b + c -1) pin 映射到 x 节点的 a ~ (a + c -1) pin,
比如上面例子的 gpio-ranges = <&pinctrl 0 0 32>; 表示将 GPIO 的 0 ~ 31 号 pin 脚映射到 pinctrl 的 0 ~ 31 号 pin 脚。

这里还有一个 GPIO 控制器的例子,里面除了有上面提到的三个 gpio 属性,还有 ngpios 属性,

在这里插入图片描述
ngpios 表示当前 GPIO 控制器下有多少个 pin 脚。

这里再介绍两个 GPIO 控制器属性:

gpio-reserved-ranges 用于指定保留的 pin 脚,例如 gpio-reserved-ranges <2 3> 表示当前 GPIO 控制器的 2,3,4 pin 脚为预留 pin,即第一个参数为起始 pin,第二个参数为 pin 脚数量。

gpio-line-names 用于给 GPIO 控制器的 pin 脚命名,控制器有多少 pin,就有多少个名字,名字用逗号隔开。

指定 GPIO 引脚

在设备树中给外设分配 GPIO 时,需要指定特定的 GPIO 引脚,指定的格式由 GPIO 控制器决定,

例如 iTOP-3568 设备树中 work 节点中 GPIO pin 定义:

在这里插入图片描述

“gpios” 是一个自定义属性,有三个参数(参数个数由 GPIO 控制器中的 #gpio-cells = <2> 决定),参数的顺序和含义是由平台决定,这里指定 gpios 为 gpio0 控制器下的第 RK_PB7 pin(其实就是 GPIO0_B7),电平为 GPIO_ACTIVE_HIGH。


这里有个小疑问,#gpio-cells = <2>,网上资料基本都说 gpio 属性应该有两个 32 位参数,但 gpio 属性不是有三个参数吗?难道 &gpio0 和 RK_PB7 算一个参数?

相关文章:

itop-3568开发板驱动学习笔记(25)设备树(四)GPIO 实例分析

《【北京迅为】itop-3568开发板驱动开发指南.pdf》 学习笔记 文章目录 GPIO 控制器必要属性其他属性 指定 GPIO 引脚 和时钟类似&#xff0c;GPIO 在设备树中也存在两层定义&#xff0c;首先是 GPIO 控制器&#xff0c;这部分由芯片原厂工程师编写&#xff0c;相当于 GPIO 底层…...

函数(定义、返回值、调用、参数)

目录 ❤ 无参函数 ❤ 有参函数 ❤ 空函数 ❤ 什么是返回值&#xff1f; ❤ 为什么要有返回值&#xff1f; ❤ 什么是函数调用&#xff1f; ❤ 为何用调用函数&#xff1f; ❤ 函数调用的三种形式 ❤ 形参和实参 形参 实参 ❤ 位置参数 位置形参 位置实…...

28. Kubernetes 核心组件讲解——API Server

本章讲解知识点 Kubernetes API Server 概述etcd 简介API Server 架构解析API Server 的 List-Watch 机制独特的 Kubernetes Proxy API 接口集群功能模板之间的通信1. Kubernetes API Server 概述 1.1 基本概念 Kubernetes API Server(API Server)是 Kubernetes 的核心组件…...

springboot框架开发医院云HIS 住院医生站、住院护士站功能实现

住院医生站主模块&#xff1a;包括医嘱管理、病案首页、分配入科、住院清单、我的质控等子模块 &#xff08;1&#xff09;医嘱管理功能简介 ①住院患者开立医嘱、支持医嘱复制、停止、作废等操作&#xff1b; ②医嘱类型含药品、项目、材料、嘱托&#xff1b; ③支持住院各…...

高性能定时器介绍及代码逐行解析--时间堆

简介 在《Linux高性能服务器编程》中&#xff0c;介绍了三种定时方法&#xff1a; socket选项SO_RCVTIMEO和SO_SNDTIMEOSIGALRM信号I/O复用系统调用的超时参数 基础知识 非活跃&#xff0c;是指客户端&#xff08;这里是浏览器&#xff09;与服务器端建立连接后&#xff0c…...

汇编语言学习笔记五

div指令 除法&#xff0c; 被除数&#xff1a;默认是放在ax或者dx中&#xff0c;其位数为16位&#xff0c;则在ax中&#xff0c;如位数为32位&#xff0c;则高位在dx中&#xff0c;低位在ax中 除数&#xff1a;放在寄存器或者内存单元中&#xff0c;有8位和16位两种。 结果&am…...

Linux下的epf 是什么?

EPF (Extended Page Frame) 是 Linux 内核中的一个功能&#xff0c;它用于管理大内存系统中的物理页框。具体来说&#xff0c;当系统中的物理内存超过 1TB 时&#xff0c;传统的页表结构会变得非常庞大和复杂&#xff0c;给内存管理带来很大的困难。 EPF 架构通过将物理地址分…...

如何在广告形式选择上化解用户厌恶和变现瓶颈?

​用户讨厌广告&#xff0c;这似乎是一个共识。在日复一日的使用中&#xff0c;用户会遇到各种各样的广告形式&#xff0c;从搜索结果中的广告链接&#xff0c;到视频中不间断的广告&#xff0c;再到流行应用中的推广内容。 无处不在的广告已经让用户不胜其烦&#xff0c;这也…...

【Android入门到项目实战-- 9.2】—— 传感器实战使用教程(靠近黑屏和计步器)

上篇文章介绍了传感器的基础用法&#xff08;如有需要&#xff0c;可先移步&#xff09;&#xff0c;下面将通过两个实战案例学习具体如何使用。 一、靠近黑屏 这是距离传感器的简单应用。 –检测手机是否贴在耳朵上正在打电话&#xff0c;以便自动熄灭屏幕达到省电的目的。也…...

软件项目生命周期模型

目录 瀑布模型 快速原型模型 敏捷模型 迭代模型&#xff08;增量模型&#xff09; 螺旋模型 瀑布模型 定义&#xff1a;早就计划好了&#xff0c;按计划顺序&#xff08;计划、设计、开发、测试、维护&#xff09;线性执行 适用于&#xff1a;需求明确、变化少的项目 缺…...

linux系统TP-ti,tsc2046外设调试

一、整体调试思路 tp外设属于比较常见且比较简单的外设&#xff0c;今天以ti,tsc2046这款为例简述下tp外设的调试。 整体思路 1、配置设备树----驱动调试的device部分 2、tp驱动编译及匹配—driver部分 3、驱动整体调试 二、配置设备树 对于ti,tsc2046我们可以参考内核Docum…...

ChatGPT指令大全

1. 写报告&#xff1a;我现在正在 [报告的情境与目的]。我的简报主题是 [主题]&#xff0c;请提供 [数字] 种开头方式&#xff0c;要简单到 [目标族群] 能听懂&#xff0c;同时要足够能吸引人&#xff0c;让他们愿意专心听下去。 2. 研究报告&#xff1a;写出一篇有关 [知识] …...

【Vue面试题】Vue2.x生命周期?

文章目录 1.有哪些生命周期&#xff08;系统自带&#xff09;?beforeCreate( 创建前 )created ( 创建后&#xff09;beforeMount (挂载前)mount (挂载后)beforeUpdate (更新前)updated (更新后)beforeDestroy&#xff08;销毁前&#xff09;destroy&#xff08;销毁后&#xf…...

运算放大器 - 笔记 02 -恒流源

恒流源 / 电流源 一、方案一二、方案二三、方案三四、方案四 前言&#xff1a;最近在学习运放&#xff0c;三极管&#xff0c;二极管&#xff0c;场效应管等器件的组合电路。捡起了以前的模电知识&#xff0c;写下笔记&#xff0c;以防再度忘记。 本文使用Multisim仿真软件进行…...

Python:Python进阶:Python字符串驻留技术

Python字符串驻留技术 1.什么是字符串驻留2. 为什么要驻留字符串3. Python的字符串驻留4. Python 字符驻留原理4.1 如何驻留字符串4.2 如何清理驻留的字符串 5. 字符串驻留的实现5.1. 变量、常量与函数名5.2 字典的键5.3 任何对象的属性5.4 显式地驻留 6 字符串驻留的其他发现 …...

2022年 全国职业院校技能大赛(中职组)网络安全赛项 正式赛卷 A模块 做题记录

评分标准文件及环境 评分标准&#xff1a;ZZ-2022029 网络安全赛项正式赛卷.zip 自己做的Linux靶机&#xff1a; 自己做的Windows靶机&#xff1a; 文章目录 评分标准文件及环境A-1 任务一 登录安全加固1. 密码策略&#xff08;Windows&#xff0c;Linux&#xff09;a. 最小密…...

华为OD机试 - 优选核酸检测点(Python)

题目描述 张三要去外地出差,需要做核酸,需要在指定时间点前做完核酸,请帮他找到满足条件的核酸检测点。 给出一组核酸检测点的距离和每个核酸检测点当前的人数给出张三要去做核酸的出发时间 出发时间是10分钟的倍数,同时给出张三做核酸的最晚结束时间题目中给出的距离是整…...

windows怎么把包含某个关键词的文件移动到一个文件夹中

文章目录 windows怎么把包含某个关键词的文件移动到一个文件夹中问题来源省流版本操作过程具体问题方法一&#xff1a;使用cmd终端解决方法二&#xff1a;使用python脚本 总结 windows怎么把包含某个关键词的文件移动到一个文件夹中 问题来源 今天想移动window文件&#xff0…...

Unity 后处理(Post-Processing) -- (2)创建后处理配置文件

通过前面一小节&#xff0c;我们初步认识了后处理是什么&#xff0c;在Unity中简单的试了试后处理的效果。本节我们来创建一个我们自己的后处理配置文件&#xff08;post-processing profile&#xff09;。 一个后处理配置文件包含了一系列为了达到特定视觉效果的后处理效果的配…...

BI 商业智能和报表,傻傻分不清楚?一文给你讲透

我们经常所听到的大数据、商业智能BI、数据分析、数据挖掘等我们都统称为数据信息化。数据信息化可以帮助企业全面的了解企业的经营管理&#xff0c;从经验驱动到数据驱动&#xff0c;降低情绪、心理等主观影响&#xff0c;形成以数据为基础的业务决策支撑&#xff0c;提高决策…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...