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

Commit d048966c authored by Mohit Aggarwal's avatar Mohit Aggarwal
Browse files

rtc-pm8xxx: Clear Alarm register on resume



Currently, alarm register is not cleared on resume
leading to reboot during power off charging mode.

Change-Id: Ie2e6bbab8aa46e4e9b9cc984181ffab557cbbdae
Signed-off-by: default avatarMohit Aggarwal <maggarwa@codeaurora.org>
parent 090c2c57
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -313,6 +313,7 @@ static int pm8xxx_rtc_alarm_irq_enable(struct device *dev, unsigned int enable)
	struct pm8xxx_rtc *rtc_dd = dev_get_drvdata(dev);
	const struct pm8xxx_rtc_regs *regs = rtc_dd->regs;
	unsigned int ctrl_reg;
	u8 value[NUM_8_BIT_RTC_REGS] = {0};

	spin_lock_irqsave(&rtc_dd->ctrl_reg_lock, irq_flags);

@@ -331,6 +332,16 @@ static int pm8xxx_rtc_alarm_irq_enable(struct device *dev, unsigned int enable)
		goto rtc_rw_fail;
	}

	/* Clear Alarm register */
	if (!enable) {
		rc = regmap_bulk_write(rtc_dd->regmap, regs->alarm_rw, value,
					sizeof(value));
		if (rc) {
			dev_err(dev, "Write to RTC ALARM register failed\n");
			goto rtc_rw_fail;
		}
	}

rtc_rw_fail:
	spin_unlock_irqrestore(&rtc_dd->ctrl_reg_lock, irq_flags);
	return rc;