From e7288c181ab9d105c75e914569651f18dc73d413 Mon Sep 17 00:00:00 2001 From: chailu1 Date: Thu, 17 Jun 2021 17:14:37 +0800 Subject: [PATCH] CP:Add switch enable detect function charge pump driver add charge pump switch detect function Porting from https://gerrit.mot.com/#/c/1968869/ Change-Id: I0210e3bc0ee48d8e27b24c2243a7c5e3426a927c Signed-off-by: chailu1 Reviewed-on: https://gerrit.mot.com/1982428 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Haijian Ma Reviewed-by: Huosheng Liao Submit-Approved: Jira Key --- drivers/power/mmi_sc8549/mmi_sc8549.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/power/mmi_sc8549/mmi_sc8549.c b/drivers/power/mmi_sc8549/mmi_sc8549.c index aec180a74d70..e97e9fc55117 100644 --- a/drivers/power/mmi_sc8549/mmi_sc8549.c +++ b/drivers/power/mmi_sc8549/mmi_sc8549.c @@ -60,6 +60,7 @@ enum { #define MMI_BUS_OCP_FAULT_BIT 10 #define MMI_SS_TIMEOUT_FAULT_BIT 16 #define MMI_TS_SHUT_FAULT_BIT 17 +#define MMI_CP_SWITCH_BIT 18 #define MMI_BAT_OVP_FAULT_MASK (1 << MMI_BAT_OVP_FAULT_BIT) #define MMI_BAT_OCP_FAULT_MASK (1 << MMI_BAT_OCP_FAULT_BIT) @@ -67,6 +68,7 @@ enum { #define MMI_BUS_OCP_FAULT_MASK (1 << MMI_BUS_OCP_FAULT_BIT) #define MMI_SS_TIMEOUT_FAULT_MASK (1 << MMI_SS_TIMEOUT_FAULT_BIT) #define MMI_TS_SHUT_FAULT_MASK (1 << MMI_TS_SHUT_FAULT_BIT) +#define MMI_CP_SWITCH_MASK (1 << MMI_CP_SWITCH_BIT) #define sc_err(fmt, ...) \ do { \ @@ -156,6 +158,7 @@ struct sc8549 { bool bus_ocp_fault; bool ss_timeout_fault; bool ts_shut_fault; + bool cp_switch; bool vbat_reg; bool ibat_reg; @@ -1237,6 +1240,8 @@ static void sc8549_check_fault_status(struct sc8549 *sc) sc->ts_shut_fault = !!(stat & SC8549_TSHUT_FLAG_MASK); if (stat & SC8549_SS_TIMEOUT_FLAG_MASK) sc->ss_timeout_fault = !!(stat & SC8549_SS_TIMEOUT_FLAG_MASK); + if (stat & SC8549_CONV_SWITCHING_STAT_MASK) + sc->cp_switch = !!(stat & SC8549_CONV_SWITCHING_STAT_MASK); } ret = sc8549_read_byte(sc, SC8549_REG_0F, &flag); @@ -1426,7 +1431,8 @@ static int sc8549_iio_read_raw(struct iio_dev *indio_dev, | (chip->bus_ovp_fault << MMI_BUS_OVP_FAULT_BIT) | (chip->bus_ocp_fault << MMI_BUS_OCP_FAULT_BIT) | (chip->ss_timeout_fault << MMI_SS_TIMEOUT_FAULT_BIT) - | (chip->ts_shut_fault << MMI_TS_SHUT_FAULT_BIT); + | (chip->ts_shut_fault << MMI_TS_SHUT_FAULT_BIT) + | (chip->cp_switch << MMI_CP_SWITCH_BIT); break; default: sc_err("Unsupported sc8549 IIO chan %d\n", chan->channel);