add reset charger pump cmd during power down

Some pump ic's register do not reset to defaul value after shutdown
for example cps2023, if acdrv mos set to manual mode and
Usb mos at off status. phone can not boot up by cable.
Reset register after power down for this case.

Change-Id: I2749c185f6504ccf7352238d686d7b77688b725c
Signed-off-by: xuwei9 <xuwei9@lenovo.com>
Reviewed-on: https://gerrit.mot.com/2779131
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 2023-10-27 18:03:21 +08:00 • committed by Wei Xu
commit d3c84c683b
2 changed files with 32 additions and 0 deletions

View file

@ -2814,6 +2814,36 @@ static int qti_charger_init(struct qti_charger *chg)
return 0;
}
bool qti_charger_reset_chargepump(struct qti_charger *chg)
{
unsigned long reset = 0x1;
int rc ;
if(!chg) {
pr_err("QTI: chip not valid");
return false;
}
rc = qti_charger_write(chg, OEM_PROP_MASTER_SWITCHEDCAP_RESET, &reset, sizeof(reset));
if(rc) {
mmi_err(chg, "qit charger reset charger pump register fail:%d\n", rc);
}
return true;
}
static void qti_charger_shutdown(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
struct qti_charger *chg= dev_get_drvdata(dev);
//reset charger pump register before shutdown.
qti_charger_reset_chargepump(chg);
mmi_info(chg, "qti_charger_shutdown\n");
return;
}
static void qti_charger_deinit(struct qti_charger *chg)
{
int rc;
@ -3096,6 +3126,7 @@ static struct platform_driver qti_charger_driver = {
},
.probe = qti_charger_probe,
.remove = qti_charger_remove,
.shutdown = qti_charger_shutdown,
};
module_platform_driver(qti_charger_driver);

View file

@ -73,6 +73,7 @@ enum oem_property_type {
OEM_PROP_MSB_DEV_INFO,
OEM_PROP_MASTER_SWITCHEDCAP_INFO,
OEM_PROP_SLAVE_SWITCHEDCAP_INFO,
OEM_PROP_MASTER_SWITCHEDCAP_RESET,
OEM_PROP_MAX,
};