GPIO配置和管理

配置学习总结高通平台GPIO 前言: 近期在BSP的工作学习中,Group Leader 给安排了一项任务,就是分别在Android项目代码里面的SBL1,LK,以及各自负责的驱动模块代码(我是Audio驱动)中间配置GPIO ,使用循环语句,控制GPIO的输出电压,从而通过示波器得到相应的电压变化方波。因为之前对这方面没有接触过,所以在一边查询资料,一边在前辈的指导下尝试,完成了任务的一大半,下面将是我这一周对于在高通平台 阅读详情

BootLoader阶段

BootLoader阶段可以调用gpio_tlmm_config()函数完成GPIO_CFGn寄存器的配置,举例如下:
#define TLMM_VOL_UP_BTN_GPIO    85  
gpio_tlmm_config(TLMM_VOL_UP_BTN_GPIO, 0,GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA, GPIO_ENABLE)  
gpio_tlmm_config()定义如下:  
void gpio_tlmm_config(uint32_t gpio,uint8_t func,  
                     uint8_tdir, uint8_t pull,  
                     uint8_tdrvstr, uint32_t enable)  
{  
       uint32_tval = 0;  
   
       val|= pull;  
       val|= func << 2;  
       val|= drvstr << 6;  
       val|= enable << 9;//如果func=0,enable=1为输出,enable=0为输出  
   
       writel(val,(uint32_t *)GPIO_CONFIG_ADDR(gpio));  
       return;  
}

其中驱动强度的可用定义如下:

/* GPIO TLMM: Drive Strength */  
#define GPIO_2MA        0  
#define GPIO_4MA        1  
#define GPIO_6MA        2  
#define GPIO_8MA        3  
#define GPIO_10MA       4  
#define GPIO_12MA       5  
#define GPIO_14MA       6  
#define GPIO_16MA       7

GPIOLIB架构

使用gpiolib实现框架的平台可选择配置一个GPIO的sysfs用户接口,这不同于debugfs接口,因为它提供GPIO方向和值的控制,而不仅是显示gpio状态摘要,另外,它可在没有调试支持的产品级系统中使用。

GPIO在Sysfs的路径/sys/class/gpio中有三类入口:

1)用来获取GPIO用户控件控制的控制接口

控制接口是只写的,有export和unexport,用于请求内核导出GPIO的控制,成功的话会创建GPION节点。
2)GPIO本身
即/sys/class/gpio/gpioN节点
3)GPIO控制器(gpiochip实例)

这里的label包含的设备信息(如1000000和modalias的值)对应于msm8937-pinctrl.dtsi中的内容。

内核代码中还可以直接完成GPIO导出到sysfs的功能:
1)首先通过gpio_request()申请GPIO
2)内核驱动成功申请一个GPIO后,可通过gpiod_export()使它在sysfs接口可见(如gpio19)

3)在GPIO被导出之后,gpiod_export_link()允许在sysfs文件系统的任何地方创建一个到该GPIO sysfs节点的符号链接。这样驱动就可以通过一个描述性名字,在sysfs中他们所拥有的设备下提供一个接口(到该GPIO sysfs节点的)。


msm GPIO 配置 示例: gpio_tlmm_config(GPIO_CFG(PMIC_GPIO_INT, 5, GPIO_CFG_INPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE)) 阅读详情

相关推荐

Android 5.1-7.1 高通驱动修改 - 上篇

目录1:打开驱动日志 2:移除emmc版本检查 3:在系统崩溃时关闭qload mode 4:打开关机充电功能 5:打开lk串口日志6:高通8909 驱动修改充电电流限制[kernel]7:bootloader中添加emergency download mode (组合按键开机)8:高通平台禁用热插拔 9:高通平台电池直冲实时刷新电量10:打开wcd-mbhc-v2.c 耳机插拔的日志 11:打开q6asm.c 驱动日志12:usb或dc充电插入时打开电源 13:修复MSM8909 4.4 音频声音跳变呼

gjy_it的博客 3780

gpio_tlmm_config()

先来看一下这个函数的原型:

董能能的专栏 6191

XIO2001 PCIe桥接芯片GPIO与电源管理寄存器配置实战指南

在嵌入式系统与硬件驱动开发中,寄存器是软件与硬件交互的核心接口,其配置直接决定了设备的性能、功耗与稳定性。通过理解寄存器位域的设计原理,开发者可以实现对硬件行为的精细控制,从而优化系统设计。在涉及高速总线扩展(如PCI Express)的场景下,桥接芯片的寄存器配置尤为关键,它关系到总线仲裁、中断处理、时钟管理与电源状态转换等基础功能。本文聚焦于德州仪器(TI)经典的XIO2001 PCIe-to-PCI桥接芯片,深入剖析其GPIO控制与电源管理相关的关键寄存器。文章从寄存器安全访问的“先读后写”黄金法则切

weixin_26802933的博客 288

全志平台GPIO配置与管理手册

全志平台GPIO配置与管理手册 【下载地址】全志平台GPIO配置与管理手册 《全志平台GPIO配置与管理手册》是一份专为全志平台开发者打造的实用指南,深入解析GPIO(通用输入输出)的核心概念与配置方法。手册不仅详细介绍了GPIO的基本原理,还提供了丰富的函数接口和实际开发案例,帮助开发者快速上手并解决配置与管理中的常见...

gitblog_06775的博客 469

BQ41Z50数据闪存配置详解:GPIO、硬件保护与熔断管理实战

在嵌入式系统与电池管理系统(BMS)开发中,数据闪存(Data Flash)扮演着定义硬件行为的关键角色。它本质上是一块非易失性存储区域,用于存储芯片的配置参数,系统上电时加载这些参数,从而决定了GPIO功能、保护阈值等核心行为。其技术价值在于实现了硬件功能的软件可配置性,极大地提升了同一硬件平台对不同产品需求的适应能力与开发效率。在BMS等对安全性和可靠性要求极高的应用场景中,通过数据闪存精细配置多级硬件保护网络(如过压、过流、过温保护)和不可逆的熔断逻辑,是确保系统安全稳定运行的基石。本文以TI BQ4

weixin_31858171的博客 304

LAN78XX EEPROM配置详解:LED、GPIO与电源管理实战指南

在嵌入式系统与USB转以太网开发中,EEPROM(电可擦可编程只读存储器)作为关键的非易失性存储介质,承担着芯片上电初始化配置的核心任务。其工作原理是通过SPI等接口在设备启动时加载预设数据,初始化硬件寄存器,从而定义设备的基础行为与特性。这项技术对于实现硬件定制化、优化功耗及提升系统可靠性具有重要价值,广泛应用于网络设备、工业控制及物联网终端等场景。本文聚焦Microchip LAN78XX系列芯片,深入解析其外挂EEPROM中关于LED驱动模式、GPIO功能复用及电源管理的配置方法。通过具体寄存器位域操

weixin_29663861的博客 97

全志平台GPIO配置与管理手册:专业指南助力高效开发

全志平台GPIO配置与管理手册:专业指南助力高效开发 【下载地址】全志平台GPIO配置与管理手册 《全志平台GPIO配置与管理手册》是一份专为全志平台开发者打造的实用指南,深入解析GPIO(通用输入输出)的核心概念与配置方法。手册不仅详细介绍了GPIO的基本原理,还提供了丰富的函数接口和实际开发案例,帮助开发者快速上手并...

gitblog_06783的博客 661

S32DS GPIO配置进阶:如何用图形化工具高效管理S32K144引脚

本文深入探讨了如何利用S32DS图形化工具高效管理S32K144的GPIO配置。通过解析Component Inspector的配置哲学、掌握批量配置与模板化技巧、学习引脚分配优化策略以及深度定制生成代码,工程师可以系统性地提升引脚管理效率,避免配置冲突,并优化代码性能,尤其适用于复杂的汽车电子与工业控制项目开发。

weixin_29185199的博客 87

TPS65982 GPIO事件动态配置:实现USB PD电源管理的智能切换

在嵌入式系统与电源管理设计中,GPIO(通用输入输出)接口是连接硬件与软件的基础桥梁,其核心原理在于通过数字信号实现设备间的状态传递与控制。随着USB Power Delivery(PD)协议的普及,电源管理单元(PMU)需要更智能的动态调整能力以适配多变的应用场景。TPS65982作为一款高度集成的USB PD控制器,其GPIO事件机制将简单的电平信号转化为系统级行为触发,实现了配置的热切换。这一技术价值在于通过硬件事件直接驱动固件层面的配置加载,将电源管理、协议适配与外设控制从主控MCU解耦,提升了系统

weixin_30162121的博客 328

146、各平台 Sensor 驱动差异对比:DTS 配置、Regulator 管理与 GPIO 复用

摘要:不同平台传感器驱动开发中的DTS配置与电源管理差异 本文通过实际调试案例,对比了高通和MTK平台在传感器驱动开发中的关键差异: DTS配置差异: 高通要求regulator属性带"-supply"后缀 MTK直接使用regulator名称,无后缀要求 时钟配置参数在高通(clock-frequency)和MTK(clk_src)中命名不同 电源管理方式: 高通采用regulator_bulk_enable()自动管理 MTK需要手动控制每个regulator的使能顺序和时序 注意不同平台对regula

