全志平台uboot中GPIO和PIN脚配置说明

2024-03-30 20:38

本文主要是介绍全志平台uboot中GPIO和PIN脚配置说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转自:https://www.ebaina.com/articles/140000004643?utm_source=searchindex&utm_medium=list&utm_campaign=140000004643


  • 1.前言

这里描述uboot中关于GPIO和PIN脚配置的修改;以及dts中的规则说明

  • 2.port接口对应数字编号
#define  PA  0
#define  PB  1
#define  PC  2
#define  PD  3
#define  PE  4
#define  PF  5
#define  PG  6
#define  PH  7
#define  PI  8
#define  PJ  9
#define  PK  10
#define  PL  11
#define  PM  12
#define  PN  13
#define  PO  14
#define  PP  15

  • 3.Sysconfig中描述gpio的形式

Sysconfig中描述gpio的形式:
Port:端口+组内序号<功能分配><内部电阻状态><驱动能力><输出电平状态>

  • 4.Pin配置说明

Pinctrl节点分为cpux和cpus,对应的节点路径如下:

Cpux :   /soc/pinctrl@xx
Cpus :   /soc/pinctrl@xx

(1)查看PIN配置

a. PIN配置属性字段说明

<allwinner,function>对应于sysconfig中的主键名
<allwinner,pins>对应于sysconfig中每个gpio配置中的端口名.
<allwinner,pname>对应于sysconfig中主键下面子键名字
<allwinner,muxsel><allwinner,pull><allwinner,drive><allwinner,data>这些属性分别表示<功能分配><内部电阻状态><驱动能力><输出电平状态>

b. 查看cpux的PIN配置

sunxi#fdt list /soc/pinctrl@01c20800/lcd0
lcd0@0 {linux,phandle = <0x000000ab>;phandle = <0x000000ab>;allwinner,pins = "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19", "PD20", "PD21";allwinner,function = "lcd0";allwinner,pname = "lcdd0", "lcdd1", "lcdd2", "lcdd3", "lcdd4", "lcdd5", "lcdd6", "lcdd7", "lcdd8", "lcdd9";allwinner,muxsel = <0x00000003>;allwinner,pull = <0x00000000>;allwinner,drive = <0xffffffff>;allwinner,data = <0xffffffff>;
};

c.查看CPUS的PIN配置

sunxi#fdt list /soc/pinctrl@01f02c00/s_uart0
s_uart0@0 {linux,phandle = <0x000000b4>;phandle = <0x000000b4>;allwinner,pins = "PL2", "PL3";allwinner,function = "s_uart0";allwinner,pname = "s_uart0_tx", "s_uart0_rx";allwinner,muxsel = <0x00000002>;allwinner,pull = <0xffffffff>;allwinner,drive = <0xffffffff>;allwinner,data = <0xffffffff>;
};

(2)修改PIN配置
使用fdt set命令可以修改PIN中相关属性字段

sunxi#fdt set /soc/pinctrl@01c20800/lcd0 allwinner,drive <0x1>
sunxi#fdt list /soc/pinctrl@01c20800/lcd0                     
lcd0@0 {linux,phandle = <0x000000ab>;phandle = <0x000000ab>;allwinner,pins = "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19", "PD20", "PD21";allwinner,function = "lcd0";allwinner,pname = "lcdd0", "lcdd1", "lcdd2", "lcdd3", "lcdd4", "lcdd5", "lcdd6", "lcdd7", "lcdd8", "lcdd9";allwinner,muxsel = <0x00000003>;allwinner,pull = <0x00000000>;allwinner,drive = <0x00000001>;allwinner,data = <0xffffffff>;
};

  • 5.GPIO配置说明

(1)Device tree和sysconfig.fex中GPIO对应关系
以usb中usb_id_gpio为例

sunxi#fdt list /soc/usbc0                          
usbc0@0 {test = <0x00000002 0x00000003 0x12345678>;device_type = "usbc0";compatible = "allwinner,sun50i-otg-manager";........usb_serial_unique = <0x00000000>;usb_serial_number = "20080411";rndis_wceis = <0x00000001>;status = "okay";usb_id_gpio = <0x00000030 0x00000007 0x00000009 0x00000000 0x00000001 0xffffffff 0xffffffff>;
};usb_id_gpio         = port:PH09<0><1><default><default>

对应于device tree中
usb_id_gpio = <0x00000030 0x00000007 0x00000009 0x00000000 0x00000001 0xffffffff 0xffffffff>
由上面描述, 端口PH 组内序号 功能分配 内部电阻状态 驱动能力 输出电平
2)修改GPIO配置
果需要修改 usb_id_gpio的配置,可按如下方式

sunxi#fdt set /soc/usbc0 usb_id_gpio <0x00000030 0x00000007 0x00000009 0x00000000 0x00000001 0x2 0x1>              
sunxi#fdt list                                                                        
usbc0@0 {test = <0x00000002 0x00000003 0x12345678>;device_type = "usbc0";compatible = "allwinner,sun50i-otg-manager";........usb_serial_unique = <0x00000000>;usb_serial_number = "20080411";rndis_wceis = <0x00000001>;status = "okay";usb_id_gpio = <0x00000030 0x00000007 0x00000009 0x00000000 0x00000001 0x00000002 0x00000001>;   //修改ok
};

这篇关于全志平台uboot中GPIO和PIN脚配置说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/862526

相关文章

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

如何使用Nginx配置将80端口重定向到443端口

《如何使用Nginx配置将80端口重定向到443端口》这篇文章主要为大家详细介绍了如何将Nginx配置为将HTTP(80端口)请求重定向到HTTPS(443端口),文中的示例代码讲解详细,有需要的小伙... 目录1. 创建或编辑Nginx配置文件2. 配置HTTP重定向到HTTPS3. 配置HTTPS服务器

SpringBoot中配置Redis连接池的完整指南

《SpringBoot中配置Redis连接池的完整指南》这篇文章主要为大家详细介绍了SpringBoot中配置Redis连接池的完整指南,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以... 目录一、添加依赖二、配置 Redis 连接池三、测试 Redis 操作四、完整示例代码(一)pom.