From c196a36ca714a0beba294eb70f014f2fb2ea4f82 Mon Sep 17 00:00:00 2001 From: weiweij Date: Tue, 12 Apr 2022 14:44:06 +0800 Subject: [PATCH] wls: add wls online status judgment Adding wls online status jdgment interface. And implement power_supply/online property. Change-Id: I9ccae66646783e73248396cf5d012116da493085 Reviewed-on: https://gerrit.mot.com/2239691 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Huosheng Liao Submit-Approved: Jira Key --- .../cps4019_wls_charger/cps4019_wls_charger.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/power/cps4019_wls_charger/cps4019_wls_charger.c b/drivers/power/cps4019_wls_charger/cps4019_wls_charger.c index 8cacdee7be43..b89a1f1baed4 100644 --- a/drivers/power/cps4019_wls_charger/cps4019_wls_charger.c +++ b/drivers/power/cps4019_wls_charger/cps4019_wls_charger.c @@ -143,6 +143,7 @@ typedef enum CPS_REG_CHIP_ID, CPS_REG_FW_MAJOR_REV, CPS_REG_FW_MINOR_REV, + CPS_REG_STATUS, CPS_REG_INT, CPS_REG_INT_ENABLE, CPS_REG_INT_CLEAR, @@ -167,6 +168,7 @@ cps_reg_s cps_reg_cfg[CPS_REG_MAX] = { {CPS_REG_CHIP_ID, 2, 0x0000}, {CPS_REG_FW_MAJOR_REV, 2, 0x0002}, {CPS_REG_FW_MINOR_REV, 2, 0x0004}, + {CPS_REG_STATUS, 2, 0x0007}, {CPS_REG_INT, 2, 0x0022}, {CPS_REG_INT_ENABLE, 2, 0x0024}, {CPS_REG_INT_CLEAR, 2, 0x0026}, @@ -984,6 +986,19 @@ static int cps_wls_get_vout(void) return cps_wls_read_reg((int)cps_reg->reg_addr, (int)cps_reg->reg_bytes_len); } +static int cps_wls_get_state(void) +{ + cps_reg_s *cps_reg; + + cps_reg = (cps_reg_s*)(&cps_reg_cfg[CPS_REG_STATUS]); + return cps_wls_read_reg(cps_reg->reg_addr, (int)cps_reg->reg_bytes_len); +} + +static bool cps_wls_get_vout_state(void) +{ + return !!(cps_wls_get_state() & (1<<6)); +} + static int cps_wls_get_die_tmp(void) { cps_reg_s *cps_reg; @@ -1125,7 +1140,7 @@ static int cps_wls_chrg_get_property(struct power_supply *psy, int ret = 0; switch(psp) { case POWER_SUPPLY_PROP_ONLINE: - val->intval = 0; + val->intval = cps_wls_get_vout_state(); break; /* case POWER_SUPPLY_PROP_VRECT: