Skip to content
Snippets Groups Projects
Commit 0072b78b authored by Stefan Roese's avatar Stefan Roese Committed by Wolfgang Denk
Browse files

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: default avatarStefan Roese <sr@denx.de>
parent 50f93d30
No related branches found
No related tags found
No related merge requests found
......@@ -81,7 +81,7 @@ int rtc_get(struct rtc_time *tm)
tm->tm_hour = BCD2BIN(buf[M41T62_REG_HOUR] & 0x3f);
tm->tm_mday = BCD2BIN(buf[M41T62_REG_DAY] & 0x3f);
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 */
/* U-Boot needs to add 1900 here */
......@@ -119,7 +119,7 @@ void rtc_set(struct rtc_time *tm)
buf[M41T62_REG_DAY] =
BIN2BCD(tm->tm_mday) | (buf[M41T62_REG_DAY] & ~0x3f);
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 */
buf[M41T62_REG_YEAR] = BIN2BCD(tm->tm_year % 100);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment