mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-21 22:51:37 +00:00
RTC: Fix month offset by one problem in M41T62 RTC driver
This patch fixes a problem with the month being read and written incorrectly (offset by one). This only gets visible by also using the Linux driver (rtc-m41t80). Tested on AMCC Canyonlands. Signed-off-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
50f93d30da
commit
0072b78be2
1 changed files with 2 additions and 2 deletions
|
@ -81,7 +81,7 @@ int rtc_get(struct rtc_time *tm)
|
||||||
tm->tm_hour = BCD2BIN(buf[M41T62_REG_HOUR] & 0x3f);
|
tm->tm_hour = BCD2BIN(buf[M41T62_REG_HOUR] & 0x3f);
|
||||||
tm->tm_mday = BCD2BIN(buf[M41T62_REG_DAY] & 0x3f);
|
tm->tm_mday = BCD2BIN(buf[M41T62_REG_DAY] & 0x3f);
|
||||||
tm->tm_wday = buf[M41T62_REG_WDAY] & 0x07;
|
tm->tm_wday = buf[M41T62_REG_WDAY] & 0x07;
|
||||||
tm->tm_mon = BCD2BIN(buf[M41T62_REG_MON] & 0x1f) - 1;
|
tm->tm_mon = BCD2BIN(buf[M41T62_REG_MON] & 0x1f);
|
||||||
|
|
||||||
/* assume 20YY not 19YY, and ignore the Century Bit */
|
/* assume 20YY not 19YY, and ignore the Century Bit */
|
||||||
/* U-Boot needs to add 1900 here */
|
/* U-Boot needs to add 1900 here */
|
||||||
|
@ -119,7 +119,7 @@ void rtc_set(struct rtc_time *tm)
|
||||||
buf[M41T62_REG_DAY] =
|
buf[M41T62_REG_DAY] =
|
||||||
BIN2BCD(tm->tm_mday) | (buf[M41T62_REG_DAY] & ~0x3f);
|
BIN2BCD(tm->tm_mday) | (buf[M41T62_REG_DAY] & ~0x3f);
|
||||||
buf[M41T62_REG_MON] =
|
buf[M41T62_REG_MON] =
|
||||||
BIN2BCD(tm->tm_mon + 1) | (buf[M41T62_REG_MON] & ~0x1f);
|
BIN2BCD(tm->tm_mon) | (buf[M41T62_REG_MON] & ~0x1f);
|
||||||
/* assume 20YY not 19YY */
|
/* assume 20YY not 19YY */
|
||||||
buf[M41T62_REG_YEAR] = BIN2BCD(tm->tm_year % 100);
|
buf[M41T62_REG_YEAR] = BIN2BCD(tm->tm_year % 100);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue