[PATCH] RTC: Remove some duplicate BCD definitions
[linux-2.6.git] / arch / sh / boards / mpc1211 / rtc.c
index 76aab46..a76c655 100644 (file)
@@ -9,16 +9,9 @@
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/time.h>
+#include <linux/bcd.h>
 #include <linux/mc146818rtc.h>
 
-#ifndef BCD_TO_BIN
-#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)
-#endif
-
-#ifndef BIN_TO_BCD
-#define BIN_TO_BCD(val) ((val)=(((val)/10)<<4) + (val)%10)
-#endif
-
 unsigned long get_cmos_time(void)
 {
        unsigned int year, mon, day, hour, min, sec;
@@ -34,18 +27,21 @@ unsigned long get_cmos_time(void)
                year = CMOS_READ(RTC_YEAR);
        } while (sec != CMOS_READ(RTC_SECONDS));
 
-       if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) || RTC_ALWAYS_BCD)
-         {
-           BCD_TO_BIN(sec);
-           BCD_TO_BIN(min);
-           BCD_TO_BIN(hour);
-           BCD_TO_BIN(day);
-           BCD_TO_BIN(mon);
-           BCD_TO_BIN(year);
-         }
+       if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
+               BCD_TO_BIN(sec);
+               BCD_TO_BIN(min);
+               BCD_TO_BIN(hour);
+               BCD_TO_BIN(day);
+               BCD_TO_BIN(mon);
+               BCD_TO_BIN(year);
+       }
+
        spin_unlock(&rtc_lock);
-       if ((year += 1900) < 1970)
+
+       year += 1900;
+       if (year < 1970)
                year += 100;
+
        return mktime(year, mon, day, hour, min, sec);
 }