sundong_81的博客 150

超过4.2万个AOI(地理围栏),深圳市2025年2月15日更新的全类别AOI,矢量图层(全国22个超大特大城市AOI更新系列)

超过4.2万个AOI(地理围栏),深圳市2025年2月15日更新的全类别AOI,矢量图层(全国22个超大特大城市AOI更新系列)

1071

嵌入式低功耗与引脚复用:MCU时钟管理与GPIO配置实战

在嵌入式系统开发中,低功耗设计与硬件资源的高效复用是提升产品续航与性能的核心。其原理在于通过微控制器的系统时钟管理与GPIO引脚复用机制,实现对芯片内部资源的动态调度。从技术价值看,这使工程师能精细控制外设时钟的启停,在休眠模式下维持关键唤醒源运行,同时将有限物理引脚灵活分配给ADC、SPI、PWM等多种功能,极大优化了功耗与硬件利用率。应用场景广泛覆盖无线传感器节点、便携设备等电池供电领域。本文以NXP DSC为例,深入解析停止模式下的外设时钟停止禁用(STOP Disable)与GPIO外设选择(GPS

weixin_33782386的博客 521

仿真每日一练 | 有限元模态分析详解

结构的振动一直是工业领域产品分析的重点,在振动的仿真分析中,模态分析是其最基本的分析类型,通过研究结构的固有频率和振型对产品的设计提供指导。2.2、在interaction模块,通过special->Spring,在各点之间分别创建弹簧单元,弹簧刚度为1000。2.1、在interaction模块,创建两个RP点,与两侧RP点各间隔100大小,如图3所示;其中M、K、C均为n*n的矩阵,s、x、v为n*1的矢量,n为系统自由度数量。3、在Assembly模块创建装配体,两点之间的距离为100,如图2所示;

ansysxuexizhe的博客 1655

BQ27Z846数据闪存配置实战:从PEC、SOC标志到GPIO映射的嵌入式电池管理

在嵌入式系统与电池管理设计中,非易失性存储配置是实现芯片行为定制化的核心技术。其原理在于通过修改芯片内部独立于固件的参数区,动态调整其算法行为与硬件接口,而无需重新编译程序。这项技术的核心价值在于,它能让工程师基于同一硬件平台,灵活适配从消费电子到工业设备等不同应用场景的差异化需求,例如实现精准的电量监控、可靠的通信校验以及智能的功耗管理。具体到德州仪器BQ27Z846这类高精度电量计,其数据闪存(Data Flash)的配置尤为关键。工程师通过配置PEC校验位确保I2C通信在复杂电磁环境下的可靠性,并利用

weixin_34242509的博客 772

专栏丨华为HN8145XR光猫获取超级管理员密码

摘要:本文详细介绍了华为HN8145xr光猫获取超级管理员权限的完整步骤。首先通过ONT使能工具补全shell,然后利用Telnet登录光猫后台进行操作。文章提供了多种获取超级密码的方法,包括配置文件解密、一键查询工具等,并针对联通光猫特别说明了默认密码格式(CUAdmin+后八位数字)。此外,还介绍了恢复出厂设置、修改SSID等实用操作,帮助用户完全掌控光猫设备。文末附有详细的命令行操作指南,适合有一定技术基础的用户参考。

8265

Windows7 64位系统PL2303驱动无法安装问题解决

问题描述:电脑安装的是Win7 64位的旗舰版,USB to RS232这种线很简单,对于笔记本如果要用串口,就不能少了它了。USB to RS232转换芯片种类繁多,常见的有ch340,0108,PL2303,FT232等,这里面FT232的应该价格是相对比较贵的,因为FTDI的芯片本身比较贵。由于买了一根PL2303芯片的USB to RS232转换线,于是插上后发现驱动无法安装,又是在设备管

suxiang198的博客 5809

单片机开发实战:GPIO配置、时钟管理与中断优化

GPIO(通用输入输出)是单片机与外部设备交互的基础接口,其配置模式直接影响系统稳定性。推挽输出和开漏输出是两种常见驱动方式,前者提供强驱动能力,后者适合总线应用。时钟管理涉及晶振选型、PLL倍频等关键技术,合理的时钟树配置能确保通信协议(如I2C、SPI)的时序精度。中断机制通过NVIC优先级分组实现任务调度优化,结合DMA双缓冲技术可提升数据传输效率。在STM32等ARM Cortex-M芯片开发中,掌握这些核心模块的底层原理与调试方法(如逻辑分析仪波形分析),能有效解决外设无响应、通信错误等典型问题。

weixin_28285943的博客 213

行为预测模型:Social LSTM与Graph Neural Networks

行为预测模型:Social LSTM与Graph Neural Networks ,人工智能,计算机视觉,大模型,AI,本文围绕行为预测模型Social LSTM与Graph Neural Networks展开,介绍了两者的基础概念、原理、应用场景,还对比了它们在优势、劣势和适用场景上的不同,最后给出了相应的代码示例。Social LSTM基于LSTM,通过社交池化层处理多智能体交互;图神经网络处理图结构数据,靠消息传递获取信息,二者各有侧重,适用于不同场景。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 15万+

深入解析P89LPC938 GPIO端口配置与电源管理实战

在嵌入式系统开发中,GPIO(通用输入输出)端口是微控制器与外部世界交互的基础接口,其内部电路结构和工作原理直接影响系统性能和功耗。GPIO通常支持多种模式,如准双向、开漏和推挽输出,每种模式对应不同的MOSFET开关网络配置,以实现特定的电气特性。理解这些模式对于优化驱动能力、实现电平转换和降低功耗至关重要。在低功耗设计中,结合电源管理技术如掉电检测和省电模式,能显著延长电池续航。本文以恩智浦P89LPC938微控制器为例,详细解析其GPIO的准双向、开漏和推挽模式,并探讨如何利用内置的掉电检测和多种省电

weixin_30642561的博客 366

【WRF数据准备】海温(SST)数据替换

【WRF数据准备】海温(SST)数据替换

WW、forever的博客 1118

第3.4章 机器人第三方库实战总结(四):G2O优化库从入门到实战(附SLAM实例代码)

自定义边同样是满足复杂应用需求的重要手段。自定义边时,需要明确边所连接的顶点类型以及边所表示的误差项的计算方式。假设我们要定义一条边,用于约束两个上述自定义顶点之间的相对位姿和传感器偏移量关系。我们可以这样定义边类:public:// 计算误差// 计算雅可比矩阵// 读盘和存盘函数,这里暂不实现。

行知SLAM 358

【嵌入式Linux】i.MX6ULL GPIO 中断管理与配置函数

- 本文章结合了正点原子的 i.mx6u嵌入式Linux开发指南和笔者的理解。 - 前面我们进行了总的外部中断处理函数(system_irqhandler)的初始化,在这个函数中同个中断号,选择跳转到了不同的中断服务函数 - 下面我们就来写一个具体的中断服务函数,本文将具体编写**GPIO 中断管理与配置函数**

Witheart 的博客。 1456

由于找不到mfc110u.dll,无法继续执行代码,重新安装程序可能会解决此问题的 解决方案

本文主要介绍了由于找不到mfc110.dll,无法继续执行代码的解决方案,希望能对使用Windows的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 5万+

PXD10微控制器SIUL模块深度解析:GPIO配置、中断管理与高效操作实践

在嵌入式系统开发中,微控制器(MCU)的输入输出(GPIO)管理是底层驱动的基础与核心。其原理在于通过配置寄存器控制引脚的电气特性、数据方向与复用功能,实现对硬件资源的精确操控。这项技术的价值在于直接决定了系统的实时性、可靠性与功耗,是连接软件逻辑与物理世界的桥梁。在汽车电子、工业控制等对实时性和可靠性要求极高的领域,高效的GPIO与中断管理技术尤为关键,它确保了系统能够精准响应传感器信号、稳定驱动执行器,并有效抑制环境干扰。本文以恩智浦PXD10系列MCU的系统集成单元(SIUL)为例,深入剖析其**引脚

weixin_29735819的博客 349

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

TPS68470 PMIC寄存器深度解析:从电源管理到时钟与GPIO配置实战

电源管理单元(PMIC)是现代嵌入式系统的核心组件,负责多路电源轨的生成、时序控制与系统监控。其工作原理基于可配置的寄存器映射,软件通过读写这些寄存器实现对电压、电流、时钟及GPIO的精确控制,从而满足不同应用场景的功耗、性能和可靠性要求。在移动计算和工业物联网设备中,高效的PMIC配置能显著优化系统能效,实现动态电压频率调节(DVFS)和低功耗唤醒等高级功能。本文以德州仪器TPS68470为例,深入剖析其状态监控、锁相环(PLL)时钟生成及通用输入输出(GPIO)等核心寄存器模块的配置逻辑与常见陷阱,为硬

weixin_33716154的博客 389

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: 配置Modem的命令radiooptions
下一篇: Android 7.0 init.rc的一点改变
makeyourprogress
博客等级 码龄11年 26粉丝 57原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值