rtc: m41t80: fix SQWE override when setting an alarm
authorGary Bisson <gary.bisson@boundarydevices.com>
Tue, 25 Apr 2017 14:45:14 +0000 (16:45 +0200)
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>
Wed, 31 May 2017 07:17:02 +0000 (09:17 +0200)
Currently setting an alarm clears the SQWE bit which means that the
clock output is disabled no matter its previous state.

Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
drivers/rtc/rtc-m41t80.c

index 5ec4653..b074964 100644 (file)
@@ -332,6 +332,9 @@ static int m41t80_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
                return err;
        }
 
+       /* Keep SQWE bit value */
+       alarmvals[0] |= (ret & M41T80_ALMON_SQWE);
+
        ret = i2c_smbus_read_byte_data(client, M41T80_REG_FLAGS);
        if (ret < 0)
                return ret;