可以通过dts设定charger相关信息,比如充电电流,充电截止电流,不同温度充电温控策略等。
charger-manager节点
charger-manager {
compatible = "charger-manager";
cm-name = "battery";
cm-poll-mode = <2>; //“_cm_monitor”轮询模式
cm-poll-interval = <15000>; //“_cm_monitor”轮询时间间隔
cm-battery-stat = <2>; //电池在位检测方法,电压法
cm-fullbatt-vchkdrop-ms = <30000>; //充满电后,检查复充条件的周期
cm-fullbatt-vchkdrop-volt = <60000>;//满电后复充电压条件
cm-fullbatt-voltage = <4350000>;//软件满电电压判断阈值,必须配置
cm-fullbatt-current = <120000>;//软件满电电流判断阈值,必须配置
cm-fullbatt-capacity = <100>;//电池满电时百分比
cm-num-chargers = <1>;//charger ic数量
cm-chargers = "fan54015_charger";//charger ic名字
cm-fuel-gauge = "sc27xx-fgu";//fgu名字
/* in deci centigrade */
cm-battery-cold = <200>; //电池温度CM_EVENT_BATT_COLD阈值
cm-battery-cold-in-minus; //负温标志
cm-battery-hot = <800>; //电池温度CM_EVENT_BATT_OVERHEAT阈值
cm-battery-temp-diff = <100>; //修正异常时COLD 和 OVERHEAT阈值
/* Allow charging for 6hr */
cm-charging-max = <21600000>; //允许连续充电的最长时间
/* recovery charging after stop charging 45min */
cm-discharging-max = <2700000>; //停充后,如果插着充电器,允许复充时间
/* the interval to feed charger watchdog */
cm-wdt-interval = <60>; //feed watchdog周期,同时也是开启feedwatchdog的开关
/* drop voltage in microVolts to allow shutdown */
cm-shutdown-voltage = <3100000>; //uvlo电压阈值
/* when 99% of the time is exceeded, it will be forced to 100% */
cm-tickle-time-out = <1500>; //电量维持在99% 15分钟后跳到100%
/* how much time to allow capacity change */
cm-one-cap-time = <30>; //允许电量增加1%最快时间
/* when the safe charging voltage is exceeded, stop charging */
cm-charge-voltage-max = <6500000>; //充电器过压保护电压阈值
/* drop voltage in microVolts to restart charging */
cm-charge-voltage-drop = <700000>;//复充电压条件
cm-dcp-jeita-temp-table = <1000 1030 0 4400000>, <1150 1180 700000 4400000>,
<1450 1420 1150000 4400000>, <1600 1570 700000 4100000>;
cm-sdp-jeita-temp-table = <1000 1030 0 4400000>, <1150 1180 500000 4400000>,
<1450 1420 500000 4400000>, <1600 1570 500000 4100000>;
cm-cdp-jeita-temp-table = <1000 1030 0 4400000>, <1150 1180 700000 4400000>,
<1450 1420 1150000 4400000>, <1600 1570 700000 4100000>;
cm-unknown-jeita-temp-table = <1000 1030 0 4400000>, <1150 1180 500000 4400000>,
<1450 1420 500000 4400000>, <1600 1570 500000 4100000>;
monitored-battery = <&bat>; //电池参数信息,容量自学习必须
cm-capacity-track; //容量自学习开关
cm-cap-remap-table = <1 2 3>, <2 3 2>, <98 99 2>, <99 100 3>; //电量再分配
regulator@0 {
cm-regulator-name = "vddgen0";
cable@0 {
cm-cable-name = "USB";
extcon = <&PMIC_typec>;
};
};
};
Charger IC节点
sc2703_pmic: pmic@4C {
compatible = "sprd,sc2703";
reg = <0x4c>;
sc2703-charger {
compatible = "sprd,sc2703-charger";
phys = <&ssphy>;
monitored-battery = <&bat>;
extcon = <&pmic_typec>;
sprd,long-key-detection;
vddvbus:otg-vbus {
regulator-name = "vddvbus";
};
};
};