If the alarm is triggered before the driver gets probed, the alarm interrupt will be missed and it won't be detected, so clear the stale interrupt in probe. Changes in v3: *clear the interrupt in driver probe Changes in v2: *Adapt the V1 patch according to the newest rtc-pm8xxx link to v2: https://lore.kernel.org/linux-rtc/20240124024023df15ef6e@mail.local/ Changes in v1: *During driver probe: read ALARM_EN, read ALARM_DATA, read RTC_RDATA, if (ALARM_DATA < RTC_DATA), Trigger the alarm event and clear the alarm settins Link to v1:https://lore.kernel.org/linux-rtc/20220321090514.4523-1-quic_jianbinz@xxxxxxxxxxx/ Changes in original: link to original: https://lore.kernel.org/linux-rtc/YTusgJlMUdXOKQaL@xxxxxxxxx/ Signed-off-by: jianbinz <quic_jianbinz@xxxxxxxxxxx> --- drivers/rtc/rtc-pm8xxx.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/rtc/rtc-pm8xxx.c b/drivers/rtc/rtc-pm8xxx.c index f6b779c12ca7..1b5a96924e57 100644 --- a/drivers/rtc/rtc-pm8xxx.c +++ b/drivers/rtc/rtc-pm8xxx.c @@ -527,6 +527,10 @@ static int pm8xxx_rtc_probe(struct platform_device *pdev) if (rc) return rc; + rc = regmap_update_bits(rtc_dd->regmap, rtc_dd->regs->alarm_ctrl2, PM8xxx_RTC_ALARM_CLEAR, 1); + if (rc) + return rc; + return 0; } -- 2.17.1