[dts]AM4378的dts中配置和数据手册映射关系
最近在设置AM4378 GPIO的时候产生了困惑
- 如何设置GPIO为output_pullup, output_pulldown, input_pullup, input_pulldown, high-impedency, output_disable, input_disable
- 在dts中0x020 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (B10) gpmc_ad8.gpio0[22] */是什么意思,和数据手册怎么对应
首先在官方的TI PinMux Tool只有outpu/input的三种pull_up, pull_down, no_pull,也就是在dts中input和output只对应三种配置方式,NOPULL, PULLUP, PULLDOWN,并没有像飞思卡尔imx6那么多可配的属性, 这三个和MUX_MODE7定义在:
include/dt-bindings/pinctrl/am43xx.h
中可以看出, 在kernel里面关于上下拉确实没有高阻等配置方式,
- PIN_OUTPUT即为PULL_DISABLE (1<<16)
- PIN_OUTPUT_PULLUP为PULL_UP (1<<17)
- PIN_OUTPUT_PULLDOWN为0
- PIN_INPUT为INPUT_EN和PULL_DISABLE (1<<18 | 1<<16)
- PIN_INPUT_PULLUP为INPUT_EN和INPUT_UP (1<<18 | 1<<17)
- PIN_INPUT_PULLDOWN为INPUT_EN (1<<18)
接下来,0x020 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)这个是在设置哪个寄存器呢,0x020是什么意思呢?
查看手册AM437x TRM的Chapter2.Memory Map, CONTROL_MODULE 0x44E1_0000 0x44E1_FFFF和Chapter7.Control Module (800h CTRL_CONF_GPMC_AD0),这其中,0x44E1_0000+0x800之和就是GPIO配置的基地址,上面的0x020就是基于当前基地址的偏移,在Register地址映射能看出820h CTRL_CONF_GPMC_AD8,这个和之前dts中(B10) gpmc_ad8.gpio[0[22]可以对应起来
也就能推断出来0x020 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) 这个脚本是在设置Control Module的寄存器,而非GPIO章节的寄存器,那么我们来看下这个寄存器的内容


从上述可以看出来,0-3bit为Mux Mode,16bit为pullup/pulldown使能/失能,17bit为pullup/pulldown选择,18bit为Input使能
这样从数据手册到kernel源码再到device tree整套就齐整了。
另外上述提到的MODE0和MODE7到底代表什么属性?
在Processor文档中,有如下pin说明

