Loading drivers/power/qpnp-charger.c +22 −1 Original line number Diff line number Diff line Loading @@ -1523,15 +1523,35 @@ qpnp_chg_usb_usbin_valid_irq_handler(int irq, void *_chip) return IRQ_HANDLED; } #define TEST_EN_SMBC_LOOP 0xE5 #define IBAT_REGULATION_DISABLE BIT(2) static irqreturn_t qpnp_chg_bat_if_batt_temp_irq_handler(int irq, void *_chip) { struct qpnp_chg_chip *chip = _chip; int batt_temp_good; int batt_temp_good, rc; batt_temp_good = qpnp_chg_is_batt_temp_ok(chip); pr_debug("batt-temp triggered: %d\n", batt_temp_good); rc = qpnp_chg_masked_write(chip, chip->buck_base + SEC_ACCESS, 0xFF, 0xA5, 1); if (rc) { pr_err("failed to write SEC_ACCESS rc=%d\n", rc); return rc; } rc = qpnp_chg_masked_write(chip, chip->buck_base + TEST_EN_SMBC_LOOP, IBAT_REGULATION_DISABLE, batt_temp_good ? 0 : IBAT_REGULATION_DISABLE, 1); if (rc) { pr_err("failed to write COMP_OVR1 rc=%d\n", rc); return rc; } pr_debug("psy changed batt_psy\n"); power_supply_changed(&chip->batt_psy); return IRQ_HANDLED; Loading Loading @@ -3893,6 +3913,7 @@ qpnp_chg_request_irqs(struct qpnp_chg_chip *chip) chip->batt_temp_ok.irq, rc); return rc; } qpnp_chg_bat_if_batt_temp_irq_handler(0, chip); enable_irq_wake(chip->batt_temp_ok.irq); Loading Loading
drivers/power/qpnp-charger.c +22 −1 Original line number Diff line number Diff line Loading @@ -1523,15 +1523,35 @@ qpnp_chg_usb_usbin_valid_irq_handler(int irq, void *_chip) return IRQ_HANDLED; } #define TEST_EN_SMBC_LOOP 0xE5 #define IBAT_REGULATION_DISABLE BIT(2) static irqreturn_t qpnp_chg_bat_if_batt_temp_irq_handler(int irq, void *_chip) { struct qpnp_chg_chip *chip = _chip; int batt_temp_good; int batt_temp_good, rc; batt_temp_good = qpnp_chg_is_batt_temp_ok(chip); pr_debug("batt-temp triggered: %d\n", batt_temp_good); rc = qpnp_chg_masked_write(chip, chip->buck_base + SEC_ACCESS, 0xFF, 0xA5, 1); if (rc) { pr_err("failed to write SEC_ACCESS rc=%d\n", rc); return rc; } rc = qpnp_chg_masked_write(chip, chip->buck_base + TEST_EN_SMBC_LOOP, IBAT_REGULATION_DISABLE, batt_temp_good ? 0 : IBAT_REGULATION_DISABLE, 1); if (rc) { pr_err("failed to write COMP_OVR1 rc=%d\n", rc); return rc; } pr_debug("psy changed batt_psy\n"); power_supply_changed(&chip->batt_psy); return IRQ_HANDLED; Loading Loading @@ -3893,6 +3913,7 @@ qpnp_chg_request_irqs(struct qpnp_chg_chip *chip) chip->batt_temp_ok.irq, rc); return rc; } qpnp_chg_bat_if_batt_temp_irq_handler(0, chip); enable_irq_wake(chip->batt_temp_ok.irq); Loading