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;
|
||||
|
||||
smblib_dbg(chg, PR_MISC, "re-running AICL\n");
|
||||
switch (chg->smb_version) {
|
||||
case PMI8998_SUBTYPE:
|
||||
rc = smblib_get_charge_param(chg, &chg->param.icl_stat,
|
||||
&settled_icl_ua);
|
||||
if (rc < 0) {
|
||||
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;
|
||||
rc = smblib_get_charge_param(chg, &chg->param.icl_stat,
|
||||
&settled_icl_ua);
|
||||
if (rc < 0) {
|
||||
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);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue