summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2017-04-15 23:11:11 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-04-15 23:11:11 -0700
commit9b3e8a81dcee1d1b92db6429f9abd83cc22c01f4 (patch)
treef2645f4f98df16c8fdaf5e2b45e0feb69bfb1ffd
parentaf5e331c32a8a787aa2c847a10f399139bebe7e3 (diff)
parentd288491f1b5a3288fd2a11a23e7e654ce54c70a9 (diff)
Merge "qcom: smb2: ensure QC adapter is at 5V at shutdown"
-rw-r--r--drivers/power/supply/qcom/qpnp-smb2.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/power/supply/qcom/qpnp-smb2.c b/drivers/power/supply/qcom/qpnp-smb2.c
index ea36103700e7..c7d6937bcc49 100644
--- a/drivers/power/supply/qcom/qpnp-smb2.c
+++ b/drivers/power/supply/qcom/qpnp-smb2.c
@@ -2046,6 +2046,16 @@ static int smb2_request_interrupts(struct smb2 *chip)
return rc;
}
+static void smb2_disable_interrupts(struct smb_charger *chg)
+{
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(smb2_irqs); i++) {
+ if (smb2_irqs[i].irq > 0)
+ disable_irq(smb2_irqs[i].irq);
+ }
+}
+
#if defined(CONFIG_DEBUG_FS)
static int force_batt_psy_update_write(void *data, u64 val)
@@ -2308,6 +2318,9 @@ static void smb2_shutdown(struct platform_device *pdev)
struct smb2 *chip = platform_get_drvdata(pdev);
struct smb_charger *chg = &chip->chg;
+ /* disable all interrupts */
+ smb2_disable_interrupts(chg);
+
/* configure power role for UFP */
smblib_masked_write(chg, TYPE_C_INTRPT_ENB_SOFTWARE_CTRL_REG,
TYPEC_POWER_ROLE_CMD_MASK, UFP_EN_CMD_BIT);