android+5.q,MSM8909+Android5.1.1电池管理(2)--qpnp-linear-charger.txt驱动学习概要

MSM8909+Android5.1.1电池管理(2)--qpnp-linear-charger.txt驱动学习概要

参考文件

\kernel\Documentation\power\qpnp-linear-charger.txt---下面是学习此文件

\kernel\Documentation\devicetree\bindings\power\qpnp-linear-charger.txt

1.     简介

The QPNP linear charger driver implementsinput and external peripheral power management for 8916 chipsets. The input canbe supplied to the device via USB path. Output paths is the VPH_PWR rail.

QPNP线性充电器驱动实现8916芯片集(msm8916和pm8916)输入和外部外围电路管理,通过USB路径输入到设备和输出路径是VPH_PWR。

2.     软件描述

2.1   设计目标

The qpnp-linear-charger driver interacts asa consumer and producer for

various input and output power information,as well as relaying information

to userspace.

qpnp-linear-charger驱动作为一个消费者和生产者交互各种输入和输出电源信息,而且转发这些信息给用户空间

Given the abundance of configurations fordifferent board designs it is important to distinguish between configurationswhich are required versus those available to be configured at compile and atrun time. The target of this design is to achieve this as follows:

为不同板设计给出丰富的配置,重要的是可区分编译时需配置的配置和运行时配置,这个设计目的可通过下面的内容来达到:

(1)  编译时选项在设备树文件定义

参考Documentation/devicetree/bindings/power/qpnp-linear-charger.txt,对应设备树文件\kernel\arch\arm\boot\dts\qcom\msm-pm8909.dtsi下的设备节点

pm8909_chg: qcom,charger {

spmi-dev-container;

compatible= "qcom,qpnp-linear-charger";

#address-cells= <1>;

#size-cells= <1>;

};

(2)  运行时配置通过power supply框架来实现

(3)  依赖芯片组的特性和工作区(workarounds)通过运行时subtype检测来配合,典型情况不需要改变

Chipset dependent features and workaroundsare configured via runtime subtype detection and are typically not changed.

2.2   Power supply属性实现

While the power supply frameworkimplementation supplies basic definitions

of each property this documentation willdefine the ones used in more detail.

Power supply框架基于定义的每个输定来实现supply,qpnp-linear-charger.txt文档更详细定义这些属性的使用

The notification model in the power supplyframework is used to notify other

consumers of information conveyed by thecharger driver as outlined below.

Each notification is handled via the supplysupplicant relationship.

Whenever a supply is changed and thepower_supply_changed API is called the

external_power_supply_changed callback willbe invoked at the supplicant.

One can picture the notification as onedirectional.

Power supply框架的通知模型用于通知其他消费者信息,这些信息是有充电器驱动传达的,通知模型如下图,每个通知都会通过供应者和请求者的关系来处理,只要是一个供应者状态改变且它调用了power_supply_changed(),请求者就会调用提供者的external_power_changed()回调函数

0818b9ca8b590ca3270a3433284dd417.png

图1

Registered supplies in qpnp-linear-charger:

*battery

Other supplies in other drivers:

*bms: registered in the Battery Management (BMS) qpnp-vm-bms.c driver.

*usb: registered in the corresponding dwc3 or msm_otg driver.

qpnp-linear-charger注册为名为battery的供应者,qpnp-vm-bms.c驱动注册为bms供应者,phy-msm-usb.c驱动注册为usb的供应者

Battery:

*supplicants: bms

*supplies: bms, usb

0818b9ca8b590ca3270a3433284dd417.png

图2

* writable properties(可写属性):

-POWER_SUPPLY_PROP_CHARGING_ENABLED

This bit allows to disable current from entering the battery

as well as disabling any current being drawn from external inputs.

此位允许禁用进入电池的电流,也禁来之外部输入的任何电流

- POWER_SUPPLY_PROP_SYSTEM_TEMP_LEVEL

The temperature level is used by the thermal daemon to configure

the maximum battery current input limit to reduce heat produced

from the battery when charging.

当充电时,守护进程使用温度等级来配置最大电池电流输入限制,从而降低电池产生的热量。

-  POWER_SUPPLY_PROP_VOLTAGE_MIN

The minimum input voltage for a given input to the charger.

充电器最小输入电压

-  POWER_SUPPLY_PROP_COOL_TEMP

Allows to configure a cool threshold notification which is

configured via the ADC battery temperaturemonitoring API.

允许配置一个cool阈值通知,此阈值通过ADC电池温度监控API来配置

-  POWER_SUPPLY_PROP_WARM_TEMP

Allows to configure a warm threshold notification which is

configured via the ADC battery temperaturemonitoring API.

允许配置一个warm阈值通知,此阈值通过ADC电池温度监控API来配置

-  POWER_SUPPLY_PROP_STATUS

This property is set by BMS whenever BMSdetects end of charge

condition. Charger driver uses this to stopcharging.

当BMS检测到充电结束,BMS设置此属性来通知充电器多功能停止充电

-  POWER_SUPPLY_PROP_CAPACITY

This property is set by the BMS supply whenever the capacity of the

battery is changed. If there is no BMS supplypresent a default

value is returned. This property can also bemanually overridden

from userspace to set a fake capacity. Thisfeature allows for test

environments to prevent certain userspacesfrom shutting down the

device.

当电池容量改变,BMS设置此属性,如果没有BMS,默认为50%。此属性也可被用户空间手动修改来设置一个假的容量。此特征允许测试环境防止某些用户空间关机。

*other notable properties:

-POWER_SUPPLY_PROP_PRESENT:

Indicates whether valid voltage has been detected on either

BATT_THERMor BATT_ID.

指示是否可以通过BATT_THERM或是BATT_ID检测到有效的电压,也就是电池是否存在

Note that the Battery Management (BMS)supply is a special case as there is

a circular notification requirement of theSTATUS (battery) and the CAPACITY

(bms) properties.

请注意,BMS是一个需要循环通知电池状态和容量(bms)属的特殊实例。

The battery power supply is also asupplicant to BMS because of userspace

not being aware of the BMS power supplytype. Thus the CAPACITY property needs

to be relayed through the appropriatebattery supply type.

battery电源供应也是BMS的请求者,因为用户空间不知道BMS电源供应类型,所以电池容量属性需要通过适当的电源供应类型类传达。

2.3   充电驱动配置选项Configoptions

配置文件通过CONFIG_QPNP_LINEAR_CHARGER=y来使能QPNP充电器的支持

2.4   用户空间工具User spaceutilities

The power supply framework sends ueventswhenever power_supply_changed is

invoked. Said event contains the name ofthe supply changed as well as all

implemented power supply properties.

当调用了power_supply_changed(),power supply框架层发送uevents,所说的event包含改变的供应者名称(比如bms、battery、usb),也包含电源供应者实现的属性。

The qpnp-linear-charger driver takesadvantage of the framework to notify

userspace. There are a few userspaceapplications which take advantage of

this information to track things likebattery capacity, presence and health.

qpnp-linear-charger驱动利用power supply框架通知用户空间,有一些用户空间应用运用这些信息来跟踪电池容量(也是百分比)、电池是否存在和生命值(health,比如good)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508055.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

岳阳鸿蒙数学培优阶梯训练,鸿蒙应用-呼吸训练app部分练习展示(开始)

本帖最后由 李洋水蛟龙 于 2020-12-20 18:11 编辑1.在主页面添加一个按钮并响应点击事件效果显示&#xff1a;图片1.png (404.17 KB, 下载次数: 0)2020-12-10 17:53 上传点击按钮“点我”下方便会显示“我被点击了”说明点击事件已完成代码如下&#xff1a;Index.hml文件中Hell…

android日期选择滚轮框架,GitHub - liwenzhi/wheelview: 滚轮效果的View,日期选择器

#wheelview滚动效果的View这段时间需要用到一个时间选择器&#xff0c;但是不能使用日期对话框&#xff0c;因为它是筛选条件框架下的&#xff0c;只能是View&#xff01;这个WheelView改造后可以达到要求&#xff01;这个wheelview框架使用的类不多&#xff0c;就几个&#xf…

大学计算机基础知识点图文,大学计算机基础知识点超详细总结

大学计算机基础知识点超详细总结 第一章 计算机及信息技术概述1. 电子计算机的发展历程①1946 年 2 月由宾夕法尼亚大学研制成功的 ENIAC 是世界上第一台电子数字计算机。 “诞生了一个电子的大脑” 致命缺陷&#xff1a;没有存储程序。②电子技术的发展促进了电子计算机的更新…

js复制html到粘贴板,用clipboard.js实现纯JS复制文本到剪切板

以前很多人都是用ZeroClipboard.js来实现网页复制内容&#xff0c;火端也是用它。ZeroClipboard是利用flash来实现的&#xff0c;ZeroClipboard兼容性很好&#xff0c;但是由于现在越来越多的浏览器不支持flash&#xff0c;导致一些没法正常使用了。今天火端开始使用clipboard.…

计算机设备的存放,计算机硬件储存设备与网络储存的发展现状

计算机的出现&#xff0c;改变了人们的生活和生产&#xff0c;而计算机硬件技术的发展&#xff0c;则为计算机储存开辟了新的发展方向和途径。而随着时代的进步&#xff0c;计算机储存技术的发展也是日新月异&#xff0c;现在我们所使用的云储存技术&#xff0c;就是储存技术发…

计算机键盘没有fn,键盘Fn键失灵怎么解决?键盘Fn键失灵的修复方法

电脑键盘是电脑输入设备中最常用的设备之一&#xff0c;也是大家使用最频繁的的设备。其实键盘Fn键占据着很大分量,Fn键能够实现很多功能,如控制音量、打开关闭摄像头、屏幕亮度调节等。如果Fn键失灵的话,那就会对电脑造成很大的影响&#xff0c;有什么办法修复&#xff1f;下面…

网站的服务器分哪几种,服务器有哪几种分类?_服务器可分为四种类型

办事器能够按使用分&#xff1a;OA办事器、数据库办事器、流媒体办事器、高机能计较办事器、逛戏办事器等。软盘接口是软盘取从机系统间的毗连部件&#xff0c;感化是正在软盘缓存和从机内存之间传输数据。分歧的软盘接口决定灭软盘取计较机之间的毗连速度&#xff0c;正在零个…

英雄联盟服务器维护3月17,英雄联盟将于3月17日凌晨2点开始进行全区停机维护...

原标题&#xff1a;英雄联盟全区停机维护公告英雄联盟将于3月17日凌晨2点开始进行全区停机维护&#xff0c;公告如下&#xff1a;我们将于3月17日2点开始全区停机维护以进行后台服务升级&#xff0c;预计在凌晨1点关闭排位赛入口&#xff0c;不会影响正在进行中的排位赛。预计停…

网站服务器时间秒杀,Javascript实现商品秒杀倒计时(时间与服务器时间同步)...

现在有很多网站都在做秒杀商品&#xff0c;而这其中有一个很重要的环节就是倒计时。关于倒计时&#xff0c;有下面几点需要注意&#xff1a;1.应该使用服务器时间而不是本地时间(本地时间存在时区不同、用户自行设置等问题)。2.要考虑网络传输的耗时。3.获取时间时可直接从AJAX…

i7 8700 服务器系统,i7 8700k 云服务器

i7 8700k 云服务器 内容精选换一换您可以在几分钟之内快速获得基于公有云平台的弹性云服务器设施&#xff0c;并且这些设施是弹性的&#xff0c;可以根据需求伸缩。该任务指导用户如何创建支持IB网卡的弹性云服务器&#xff0c;包括管理控制台方式和基于HTTPS请求的API(Applica…

(教程)2020最新windows10/anaconda/pytorch-gpu环境配置(附CUDA/cuDNN配置)

&#xff08;教程&#xff09;2020最新windows10/anaconda/pytorch-gpu环境配置&#xff08;附CUDA/cuDNN配置&#xff09; 环境&#xff1a;windows10 nvidia 165ti 1. 安装anaconda3&#xff0c;自行安装 https://www.anaconda.com/download/ 安装完成后&#xff0c;配置…

