FG:dynamic config sns resistance

Dynamic config sns resistance
and update current every reading.

Change-Id: If89865e2a3149b74620229f56ec7fbd104db5a3d
Signed-off-by: xuwei9 <xuwei9@lenovo.com>
Reviewed-on: https://gerrit.mot.com/2140931
SLTApproved: Slta Waiver
SME-Granted: SME Approvals Granted
Tested-by: Jira Key
Reviewed-by: Xiangpo Zhao <zhaoxp3@motorola.com>
Submit-Approved: Jira Key
This commit is contained in:
xuwei9 2021-12-10 16:36:17 +08:00 committed by Wei Xu
parent 12f8745e98
commit 6b166ccc40

View file

@ -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: