diff options
Diffstat (limited to 'sys/dev/iicbus/rtc')
-rw-r--r-- | sys/dev/iicbus/rtc/pcf85063.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/sys/dev/iicbus/rtc/pcf85063.c b/sys/dev/iicbus/rtc/pcf85063.c index dad52239f061..af2417a497db 100644 --- a/sys/dev/iicbus/rtc/pcf85063.c +++ b/sys/dev/iicbus/rtc/pcf85063.c @@ -183,7 +183,7 @@ pcf85063_set_time(device_t dev, struct timespec *ts) sizeof(uint8_t), IIC_WAIT); ts->tv_sec -= utc_offset(); - clock_ts_to_bcd(ts, &bcd, ctrl_reg & PCF85063_CTRL1_TIME_FORMAT); + clock_ts_to_bcd(ts, &bcd, false); clock_dbgprint_bcd(dev, CLOCK_DBG_WRITE, &bcd); data.sec = bcd.sec; @@ -194,11 +194,6 @@ pcf85063_set_time(device_t dev, struct timespec *ts) data.mon = bcd.mon; data.year = bcd.year; - /* Set this bit in case of 12-hour mode and pm hour. */ - if (!(ctrl_reg & PCF85063_CTRL1_TIME_FORMAT)) - if (bcd.ispm) - data.hour |= 0x20; - if (ts->tv_nsec > PCF85063_HALF_OF_SEC_NS) data.sec++; @@ -209,6 +204,8 @@ pcf85063_set_time(device_t dev, struct timespec *ts) return (error); ctrl_reg |= PCF85063_CTRL1_RTC_CLK_STOP; + /* Explicitly set 24-hour mode. */ + ctrl_reg &= ~PCF85063_CTRL1_TIME_FORMAT; error = iicdev_writeto(dev, PCF85063_CTRL1_REG, &ctrl_reg, sizeof(uint8_t), IIC_WAIT); |