高通平台power_supply 框架下添加第三方充电IC的驱动方法

BatteryProperty上报流程 本流程主要涉及文件:   kernel层:qpnp-smbcharger.c    qpnp-fg.c     dwc3-msm.c  power_supply_core.c   power_supply_sysfs.c 文件路径:kernel\drivers\power\   system/core/healthd层:healthd.cpp BatteryMonitor.cpp、Batt... 阅读详情

1.power_supply电源框架介绍

power supply framework在kernel/drivers/power/下。内核抽象出来power supply子系统为驱动提供了统一的框架。

功能包括:

1.抽象PSY设备的共性,向用户空间提供统一的API;

2.为底层PSY驱动的编写,提供简单、统一的方式,同时封装并实现公共逻辑。

power supply class位于drivers/power/目录中,主要由3部分组成(可参考下图的软件架构):

1)power_supply_core,用于抽象核心数据结构、实现公共逻辑。位于drivers/power/power_supply_core.c中。

2)power_supply_sysfs,实现sysfs以及uevent功能。位于drivers/power/power_supply_sysfs.c中。

3)power_supply_leds,基于Linux led class,提供PSY设备状态指示的通用实现。位于drivers/power/power_suppply_leds.c中。

最后,驱动工程师可以基于power supply class,实现具体的PSY drivers,主要处理平台相关、硬件相关的逻辑。这些drivers都位于drivers/power/power_supply目录下。

power_supply的软件架构:

在具体设备文件中在/sys/class/power_supply,具体如下:

 

power_supply 框架工作流程

Linux的设备文件目录中可以在sys/class/下看到power_supply目录;这个power_supply的类是通过power_supply_core.c文件中的power_supply_class_init()中的class_create()函数来进行power_supply类的创建,如下:

高通充电技术详解 **Power Management Service (电源管理服务)**:位于`frameworks\base\services\core\java\com\android\server\power`,负责管理电源状态和服务。- **HAL实现**:HAL的具体实现可能位于不同的地方,具体取决于设备厂商的选择。- 充电驱动文件位于`Android\kernel\msm-4.4\drivers\power\supply\qcom\`目录下,包括`qpnp-smb2.c`和`smb-lib.c`。 阅读详情

相关推荐

展锐power_supply 目录下属性节点生成流程

当设备充电时,会显示充电图标和充电动画, 整个充电状态的显示其实是通过读取sys/class/power_supply 目录下的属性文件控制的。这篇文章将会梳理sys/class/power_supply 目录下属性节点的创建流程

weixin_42265250的博客 1393

高通平台msm8096上用bq27541电量计驱动

高通平台msm8096上用bq27541电量计驱动,已经在我们项目上调通。有需要的朋友可以下载下来看看。亲测可用

你的手机电量显示是怎么来的?聊聊Linux内核里的Power Supply子系统(以高通平台为例)

本文深入解析了Linux内核中的Power Supply子系统,以高通平台为例,详细介绍了手机电量百分比背后的技术实现。从硬件电量计芯片到内核驱动,再到用户界面显示,揭示了完整的电源管理架构和数据流路径,帮助开发者理解并优化电源管理系统。

weixin_30266885的博客 422

power_supply_changed

/kernel-4.19-lc/drivers/power/supply/power_supply_core.c static int __init power_supply_class_init(void) { power_supply_class = class_create(THIS_MODULE, "power_supply"); power_supply_class->dev_uevent = power_supply_uevent; power_supply_i...

chylovecsd的博客 1494

Linux power_supply子系统

Linux power_supply子系统 1.概念 power supply子系统的引入是由于设备中通常存在多个psy设备,不同的psy设备作用不同,比如电池、DC充电和usb充电等。驱动使用power suply框架 把不同的psy设备都注册成单一节点,当属性变化时,通过uevent的方式通知应用 2.Power Supply Framework 架构 内核抽象power supply子系统为驱动提供了统一的架构,其中功能包括:抽象PSY设备的共性,向用户空间提供统一的API,为底层PSY驱动的编写,提

南大侠的博客 3854

深入解析 Linux 电源管理:power_supply 子系统与 MTK 充电框架的协同设计

本文深入解析了Linux内核中的power_supply子系统与MTK充电框架的协同设计。通过剖析核心数据结构、关键属性与接口,揭示了MTK平台如何将TCPC驱动、PD协议、充电算法及充电IC驱动模块化集成,并基于power_supply标准接口实现高效、安全的快充流程。文章结合实战案例与常见问题排查,为嵌入式开发者提供了清晰的电源管理框架理解与调试思路。

weixin_29194817的博客 239

Linux电源子系统深度解析:如何用power_supply实现跨平台充电管理?

本文深度解析了Linux内核中的power_supply子系统,它是实现跨平台充电管理的核心框架。文章详细阐述了其抽象与解耦的设计哲学,并通过实战代码展示了如何利用该框架兼容BC1.2、USB PD等多种充电协议,解决实际开发中电量显示不准、快充协议握手失败等典型问题,为MTK、高通平台充电驱动开发提供了清晰的技术蓝图。

weixin_29159711的博客 63

高通MDM平台-ChargeIC

Charge IC 是负责管理外部供电以及电池充放电,在MDM平台上采用的是比较便宜的ChargeIC,MP2617, 其作用也仅限于控制对电池充放电。下面就简单的介绍下内核中关于chargeIC驱动,以及dts配置 内核DTS 关于chargeIC的配置在mdmxx_mtp.dtsi mp2617 { cell-index = <0>; c...

shawn的博客 4138

避坑指南:Qcom平台USB充电那些事儿——从XBL阶段配置到Kernel参数调优

本文深入解析高通平台USB充电开发全链路配置,涵盖XBL阶段初始化、JEITA温度管理、死电池恢复等关键技术点。通过实战案例揭示Qcom平台USB充电开发中的常见陷阱,包括PMIC寄存器配置、内核驱动对接及状态机管理,助力开发者优化Android设备充电性能与稳定性。

weixin_30872337的博客 475

高通学习2-QUP

高通QUP(Qualcomm Universal Peripheral)是一种高度灵活的外设架构,采用通用流处理器设计,与STM32等传统MCU的固定功能外设形成鲜明对比。QUP通过微代码动态配置串行引擎(SE),支持I2C、SPI、UART等多种协议,并深度集成DMA引擎实现高效数据传输。其驱动在内核中命名为i2c_geni/spi_geni,反映其通用接口本质。调试时需特别关注引脚复用(Pinctrl)配置,设备树需定义SE基地址、时钟及协议模式,而TZ权限表控制安全访问。QUP架构在硅片面积受限的现代

fanged的专栏 885

USB PD与QC快充技术解析:原理、协议与安全实践指南

快充技术通过提升电压、电流或两者结合来缩短充电时间,其核心在于高效的电源管理和通信协议。从基础的焦耳定律和功率公式出发,快充需要解决散热、线缆承载和接口兼容性等工程挑战。USB Power Delivery(PD)作为开放标准,通过PPS(可编程电源)实现精细化电压调节,提升了能效和兼容性;高通Quick Charge(QC)则从私有协议演进为兼容PD的解决方案。这些技术不仅优化了充电效率,还广泛应用于手机、笔记本等设备,确保了充电安全。本文聚焦USB PD和QC协议,解析其工作原理、差异及实际应用中的关键

weixin_30907935的博客 448

【信息科学与工程学】【物理/化学科学和工程技术】知识体系073——电学基础04

​。

weixin_49199313的博客 2466

【信息科学与工程学】计算机科学与自动化——第十篇 芯片设计04 电路与时序模型数学模型(1)

​:CDN产品经理需在技术深度(架构/协议)、业务广度(行业场景/商业化)、软实力(决策/沟通)三方面均衡发展,并通过“数据驱动+场景化创新”持续优化产品。能力规划需围绕“体验-成本-可靠性”三角平衡展开,同时关注边缘计算与安全的未来融合趋势。

weixin_49199313的博客 938

【信息科学与工程学】信息工程领域——第三十六篇 电路电子06 电路设计01

问题的数学分析及组合数学分析(涵盖材料科学、材料力学、数学物理、电路/电气/电机/电子/控制科学/控制论、微电子/电路系统架构、半导体器件物理、几何学/拓扑学/代数学/数论/离散数学/泛函分析/复变函数和时变函数/数理逻辑/运筹学、数学物理、数学华为、计算机系统架构设计、通信科学、信息科学、光科学、电科学、热科学、力学科学、网络科学 、复杂系统、其他学科知识)③LED驱动、PD接收、跨阻放大、带通滤波、ADC、数字处理;③三电极体系(工作、对、参比)、恒电位电路、电流-电压转换、低通滤波;

weixin_49199313的博客 258

【信息科学与工程学】【通信工程】第一百九十一篇 路由器体系结构03

编号类型领域问题详细的数学分析(逐步推理)参数列表(表达式 / 数值范围 / 边界 / 测量)关联知识839DCI演进 · 收敛DCI 2030 年三大技术收敛方向步骤1:方向一:IPoDWDM 成为绝对主流(Omdia 2027 59% → 2030 80%+),OTN 退化为 OLS 纯光层。步骤2:方向二:800ZR+ 取代 400ZR 成为主力速率,PCS 使 800G 达 600–1000km。步骤3:方向三:AI 集群 DCI 催生 1.6T/3.2T 超短距(<10km)相干模块(OSFP-X

weixin_49199313的博客 654

android电池充电以及电量检测驱动分析

http://www.cnblogs.com/riskyer/p/3275632.html    前段时间比较烦躁,各种不想学习不想工作,于是休息了几天。这几天又下来任务了--调试充电电路和电池电量检测电路,于是又开始工作,顺便把调试过程记录下来。   平台: cpu        飞思卡尔imx6q 4核         充电芯片     MAX8903         电量检测芯片

haichunzhao的专栏 4979

Android电池管理系统框架整理

一、Android 电池服务 Android电池服务,用来监听内核上报的电池事件,并将最新的电池数据上报给系统,系统收到新数据后会去更新电池显示状态、剩余电量等信息。如果收到过温报警和低电报警,系统会自动触发关机流程,保护电池和机器不受到危害。 Android电池服务的启动和运行流程: Android电池服务的源码结构 Framework\base\services\java\com\android\server ├── SystemServer.java 创建BatteryServices.

weixin_40366279的博客 2226

Linux battery 移植的相关概念

FullChargeCapacity(FCC): 充满后的电量,由于环境,温度,重点次数的影响,一般都比DesignCapacity 小。绝对充电状态可能,永远达不到100%,因为Design Capacity 是一个固定值,因为FCC 总会随着时间等因素缩减。相对充电状态总是从0% 到 100%, FCC 会随着充电次数,环境等因素逐渐递减。RelativeStateOfChage (RSOC): 相对充电状态。DesignCapacity: 设计电量,就是理论最大电量。

Qing的专栏 3479
上一篇: IE浏览器高通网站打不开dump分析选择目录总结
下一篇: Android平台如何确定deconfig及dtsi的总结
stoic163
博客等级 码龄16年 357粉丝 67原创
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值