參考高通文檔:
80-NL239-4_F_PMIC_SW_Driver_Overview_MSM8916.pdf
DTS文檔:
android\kernel\Documentation\devicetree\bindings\batterydata\batterydata.txt
首先創建相應的dtsi文件如:batterydata-qrd-skua-4v35-2000mah.dtsi
相關的名詞:
FCC Full-Charge Capacity 滿電荷電量
UC Remaining Capacity RC 剩余電量
CC Coulumb Counter 電量計
UUC Unusable Capacity 不可用電量
PC Percentage Charge 剩余電荷占FCC百分比
SoC State of Charge 電量百分比
OCV Open Circuit Voltage 開路電壓,電池在開路狀態下的端電壓稱為開路電壓
RUC Remaining Usable Capacity RUC=RC-CC-UUC,剩余可用電量
項目數據節點需要的特性:
qcom,battery-type:指明電池類型的字符串; 如qrd-skua-4v35-6500mAh
qcom,batt-id-kohm:電池ID電阻:當一些電池模型的ID電阻在一定范圍內浮動時,電池ID電阻可以作為單電池模型數組以支持多ID;
qcom,chg-term-ua= <100000>;:電池的結束充電電流,這里為100mA;就是電池滿電的時候的電流;
qcom,default-rbatt-mohm:標稱電池電阻值;正常溫度下的電池電阻值(取中值)
qcom,fcc-mah=<3200>;電池完全充滿的電池容量3200mAh;能放電多少的電流
qcom,max-voltage-uv =<4200000>; 電池最大的額定電壓;
qcom,rbatt-capacitive-mohm=<50>;電池的電容電阻; 跟着修改;
qcom,v-cutoff-uv = <3400000>;電池的截止電壓,當電池電壓低於此值時設備會自動關機;
qcom,flat-ocv-threshold-uv = <3800000>;可以被認為處於平坦放電后的開始下降的閾值;在表格中查找那個電流下降的很快的那個值;
項目數據節點需要的子節點
qcom,fcc-temp-lut //一維查找表節點會將溫度編碼成fcc查找。該方法的單位攝氏度映射成毫安時。
qcom,fcc-temp-lut {
qcom,lut-col-legend = <(-20) 0 25 40 60>;
qcom,lut-data = <2064 2067 2067 2066 2063>;
};
//一個二維查找表,將溫度和蓄電池電流電池ACC(表觀電荷的能力)。該查找表的單位應在攝氏度的溫度,在毫安IBAT與ACC毫安時。
qcom,ibat-acc-lut {
qcom,lut-col-legend = <(-10) 0 25 50>;
qcom,lut-row-legend = <0 250 500 1000>;
qcom,lut-data = <2022 2046 2046>,
<1151 1962 2024>,
<680 1864 2008>,
<51 1548 1970>;
};
//一個二維查找表對應於電池充電的內部溫度和內部電阻
qcom,rbatt-sf-lut {
qcom,lut-col-legend = <(-10) 0 25 50>;
qcom,lut-row-legend = <100 95 90 85 80>,
<75 70 65 60 55>,
<50 45 40 35 30>,
<25 20 16 13 11>,
<10 9 8 7 6>,
<5 4 3 2 1>,
<0>;
qcom,lut-data = <1355 273 100 81 74>,
<1352 273 100 81 74>,
<1268 280 102 83 75>,
<1197 286 106 85 76>,
<1143 285 110 87 78>,
<1109 281 116 90 79>,
<1090 272 124 94 82>,
<1080 269 134 100 85>,
<1077 267 133 108 91>,
<1079 266 111 100 90>,
<1090 266 101 83 76>,
<1116 267 101 84 77>,
<1156 268 103 86 79>,
<1205 270 103 88 83>,
<1266 274 106 88 82>,
<1337 276 108 87 78>,
<1431 276 107 85 79>,
<1560 284 104 84 78>,
<1680 293 99 81 75>,
<2078 306 99 81 77>,
<2438 318 100 83 78>,
<2875 333 102 85 80>,
<3411 354 104 87 81>,
<4092 392 108 89 84>,
<5118 448 116 92 86>,
<6939 551 121 95 85>,
<10433 791 120 90 81>,
<17054 1280 121 93 84>,
<29375 2077 133 101 92>,
<52518 3457 173 135 133>,
<230352 176376 150360 117059 92159>;
};
qcom,pc-temp-ocv-lut //一個包含溫度和百分比的開路電壓2維查找表,查找表的單位是百分比和電壓的關系
qcom,pc-temp-ocv-lut {
qcom,lut-col-legend = <(-10) 0 25 50>;
qcom,lut-row-legend = <100 95 90 85 80>,
<75 70 65 60 55>,
<50 45 40 35 30>,
<25 20 16 13 11>,
<10 9 8 7 6>,
<5 4 3 2 1>,
<0>;
qcom,lut-data = <4328 4328 4322 4318 4310>, //100%電量
<4234 4252 4252 4250 4245>, //....
<4164 4191 4193 4191 4186>,
<4098 4132 4137 4135 4131>,
<4036 4074 4084 4082 4078>,
<3980 4019 4035 4033 4029>,
<3932 3967 3990 3989 3985>,
<3891 3923 3950 3950 3945>,
<3856 3886 3909 3912 3909>,
<3825 3855 3862 3868 3867>,
<3800 3828 3829 3829 3826>,
<3782 3805 3807 3806 3804>,
<3768 3786 3789 3789 3786>,
<3753 3770 3775 3774 3772>,
<3737 3757 3764 3761 3755>,
<3718 3740 3753 3746 3734>,
<3695 3719 3733 3725 3712>,
<3671 3702 3705 3698 3684>,
<3650 3691 3677 3668 3656>,
<3630 3681 3670 3662 3651>,
<3619 3676 3668 3660 3649>,
<3605 3670 3665 3658 3647>,
<3590 3664 3662 3655 3644>,
<3573 3655 3658 3651 3641>,
<3553 3643 3652 3647 3635>,
<3529 3622 3639 3632 3618>,
<3498 3590 3605 3595 3576>,
<3460 3543 3547 3535 3519>,
<3401 3476 3467 3455 3443>,
<3306 3368 3347 3336 3313>,
<3000 3000 3000 3000 3000>;
};
根據廠家電池曲線表格對應數據編寫填寫DTSI;