Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6df085ce authored by David Keitel's avatar David Keitel
Browse files

power: qpnp-charger: check for reverse boost on probe



The accidental reverse boost scenario may occur
before probe.

Fix this by checking the CHG_GONE interrupt status
on probe and running the ARB workaround if necessary.

Change-Id: I6ecc0d5796e7fdacdf61c62eeb14523061a51605
Signed-off-by: default avatarDavid Keitel <dkeitel@codeaurora.org>
parent 5caca646
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -1190,9 +1190,16 @@ static irqreturn_t
qpnp_chg_usb_chg_gone_irq_handler(int irq, void *_chip)
{
	struct qpnp_chg_chip *chip = _chip;
	u8 usb_sts;
	int rc;

	rc = qpnp_chg_read(chip, &usb_sts,
			INT_RT_STS(chip->usb_chgpth_base), 1);
	if (rc)
		pr_err("failed to read usb_chgpth_sts rc=%d\n", rc);

	pr_debug("chg_gone triggered\n");
	if (qpnp_chg_is_usb_chg_plugged_in(chip)) {
	if (qpnp_chg_is_usb_chg_plugged_in(chip) && (usb_sts & CHG_GONE_IRQ)) {
		qpnp_chg_charge_en(chip, 0);
		qpnp_chg_force_run_on_batt(chip, 1);
		schedule_delayed_work(&chip->arb_stop_work,
@@ -4731,6 +4738,7 @@ qpnp_charger_probe(struct spmi_device *spmi)
		goto unregister_dc_psy;
	}

	qpnp_chg_usb_chg_gone_irq_handler(chip->chg_gone.irq, chip);
	qpnp_chg_usb_usbin_valid_irq_handler(chip->usbin_valid.irq, chip);
	qpnp_chg_dc_dcin_valid_irq_handler(chip->dcin_valid.irq, chip);
	power_supply_set_present(chip->usb_psy,