当前位置: 首页 > 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;提高决策…...

无限级数求和与Java实现优化教程

本教程详细讨论了如何准确计算形状 S -(2x)^2/2&#xff01; (2x)^4/4&#xff01; - (2x)^6/6&#xff01; ... 指定范围内的无限级数 [0.1, 1.5] 内部和。文章首先分析了这个级数和 cos(2x) - 1 数学等价性&#xff0c;然后对Java代码中常见的错误进行了深入分析&#xff…...

如何轻松实现QQ空间历史数据自动化备份:GetQzonehistory完整解决方案指南

如何轻松实现QQ空间历史数据自动化备份&#xff1a;GetQzonehistory完整解决方案指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 还在为QQ空间里的青春回忆可能丢失而担心吗&#x…...

英雄联盟智能工具集:3个颠覆性功能重塑你的游戏体验

英雄联盟智能工具集&#xff1a;3个颠覆性功能重塑你的游戏体验 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 作为英雄联盟玩家…...

Fillinger终极指南:Illustrator智能填充脚本如何10倍提升你的设计效率

Fillinger终极指南&#xff1a;Illustrator智能填充脚本如何10倍提升你的设计效率 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 你是否曾在Illustrator中为了填充图案而花费数小时…...

Spring Boot新手必看:从零搭建Web项目的5个关键步骤(附常见报错解决方案)

Spring Boot新手实战指南&#xff1a;从零构建Web应用的完整路线图 为什么选择Spring Boot作为你的第一个Java Web框架&#xff1f; 当你第一次接触Java Web开发时&#xff0c;面对众多框架的选择可能会感到迷茫。Spring Boot之所以成为大多数开发者的首选&#xff0c;是因为…...

Windows系统焕新优化:Win11Debloat全方位性能提升指南

Windows系统焕新优化&#xff1a;Win11Debloat全方位性能提升指南 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本&#xff0c;用于从Windows中移除预装的无用软件&#xff0c;禁用遥测&#xff0c;从Windows搜索中移除Bing&#xff0c;以及执行各种其他更改以简化和改…...

小米Pad 5变身Windows生产力工具:完整驱动配置实战指南

小米Pad 5变身Windows生产力工具&#xff1a;完整驱动配置实战指南 【免费下载链接】MiPad5-Drivers Based on Surface Duo Drivers. 项目地址: https://gitcode.com/gh_mirrors/mi/MiPad5-Drivers 你是否想过将手中的小米Pad 5从娱乐平板转变为真正的生产力工具&#x…...

算法---寻找和为K的子数组

560. 和为 K 的子数组 - 力扣&#xff08;LeetCode&#xff09; 最直观的解法就是暴力解&#xff1a; class Solution:def subarraySum(self, nums: List[int], k: int) -> int:count 0n len(nums)for i in range(n):current_sum 0for j in range(i, n):current_sum nu…...

用 AI 生成视频?试试 Hailuo 视频生成 API!

在现代数字时代&#xff0c;视频内容的需求不断增长&#xff0c;而制作高质量视频的门槛也随之降低。今天&#xff0c;我想和大家分享一个强大的工具——Ace Data Cloud Hailuo 视频生成 API。这款 API 不仅支持文本转语音、多个声音切换和情感调整&#xff0c;还能为你提供清晰…...

VMware硬件兼容性自查避坑指南:收购后这些查询细节变了

VMware硬件兼容性自查避坑指南&#xff1a;收购后这些查询细节变了 当企业虚拟化平台的稳定性悬于一线&#xff0c;硬件兼容性往往成为最容易被忽视的致命环节。博通收购VMware后&#xff0c;那些曾经熟悉的兼容性查询路径和规则正在发生微妙却关键的变化——就像手术器械消毒流…...