为什么N4是mode0因为该引脚只有ddr_wen功能,A24引脚有8个功能,而Reset之后是Mode7,也就是表中的gpio2_25,普通gpio功能
[dts]AM4378的dts中配置和数据手册映射关系的更多相关文章
- 12.翻译系列:EF 6 中配置一对多的关系【EF 6 Code-First系列】
原文链接:https://www.entityframeworktutorial.net/code-first/configure-one-to-many-relationship-in-code-f ...
- PostgreSQL、SQL Server数据库中的数据类型的映射关系
PostgreSQL 8.1 轰动发布,我也打算将原来使用 SQL Server 的一些应用迁移到 PostgreSQL 上,首先需要迁移的是表,那么这就必须要先搞清楚这两个数据库中的数据类型的映射关 ...
- ubuntu系统中java -version所显示的版本与/etc/profile中配置的$JAVA_HOME的关系
问题产生 ubuntu 18.04环境下,执行 java -version 发现与/etc/profile中的$JAVA_HOME所设置的java版本不同. 推测原因 最近用apt install 安 ...
- 11.翻译系列:在EF 6中配置一对零或者一对一的关系【EF 6 Code-First系列】
原文链接:https://www.entityframeworktutorial.net/code-first/configure-one-to-one-relationship-in-code-fi ...
- 8.翻译系列: EF 6中配置领域类(EF 6 Code-First 系列)
原文地址:http://www.entityframeworktutorial.net/code-first/configure-classes-in-code-first.aspx EF 6 Cod ...
- WebLogic的安装和配置以及MyEclipse中配置WebLogic
WebLogic 中间件: 是基础软件的一大类,属于可复用软件的范畴,顾名思义,中间件属于操作系统软件与应用软件的中间,比如:JDK,框架,weblogic. weblogic与tomcat区别 : ...
- ASP.NET Core 在 JSON 文件中配置依赖注入
前言 在上一篇文章中写了如何在MVC中配置全局路由前缀,今天给大家介绍一下如何在在 json 文件中配置依赖注入. 在以前的 ASP.NET 4+ (MVC,Web Api,Owin,SingalR等 ...
- Windows Server2008 下用于.NET Framework3.0版本的问题无法在IIS7中配置.NET Framework4.0节点的问题
Windows Server 2008中,功能列表安装的为.NET Framework3.0. 试了N种方法未升级为.NET Framework4.0(哪位如果可以直接升级为4.0或3.5希望能够分享 ...
- Ubuntu中配置Java环境变量时,出现command not found问题解决记录
百度出Ubuntu中配置Java环境变量时,在利用sudo gedit /etc/profile 对profile编辑后, 在terminal中输入 sudo source /etc/profile, ...
随机推荐
- 还没被玩坏的robobrowser(8)——robobrowser的实现原理
背景 学习使用工具实际上不难,不过我们应该通过阅读工具源码来提升自己的水平. 多读代码,读好代码.很不错,robobrowser的代码简单易懂,值得学习. 预备知识 源码地址 一起其实是从browse ...
- org.hibernate.exception.ConstraintViolationException: could not insert:
org.hibernate.exception.ConstraintViolationException: could not insert: 报错原由于xxx.hbm.xml文件里的主键类型设置有问 ...
- 利用AutoSPSourceBuilder和Autospinstaller自动安装SharePoint Server 2013图解教程——Part 1
这是一篇对之前 <利用AutoSPSourceBuilder和Autospinstaller自动安装SharePoint Server 2013图解教程——Part 2>的补充.本篇博客将 ...
- IE6-IE9兼容性问题列表及解决办法:锁表头的JQuery方案和非JQuery方案(不支持IE6,7,8)
鉴于从IE8开始,IE不再支持css的expression了,所以以前依靠它完成锁表头的代码就全部失效了,面对新的浏览器,一切又要重新来过了. 现在所能找到的对于锁表头的方案主要有两种路子:一种是使用 ...
- 8.翻译:EF基础系列----EF中实体的状态
原文链接:http://www.entityframeworktutorial.net/basics/entity-states.aspx 在实体的生命周期中,EF API维护着每一个实体的状态,对于 ...
- excel中对数据进行分类求和
我们在用excel处理数据时,常常需要按不同的类别分别汇总数据.例如下图中需要求出每个业务员的总销售金额等. 通常情况下我们的数据量很大,而且需要较快的统计出来结果,所以我们要用一定的技巧才能计算出来 ...
- 微信小程序:冒泡事件及其阻止
事件的类别分为几种: 点击事件:tap 长按事件:longtap 触摸事件:touchstart: touchend:touchcancel:touchmove 其他:input:submit.... ...
- bit,Byte,Word,DWORD(DOUBLE WORD,DW)
1个二进制位称为1个bit,8个二进制位称为1个Byte,也就是1个字节(8位),2个字节就是1个Word(1个字,16位),则DWORD(DOUBLE WORD)就是双字的意思,两个字(4个字节/3 ...
- [na]tcp&udp扫描原理(nmap常用10条命令)
nmap软件使用思路及常见用法 Nmap高级用法与典型场景 namp -sn 4种包 使用nmap -sn 查询网段中关注主机或者整个网段的IP存活状态 nmap -sn nmap针对局域网和广域网( ...
- 【Unity】第11章 第三人称角色控制器和碰撞体
分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 第三人称视角控制器涉及的相关概念有: 1.刚体(Rigidbody). 2.碰撞体(Collider).包括球体碰撞体( ...