rtc: pcf2123: don't use weekday alarm
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Mon, 19 Aug 2019 18:26:48 +0000 (20:26 +0200)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Tue, 20 Aug 2019 19:42:03 +0000 (21:42 +0200)
The week day may not be set properly by userspace. This would result is
missed alarms. Disable alarm matching on weekday.

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/20190819182656.29744-1-alexandre.belloni@bootlin.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-pcf2123.c

index fb542a930bf0ea00038c807306afcf17137c360c..5f604d83289cbe0eccdbe0b395762a02b94cc661 100644 (file)
@@ -82,7 +82,7 @@
 #define OSC_HAS_STOPPED                BIT(7)  /* Clock has been stopped */
 
 /* PCF2123_REG_ALRM_XX BITS */
-#define ALRM_ENABLE            BIT(7)  /* MN, HR, DM, or DW alarm enable */
+#define ALRM_DISABLE           BIT(7)  /* MN, HR, DM, or DW alarm matching */
 
 /* PCF2123_REG_TMR_CLKOUT BITS */
 #define CD_TMR_4096KHZ         (0)     /* 4096 KHz countdown timer */
@@ -288,7 +288,7 @@ static int pcf2123_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm)
        txbuf[0] = bin2bcd(alm->time.tm_min & 0x7F);
        txbuf[1] = bin2bcd(alm->time.tm_hour & 0x3F);
        txbuf[2] = bin2bcd(alm->time.tm_mday & 0x3F);
-       txbuf[3] = bin2bcd(alm->time.tm_wday & 0x07);
+       txbuf[3] = ALRM_DISABLE;
 
        ret = regmap_bulk_write(pdata->map, PCF2123_REG_ALRM_MN, txbuf,
                                sizeof(txbuf));