From: Stefan Roese Date: Wed, 30 Apr 2008 13:50:39 +0000 (+0200) Subject: RTC: Fix month offset by one problem in M41T62 RTC driver X-Git-Tag: v1.3.3-rc3~8 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=0072b78be2b41e5a0ca3ddc39335574dc2e855bd;p=u-boot 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 --- diff --git a/drivers/rtc/m41t62.c b/drivers/rtc/m41t62.c index cf2a9574a9..89d4ccdb2c 100644 --- a/drivers/rtc/m41t62.c +++ b/drivers/rtc/m41t62.c @@ -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);