power: qpnp-charger: Avoid override USBIN_COMP in reverse boost for SMBBP
When SMBBP working at reverse boost mode with a charger connected, USBIN
comparator can be used to turn off the OVP FET and trigger an USBIN_VALID
IRQ to detect the charger removal.
Avoid overriding USBIN comparator when SMBBP working at reverse boost
mode, to ensure the charger insertion and removal can be detected.
Change-Id: If705bc5cb7132ab2ce9b97ac4b887a4cdc201b52
Signed-off-by: Fenglin Wu <fenglinw@codeaurora.org>
diff --git a/drivers/power/qpnp-charger.c b/drivers/power/qpnp-charger.c
index 3029744..af16e9d 100644
--- a/drivers/power/qpnp-charger.c
+++ b/drivers/power/qpnp-charger.c
@@ -3407,14 +3407,15 @@
pr_err("failed to write SEC_ACCESS rc=%d\n", rc);
return rc;
}
-
- rc = qpnp_chg_masked_write(chip,
- chip->usb_chgpth_base + COMP_OVR1,
- 0xFF,
- 0x2F, 1);
- if (rc) {
- pr_err("failed to write COMP_OVR1 rc=%d\n", rc);
- return rc;
+ if (chip->type != SMBBP) {
+ rc = qpnp_chg_masked_write(chip,
+ chip->usb_chgpth_base + COMP_OVR1,
+ 0xFF,
+ 0x2F, 1);
+ if (rc) {
+ pr_err("failed to write COMP_OVR1 rc=%d\n", rc);
+ return rc;
+ }
}
}
@@ -3513,16 +3514,16 @@
pr_err("failed to write SEC_ACCESS rc=%d\n", rc);
return rc;
}
-
- rc = qpnp_chg_masked_write(chip,
- chip->usb_chgpth_base + COMP_OVR1,
- 0xFF,
- 0x00, 1);
- if (rc) {
- pr_err("failed to write COMP_OVR1 rc=%d\n", rc);
- return rc;
+ if (chip->type != SMBBP) {
+ rc = qpnp_chg_masked_write(chip,
+ chip->usb_chgpth_base + COMP_OVR1,
+ 0xFF,
+ 0x00, 1);
+ if (rc) {
+ pr_err("failed to write COMP_OVR1 rc=%d\n", rc);
+ return rc;
+ }
}
-
usleep(1000);
qpnp_chg_usb_suspend_enable(chip, 0);