summaryrefslogtreecommitdiff
path: root/board/rsdproto/rsdproto.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/rsdproto/rsdproto.c')
-rw-r--r--board/rsdproto/rsdproto.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/board/rsdproto/rsdproto.c b/board/rsdproto/rsdproto.c
index 26edb2e..10759b7 100644
--- a/board/rsdproto/rsdproto.c
+++ b/board/rsdproto/rsdproto.c
@@ -26,6 +26,7 @@
#include <ioports.h>
#include <mpc8260.h>
#include <i2c.h>
+#include <bcd.h>
/* define to initialise the SDRAM on the local bus */
#undef INIT_LOCAL_BUS_SDRAM
@@ -208,16 +209,14 @@ void read_RS5C372_time (struct tm *timedate)
{
unsigned char buffer[8];
-#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)
-
if (! i2c_read (RS5C372_PPC_I2C_ADR, 0, 1, buffer, sizeof (buffer))) {
- timedate->tm_sec = BCD_TO_BIN (buffer[0]);
- timedate->tm_min = BCD_TO_BIN (buffer[1]);
- timedate->tm_hour = BCD_TO_BIN (buffer[2]);
- timedate->tm_wday = BCD_TO_BIN (buffer[3]);
- timedate->tm_mday = BCD_TO_BIN (buffer[4]);
- timedate->tm_mon = BCD_TO_BIN (buffer[5]);
- timedate->tm_year = BCD_TO_BIN (buffer[6]) + 2000;
+ timedate->tm_sec = bcd2bin (buffer[0]);
+ timedate->tm_min = bcd2bin (buffer[1]);
+ timedate->tm_hour = bcd2bin (buffer[2]);
+ timedate->tm_wday = bcd2bin (buffer[3]);
+ timedate->tm_mday = bcd2bin (buffer[4]);
+ timedate->tm_mon = bcd2bin (buffer[5]);
+ timedate->tm_year = bcd2bin (buffer[6]) + 2000;
} else {
/*printf("i2c error %02x\n", rc); */
memset (timedate, 0, sizeof (struct tm));