From 63deb0de3cfc1dbe039e74f363ef1281bd4a372d Mon Sep 17 00:00:00 2001 From: mahj8 Date: Fri, 17 Apr 2020 17:31:30 +0800 Subject: [PATCH] dlkm: no need rerun aicl for odessa odessa don't need to rerun aicl for PMIC when switch to PMIC charging Change-Id: I87e74f3d64b7ecf163075Montana9fb056d20dc4583d Signed-off-by: mahj8 Reviewed-on: https://gerrit.mot.com/1536606 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Wentao Xu Reviewed-by: Lu Chai Reviewed-by: Huosheng Liao Submit-Approved: Jira Key Reviewed-on: https://gerrit.mot.com/1893605 Reviewed-by: Wei Xu Reviewed-by: Xiangpo Zhao --- .../mmi_parallel_charger/mmi_charger_core.c | 3 +++ .../mmi_parallel_charger/mmi_charger_core.h | 1 + .../mmi_charger_pump_policy.c | 20 +++++++++++-------- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/drivers/power/mmi_parallel_charger/mmi_charger_core.c b/drivers/power/mmi_parallel_charger/mmi_charger_core.c index 329b34fa6a1a..ce22e8a6eee0 100644 --- a/drivers/power/mmi_parallel_charger/mmi_charger_core.c +++ b/drivers/power/mmi_parallel_charger/mmi_charger_core.c @@ -1531,6 +1531,9 @@ static int mmi_chrg_manager_parse_dt(struct mmi_charger_manager *chip) chip->extrn_sense = of_property_read_bool(node, "mmi,extrn-sense"); + chip->dont_rerun_aicl= of_property_read_bool(node, + "mmi,dont-rerun-aicl"); + rc = of_property_read_u32(node, "mmi,pps-volt-steps", &chip->pps_volt_steps); diff --git a/drivers/power/mmi_parallel_charger/mmi_charger_core.h b/drivers/power/mmi_parallel_charger/mmi_charger_core.h index e4a84c287325..6f27c569b29f 100644 --- a/drivers/power/mmi_parallel_charger/mmi_charger_core.h +++ b/drivers/power/mmi_parallel_charger/mmi_charger_core.h @@ -197,6 +197,7 @@ struct mmi_charger_manager { const char *extrn_fg_name; bool extrn_sense; bool recovery_pmic_chrg; + bool dont_rerun_aicl; bool sys_therm_cooling; bool sys_therm_force_pmic_chrg; diff --git a/drivers/power/mmi_parallel_charger/mmi_charger_pump_policy.c b/drivers/power/mmi_parallel_charger/mmi_charger_pump_policy.c index a91f0fc53790..f2a4beb829be 100644 --- a/drivers/power/mmi_parallel_charger/mmi_charger_pump_policy.c +++ b/drivers/power/mmi_parallel_charger/mmi_charger_pump_policy.c @@ -615,10 +615,12 @@ static void mmi_chrg_sm_work_func(struct work_struct *work) chrg_list->chrg_dev[PMIC_SW]->charger_limited = false; } - mmi_chrg_info(chip, "Do an rerun usb AICL for PMIC-SW\n"); - mmi_enable_charging(chrg_list->chrg_dev[PMIC_SW], false); - msleep(100); - mmi_enable_charging(chrg_list->chrg_dev[PMIC_SW], true); + if (!chip->dont_rerun_aicl) { + mmi_chrg_info(chip, "Do an rerun usb AICL for PMIC-SW\n"); + mmi_enable_charging(chrg_list->chrg_dev[PMIC_SW], false); + msleep(100); + mmi_enable_charging(chrg_list->chrg_dev[PMIC_SW], true); + } mmi_chrg_info(chip, "Check all effective pdo info again\n"); usbpd_get_pdo_info(chip->pd_handle, chip->mmi_pdo_info); mmi_chrg_info(chip, "Select FIXED pdo for switch charging !\n"); @@ -1183,10 +1185,12 @@ static void mmi_chrg_sm_work_func(struct work_struct *work) DISABLE_CHRG_LIMIT); chrg_list->chrg_dev[PMIC_SW]->charger_limited = false; - mmi_chrg_info(chip,"Do an rerun usb AICL for PMIC-SW\n"); - mmi_enable_charging(chrg_list->chrg_dev[PMIC_SW], false); - msleep(100); - mmi_enable_charging(chrg_list->chrg_dev[PMIC_SW], true); + if (!chip->dont_rerun_aicl) { + mmi_chrg_info(chip,"Do an rerun usb AICL for PMIC-SW\n"); + mmi_enable_charging(chrg_list->chrg_dev[PMIC_SW], false); + msleep(100); + mmi_enable_charging(chrg_list->chrg_dev[PMIC_SW], true); + } chip->recovery_pmic_chrg = true; chrg_cv_taper_tunning_cnt = 0; }