Merge "qpnp-smb2: update AICL rerun logic for PM660"
This commit is contained in:
commit
21dd810c7c
1 changed files with 10 additions and 30 deletions
|
@ -1889,38 +1889,18 @@ int smblib_rerun_aicl(struct smb_charger *chg)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
smblib_dbg(chg, PR_MISC, "re-running AICL\n");
|
smblib_dbg(chg, PR_MISC, "re-running AICL\n");
|
||||||
switch (chg->smb_version) {
|
rc = smblib_get_charge_param(chg, &chg->param.icl_stat,
|
||||||
case PMI8998_SUBTYPE:
|
&settled_icl_ua);
|
||||||
rc = smblib_get_charge_param(chg, &chg->param.icl_stat,
|
if (rc < 0) {
|
||||||
&settled_icl_ua);
|
smblib_err(chg, "Couldn't get settled ICL rc=%d\n", rc);
|
||||||
if (rc < 0) {
|
return rc;
|
||||||
smblib_err(chg, "Couldn't get settled ICL rc=%d\n", rc);
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
vote(chg->usb_icl_votable, AICL_RERUN_VOTER, true,
|
|
||||||
max(settled_icl_ua - chg->param.usb_icl.step_u,
|
|
||||||
chg->param.usb_icl.step_u));
|
|
||||||
vote(chg->usb_icl_votable, AICL_RERUN_VOTER, false, 0);
|
|
||||||
break;
|
|
||||||
case PM660_SUBTYPE:
|
|
||||||
/*
|
|
||||||
* Use restart_AICL instead of trigger_AICL as it runs the
|
|
||||||
* complete AICL instead of starting from the last settled
|
|
||||||
* value.
|
|
||||||
*/
|
|
||||||
rc = smblib_masked_write(chg, CMD_HVDCP_2_REG,
|
|
||||||
RESTART_AICL_BIT, RESTART_AICL_BIT);
|
|
||||||
if (rc < 0)
|
|
||||||
smblib_err(chg, "Couldn't write to CMD_HVDCP_2_REG rc=%d\n",
|
|
||||||
rc);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
smblib_dbg(chg, PR_PARALLEL, "unknown SMB chip %d\n",
|
|
||||||
chg->smb_version);
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vote(chg->usb_icl_votable, AICL_RERUN_VOTER, true,
|
||||||
|
max(settled_icl_ua - chg->param.usb_icl.step_u,
|
||||||
|
chg->param.usb_icl.step_u));
|
||||||
|
vote(chg->usb_icl_votable, AICL_RERUN_VOTER, false, 0);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue