From 3d6bd1a65a80f0887fa1fb7aed9d7ed74e42cade Mon Sep 17 00:00:00 2001 From: Ryan Lattrel Date: Mon, 17 Feb 2020 16:56:32 -0600 Subject: [PATCH] qpnp-smbcharger-mmi: Add POWER_SUPPLY_PROP_HOT_TEMP prop Add POWER_SUPPLY_PROP_HOT_TEMP property, which will be set to 1 if we are either too hot to charge or in the highest temp zone. Otherwise report 0. Change-Id: I67495fad2da2e30bc99e6ac5629d918d63d917ee Signed-off-by: Ryan Lattrel Reviewed-on: https://gerrit.mot.com/1499274 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Cesar Augusto Marcelino dos Santos Reviewed-by: Ling Jin Submit-Approved: Jira Key --- .../qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c b/drivers/power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c index 6f91cae5bae5..97c4743001d3 100644 --- a/drivers/power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c +++ b/drivers/power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c @@ -3372,6 +3372,7 @@ static enum power_supply_property batt_props[] = { POWER_SUPPLY_PROP_RECHARGE_SOC, POWER_SUPPLY_PROP_CHARGE_FULL, POWER_SUPPLY_PROP_FCC_STEPPER_ENABLE, + POWER_SUPPLY_PROP_HOT_TEMP, }; static int batt_get_prop(struct power_supply *psy, @@ -3426,6 +3427,23 @@ static int batt_get_prop(struct power_supply *psy, val->intval = -EINVAL; } break; + case POWER_SUPPLY_PROP_HOT_TEMP: + if (chip->max_main_psy && chip->max_flip_psy) { + if (chip->sm_param[MAIN_BATT].pres_temp_zone == + (chip->sm_param[MAIN_BATT].num_temp_zones - 1) || + chip->sm_param[MAIN_BATT].pres_temp_zone == ZONE_HOT) + val->intval = 1; + else if (chip->sm_param[FLIP_BATT].pres_temp_zone == + (chip->sm_param[FLIP_BATT].num_temp_zones - 1) || + chip->sm_param[FLIP_BATT].pres_temp_zone == ZONE_HOT) + val->intval = 1; + } else if (chip->sm_param[BASE_BATT].pres_temp_zone == + (chip->sm_param[BASE_BATT].num_temp_zones - 1) || + chip->sm_param[BASE_BATT].pres_temp_zone == ZONE_HOT) + val->intval = 1; + else + val->intval = 0; + break; case POWER_SUPPLY_PROP_TEMP: if (chip->max_main_psy && chip->max_flip_psy) { union power_supply_propval main_psy_val;