diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2017-04-15 23:11:11 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-04-15 23:11:11 -0700 |
| commit | 9b3e8a81dcee1d1b92db6429f9abd83cc22c01f4 (patch) | |
| tree | f2645f4f98df16c8fdaf5e2b45e0feb69bfb1ffd | |
| parent | af5e331c32a8a787aa2c847a10f399139bebe7e3 (diff) | |
| parent | d288491f1b5a3288fd2a11a23e7e654ce54c70a9 (diff) | |
Merge "qcom: smb2: ensure QC adapter is at 5V at shutdown"
| -rw-r--r-- | drivers/power/supply/qcom/qpnp-smb2.c | 13 |
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); |
