From 76e4591f9222b8ad5653492e2e04be6f2254fdb3 Mon Sep 17 00:00:00 2001 From: xuwei9 Date: Thu, 8 Jul 2021 19:53:39 +0800 Subject: [PATCH] parallel:init thermal parameter at high temp At high temp conditon. thermal level was 4 at begining. the thermal parameter was not initialized. Change-Id: I787cfeb6c2ab1695a90496ba0c08e0ce4c17fffc Signed-off-by: xuwei9 Reviewed-on: https://gerrit.mot.com/2006952 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Xiangpo Zhao Submit-Approved: Jira Key --- drivers/power/mmi_parallel_charger/mmi_charger_core.c | 5 ++--- .../power/mmi_parallel_charger/mmi_charger_pump_policy.c | 9 ++++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/power/mmi_parallel_charger/mmi_charger_core.c b/drivers/power/mmi_parallel_charger/mmi_charger_core.c index 7623ec03de74..090159e5e558 100644 --- a/drivers/power/mmi_parallel_charger/mmi_charger_core.c +++ b/drivers/power/mmi_parallel_charger/mmi_charger_core.c @@ -1782,11 +1782,10 @@ static int mmi_chrg_manager_parse_dt(struct mmi_charger_manager *chip) } } - rc = of_property_read_u32(node, + chip->afvc_volt_comp = 0; + of_property_read_u32(node, "mmi,afvc_enable_compensation_uv", &chip->afvc_volt_comp); - if (rc < 0) - chip->afvc_volt_comp = 0; return rc; thermal_failed: devm_kfree(chip->dev,chip->thermal_mitigation); 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 a3415ed5f46f..932e1e33328b 100644 --- a/drivers/power/mmi_parallel_charger/mmi_charger_pump_policy.c +++ b/drivers/power/mmi_parallel_charger/mmi_charger_pump_policy.c @@ -1364,7 +1364,14 @@ schedule: mmi_chrg_info(chip, "Thermal is the highest, level %d, " "Force enter into single pmic charging !\n", chip->system_thermal_level); - + if(chip->pd_sys_therm_volt == 0) + chip->pd_sys_therm_volt = SWITCH_CHARGER_PPS_VOLT; + if(chip->pd_sys_therm_curr == 0) + chip->pd_sys_therm_curr = TYPEC_HIGH_CURRENT_UA; + if(chip->pd_batt_therm_volt == 0) + chip->pd_batt_therm_volt = SWITCH_CHARGER_PPS_VOLT; + if(chip->pd_batt_therm_curr == 0) + chip->pd_batt_therm_curr = TYPEC_HIGH_CURRENT_UA; } else if (chip->system_thermal_level > 0 && (sm_state == PM_STATE_CP_CC_LOOP || sm_state == PM_STATE_CP_CV_LOOP)) {