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无法优化应用,Android应用优化总结

原标题&#xff1a;Android应用优化总结内存泄漏最常见也是最严重的 &#xff1a;持有Activity 与Context引用&#xff0c;生命周期本该短于应用生命周期&#xff0c;该回收的没被回收掉&#xff0c;导致泄露检测手段&#xff1a;leakcanary mit等Handler泄露new Handler 替换为…

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

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

html页面返回原理,浏览器输入URL到界面显示(HTML渲染)发生了什么?

浏览器从输入URL到界面显示一共经历了6个阶段1. DNS(域名)解析2. TCP连接(三次握手)3. 发送HTTP请求4. 服务器处理请求并返回HTTP报文5. 浏览器解析渲染页面6. 连接结束1. DNS(域名)解析一个网址到ip地址的转换&#xff0c;找到URL对应的IP。如www.xiaochongtec.cn到22.33.55.6…

nginx缓存HtmL文件,Nginx在缓存的html文件上返回404

我试图在没有索引页的所有.html文件中添加缓存&#xff0c;但是当我做了一些更改时&#xff0c;我的文件进入了404找不到页面。Nginx在缓存的html文件上返回404这是我对我的默认配置&#xff0c;没有任何改变&#xff0c;我做了&#xff0c;没有工作。server {listen 80;server…

韩顺平轻松搞定网页设计(html+css+js),韩顺平轻松搞定网页设计方案(html+css+js)之javascript现场授课笔记(完整版).doc...

2011韩顺平轻松搞定网页设计(htmlcssjs)之javascript现场授课笔记(完整版)视频18整和19的前半部分不用看Javascript的基本介绍JS是用于WEB开发的脚本语言&#xff1a;脚本语言是什么&#xff1a;脚本语言不能独立使用&#xff0c;它和HTML/JSP/PHP/ASP.NET配合使用脚本语言也有…

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

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

计算机专业学comsol,有关COMSOL的学习心得,与同是初学者的朋友共勉! - 仿真模拟 - 小木虫 - 学术 科研 互动社区...

接触COMSOL也有一年时间了&#xff0c;相信很多朋友都有这样的感触&#xff0c;那就是完全不知所措&#xff0c;无从下手。根据网上的一些经验&#xff0c;参考案例&#xff0c;看用户手册&#xff0c;折腾了几个月甚至大半年的时间&#xff0c;对于模型计算的各种错误一头雾水…

兰州交通大学计算机科学与技术学院,兰州交通大学计算机科学与技术

职朋圈友兰州交通大学 | 计算机科学与技术 | 本科算机科学与技术学科为甘肃省省级重点学科&#xff0c;为硕士一级学科授权点&#xff0c;拥有国家级计算机实验教学示范中心、国家级交通信息类创新人才培养模式实验区。专业师资力量雄厚&#xff0c;2009年被授予国家级“计算机…

圣地亚哥的计算机科学在哪个学院,加州大学圣地亚哥分校计算机科学在哪个学院?...

加州大学圣地亚哥分校计算机科学在工程学院加州大学圣地亚哥分校雅各布工程学院成立于学校建校之初的1964-1965年&#xff0c;共开设6个系&#xff0c;拥有250多位世界级教师&#xff0c;开设本科、硕士和博士三个阶段的课程教育&#xff0c;目前共有本科生6025名&#xff0c;硕…

计算机网络检错码和纠错码的特点,检错码和纠错码有何不同?试比较在网络通信中使用时各自的优缺点。...

检错码和纠错码有何不同&#xff1f;试比较在网络通信中使用时各自的优缺点。更多相关问题心理发展的速度可以有个别差异&#xff0c;可以加速或延缓&#xff0c;但发展的顺序一般不能改变。这说明心理发展具有(德国邓克尔发现&#xff1a;人看到某物品具有一种功能后就很难看出…

云星空计算机名访问不可以,03.PLM系统访问金蝶云星空(webapi):读取基础资料编码、名称...

1. 需求描述PLM系统中的物料&#xff0c;BOM同步到金蝶云星空系统中时&#xff0c;构造的json数据中&#xff0c;一些基础资料字段需要传递编码&#xff0c;而不是名称。 本接口提供获取所有基础资料的编码、名称&#xff0c;可作为PLM系统中的对照关系。2. 接口定义2.1 请求地…

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

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

计算机 国际顶尖级会议排名,计算机学科国际会议排名.doc

计算机学科国际会议排名中科院计算所会议会议名称会议介绍代表领域1ACM SIGCOMM: ACM Conf on Communication Architectures, Protocols & AppsACM的旗舰会议之一&#xff0c;也是网络领域顶级学术会议&#xff0c;内容侧重于有线网络&#xff0c;每年举办一次&#xff0c;…

教师计算机excel培训教案,Excel培训教案..doc

三灶中心小学教师信息技术应用能力培训教案(excel部分)excel培训计划安排2学时&#xff0c;通过实例来进行讲解。具体讲解内容及时间进度视老师们的掌握情况酌情安排。附实例如下&#xff1a;培训内容&#xff1a;实例一&#xff1a; 建立与编辑工作表一、实验目的1. 掌握启动和…

计算机程序设计a,计算机程序设计 A(1620401)

计算机程序设计 A 是一门介绍了 C 语言基本概念并将其在程序设计中运用起来的课程。在本课程中&#xff0c;将会介绍如何用 C 语言完成基本的输入输出、数学运算、分支结构表达、循环结构表达&#xff1b;同时&#xff0c;我们会学会如何使用函数对程序进行组织、写出良好的程序…

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

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

计算机考研408哪个视频好,408计算机考研视频课哪个好

408计算机考研视频课哪个好&#xff1f;如今&#xff0c;考研培训班比比皆是&#xff0c;选择适合自己的成了很多考生的难题。如今的考研网课辅导&#xff0c;很适合考生复习备考。网络学习很方便,只要你有电脑或者手机,不管在哪里都可以学习,没有时间和地点的限制,另外不懂的知…

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

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

计算机cpu风扇不转怎么办,计算机CPU风扇不转怎么办

据一些计算机用户反映&#xff0c;一些组装机在使用时并没有什么异常&#xff0c;但在主板BIOS中&#xff0c;CPU风扇转速报告显示为0 rpm(转/分)&#xff0c;那么这种情况是不是表示你的cpu风扇不转了呢&#xff1f;其实未必&#xff01;由于目前大部分的ATX架构主板都支持风扇…