[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, ...
随机推荐
- C++模板”>>”编译问题与词法消歧设计
在编译理论中,通常将编译过程抽象为5个主要阶段:词法分析(Lexical Analysis),语法分析(Parsing),语义分析(Semantic Analysis),优化(Optimization ...
- C++虚函数工作原理
一.虚函数的工作原理 虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数.典型情况下,这一信息具有一种被称为 vptr(virtual table poi ...
- python selenium expected_conditions使用实例
今天正好虫师问到selenium python binding中support.expected_conditions的用法,顺手总结了一下,希望对大家有所帮助. 场景 Expected Condit ...
- Linux中iptables防火墙指定端口范围
我需要700至800之间的端口都能tcp访问 代码如下 复制代码 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 7 ...
- 查看指定java进程的jvm参数配置命令之jinfo
一.查看所有的参数 jinfo -flags PS:3739为JAVA进程ID Attaching to process ID , please wait... Debugger attached s ...
- C#基础第四天-作业-Hashtable-list<KeyValuePair>泛型实现名片
1.名片集: 名片集实现功能:不限定集合实现 增加,查询,查询全部,删除 功能,需求条件: 根据姓名去(查询/删除)某一行数据.指定:姓名,年龄,性别,爱好,联系方式. 采用技术:Hashtable- ...
- IOS7 新特性
相关ios7新特性 帖子.挺全的.一定要看看哪 http://www.devdiv.com/iOS_iPhone-ios_ui_uikit_text_kit_-thread-203631-1-1.ht ...
- 腾讯云服务器 Centos6.5 安装 nginx1.12.0
今天买了腾讯云,不要问我为什么没有买阿里云... 入正题: 如果出现 CentOS ping: unknown host 的话,表示没有配置dns vim /etc/sysconfig/network ...
- Chunk
Chunk是一系列语句,Lua执行的每一块语句,比如一个文件或者交互模式下的每一行都是一个Chunk. 每个语句结尾的分号(;)是可选的,但如果同一行有多个语句最好用:分开 a = 1 b = a ...
- [Windows Azure] Getting Started with Windows Azure SQL Database
In this tutorial you will learn the fundamentals of Windows Azure SQL Database administration using ...