axp202电源管理

本文介绍了在android4.3_master分支下,针对axp202电源管理芯片出现的充电电流限制问题进行的分析与解决。通过检查datasheet和寄存器状态,发现在深度休眠后0x30寄存器值改变导致500mA限流。在mod5_config.h文件的mode5_batt_resume函数中找到修改0x30寄存器的代码,注释掉该代码解决了问题。问题起因是旧项目限制USB充电电流,但未在后续版本中恢复。解决方法需兼顾代码历史与功能需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


问题:充电电流被限制,导致充电时间过长。

代码版本分支:android4.3_master

pmu文件管理文件地址:drivers/infotm/power/axp_power/

复现问题,检测电流变化,发现机器在深度休眠后电流会由原来的1.2A变成0.5A。

猜测:可能是由于充电电流过小导致充电时间过长。

分析:1.查看axp202的datasheet查找到限制充电电流的寄存器地址,发现控制是否有限制充电电流的寄存器地址为:0x30[1-0],在深度休眠前查看寄存器0x30的值

>>#echo 30 > sys/class/axppower/axpreg

>>#cat sys/class/axppower/axpreg

得到结果为:63(此为十六进制),转换为2进制为:1100011,此时0x30[1-0]位的取值为:11,根具datasheet发现此时充电电流限流是关闭的。

深度休眠后用同样的方法查看寄存器0x30,得到结果0x30为:61,转换二进制后为:1100001,0x30[1-0]位取值为:01,根据datasheet发现此时被限流为500mA,与发现的问题相符。

查看datasheet会发现,限制流量大小的控制是通过寄存器0x33来控制的,同样此时可以读取0x33的值,根据datasheet中的说明计算,同样可以得到电流为500mA,以此来验证了猜想。

由于问题是发生在深度休眠后,故此查看代码,查找软件在深度休眠时以及休眠唤醒时做了哪些动作。或者查找那些地方对0x30这个寄存器做了修改,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值