RK817/
RK809是一款高性能
PMIC,集成了多路大电流DCDC,多个
LDO和线性开关,1个USB5V输入及boost输出,高性能codec,电量计,然而不同的是,RK817多了充电功能,RK809不带充电功能。所以下面提到的充电功能默认指的是RK817。另外一个不同的,RK809可以支持多节电池,RK817只支持单节电池,因为RK817只支持最大5.5v的输入电压。
驱动文件
drivers/
power/rk817_
Battery.c RK817 与 RK809 共用电量计驱动
drivers/power/rk817_battery.c RK817 and RK809 share fuel gauge driver
drivers/power/rk817_charger.c RK817 充电驱动
drivers/power/rk817_charger.c RK817 charging driver
如果 defconfig 默认没有配置上,请在 menuconfig 中选上:
同时记住请把 test_power 驱动去掉:
说明:test_power 是一个向
Android 固定上报电池状态的驱动,主要是为了在没有电量计驱动的情况下使用。
DTS 配置说明
battery {
compatible = "rk817,battery";
ocv_table = <3500 3625 3685 3697 3718 3735 3748
3760 3774 3788 3802 3816 3834 3853
3877 3908 3946 3975 4018 4071 4106>;
design_capacity = <2500>;
design_qmax = <2750>;
bat_res = <100>;
sleep_enter_
current = <300>;
sleep_exit_current = <300>;
sleep_fi
LTEr_current = <100>;
power_off_thr
ESD = <3500>;
zero_algorithm_vol = <3850>;
max_
SOC_offset = <60>;
monitor_sec = <5>;
sample_res = <10>;
virtual_power = <0>;
......
battery 是 RK817 和 RK809 电量计驱动节点。
charger 是 RK817 充电驱动节点。
battery 节点参数说明:
【ocv_table】
开路电压-电量表。即“电压对应电量”,一共 21 个电压值,分别对应 0% --> 100%, 电压值之间的电量步进为 5%。该数据表可以由电池原厂提供,也可以由 RK 深圳分公司进行测量,或者RK 提供的测量工具得到,具体请咨询深圳分公司相关工程师。
【design_capacity】
实际电池容量。经实际测量后确定的实际可用容量。例如标称 4000mah,但是实测只有3850mah,则该值请填写 3850。
【design_qmax】
最大容量值。主要用途是作为软件处理的纠错条件之一。目前该值请填写标称容量的 1.1 倍数值:即标称容量*1.1。
【bat_res】
电池内阻。主要在放电算法中会用到,非常重要!该值在测量 ocv_table 时一起获取,所以请注意这个参数的测量,切勿遗漏。
【sleep_enter_current】
进入松弛模式的条件之一。 目前填写 300,不做改动。
在极低负载情况下(目前只针对于二级待机),如果系统的负载电流持续超过一定时间(软件可配)都小于某个阈值,则电量计
模块进入松弛模式。
在松弛模式下电量计每隔 8 分钟会采集一组电压,我们称之为松弛电压。用途:二级待机的负载很小,我们近似地认为松弛电压近似于开路电压,因此驱动处理上,在系统从二级待机唤醒且满足一定条件时会用它查询 ocv_table 表进行库仑计的校正。
更多详细内容请下载附件查看