@ -76,16 +76,16 @@ int rtc_get(struct rtc_time *tm)
buf [ 0 ] , buf [ 1 ] , buf [ 2 ] , buf [ 3 ] ,
buf [ 4 ] , buf [ 5 ] , buf [ 6 ] , buf [ 7 ] ) ;
tm - > tm_sec = BCD2BIN ( buf [ M41T62_REG_SEC ] & 0x7f ) ;
tm - > tm_min = BCD2BIN ( buf [ M41T62_REG_MIN ] & 0x7f ) ;
tm - > tm_hour = BCD2BIN ( buf [ M41T62_REG_HOUR ] & 0x3f ) ;
tm - > tm_mday = BCD2BIN ( buf [ M41T62_REG_DAY ] & 0x3f ) ;
tm - > tm_sec = bcd2bin ( buf [ M41T62_REG_SEC ] & 0x7f ) ;
tm - > tm_min = bcd2bin ( buf [ M41T62_REG_MIN ] & 0x7f ) ;
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 ) ;
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 */
tm - > tm_year = BCD2BIN ( buf [ M41T62_REG_YEAR ] ) + 100 + 1900 ;
tm - > tm_year = bcd2bin ( buf [ M41T62_REG_YEAR ] ) + 100 + 1900 ;
debug ( " %s: tm is secs=%d, mins=%d, hours=%d, "
" mday=%d, mon=%d, year=%d, wday=%d \n " ,
@ -109,19 +109,19 @@ int rtc_set(struct rtc_time *tm)
/* Merge time-data and register flags into buf[0..7] */
buf [ M41T62_REG_SSEC ] = 0 ;
buf [ M41T62_REG_SEC ] =
BIN2BCD ( tm - > tm_sec ) | ( buf [ M41T62_REG_SEC ] & ~ 0x7f ) ;
bin2bcd ( tm - > tm_sec ) | ( buf [ M41T62_REG_SEC ] & ~ 0x7f ) ;
buf [ M41T62_REG_MIN ] =
BIN2BCD ( tm - > tm_min ) | ( buf [ M41T62_REG_MIN ] & ~ 0x7f ) ;
bin2bcd ( tm - > tm_min ) | ( buf [ M41T62_REG_MIN ] & ~ 0x7f ) ;
buf [ M41T62_REG_HOUR ] =
BIN2BCD ( tm - > tm_hour ) | ( buf [ M41T62_REG_HOUR ] & ~ 0x3f ) ;
bin2bcd ( tm - > tm_hour ) | ( buf [ M41T62_REG_HOUR ] & ~ 0x3f ) ;
buf [ M41T62_REG_WDAY ] =
( tm - > tm_wday & 0x07 ) | ( buf [ M41T62_REG_WDAY ] & ~ 0x07 ) ;
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 ] =
BIN2BCD ( tm - > tm_mon ) | ( 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 ) ;
buf [ M41T62_REG_YEAR ] = bin2bcd ( tm - > tm_year % 100 ) ;
if ( i2c_write ( CONFIG_SYS_I2C_RTC_ADDR , 0 , 1 , buf , M41T62_DATETIME_REG_SIZE ) ) {
printf ( " I2C write failed in %s() \n " , __func__ ) ;