信息论 哈夫曼编码 与 菲诺编码的实现(对一幅BMP格式的灰度图像(个人 证件照片)进行二元霍夫曼编码和译码。并进行编码效率的计算,对一幅BMP格式的灰度图像进行二 元Fano编码、译码 )

信息论 哈夫曼编码 与 菲诺编码的实现&#xff08;对一幅BMP格式的灰度图像&#xff08;个人 证件照片&#xff09;进行二元霍夫曼编码和译码。并进行编码效率的计算&#xff0c;对一幅BMP格式的灰度图像进行二 元Fano编码、译码 &#xff09; 原始图片 灰度处理 编码生成的…

教你如何使用hexo以及nginx、github搭建属于自己的博客(操心的妈妈级教学)

教你如何使用hexo以及nginx、github搭建属于自己的博客&#xff08;妈妈级教学&#xff09; ~~ 1.解释一下你要的服务器的效果以及对应的操作 ~~ 首先你要有自己的一台服务器&#xff0c;可以是云服务器&#xff0c;或者你可以用自己的电脑作为服务器&#xff0c;&#xff0…

(菜鸟入门)使用pytorch框架实现前馈神经网络

前馈神经网络 常见的前馈神经网络有感知机&#xff08;Perceptrons&#xff09;、BP&#xff08;Back Propagation&#xff09;网络等。前馈神经网络(FNN)是人工智能领域中最早发明的简单人工神经网络类型。各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的…

Windows下如何如何将项目上传至GitHub?

安装git客户端 进入官网&#xff0c;点击右侧下载windows版本的软件包 如果下载慢的话&#xff0c;给一个传送门&#xff0c;可以快速下载&#xff1a; 双击安装 一直点击下一步就可&#xff0c;安装位置可以自己选择一下 Github创建仓库 填写项目名称以及ba…

(pytorch-深度学习系列)pytorch卷积层与池化层输出的尺寸的计算公式详解

pytorch卷积层与池化层输出的尺寸的计算公式详解 注&#xff1a;这篇blog写的不够完善&#xff0c;在后面的CNN网络分析padding和stride详细讲了公式&#xff0c;感兴趣的可以移步这里&#xff1a;卷积神经网络中的填充(padding)和步幅(stride) 要设计卷积神经网络的结构&…

idea创建springboot项目,一直在reading pom.xml

problem&#xff1a;遇到的问题 idea创建springboot项目&#xff0c;一直在reading pom.xml 解决方法有三种&#xff1a; &#xff08;1&#xff09;修改windows配置文件 c;\windows\System32\drivers\etc\hosts将12.0.0.1 localhost前的注释符号#去掉 &#xff08;2&#x…

springboot 项目实战 基本框架搭建(IDEA)

springboot 项目实战 基本框架搭建&#xff08;IDEA&#xff09; IDEA下载 我使用的是破解的专业版IDEA&#xff0c;使用权一直到2089年&#xff1a; 下载IDEA: 下载processional版本&#xff0c;然后百度搜索激活码即可概率激活&#xff0c;如果你不成功就多找几个激活码 配…

使用IDEA 连接mysql数据库,执行sql指令

使用IDEA 连接mysql数据库&#xff0c;执行sql指令 1 配置项目的SQL依赖 首先参考这篇博文&#xff0c;创建springboot的基本框架 在创建项目的过程中&#xff0c;需要选择SQL相关的依赖&#xff0c;如下&#xff1a; SQL勾选&#xff1a;MySQL Driver&#xff0c;JDBC API …

thymeleaf There was an unexpected error (type=Internal Server Error, status=500).

thymeleaf There was an unexpected error (typeInternal Server Error, status500). 使用thymeleaf依赖&#xff0c;无法访问html文件&#xff0c;解决方法有以下几种可能&#xff1a; 1. 未加载thymeleaf依赖&#xff0c;打开pom.xml&#xff0c;加入依赖&#xff1a; <…