全志平台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

相关文章

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

springboot security之前后端分离配置方式

《springbootsecurity之前后端分离配置方式》:本文主要介绍springbootsecurity之前后端分离配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的... 目录前言自定义配置认证失败自定义处理登录相关接口匿名访问前置文章总结前言spring boot secu

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

Spring Boot结成MyBatis-Plus最全配置指南

《SpringBoot结成MyBatis-Plus最全配置指南》本文主要介绍了SpringBoot结成MyBatis-Plus最全配置指南,包括依赖引入、配置数据源、Mapper扫描、基本CRUD操... 目录前言详细操作一.创建项目并引入相关依赖二.配置数据源信息三.编写相关代码查zsRArly询数据库数

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各