From bf8f9b9fd0d836bba72a9bd1938bec306f680fe8 Mon Sep 17 00:00:00 2001 From: xuwt2 Date: Tue, 18 Apr 2023 21:08:30 +0800 Subject: [PATCH] sc760x_charger_mmi: Update sc760x_en to psy_property 1, fixed kernel warning for irq balance 2, update sc760x_en to psy_property Change-Id: I4ffbd0dd17891b0f623c7f922f687888d9c3ac2b Signed-off-by: xuwt2 Reviewed-on: https://gerrit.mot.com/2580762 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: litong Reviewed-by: Guobin Zhang Submit-Approved: Jira Key --- .../sc760x_charger_mmi/sc760x_charger_mmi.c | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/drivers/power/sc760x_charger_mmi/sc760x_charger_mmi.c b/drivers/power/sc760x_charger_mmi/sc760x_charger_mmi.c index e41034fabf63..8b5b5309ceb8 100644 --- a/drivers/power/sc760x_charger_mmi/sc760x_charger_mmi.c +++ b/drivers/power/sc760x_charger_mmi/sc760x_charger_mmi.c @@ -763,6 +763,7 @@ static enum power_supply_property sc760x_power_supply_props[] = { POWER_SUPPLY_PROP_ONLINE, POWER_SUPPLY_PROP_HEALTH, POWER_SUPPLY_PROP_VOLTAGE_NOW, + POWER_SUPPLY_PROP_VOLTAGE_MAX, POWER_SUPPLY_PROP_CURRENT_NOW, POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT, POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT_MAX, @@ -770,6 +771,7 @@ static enum power_supply_property sc760x_power_supply_props[] = { POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT, POWER_SUPPLY_PROP_CHARGE_TYPE, POWER_SUPPLY_PROP_USB_TYPE, + POWER_SUPPLY_PROP_TEMP, POWER_SUPPLY_PROP_PRESENT }; @@ -899,26 +901,40 @@ static int sc760x_charger_get_property(struct power_supply *psy, break; case POWER_SUPPLY_PROP_ONLINE: + val->intval = sc760x_is_enabled_charging(sc); + case POWER_SUPPLY_PROP_PRESENT: - val->intval = state.usb_online; + val->intval = sc->sc760x_enable; break; + case POWER_SUPPLY_PROP_TYPE: val->intval = sc760x_power_supply_desc.type; break; + case POWER_SUPPLY_PROP_USB_TYPE: val->intval = get_charger_type(sc); break; case POWER_SUPPLY_PROP_HEALTH: - val->intval = POWER_SUPPLY_HEALTH_GOOD; + break; + case POWER_SUPPLY_PROP_VOLTAGE_NOW: + val->intval = state.vbat_adc; + break; + + case POWER_SUPPLY_PROP_VOLTAGE_MAX: val->intval = state.vchg_adc; break; + case POWER_SUPPLY_PROP_TEMP: + val->intval = state.tdie_adc; + break; + case POWER_SUPPLY_PROP_CURRENT_NOW: val->intval = state.ibat_adc; break; + case POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT: val->intval = sc->curr_thermal_level; break; @@ -1184,8 +1200,6 @@ static int sc760x_register_interrupt(struct sc760x_chip *sc, struct i2c_client * return ret; } - disable_irq_wake(client->irq); - disable_irq(client->irq); sc->irq_enabled = false; sc->irq = client->irq; dev_err(sc->dev, "request thread irq success\n");