8909平台的冷热充电温度点是硬件控制的,不能软件控制,目前硬件设置的是0~55度的充电区间。
软件上应该设置的是BTM comparator threshold, 70%(cold)~35%(hot)。 驱动可以控制充电区间内的充电电压和电流。
qcom,batt-hot-percentage = <35>;
qcom,batt-cold-percentage = <70>;
JEITA设置:
低于0度,停止充电。
0~10度 最大充电电压4.2V,充电电流 360mA,
10度到~45度最大充电电压4.35V,充电电流720mA,
45度~55度最大充电电压4.2V,最大充电电流90mA。
高于55度,停止充电。
qcom,cool-bat-decidegc = <100>;
qcom,warm-bat-decidegc = <450>;
qcom,cool-bat-mv = <4200>;
qcom,warm-bat-mv = <4200>;
qcom,ibatmax-warm-ma = <90>;
qcom,ibatmax-cool-ma = <360>;
根据硬件电路计算出来的温度检测电压,V Bat-therm是PMU检测到的电压,需要合入
drivers/hwmon/qpnp-adc-common.c中修改以下数组:
static const struct qpnp_vadc_map_pt adcmap_qrd_skue_btm_threshold[] = {
{-400, 1690},
{-350, 1658},
{-300, 1620},
{-250, 1575},
{-200, 1524},
{-150, 1467},
{-100, 1404},
{-50 , 1337},
{0 , 1266},
{50 , 1194},
{100 , 1122},
{150 , 1052},
{200 , 984 },
{250 , 920 },
{300 , 861 },
{350 , 806 },
{400 , 757 },
{450 , 712 },
{500 , 673 },
{550 , 638 },
{600 , 607 },
{650 , 580 },
{700 , 557 },
{750 , 537 },
{800 , 519 },
{850 , 504 },
{900 , 490 },
{950 , 479 },
{1000, 468 },
{1050, 460 },
{1100, 452 },
{1150, 445 },
{1200, 439 },
{1250, 434 },
};