From 2c0fe1760efe122569cba0be5c3c8f394f556c05 Mon Sep 17 00:00:00 2001 From: xuwei9 Date: Fri, 10 Dec 2021 16:36:17 +0800 Subject: [PATCH] FG:dynamic config sns resistance Dynamic config sns resistance and update current every reading. Change-Id: If89865e2a3149b74620229f56ec7fbd104db5a3d Signed-off-by: xuwei9 Reviewed-on: https://gerrit.mot.com/2140931 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Xiangpo Zhao Submit-Approved: Jira Key --- .../power/cw2217b_fg_mmi/cw2217B_fuel_gauge_base.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/power/cw2217b_fg_mmi/cw2217B_fuel_gauge_base.c b/drivers/power/cw2217b_fg_mmi/cw2217B_fuel_gauge_base.c index 7342f0bb3c48..77d82ef0a6ea 100644 --- a/drivers/power/cw2217b_fg_mmi/cw2217B_fuel_gauge_base.c +++ b/drivers/power/cw2217b_fg_mmi/cw2217B_fuel_gauge_base.c @@ -133,6 +133,7 @@ struct cw_battery { int fcc_design; int fcc; int ui_full; + int sense_r_mohm; #if 0 long stb_current; #endif @@ -417,7 +418,8 @@ static int cw_get_current(struct cw_battery *cw_bat) current_reg = (reg_val[0] << 8) + reg_val[1]; cw_current = get_complement_code(current_reg); - cw_current = cw_current * 160 * 1000 / USER_RSENSE / 100; +// cw_current = cw_current * 160 * 1000 / USER_RSENSE / 100; + cw_current = cw_current * 160 * 1000 / cw_bat->sense_r_mohm / 100; cw_bat->cw_current = cw_current; return 0; @@ -792,6 +794,12 @@ static int cw_parse_dts(struct cw_battery *cw_bat) struct device_node *batt_profile_node = NULL; int rc; + rc = of_property_read_u32(np, "sense_r_mohm", &cw_bat->sense_r_mohm); + if(rc < 0) + cw_bat->sense_r_mohm = USER_RSENSE; + else + cw_bat->sense_r_mohm *= 1000; + batt_profile_node = cw_get_profile_by_serialnumber(np); if (!batt_profile_node) return -1; @@ -876,6 +884,7 @@ static int cw_battery_get_property(struct power_supply *psy, val->intval = cw_bat->voltage * CW_VOL_UNIT; break; case POWER_SUPPLY_PROP_CURRENT_NOW: + cw_get_current(cw_bat); val->intval = cw_bat->cw_current * CW_CUR_UNIT * (-1); break; case POWER_SUPPLY_PROP_TECHNOLOGY: