Module Name:    src
Committed By:   christos
Date:           Thu Nov 20 16:34:26 UTC 2014

Modified Files:
        src/sys/arch/arm/marvell: mvsocrtc.c
        src/sys/arch/arm/omap: omap_rtc.c
        src/sys/arch/arm/s3c2xx0: s3c2440_rtc.c
        src/sys/arch/evbarm/tsarm: tsrtc.c
        src/sys/arch/evbppc/walnut/dev: ds1743.c
        src/sys/arch/luna68k/dev: timekeeper.c
        src/sys/arch/mipsco/obio: mkclock.c
        src/sys/arch/mvme68k/stand/libsa: chiptotime.c clock.c
        src/sys/arch/mvmeppc/isa: mkclock_isa.c
        src/sys/arch/mvmeppc/stand/libsa: clock.c
        src/sys/arch/next68k/next68k: rtc.c
        src/sys/arch/playstation2/playstation2: clock.c
        src/sys/arch/sbmips/sbmips: rtc.c
        src/sys/arch/sgimips/dev: dpclock.c dsclock.c
        src/sys/arch/sgimips/mace: mcclock_mace.c
        src/sys/arch/sh3/dev: rtc.c
        src/sys/dev/i2c: ds1307.c m41st84.c m41t00.c max6900.c pcf8563.c
            pcf8583.c r2025.c rs5c372.c s390.c tps65950.c x1226.c
        src/sys/dev/ic: mc146818.c mk48txx.c mm58167.c rs5c313.c

Log Message:
use the inline bcdtobin and bintobcd directly instead through a macro.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/marvell/mvsocrtc.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/omap/omap_rtc.c
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/s3c2xx0/s3c2440_rtc.c
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/evbarm/tsarm/tsrtc.c
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/evbppc/walnut/dev/ds1743.c
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/luna68k/dev/timekeeper.c
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/mipsco/obio/mkclock.c
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/mvme68k/stand/libsa/chiptotime.c
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/mvme68k/stand/libsa/clock.c
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/mvmeppc/isa/mkclock_isa.c
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/mvmeppc/stand/libsa/clock.c
cvs rdiff -u -r1.17 -r1.18 src/sys/arch/next68k/next68k/rtc.c
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/playstation2/playstation2/clock.c
cvs rdiff -u -r1.19 -r1.20 src/sys/arch/sbmips/sbmips/rtc.c
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/sgimips/dev/dpclock.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/sgimips/dev/dsclock.c
cvs rdiff -u -r1.15 -r1.16 src/sys/arch/sgimips/mace/mcclock_mace.c
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/sh3/dev/rtc.c
cvs rdiff -u -r1.20 -r1.21 src/sys/dev/i2c/ds1307.c
cvs rdiff -u -r1.21 -r1.22 src/sys/dev/i2c/m41st84.c
cvs rdiff -u -r1.18 -r1.19 src/sys/dev/i2c/m41t00.c src/sys/dev/i2c/x1226.c
cvs rdiff -u -r1.14 -r1.15 src/sys/dev/i2c/max6900.c
cvs rdiff -u -r1.3 -r1.4 src/sys/dev/i2c/pcf8563.c
cvs rdiff -u -r1.15 -r1.16 src/sys/dev/i2c/pcf8583.c
cvs rdiff -u -r1.6 -r1.7 src/sys/dev/i2c/r2025.c
cvs rdiff -u -r1.13 -r1.14 src/sys/dev/i2c/rs5c372.c
cvs rdiff -u -r1.2 -r1.3 src/sys/dev/i2c/s390.c
cvs rdiff -u -r1.4 -r1.5 src/sys/dev/i2c/tps65950.c
cvs rdiff -u -r1.18 -r1.19 src/sys/dev/ic/mc146818.c
cvs rdiff -u -r1.26 -r1.27 src/sys/dev/ic/mk48txx.c
cvs rdiff -u -r1.15 -r1.16 src/sys/dev/ic/mm58167.c
cvs rdiff -u -r1.9 -r1.10 src/sys/dev/ic/rs5c313.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/marvell/mvsocrtc.c
diff -u src/sys/arch/arm/marvell/mvsocrtc.c:1.2 src/sys/arch/arm/marvell/mvsocrtc.c:1.3
--- src/sys/arch/arm/marvell/mvsocrtc.c:1.2	Fri Jul  1 16:30:21 2011
+++ src/sys/arch/arm/marvell/mvsocrtc.c	Thu Nov 20 11:34:25 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: mvsocrtc.c,v 1.2 2011/07/01 20:30:21 dyoung Exp $	*/
+/*	$NetBSD: mvsocrtc.c,v 1.3 2014/11/20 16:34:25 christos Exp $	*/
 
 /*-
  * Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mvsocrtc.c,v 1.2 2011/07/01 20:30:21 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mvsocrtc.c,v 1.3 2014/11/20 16:34:25 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -142,12 +142,12 @@ again:
 	 * XXXX this assumption will fail in 2100, but somehow I don't think
 	 * I or the hardware will be functioning to see it.
 	 */
-	dt->dt_year = FROMBCD(rtcyear) + 2000;
-	dt->dt_mon = FROMBCD(rtcmonth);
-	dt->dt_day = FROMBCD(rtcday);
-	dt->dt_hour = FROMBCD(rtchour);
-	dt->dt_min = FROMBCD(rtcmin);
-	dt->dt_sec = FROMBCD(rtcsec);
+	dt->dt_year = bcdtobin(rtcyear) + 2000;
+	dt->dt_mon = bcdtobin(rtcmonth);
+	dt->dt_day = bcdtobin(rtcday);
+	dt->dt_hour = bcdtobin(rtchour);
+	dt->dt_min = bcdtobin(rtcmin);
+	dt->dt_sec = bcdtobin(rtcsec);
 
 	return 0;
 }
@@ -159,17 +159,17 @@ mvsocrtc_todr_settime(todr_chip_handle_t
 	uint32_t reg;
 
 	/* compose & write time register contents */
-	reg = (TOBCD(dt->dt_sec) << MVSOCRTC_SECOND_OFFSET) |
-	   (TOBCD(dt->dt_min) << MVSOCRTC_MINUTE_OFFSET) |
-	   (TOBCD(dt->dt_hour) << MVSOCRTC_HOUR_OFFSET) |
-	   (TOBCD(dt->dt_wday) << MVSOCRTC_WDAY_OFFSET);
+	reg = (bintobcd(dt->dt_sec) << MVSOCRTC_SECOND_OFFSET) |
+	   (bintobcd(dt->dt_min) << MVSOCRTC_MINUTE_OFFSET) |
+	   (bintobcd(dt->dt_hour) << MVSOCRTC_HOUR_OFFSET) |
+	   (bintobcd(dt->dt_wday) << MVSOCRTC_WDAY_OFFSET);
 
 	bus_space_write_4(sc->sc_iot, sc->sc_ioh, MVSOCRTC_TIME, reg);
 
 	/* compose & write date register contents */
-	reg = (TOBCD(dt->dt_day) << MVSOCRTC_DAY_OFFSET) |
-	   (TOBCD(dt->dt_mon) << MVSOCRTC_MONTH_OFFSET) |
-	   (TOBCD(dt->dt_year % 100) << MVSOCRTC_YEAR_OFFSET);
+	reg = (bintobcd(dt->dt_day) << MVSOCRTC_DAY_OFFSET) |
+	   (bintobcd(dt->dt_mon) << MVSOCRTC_MONTH_OFFSET) |
+	   (bintobcd(dt->dt_year % 100) << MVSOCRTC_YEAR_OFFSET);
 
 	bus_space_write_4(sc->sc_iot, sc->sc_ioh, MVSOCRTC_DATE, reg);
 

Index: src/sys/arch/arm/omap/omap_rtc.c
diff -u src/sys/arch/arm/omap/omap_rtc.c:1.5 src/sys/arch/arm/omap/omap_rtc.c:1.6
--- src/sys/arch/arm/omap/omap_rtc.c:1.5	Fri Jul  1 16:30:21 2011
+++ src/sys/arch/arm/omap/omap_rtc.c	Thu Nov 20 11:34:25 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: omap_rtc.c,v 1.5 2011/07/01 20:30:21 dyoung Exp $	*/
+/*	$NetBSD: omap_rtc.c,v 1.6 2014/11/20 16:34:25 christos Exp $	*/
 
 /*
  * OMAP RTC driver, based on i80321_timer.c.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: omap_rtc.c,v 1.5 2011/07/01 20:30:21 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: omap_rtc.c,v 1.6 2014/11/20 16:34:25 christos Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -127,31 +127,31 @@ omaprtc_gettime(todr_chip_handle_t tch, 
 	}
 
 	dt->dt_year =
-		FROMBCD(bus_space_read_1(sc->sc_iot,
+		bcdtobin(bus_space_read_1(sc->sc_iot,
 					 sc->sc_ioh,
 					 YEARS_REG)) + BASEYEAR;
 	dt->dt_mon =
-		FROMBCD(bus_space_read_1(sc->sc_iot,
+		bcdtobin(bus_space_read_1(sc->sc_iot,
 					 sc->sc_ioh,
 					 MONTHS_REG));
 	dt->dt_wday =
-		FROMBCD(bus_space_read_1(sc->sc_iot,
+		bcdtobin(bus_space_read_1(sc->sc_iot,
 					 sc->sc_ioh,
 					 WEEKS_REG) & 0x0f);
 	dt->dt_day =
-		FROMBCD(bus_space_read_1(sc->sc_iot,
+		bcdtobin(bus_space_read_1(sc->sc_iot,
 					 sc->sc_ioh,
 					 DAYS_REG));
 	dt->dt_sec =
-		FROMBCD(bus_space_read_1(sc->sc_iot,
+		bcdtobin(bus_space_read_1(sc->sc_iot,
 					 sc->sc_ioh,
 					 SECONDS_REG));
 	dt->dt_hour =
-		FROMBCD(bus_space_read_1(sc->sc_iot,
+		bcdtobin(bus_space_read_1(sc->sc_iot,
 					 sc->sc_ioh,
 					 HOURS_REG));
 	dt->dt_min =
-		FROMBCD(bus_space_read_1(sc->sc_iot,
+		bcdtobin(bus_space_read_1(sc->sc_iot,
 					 sc->sc_ioh,
 					 MINUTES_REG));
 	restore_interrupts(s);
@@ -177,19 +177,19 @@ omaprtc_settime(todr_chip_handle_t tch, 
 	 */
 
 	bus_space_write_1(sc->sc_iot, sc->sc_ioh,
-			  YEARS_REG, TOBCD(dt->dt_year - BASEYEAR));
+			  YEARS_REG, bintobcd(dt->dt_year - BASEYEAR));
 	bus_space_write_1(sc->sc_iot, sc->sc_ioh,
-			  MONTHS_REG, TOBCD(dt->dt_mon));
+			  MONTHS_REG, bintobcd(dt->dt_mon));
 	bus_space_write_1(sc->sc_iot, sc->sc_ioh,
-			  WEEKS_REG, TOBCD(dt->dt_wday & 0x0f));
+			  WEEKS_REG, bintobcd(dt->dt_wday & 0x0f));
 	bus_space_write_1(sc->sc_iot, sc->sc_ioh,
-			  DAYS_REG, TOBCD(dt->dt_day));
+			  DAYS_REG, bintobcd(dt->dt_day));
 	bus_space_write_1(sc->sc_iot, sc->sc_ioh,
-			  SECONDS_REG, TOBCD(dt->dt_sec));
+			  SECONDS_REG, bintobcd(dt->dt_sec));
 	bus_space_write_1(sc->sc_iot, sc->sc_ioh,
-			  HOURS_REG, TOBCD(dt->dt_hour));
+			  HOURS_REG, bintobcd(dt->dt_hour));
 	bus_space_write_1(sc->sc_iot, sc->sc_ioh,
-			  MINUTES_REG, TOBCD(dt->dt_min));
+			  MINUTES_REG, bintobcd(dt->dt_min));
 	restore_interrupts(s);
         return 0;
 }

Index: src/sys/arch/arm/s3c2xx0/s3c2440_rtc.c
diff -u src/sys/arch/arm/s3c2xx0/s3c2440_rtc.c:1.1 src/sys/arch/arm/s3c2xx0/s3c2440_rtc.c:1.2
--- src/sys/arch/arm/s3c2xx0/s3c2440_rtc.c:1.1	Tue Feb  7 04:06:04 2012
+++ src/sys/arch/arm/s3c2xx0/s3c2440_rtc.c	Thu Nov 20 11:34:25 2014
@@ -103,31 +103,31 @@ ssrtc_todr_gettime(struct todr_chip_hand
 
 	reg = bus_space_read_1(sc->sc_iot, sc->sc_ioh, RTC_BCDSEC);
 	DPRINTF(("BCDSEC: %02X\n", reg));
-	dt.dt_sec = FROMBCD(reg);
+	dt.dt_sec = bcdtobin(reg);
 
 	reg = bus_space_read_1(sc->sc_iot, sc->sc_ioh, RTC_BCDMIN);
 	DPRINTF(("BCDMIN: %02X\n", reg));
-	dt.dt_min = FROMBCD(reg);
+	dt.dt_min = bcdtobin(reg);
 
 	reg = bus_space_read_1(sc->sc_iot, sc->sc_ioh, RTC_BCDHOUR);
 	DPRINTF(("BCDHOUR: %02X\n", reg));
-	dt.dt_hour = FROMBCD(reg);
+	dt.dt_hour = bcdtobin(reg);
 
 	reg = bus_space_read_1(sc->sc_iot, sc->sc_ioh, RTC_BCDDATE);
 	DPRINTF(("BCDDATE: %02X\n", reg));
-	dt.dt_day = FROMBCD(reg);
+	dt.dt_day = bcdtobin(reg);
 
 	reg = bus_space_read_1(sc->sc_iot, sc->sc_ioh, RTC_BCDDAY);
 	DPRINTF(("BCDDAY: %02X\n", reg));
-	dt.dt_wday = FROMBCD(reg);
+	dt.dt_wday = bcdtobin(reg);
 
 	reg = bus_space_read_1(sc->sc_iot, sc->sc_ioh, RTC_BCDMON);
 	DPRINTF(("BCDMON: %02X\n", reg));
-	dt.dt_mon = FROMBCD(reg);
+	dt.dt_mon = bcdtobin(reg);
 
 	reg = bus_space_read_1(sc->sc_iot, sc->sc_ioh, RTC_BCDYEAR);
 	DPRINTF(("BCDYEAR: %02X\n", reg));
-	dt.dt_year = SSRTC_YEAR_ZERO + FROMBCD(reg);
+	dt.dt_year = SSRTC_YEAR_ZERO + bcdtobin(reg);
 
 	DPRINTF(("Seconds: %d\n", dt.dt_sec));
 	DPRINTF(("Minutes: %d\n", dt.dt_min));
@@ -158,13 +158,13 @@ ssrtc_todr_settime(struct todr_chip_hand
 	reg = bus_space_read_1(sc->sc_iot, sc->sc_ioh, RTC_RTCCON);
 	bus_space_write_1(sc->sc_iot, sc->sc_ioh, RTC_RTCCON, reg | RTCCON_RTCEN);
 
-	bus_space_write_1(sc->sc_iot, sc->sc_ioh, RTC_BCDSEC, TOBCD(dt.dt_sec));
-	bus_space_write_1(sc->sc_iot, sc->sc_ioh, RTC_BCDMIN, TOBCD(dt.dt_min));
-	bus_space_write_1(sc->sc_iot, sc->sc_ioh, RTC_BCDHOUR, TOBCD(dt.dt_hour));
-	bus_space_write_1(sc->sc_iot, sc->sc_ioh, RTC_BCDDATE, TOBCD(dt.dt_day));
-	bus_space_write_1(sc->sc_iot, sc->sc_ioh, RTC_BCDDAY, TOBCD(dt.dt_wday));
-	bus_space_write_1(sc->sc_iot, sc->sc_ioh, RTC_BCDMON, TOBCD(dt.dt_mon));
-	bus_space_write_1(sc->sc_iot, sc->sc_ioh, RTC_BCDYEAR, TOBCD(dt.dt_year-SSRTC_YEAR_ZERO));
+	bus_space_write_1(sc->sc_iot, sc->sc_ioh, RTC_BCDSEC, bintobcd(dt.dt_sec));
+	bus_space_write_1(sc->sc_iot, sc->sc_ioh, RTC_BCDMIN, bintobcd(dt.dt_min));
+	bus_space_write_1(sc->sc_iot, sc->sc_ioh, RTC_BCDHOUR, bintobcd(dt.dt_hour));
+	bus_space_write_1(sc->sc_iot, sc->sc_ioh, RTC_BCDDATE, bintobcd(dt.dt_day));
+	bus_space_write_1(sc->sc_iot, sc->sc_ioh, RTC_BCDDAY, bintobcd(dt.dt_wday));
+	bus_space_write_1(sc->sc_iot, sc->sc_ioh, RTC_BCDMON, bintobcd(dt.dt_mon));
+	bus_space_write_1(sc->sc_iot, sc->sc_ioh, RTC_BCDYEAR, bintobcd(dt.dt_year-SSRTC_YEAR_ZERO));
 
 	/* Clear RTCEN */
 	reg = bus_space_read_1(sc->sc_iot, sc->sc_ioh, RTC_RTCCON);

Index: src/sys/arch/evbarm/tsarm/tsrtc.c
diff -u src/sys/arch/evbarm/tsarm/tsrtc.c:1.7 src/sys/arch/evbarm/tsarm/tsrtc.c:1.8
--- src/sys/arch/evbarm/tsarm/tsrtc.c:1.7	Fri Jul  1 15:11:34 2011
+++ src/sys/arch/evbarm/tsarm/tsrtc.c	Thu Nov 20 11:34:25 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: tsrtc.c,v 1.7 2011/07/01 19:11:34 dyoung Exp $	*/
+/*	$NetBSD: tsrtc.c,v 1.8 2014/11/20 16:34:25 christos Exp $	*/
 
 /*
  * Copyright (c) 1995, 1996 Carnegie-Mellon University.
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tsrtc.c,v 1.7 2011/07/01 19:11:34 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tsrtc.c,v 1.8 2014/11/20 16:34:25 christos Exp $");
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
 
@@ -86,13 +86,13 @@ tsrtc_match(device_t parent, cfdata_t cf
 		return (0);
 
 	/* Read from the seconds counter. */
-	t1 = FROMBCD(tsrtc_read(sc, MC_SEC));
+	t1 = bcdtobin(tsrtc_read(sc, MC_SEC));
 	if (t1 > 59)
 		goto unmap;
 
 	/* Wait, then look again. */
 	DELAY(1100000);
-	t2 = FROMBCD(tsrtc_read(sc, MC_SEC));
+	t2 = bcdtobin(tsrtc_read(sc, MC_SEC));
 	if (t2 > 59)
 		goto unmap;
 

Index: src/sys/arch/evbppc/walnut/dev/ds1743.c
diff -u src/sys/arch/evbppc/walnut/dev/ds1743.c:1.9 src/sys/arch/evbppc/walnut/dev/ds1743.c:1.10
--- src/sys/arch/evbppc/walnut/dev/ds1743.c:1.9	Fri Jul  1 15:03:50 2011
+++ src/sys/arch/evbppc/walnut/dev/ds1743.c	Thu Nov 20 11:34:25 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: ds1743.c,v 1.9 2011/07/01 19:03:50 dyoung Exp $	*/
+/*	$NetBSD: ds1743.c,v 1.10 2014/11/20 16:34:25 christos Exp $	*/
 
 /*
  * Copyright (c) 2001-2002 Wasabi Sysetms, Inc.
@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ds1743.c,v 1.9 2011/07/01 19:03:50 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ds1743.c,v 1.10 2014/11/20 16:34:25 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -234,14 +234,14 @@ dsrtc_write(todr_chip_handle_t tch, stru
 
 	key = ds1743_lock(sc, DS_CTL_W);
 	
-	ds1743_write(sc, DS_SECONDS, TOBCD(dt->dt_sec) & 0x7f);
-	ds1743_write(sc, DS_MINUTES, TOBCD(dt->dt_min) & 0x7f);
-	ds1743_write(sc, DS_HOURS, TOBCD(dt->dt_hour)  & 0x3f);
-	ds1743_write(sc, DS_DATE, TOBCD(dt->dt_day)    & 0x3f);
-	ds1743_write(sc, DS_MONTH, TOBCD(dt->dt_mon)   & 0x1f);
-	ds1743_write(sc, DS_YEAR, TOBCD(dt->dt_year % 100));
+	ds1743_write(sc, DS_SECONDS, bintobcd(dt->dt_sec) & 0x7f);
+	ds1743_write(sc, DS_MINUTES, bintobcd(dt->dt_min) & 0x7f);
+	ds1743_write(sc, DS_HOURS, bintobcd(dt->dt_hour)  & 0x3f);
+	ds1743_write(sc, DS_DATE, bintobcd(dt->dt_day)    & 0x3f);
+	ds1743_write(sc, DS_MONTH, bintobcd(dt->dt_mon)   & 0x1f);
+	ds1743_write(sc, DS_YEAR, bintobcd(dt->dt_year % 100));
 	ds1743_write(sc, DS_CENTURY, ((ds1743_read(sc, DS_CENTURY) & DS_CTL_RW)
-				      | TOBCD(dt->dt_year / 100)));
+				      | bintobcd(dt->dt_year / 100)));
 
 	ds1743_unlock(sc, key);
 	return(0);
@@ -254,14 +254,14 @@ dsrtc_read(todr_chip_handle_t tch, struc
 	u_char key;
 	
 	key = ds1743_lock(sc, DS_CTL_R);
-	dt->dt_sec = FROMBCD(ds1743_read(sc, DS_SECONDS) & 0x7f);
-	dt->dt_min = FROMBCD(ds1743_read(sc, DS_MINUTES) & 0x7f);
-	dt->dt_hour = FROMBCD(ds1743_read(sc, DS_HOURS) & 0x3f);
-	dt->dt_day = FROMBCD(ds1743_read(sc, DS_DATE)   & 0x3f);
-	dt->dt_mon = FROMBCD(ds1743_read(sc, DS_MONTH)   & 0x1f);
+	dt->dt_sec = bcdtobin(ds1743_read(sc, DS_SECONDS) & 0x7f);
+	dt->dt_min = bcdtobin(ds1743_read(sc, DS_MINUTES) & 0x7f);
+	dt->dt_hour = bcdtobin(ds1743_read(sc, DS_HOURS) & 0x3f);
+	dt->dt_day = bcdtobin(ds1743_read(sc, DS_DATE)   & 0x3f);
+	dt->dt_mon = bcdtobin(ds1743_read(sc, DS_MONTH)   & 0x1f);
 	dt->dt_year =
-	    FROMBCD(ds1743_read(sc, DS_YEAR)) +
-	    FROMBCD(ds1743_read(sc, DS_CENTURY) & ~DS_CTL_RW) * 100; 
+	    bcdtobin(ds1743_read(sc, DS_YEAR)) +
+	    bcdtobin(ds1743_read(sc, DS_CENTURY) & ~DS_CTL_RW) * 100; 
 
 	ds1743_unlock(sc, key);
 	return(0);

Index: src/sys/arch/luna68k/dev/timekeeper.c
diff -u src/sys/arch/luna68k/dev/timekeeper.c:1.14 src/sys/arch/luna68k/dev/timekeeper.c:1.15
--- src/sys/arch/luna68k/dev/timekeeper.c:1.14	Tue Mar 18 14:20:41 2014
+++ src/sys/arch/luna68k/dev/timekeeper.c	Thu Nov 20 11:34:25 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: timekeeper.c,v 1.14 2014/03/18 18:20:41 riastradh Exp $ */
+/* $NetBSD: timekeeper.c,v 1.15 2014/11/20 16:34:25 christos Exp $ */
 
 /*-
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
 
-__KERNEL_RCSID(0, "$NetBSD: timekeeper.c,v 1.14 2014/03/18 18:20:41 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: timekeeper.c,v 1.15 2014/11/20 16:34:25 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -124,13 +124,13 @@ mkclock_get(todr_chip_handle_t tch, stru
 
 	s = splclock();
 	chiptime[MK_CSR] |= MK_CSR_READ;	/* enable read (stop time) */
-	dt->dt_sec = FROMBCD(chiptime[MK_SEC]);
-	dt->dt_min = FROMBCD(chiptime[MK_MIN]);
-	dt->dt_hour = FROMBCD(chiptime[MK_HOUR]);
-	dt->dt_wday = FROMBCD(chiptime[MK_DOW]);
-	dt->dt_day = FROMBCD(chiptime[MK_DOM]);
-	dt->dt_mon = FROMBCD(chiptime[MK_MONTH]);
-	dt->dt_year = FROMBCD(chiptime[MK_YEAR]) + YEAR0;
+	dt->dt_sec = bcdtobin(chiptime[MK_SEC]);
+	dt->dt_min = bcdtobin(chiptime[MK_MIN]);
+	dt->dt_hour = bcdtobin(chiptime[MK_HOUR]);
+	dt->dt_wday = bcdtobin(chiptime[MK_DOW]);
+	dt->dt_day = bcdtobin(chiptime[MK_DOM]);
+	dt->dt_mon = bcdtobin(chiptime[MK_MONTH]);
+	dt->dt_year = bcdtobin(chiptime[MK_YEAR]) + YEAR0;
 	chiptime[MK_CSR] &= ~MK_CSR_READ;	/* time wears on */
 	splx(s);
 	return 0;
@@ -149,13 +149,13 @@ mkclock_set(todr_chip_handle_t tch, stru
 
 	s = splclock();
 	chiptime[MK_CSR] |= MK_CSR_WRITE;	/* enable write */
-	chiptime[MK_SEC] = TOBCD(dt->dt_sec);
-	chiptime[MK_MIN] = TOBCD(dt->dt_min);
-	chiptime[MK_HOUR] = TOBCD(dt->dt_hour);
-	chiptime[MK_DOW] = TOBCD(dt->dt_wday);
-	chiptime[MK_DOM] = TOBCD(dt->dt_day);
-	chiptime[MK_MONTH] = TOBCD(dt->dt_mon);
-	chiptime[MK_YEAR] = TOBCD(dt->dt_year - YEAR0);
+	chiptime[MK_SEC] = bintobcd(dt->dt_sec);
+	chiptime[MK_MIN] = bintobcd(dt->dt_min);
+	chiptime[MK_HOUR] = bintobcd(dt->dt_hour);
+	chiptime[MK_DOW] = bintobcd(dt->dt_wday);
+	chiptime[MK_DOM] = bintobcd(dt->dt_day);
+	chiptime[MK_MONTH] = bintobcd(dt->dt_mon);
+	chiptime[MK_YEAR] = bintobcd(dt->dt_year - YEAR0);
 	chiptime[MK_CSR] &= ~MK_CSR_WRITE;	/* load them up */
 	splx(s);
 

Index: src/sys/arch/mipsco/obio/mkclock.c
diff -u src/sys/arch/mipsco/obio/mkclock.c:1.11 src/sys/arch/mipsco/obio/mkclock.c:1.12
--- src/sys/arch/mipsco/obio/mkclock.c:1.11	Sat Oct 27 13:18:03 2012
+++ src/sys/arch/mipsco/obio/mkclock.c	Thu Nov 20 11:34:25 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: mkclock.c,v 1.11 2012/10/27 17:18:03 chs Exp $	*/
+/*	$NetBSD: mkclock.c,v 1.12 2014/11/20 16:34:25 christos Exp $	*/
 
 /*-
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mkclock.c,v 1.11 2012/10/27 17:18:03 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mkclock.c,v 1.12 2014/11/20 16:34:25 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -100,14 +100,14 @@ mk_read(struct mkclock_softc *sc, int re
 	u_int8_t val;
 
 	val = bus_space_read_1(sc->sc_bst, sc->sc_bsh, DATA_PORT + reg*4);
-	return FROMBCD(val);
+	return bcdtobin(val);
 }
 
 static void
 mk_write(struct mkclock_softc *sc, int reg, int val)
 {
 	bus_space_write_1(sc->sc_bst, sc->sc_bsh,
-			  DATA_PORT + reg*4, TOBCD(val));
+			  DATA_PORT + reg*4, bintobcd(val));
 }
 
 int

Index: src/sys/arch/mvme68k/stand/libsa/chiptotime.c
diff -u src/sys/arch/mvme68k/stand/libsa/chiptotime.c:1.6 src/sys/arch/mvme68k/stand/libsa/chiptotime.c:1.7
--- src/sys/arch/mvme68k/stand/libsa/chiptotime.c:1.6	Thu Nov 20 10:50:25 2014
+++ src/sys/arch/mvme68k/stand/libsa/chiptotime.c	Thu Nov 20 11:34:25 2014
@@ -1,21 +1,13 @@
-/*	$NetBSD: chiptotime.c,v 1.6 2014/11/20 15:50:25 christos Exp $ */
+/*	$NetBSD: chiptotime.c,v 1.7 2014/11/20 16:34:25 christos Exp $ */
 
 #include <sys/types.h>
-#include <sys/clock.h>
+#include <dev/clock_subr.h>
 
 #include <machine/prom.h>
 
 #include <lib/libsa/stand.h>
 #include "libsa.h"
 
-/*
- * BCD to decimal and decimal to BCD.
- */
-#define FROMBCD(x)      (int)((((unsigned int)(x)) >> 4) * 10 +\
-				(((unsigned int)(x)) & 0xf))
-#define TOBCD(x)        (int)((((unsigned int)(x)) / 10 * 16) +\
-				(((unsigned int)(x)) % 10))
-
 #define YEAR0		68
 
 /*
@@ -30,12 +22,12 @@ chiptotime(int sec, int min, int hour, i
 {
 	int days, yr;
 
-	sec = FROMBCD(sec);
-	min = FROMBCD(min);
-	hour = FROMBCD(hour);
-	day = FROMBCD(day);
-	mon = FROMBCD(mon);
-	year = FROMBCD(year) + YEAR0;
+	sec = bcdtobin(sec);
+	min = bcdtobin(min);
+	hour = bcdtobin(hour);
+	day = bcdtobin(day);
+	mon = bcdtobin(mon);
+	year = bcdtobin(year) + YEAR0;
 	if (year < 70)
 		year = 70;
 

Index: src/sys/arch/mvme68k/stand/libsa/clock.c
diff -u src/sys/arch/mvme68k/stand/libsa/clock.c:1.10 src/sys/arch/mvme68k/stand/libsa/clock.c:1.11
--- src/sys/arch/mvme68k/stand/libsa/clock.c:1.10	Sun Nov 16 21:15:48 2014
+++ src/sys/arch/mvme68k/stand/libsa/clock.c	Thu Nov 20 11:34:25 2014
@@ -1,6 +1,7 @@
-/*	$NetBSD: clock.c,v 1.10 2014/11/17 02:15:48 christos Exp $ */
+/*	$NetBSD: clock.c,v 1.11 2014/11/20 16:34:25 christos Exp $ */
 
 #include <sys/types.h>
+#include <dev/clock_subr.h>
 #include <machine/prom.h>
 
 #include <lib/libsa/stand.h>
@@ -10,11 +11,6 @@
 /*
  * BCD to decimal and decimal to BCD.
  */
-#define FROMBCD(x)      (int)((((unsigned int)(x)) >> 4) * 10 +\
-				(((unsigned int)(x)) & 0xf))
-#define TOBCD(x)        (int)((((unsigned int)(x)) / 10 * 16) +\
-				(((unsigned int)(x)) % 10))
-
 #define YEAR0		68
 
 /*
@@ -29,12 +25,12 @@ chiptotime(int sec, int min, int hour, i
 {
 	int days, yr;
 
-	sec = FROMBCD(sec);
-	min = FROMBCD(min);
-	hour = FROMBCD(hour);
-	day = FROMBCD(day);
-	mon = FROMBCD(mon);
-	year = FROMBCD(year) + YEAR0;
+	sec = bcdtobin(sec);
+	min = bcdtobin(min);
+	hour = bcdtobin(hour);
+	day = bcdtobin(day);
+	mon = bcdtobin(mon);
+	year = bcdtobin(year) + YEAR0;
 	if (year < 70)
 		year = 70;
 

Index: src/sys/arch/mvmeppc/isa/mkclock_isa.c
diff -u src/sys/arch/mvmeppc/isa/mkclock_isa.c:1.14 src/sys/arch/mvmeppc/isa/mkclock_isa.c:1.15
--- src/sys/arch/mvmeppc/isa/mkclock_isa.c:1.14	Fri Jul  1 16:50:00 2011
+++ src/sys/arch/mvmeppc/isa/mkclock_isa.c	Thu Nov 20 11:34:25 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: mkclock_isa.c,v 1.14 2011/07/01 20:50:00 dyoung Exp $	*/
+/*	$NetBSD: mkclock_isa.c,v 1.15 2014/11/20 16:34:25 christos Exp $	*/
 
 /*-
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
-__KERNEL_RCSID(0, "$NetBSD: mkclock_isa.c,v 1.14 2011/07/01 20:50:00 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mkclock_isa.c,v 1.15 2014/11/20 16:34:25 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -121,7 +121,7 @@ mkclock_isa_match(device_t parent, cfdat
 		goto restore;
 
 	/* Read from the seconds counter. */
-	t1 = FROMBCD(mkclock_isa_nvrd(sc, MK48T18_CLKOFF + MK48TXX_ISEC));
+	t1 = bcdtobin(mkclock_isa_nvrd(sc, MK48T18_CLKOFF + MK48TXX_ISEC));
 	if (t1 > 59)
 		goto restore;
 
@@ -129,7 +129,7 @@ mkclock_isa_match(device_t parent, cfdat
 	mkclock_isa_nvwr(sc, MK48T18_CLKOFF + MK48TXX_ICSR, ocsr);
 	DELAY(1100000);
 	mkclock_isa_nvwr(sc, MK48T18_CLKOFF + MK48TXX_ICSR, csr);
-	t2 = FROMBCD(mkclock_isa_nvrd(sc, MK48T18_CLKOFF + MK48TXX_ISEC));
+	t2 = bcdtobin(mkclock_isa_nvrd(sc, MK48T18_CLKOFF + MK48TXX_ISEC));
 	if (t2 > 59)
 		goto restore;
 

Index: src/sys/arch/mvmeppc/stand/libsa/clock.c
diff -u src/sys/arch/mvmeppc/stand/libsa/clock.c:1.4 src/sys/arch/mvmeppc/stand/libsa/clock.c:1.5
--- src/sys/arch/mvmeppc/stand/libsa/clock.c:1.4	Sun Nov 16 21:15:49 2014
+++ src/sys/arch/mvmeppc/stand/libsa/clock.c	Thu Nov 20 11:34:25 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: clock.c,v 1.4 2014/11/17 02:15:49 christos Exp $	*/
+/*	$NetBSD: clock.c,v 1.5 2014/11/20 16:34:25 christos Exp $	*/
 
 /*
  * This is a slightly modified version of mvme68k's standalone clock.c.
@@ -14,9 +14,6 @@
 #include "libsa.h"
 #include "bugsyscalls.h"
 
-#define FROMBCD(x)      (int)((((unsigned int)(x)) >> 4) * 10 +\
-			      (((unsigned int)(x)) & 0xf))
-
 #define YEAR0		68
 
 /*
@@ -31,12 +28,12 @@ chiptotime(int sec, int min, int hour, i
 {
 	int days, yr;
 
-	sec = FROMBCD(sec);
-	min = FROMBCD(min);
-	hour = FROMBCD(hour);
-	day = FROMBCD(day);
-	mon = FROMBCD(mon);
-	year = FROMBCD(year) + YEAR0;
+	sec = bcdtobin(sec);
+	min = bcdtobin(min);
+	hour = bcdtobin(hour);
+	day = bcdtobin(day);
+	mon = bcdtobin(mon);
+	year = bcdtobin(year) + YEAR0;
 	if (year < 70)
 		year = 70;
 

Index: src/sys/arch/next68k/next68k/rtc.c
diff -u src/sys/arch/next68k/next68k/rtc.c:1.17 src/sys/arch/next68k/next68k/rtc.c:1.18
--- src/sys/arch/next68k/next68k/rtc.c:1.17	Mon Mar 24 16:01:03 2014
+++ src/sys/arch/next68k/next68k/rtc.c	Thu Nov 20 11:34:25 2014
@@ -1,4 +1,4 @@
-/*      $NetBSD: rtc.c,v 1.17 2014/03/24 20:01:03 christos Exp $        */
+/*      $NetBSD: rtc.c,v 1.18 2014/11/20 16:34:25 christos Exp $        */
 /*
  * Copyright (c) 1998 Darrin Jewell
  * Copyright (c) 1997 Rolf Grossmann 
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rtc.c,v 1.17 2014/03/24 20:01:03 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rtc.c,v 1.18 2014/11/20 16:34:25 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>          /* for panic */
@@ -272,20 +272,20 @@ gettime_old(todr_chip_handle_t tch, stru
 {
 	u_char h, y;
 	
-	y = FROMBCD(rtc_read(RTC_YR));
+	y = bcdtobin(rtc_read(RTC_YR));
 	if (y >= 69) {
 		dt->dt_year = 1900+y;
 	} else {
 		dt->dt_year = 2000+y;
 	}
 
-	dt->dt_mon	= FROMBCD(rtc_read(RTC_MON)&0x1f);
-	dt->dt_day	= FROMBCD(rtc_read(RTC_DATE)&0x3f);
-	dt->dt_wday = FROMBCD(rtc_read(RTC_DAY)&0x7);
+	dt->dt_mon	= bcdtobin(rtc_read(RTC_MON)&0x1f);
+	dt->dt_day	= bcdtobin(rtc_read(RTC_DATE)&0x3f);
+	dt->dt_wday = bcdtobin(rtc_read(RTC_DAY)&0x7);
 
 	h = rtc_read(RTC_HRS);
 	if (h & 0x80) {			/* time is am/pm format */
-		dt->dt_hour = FROMBCD(h&0x1f);
+		dt->dt_hour = bcdtobin(h&0x1f);
 		if (h & 0x20) { /* pm */
 			if (dt->dt_hour < 12) dt->dt_hour += 12;
 		} else {  /* am */
@@ -294,12 +294,12 @@ gettime_old(todr_chip_handle_t tch, stru
 #ifdef notdef
 	} else {	/* time is 24 hour format */
 		struct clock_ymdhms val;
-		val.dt_hour = FROMBCD(h & 0x3f);
+		val.dt_hour = bcdtobin(h & 0x3f);
 #endif
 	}
 
-	dt->dt_min	= FROMBCD(rtc_read(RTC_MIN)&0x7f);
-	dt->dt_sec	= FROMBCD(rtc_read(RTC_SEC)&0x7f);
+	dt->dt_min	= bcdtobin(rtc_read(RTC_MIN)&0x7f);
+	dt->dt_sec	= bcdtobin(rtc_read(RTC_SEC)&0x7f);
 
 	return 0;
 }
@@ -317,25 +317,25 @@ settime_old(todr_chip_handle_t tcr, stru
 	rtc_print();
 #endif
 
-	rtc_write(RTC_SEC,TOBCD(dt->dt_sec));
-	rtc_write(RTC_MIN,TOBCD(dt->dt_min));
+	rtc_write(RTC_SEC,bintobcd(dt->dt_sec));
+	rtc_write(RTC_MIN,bintobcd(dt->dt_min));
 	h = rtc_read(RTC_HRS);
 	if (h & 0x80) {		/* time is am/pm format */
 		if (dt->dt_hour == 0) {
-			rtc_write(RTC_HRS,TOBCD(12)|0x80);
+			rtc_write(RTC_HRS,bintobcd(12)|0x80);
 		} else if (dt->dt_hour < 12) {	/* am */
-			rtc_write(RTC_HRS,TOBCD(dt->dt_hour)|0x80);
+			rtc_write(RTC_HRS,bintobcd(dt->dt_hour)|0x80);
 		} else if (dt->dt_hour == 12) {
-				rtc_write(RTC_HRS,TOBCD(12)|0x80|0x20);
+				rtc_write(RTC_HRS,bintobcd(12)|0x80|0x20);
 		} else 		/* pm */
-			rtc_write(RTC_HRS,TOBCD(dt->dt_hour-12)|0x80|0x20);
+			rtc_write(RTC_HRS,bintobcd(dt->dt_hour-12)|0x80|0x20);
 	} else {	/* time is 24 hour format */
-			rtc_write(RTC_HRS,TOBCD(dt->dt_hour));
+			rtc_write(RTC_HRS,bintobcd(dt->dt_hour));
 	}
-	rtc_write(RTC_DAY,TOBCD(dt->dt_wday));
-	rtc_write(RTC_DATE,TOBCD(dt->dt_day));
-	rtc_write(RTC_MON,TOBCD(dt->dt_mon));
-	rtc_write(RTC_YR,TOBCD(dt->dt_year%100));
+	rtc_write(RTC_DAY,bintobcd(dt->dt_wday));
+	rtc_write(RTC_DATE,bintobcd(dt->dt_day));
+	rtc_write(RTC_MON,bintobcd(dt->dt_mon));
+	rtc_write(RTC_YR,bintobcd(dt->dt_year%100));
 
 #ifdef RTC_DEBUG
 	printf("Regs after:\n",secs);

Index: src/sys/arch/playstation2/playstation2/clock.c
diff -u src/sys/arch/playstation2/playstation2/clock.c:1.10 src/sys/arch/playstation2/playstation2/clock.c:1.11
--- src/sys/arch/playstation2/playstation2/clock.c:1.10	Fri Jul  4 04:09:47 2014
+++ src/sys/arch/playstation2/playstation2/clock.c	Thu Nov 20 11:34:25 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: clock.c,v 1.10 2014/07/04 08:09:47 martin Exp $	*/
+/*	$NetBSD: clock.c,v 1.11 2014/11/20 16:34:25 christos Exp $	*/
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: clock.c,v 1.10 2014/07/04 08:09:47 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: clock.c,v 1.11 2014/11/20 16:34:25 christos Exp $");
 
 #include "debug_playstation2.h"
 
@@ -82,12 +82,12 @@ get_bootinfo_tod(todr_chip_handle_t tch,
 	    (void *)MIPS_PHYS_TO_KSEG1(BOOTINFO_BLOCK_BASE + BOOTINFO_RTC);
 
 	/* PS2 RTC is JST */
-	dt->dt_year = FROMBCD(rtc->year) + 2000;
-	dt->dt_mon = FROMBCD(rtc->mon);
-	dt->dt_day = FROMBCD(rtc->day);
-	dt->dt_hour = FROMBCD(rtc->hour);
-	dt->dt_min = FROMBCD(rtc->min);
-	dt->dt_sec = FROMBCD(rtc->sec);
+	dt->dt_year = bcdtobin(rtc->year) + 2000;
+	dt->dt_mon = bcdtobin(rtc->mon);
+	dt->dt_day = bcdtobin(rtc->day);
+	dt->dt_hour = bcdtobin(rtc->hour);
+	dt->dt_min = bcdtobin(rtc->min);
+	dt->dt_sec = bcdtobin(rtc->sec);
 
 	/* convert to UTC */
 	utc = clock_ymdhms_to_secs(dt) - 9*60*60;

Index: src/sys/arch/sbmips/sbmips/rtc.c
diff -u src/sys/arch/sbmips/sbmips/rtc.c:1.19 src/sys/arch/sbmips/sbmips/rtc.c:1.20
--- src/sys/arch/sbmips/sbmips/rtc.c:1.19	Sat Jul  9 12:59:40 2011
+++ src/sys/arch/sbmips/sbmips/rtc.c	Thu Nov 20 11:34:25 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: rtc.c,v 1.19 2011/07/09 16:59:40 matt Exp $ */
+/* $NetBSD: rtc.c,v 1.20 2014/11/20 16:34:25 christos Exp $ */
 
 /*
  * Copyright 2002 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rtc.c,v 1.19 2011/07/09 16:59:40 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rtc.c,v 1.20 2014/11/20 16:34:25 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -160,18 +160,18 @@ xirtc_settime(todr_chip_handle_t handle,
 	WRITERTC(sc, X1241REG_SR, X1241REG_SR_WEL | X1241REG_SR_RWEL);
 
 	/* set the time */
-	WRITERTC(sc, X1241REG_HR, TOBCD(ymdhms->dt_hour) | X1241REG_HR_MIL);
-	WRITERTC(sc, X1241REG_MN, TOBCD(ymdhms->dt_min));
-	WRITERTC(sc, X1241REG_SC, TOBCD(ymdhms->dt_sec));
+	WRITERTC(sc, X1241REG_HR, bintobcd(ymdhms->dt_hour) | X1241REG_HR_MIL);
+	WRITERTC(sc, X1241REG_MN, bintobcd(ymdhms->dt_min));
+	WRITERTC(sc, X1241REG_SC, bintobcd(ymdhms->dt_sec));
 
 	/* set the date */
 	y2k = (ymdhms->dt_year >= 2000) ? 0x20 : 0x19;
 	year = ymdhms->dt_year % 100;
 
-	WRITERTC(sc, X1241REG_MO, TOBCD(ymdhms->dt_mon));
-	WRITERTC(sc, X1241REG_DT, TOBCD(ymdhms->dt_day));
-	WRITERTC(sc, X1241REG_YR, TOBCD(year));
-	WRITERTC(sc, X1241REG_Y2K, TOBCD(y2k));
+	WRITERTC(sc, X1241REG_MO, bintobcd(ymdhms->dt_mon));
+	WRITERTC(sc, X1241REG_DT, bintobcd(ymdhms->dt_day));
+	WRITERTC(sc, X1241REG_YR, bintobcd(year));
+	WRITERTC(sc, X1241REG_Y2K, bintobcd(y2k));
 
 	/* lock writes again */
 	WRITERTC(sc, X1241REG_SR, 0);
@@ -187,17 +187,17 @@ xirtc_gettime(todr_chip_handle_t handle,
 	uint8_t status;
 
 	time_smbus_init(sc->sc_smbus_chan);
-	ymdhms->dt_day = FROMBCD(READRTC(sc, X1241REG_DT));
-	ymdhms->dt_mon =  FROMBCD(READRTC(sc, X1241REG_MO));
+	ymdhms->dt_day = bcdtobin(READRTC(sc, X1241REG_DT));
+	ymdhms->dt_mon =  bcdtobin(READRTC(sc, X1241REG_MO));
 	year =  READRTC(sc, X1241REG_YR);
 	y2k = READRTC(sc, X1241REG_Y2K);
-	ymdhms->dt_year = FROMBCD(y2k) * 100 + FROMBCD(year);
+	ymdhms->dt_year = bcdtobin(y2k) * 100 + bcdtobin(year);
 
 
-	ymdhms->dt_sec = FROMBCD(READRTC(sc, X1241REG_SC));
-	ymdhms->dt_min = FROMBCD(READRTC(sc, X1241REG_MN));
+	ymdhms->dt_sec = bcdtobin(READRTC(sc, X1241REG_SC));
+	ymdhms->dt_min = bcdtobin(READRTC(sc, X1241REG_MN));
 	hour = READRTC(sc, X1241REG_HR);
-	ymdhms->dt_hour = FROMBCD(hour & ~X1241REG_HR_MIL);
+	ymdhms->dt_hour = bcdtobin(hour & ~X1241REG_HR_MIL);
 
 	status = READRTC(sc, X1241REG_SR);
 
@@ -265,19 +265,19 @@ strtc_settime(todr_chip_handle_t handle,
 
 	time_smbus_init(sc->sc_smbus_chan);
 
-	hour = TOBCD(ymdhms->dt_hour);
+	hour = bintobcd(ymdhms->dt_hour);
 	if (ymdhms->dt_year >= 2000)	/* Should be always true! */
 		hour |= M41T81_HOUR_CB | M41T81_HOUR_CEB;
 
 	/* set the time */
-	WRITERTC(sc, M41T81_SEC, TOBCD(ymdhms->dt_sec));
-	WRITERTC(sc, M41T81_MIN, TOBCD(ymdhms->dt_min));
+	WRITERTC(sc, M41T81_SEC, bintobcd(ymdhms->dt_sec));
+	WRITERTC(sc, M41T81_MIN, bintobcd(ymdhms->dt_min));
 	WRITERTC(sc, M41T81_HOUR, hour);
 
 	/* set the date */
-	WRITERTC(sc, M41T81_DATE, TOBCD(ymdhms->dt_day));
-	WRITERTC(sc, M41T81_MON, TOBCD(ymdhms->dt_mon));
-	WRITERTC(sc, M41T81_YEAR, TOBCD(ymdhms->dt_year % 100));
+	WRITERTC(sc, M41T81_DATE, bintobcd(ymdhms->dt_day));
+	WRITERTC(sc, M41T81_MON, bintobcd(ymdhms->dt_mon));
+	WRITERTC(sc, M41T81_YEAR, bintobcd(ymdhms->dt_year % 100));
 
 	return (0);
 }
@@ -290,14 +290,14 @@ strtc_gettime(todr_chip_handle_t handle,
 
 	time_smbus_init(sc->sc_smbus_chan);
 
-	ymdhms->dt_sec = FROMBCD(READRTC(sc, M41T81_SEC));
-	ymdhms->dt_min = FROMBCD(READRTC(sc, M41T81_MIN));
+	ymdhms->dt_sec = bcdtobin(READRTC(sc, M41T81_SEC));
+	ymdhms->dt_min = bcdtobin(READRTC(sc, M41T81_MIN));
 	hour = READRTC(sc, M41T81_HOUR & M41T81_HOUR_MASK);
-	ymdhms->dt_hour = FROMBCD(hour & M41T81_HOUR_MASK);
+	ymdhms->dt_hour = bcdtobin(hour & M41T81_HOUR_MASK);
 
-	ymdhms->dt_day = FROMBCD(READRTC(sc, M41T81_DATE));
-	ymdhms->dt_mon =  FROMBCD(READRTC(sc, M41T81_MON));
-	ymdhms->dt_year =  1900 + FROMBCD(READRTC(sc, M41T81_YEAR));
+	ymdhms->dt_day = bcdtobin(READRTC(sc, M41T81_DATE));
+	ymdhms->dt_mon =  bcdtobin(READRTC(sc, M41T81_MON));
+	ymdhms->dt_year =  1900 + bcdtobin(READRTC(sc, M41T81_YEAR));
 	if (hour & M41T81_HOUR_CB)
 		ymdhms->dt_year += 100;
 
@@ -305,7 +305,7 @@ strtc_gettime(todr_chip_handle_t handle,
 }
 
 #define	NITERS			3
-#define	RTC_SECONDS(rtc)	FROMBCD(READRTC((rtc), X1241REG_SC))
+#define	RTC_SECONDS(rtc)	bcdtobin(READRTC((rtc), X1241REG_SC))
 
 /*
  * Since it takes so long to read the complete time/date values from

Index: src/sys/arch/sgimips/dev/dpclock.c
diff -u src/sys/arch/sgimips/dev/dpclock.c:1.4 src/sys/arch/sgimips/dev/dpclock.c:1.5
--- src/sys/arch/sgimips/dev/dpclock.c:1.4	Sat Oct 27 13:18:09 2012
+++ src/sys/arch/sgimips/dev/dpclock.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: dpclock.c,v 1.4 2012/10/27 17:18:09 chs Exp $	*/
+/*	$NetBSD: dpclock.c,v 1.5 2014/11/20 16:34:26 christos Exp $	*/
 
 /*
  * Copyright (c) 2001 Erik Reid
@@ -140,11 +140,11 @@ dpclock_gettime(struct todr_chip_handle 
 	for (i = 0; i < 32; i++)
 		regs[i] = bus_space_read_1(sc->sc_rtct, sc->sc_rtch, i);
 
-	dt.dt_sec = FROMBCD(regs[DP8573A_SAVE_SEC]);
-	dt.dt_min = FROMBCD(regs[DP8573A_SAVE_MIN]);
+	dt.dt_sec = bcdtobin(regs[DP8573A_SAVE_SEC]);
+	dt.dt_min = bcdtobin(regs[DP8573A_SAVE_MIN]);
 
 	if (regs[DP8573A_RT_MODE] & DP8573A_RT_MODE_1224) {
-		dt.dt_hour = FROMBCD(regs[DP8573A_SAVE_HOUR] &
+		dt.dt_hour = bcdtobin(regs[DP8573A_SAVE_HOUR] &
 						DP8573A_HOUR_12HR_MASK) +
 		    ((regs[DP8573A_SAVE_HOUR] & DP8573A_RT_MODE_1224) ? 0 : 12);
 
@@ -157,14 +157,14 @@ dpclock_gettime(struct todr_chip_handle 
 		if (dt.dt_hour == 24)
 			dt.dt_hour = 0;
 	} else {
-		dt.dt_hour = FROMBCD(regs[DP8573A_SAVE_HOUR] &
+		dt.dt_hour = bcdtobin(regs[DP8573A_SAVE_HOUR] &
 							DP8573A_HOUR_24HR_MASK);
 	}
 
-	dt.dt_wday = FROMBCD(regs[DP8573A_DOW]);    /* Not from time saved */
-	dt.dt_day = FROMBCD(regs[DP8573A_SAVE_DOM]);
-	dt.dt_mon = FROMBCD(regs[DP8573A_SAVE_MONTH]);
-	dt.dt_year = FROM_IRIX_YEAR(FROMBCD(regs[DP8573A_YEAR]));
+	dt.dt_wday = bcdtobin(regs[DP8573A_DOW]);    /* Not from time saved */
+	dt.dt_day = bcdtobin(regs[DP8573A_SAVE_DOM]);
+	dt.dt_mon = bcdtobin(regs[DP8573A_SAVE_MONTH]);
+	dt.dt_year = FROM_IRIX_YEAR(bcdtobin(regs[DP8573A_YEAR]));
 
 	/* simple sanity checks */
 	if (dt.dt_mon > 12 || dt.dt_day > 31 ||
@@ -204,13 +204,13 @@ dpclock_settime(struct todr_chip_handle 
 		regs[i] = bus_space_read_1(sc->sc_rtct, sc->sc_rtch, i);
 
 	regs[DP8573A_SUBSECOND] = 0;
-	regs[DP8573A_SECOND] = TOBCD(dt.dt_sec);
-	regs[DP8573A_MINUTE] = TOBCD(dt.dt_min);
-	regs[DP8573A_HOUR] = TOBCD(dt.dt_hour) & DP8573A_HOUR_24HR_MASK;
-	regs[DP8573A_DOW] = TOBCD(dt.dt_wday);
-	regs[DP8573A_DOM] = TOBCD(dt.dt_day);
-	regs[DP8573A_MONTH] = TOBCD(dt.dt_mon);
-	regs[DP8573A_YEAR] = TOBCD(TO_IRIX_YEAR(dt.dt_year));
+	regs[DP8573A_SECOND] = bintobcd(dt.dt_sec);
+	regs[DP8573A_MINUTE] = bintobcd(dt.dt_min);
+	regs[DP8573A_HOUR] = bintobcd(dt.dt_hour) & DP8573A_HOUR_24HR_MASK;
+	regs[DP8573A_DOW] = bintobcd(dt.dt_wday);
+	regs[DP8573A_DOM] = bintobcd(dt.dt_day);
+	regs[DP8573A_MONTH] = bintobcd(dt.dt_mon);
+	regs[DP8573A_YEAR] = bintobcd(TO_IRIX_YEAR(dt.dt_year));
 
 	s = splhigh();
 	i = bus_space_read_1(sc->sc_rtct, sc->sc_rtch, DP8573A_RT_MODE);

Index: src/sys/arch/sgimips/dev/dsclock.c
diff -u src/sys/arch/sgimips/dev/dsclock.c:1.5 src/sys/arch/sgimips/dev/dsclock.c:1.6
--- src/sys/arch/sgimips/dev/dsclock.c:1.5	Fri Jul  1 14:53:46 2011
+++ src/sys/arch/sgimips/dev/dsclock.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: dsclock.c,v 1.5 2011/07/01 18:53:46 dyoung Exp $	*/
+/*	$NetBSD: dsclock.c,v 1.6 2014/11/20 16:34:26 christos Exp $	*/
 
 /*
  * Copyright (c) 2001 Rafal K. Boni
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dsclock.c,v 1.5 2011/07/01 18:53:46 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dsclock.c,v 1.6 2014/11/20 16:34:26 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -126,12 +126,12 @@ dsclock_gettime_ymdhms(struct todr_chip_
 	DS1286_GETTOD(sc, &regs)
 	splx(s);
 
-	dt->dt_sec = FROMBCD(regs[DS1286_SEC]);
-	dt->dt_min = FROMBCD(regs[DS1286_MIN]);
+	dt->dt_sec = bcdtobin(regs[DS1286_SEC]);
+	dt->dt_min = bcdtobin(regs[DS1286_MIN]);
 
 	if (regs[DS1286_HOUR] & DS1286_HOUR_12MODE) {
 		dt->dt_hour =
-		    FROMBCD(regs[DS1286_HOUR] & DS1286_HOUR_12HR_MASK) 
+		    bcdtobin(regs[DS1286_HOUR] & DS1286_HOUR_12HR_MASK) 
 		    + ((regs[DS1286_HOUR] & DS1286_HOUR_12HR_PM) ? 12 : 0);
 
 		/*
@@ -143,13 +143,13 @@ dsclock_gettime_ymdhms(struct todr_chip_
 			dt->dt_hour = 0;
 	} else {
 		 dt->dt_hour =
-		    FROMBCD(regs[DS1286_HOUR] & DS1286_HOUR_24HR_MASK);
+		    bcdtobin(regs[DS1286_HOUR] & DS1286_HOUR_24HR_MASK);
 	}
 
-	dt->dt_wday = FROMBCD(regs[DS1286_DOW]);
-	dt->dt_day = FROMBCD(regs[DS1286_DOM]);
-	dt->dt_mon = FROMBCD(regs[DS1286_MONTH] & DS1286_MONTH_MASK);
-	dt->dt_year = FROM_IRIX_YEAR(FROMBCD(regs[DS1286_YEAR]));
+	dt->dt_wday = bcdtobin(regs[DS1286_DOW]);
+	dt->dt_day = bcdtobin(regs[DS1286_DOM]);
+	dt->dt_mon = bcdtobin(regs[DS1286_MONTH] & DS1286_MONTH_MASK);
+	dt->dt_year = FROM_IRIX_YEAR(bcdtobin(regs[DS1286_YEAR]));
 
 	return 0;
 }
@@ -169,17 +169,17 @@ dsclock_settime_ymdhms(struct todr_chip_
 	splx(s);
 
 	regs[DS1286_SUBSEC] = 0;
-	regs[DS1286_SEC] = TOBCD(dt->dt_sec);
-	regs[DS1286_MIN] = TOBCD(dt->dt_min);
-	regs[DS1286_HOUR] = TOBCD(dt->dt_hour) & DS1286_HOUR_24HR_MASK;
-	regs[DS1286_DOW] = TOBCD(dt->dt_wday);
-	regs[DS1286_DOM] = TOBCD(dt->dt_day);
+	regs[DS1286_SEC] = bintobcd(dt->dt_sec);
+	regs[DS1286_MIN] = bintobcd(dt->dt_min);
+	regs[DS1286_HOUR] = bintobcd(dt->dt_hour) & DS1286_HOUR_24HR_MASK;
+	regs[DS1286_DOW] = bintobcd(dt->dt_wday);
+	regs[DS1286_DOM] = bintobcd(dt->dt_day);
 
 	/* Leave wave-generator bits as set originally */
 	regs[DS1286_MONTH] &=  ~DS1286_MONTH_MASK;
-	regs[DS1286_MONTH] |=  TOBCD(dt->dt_mon) & DS1286_MONTH_MASK;
+	regs[DS1286_MONTH] |=  bintobcd(dt->dt_mon) & DS1286_MONTH_MASK;
 
-	regs[DS1286_YEAR] = TOBCD(TO_IRIX_YEAR(dt->dt_year));
+	regs[DS1286_YEAR] = bintobcd(TO_IRIX_YEAR(dt->dt_year));
 
 	s = splhigh();
 	DS1286_PUTTOD(sc, &regs);

Index: src/sys/arch/sgimips/mace/mcclock_mace.c
diff -u src/sys/arch/sgimips/mace/mcclock_mace.c:1.15 src/sys/arch/sgimips/mace/mcclock_mace.c:1.16
--- src/sys/arch/sgimips/mace/mcclock_mace.c:1.15	Mon Dec 16 10:45:29 2013
+++ src/sys/arch/sgimips/mace/mcclock_mace.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: mcclock_mace.c,v 1.15 2013/12/16 15:45:29 mrg Exp $	*/
+/*	$NetBSD: mcclock_mace.c,v 1.16 2014/11/20 16:34:26 christos Exp $	*/
 
 /*
  * Copyright (c) 2001 Antti Kantee.  All Rights Reserved.
@@ -65,7 +65,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mcclock_mace.c,v 1.15 2013/12/16 15:45:29 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mcclock_mace.c,v 1.16 2014/11/20 16:34:26 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -187,14 +187,14 @@ mcclock_mace_gettime_ymdhms(todr_chip_ha
 	DS1687_GETTOD(sc, &regs);
 	splx(s);
 
-	dt->dt_sec = FROMBCD(regs[DS1687_SOFT_SEC]);
-	dt->dt_min = FROMBCD(regs[DS1687_SOFT_MIN]);
-	dt->dt_hour = FROMBCD(regs[DS1687_SOFT_HOUR]);
-	dt->dt_wday = FROMBCD(regs[DS1687_SOFT_DOW]);
-	dt->dt_day = FROMBCD(regs[DS1687_SOFT_DOM]);
-	dt->dt_mon = FROMBCD(regs[DS1687_SOFT_MONTH]);
-	dt->dt_year = FROMBCD(regs[DS1687_SOFT_YEAR]) +
-	    (100 * FROMBCD(regs[DS1687_SOFT_CENTURY]));
+	dt->dt_sec = bcdtobin(regs[DS1687_SOFT_SEC]);
+	dt->dt_min = bcdtobin(regs[DS1687_SOFT_MIN]);
+	dt->dt_hour = bcdtobin(regs[DS1687_SOFT_HOUR]);
+	dt->dt_wday = bcdtobin(regs[DS1687_SOFT_DOW]);
+	dt->dt_day = bcdtobin(regs[DS1687_SOFT_DOM]);
+	dt->dt_mon = bcdtobin(regs[DS1687_SOFT_MONTH]);
+	dt->dt_year = bcdtobin(regs[DS1687_SOFT_YEAR]) +
+	    (100 * bcdtobin(regs[DS1687_SOFT_CENTURY]));
 
 	return 0;
 }
@@ -208,14 +208,14 @@ mcclock_mace_settime_ymdhms(todr_chip_ha
 
 	memset(&regs, 0, sizeof(regs));
 
-	regs[DS1687_SOFT_SEC] = TOBCD(dt->dt_sec);
-	regs[DS1687_SOFT_MIN] = TOBCD(dt->dt_min);
-	regs[DS1687_SOFT_HOUR] = TOBCD(dt->dt_hour);
-	regs[DS1687_SOFT_DOW] = TOBCD(dt->dt_wday);
-	regs[DS1687_SOFT_DOM] = TOBCD(dt->dt_day);
-	regs[DS1687_SOFT_MONTH] = TOBCD(dt->dt_mon);
-	regs[DS1687_SOFT_YEAR] = TOBCD(dt->dt_year % 100);
-	regs[DS1687_SOFT_CENTURY] = TOBCD(dt->dt_year / 100);
+	regs[DS1687_SOFT_SEC] = bintobcd(dt->dt_sec);
+	regs[DS1687_SOFT_MIN] = bintobcd(dt->dt_min);
+	regs[DS1687_SOFT_HOUR] = bintobcd(dt->dt_hour);
+	regs[DS1687_SOFT_DOW] = bintobcd(dt->dt_wday);
+	regs[DS1687_SOFT_DOM] = bintobcd(dt->dt_day);
+	regs[DS1687_SOFT_MONTH] = bintobcd(dt->dt_mon);
+	regs[DS1687_SOFT_YEAR] = bintobcd(dt->dt_year % 100);
+	regs[DS1687_SOFT_CENTURY] = bintobcd(dt->dt_year / 100);
 	s = splhigh();
 	DS1687_PUTTOD(sc, &regs);
 	splx(s);

Index: src/sys/arch/sh3/dev/rtc.c
diff -u src/sys/arch/sh3/dev/rtc.c:1.9 src/sys/arch/sh3/dev/rtc.c:1.10
--- src/sys/arch/sh3/dev/rtc.c:1.9	Mon Sep  8 06:00:18 2014
+++ src/sys/arch/sh3/dev/rtc.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: rtc.c,v 1.9 2014/09/08 10:00:18 martin Exp $ */
+/*	$NetBSD: rtc.c,v 1.10 2014/11/20 16:34:26 christos Exp $ */
 
 /*-
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rtc.c,v 1.9 2014/09/08 10:00:18 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rtc.c,v 1.10 2014/11/20 16:34:26 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -180,11 +180,11 @@ rtc_gettime_ymdhms(todr_chip_handle_t h,
 			year = _reg_read_1(SH3_RYRCNT);
 		else
 			year = _reg_read_2(SH4_RYRCNT) & 0x00ff;
-		dt->dt_year = FROMBCD(year);
+		dt->dt_year = bcdtobin(year);
 
 		/* read counter */
 #define	RTCGET(x, y) \
-		dt->dt_ ## x = FROMBCD(_reg_read_1(SH_(R ## y ## CNT)))
+		dt->dt_ ## x = bcdtobin(_reg_read_1(SH_(R ## y ## CNT)))
 
 		RTCGET(mon, MON);
 		RTCGET(wday, WK);
@@ -231,7 +231,7 @@ rtc_settime_ymdhms(todr_chip_handle_t h,
 	if (year > 99)
 		year -= 100;
 
-	year = TOBCD(year);
+	year = bintobcd(year);
 
 	r = _reg_read_1(SH_(RCR2));
 
@@ -245,7 +245,7 @@ rtc_settime_ymdhms(todr_chip_handle_t h,
 		_reg_write_2(SH4_RYRCNT, year);
 
 #define	RTCSET(x, y) \
-	_reg_write_1(SH_(R ## x ## CNT), TOBCD(dt->dt_ ## y))
+	_reg_write_1(SH_(R ## x ## CNT), bintobcd(dt->dt_ ## y))
 
 	RTCSET(MON, mon);
 	RTCSET(WK, wday);

Index: src/sys/dev/i2c/ds1307.c
diff -u src/sys/dev/i2c/ds1307.c:1.20 src/sys/dev/i2c/ds1307.c:1.21
--- src/sys/dev/i2c/ds1307.c:1.20	Mon Oct 13 06:29:27 2014
+++ src/sys/dev/i2c/ds1307.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: ds1307.c,v 1.20 2014/10/13 10:29:27 martin Exp $	*/
+/*	$NetBSD: ds1307.c,v 1.21 2014/11/20 16:34:26 christos Exp $	*/
 
 /*
  * Copyright (c) 2003 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ds1307.c,v 1.20 2014/10/13 10:29:27 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ds1307.c,v 1.21 2014/11/20 16:34:26 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -432,23 +432,23 @@ dsrtc_clock_read_ymdhms(struct dsrtc_sof
 	/*
 	 * Convert the RTC's register values into something useable
 	 */
-	dt->dt_sec = FROMBCD(bcd[DSXXXX_SECONDS] & DSXXXX_SECONDS_MASK);
-	dt->dt_min = FROMBCD(bcd[DSXXXX_MINUTES] & DSXXXX_MINUTES_MASK);
+	dt->dt_sec = bcdtobin(bcd[DSXXXX_SECONDS] & DSXXXX_SECONDS_MASK);
+	dt->dt_min = bcdtobin(bcd[DSXXXX_MINUTES] & DSXXXX_MINUTES_MASK);
 
 	if ((bcd[DSXXXX_HOURS] & DSXXXX_HOURS_12HRS_MODE) != 0) {
-		dt->dt_hour = FROMBCD(bcd[DSXXXX_HOURS] &
+		dt->dt_hour = bcdtobin(bcd[DSXXXX_HOURS] &
 		    DSXXXX_HOURS_12MASK) % 12; /* 12AM -> 0, 12PM -> 12 */
 		if (bcd[DSXXXX_HOURS] & DSXXXX_HOURS_12HRS_PM)
 			dt->dt_hour += 12;
 	} else
-		dt->dt_hour = FROMBCD(bcd[DSXXXX_HOURS] &
+		dt->dt_hour = bcdtobin(bcd[DSXXXX_HOURS] &
 		    DSXXXX_HOURS_24MASK);
 
-	dt->dt_day = FROMBCD(bcd[DSXXXX_DATE] & DSXXXX_DATE_MASK);
-	dt->dt_mon = FROMBCD(bcd[DSXXXX_MONTH] & DSXXXX_MONTH_MASK);
+	dt->dt_day = bcdtobin(bcd[DSXXXX_DATE] & DSXXXX_DATE_MASK);
+	dt->dt_mon = bcdtobin(bcd[DSXXXX_MONTH] & DSXXXX_MONTH_MASK);
 
 	/* XXX: Should be an MD way to specify EPOCH used by BIOS/Firmware */
-	dt->dt_year = FROMBCD(bcd[DSXXXX_YEAR]) + POSIX_BASE_YEAR;
+	dt->dt_year = bcdtobin(bcd[DSXXXX_YEAR]) + POSIX_BASE_YEAR;
 	if (bcd[DSXXXX_MONTH] & DSXXXX_MONTH_CENTURY)
 		dt->dt_year += 100;
 
@@ -468,13 +468,13 @@ dsrtc_clock_write_ymdhms(struct dsrtc_so
 	 * Convert our time representation into something the DSXXXX
 	 * can understand.
 	 */
-	bcd[DSXXXX_SECONDS] = TOBCD(dt->dt_sec);
-	bcd[DSXXXX_MINUTES] = TOBCD(dt->dt_min);
-	bcd[DSXXXX_HOURS] = TOBCD(dt->dt_hour); /* DSXXXX_HOURS_12HRS_MODE=0 */
-	bcd[DSXXXX_DATE] = TOBCD(dt->dt_day);
-	bcd[DSXXXX_DAY] = TOBCD(dt->dt_wday);
-	bcd[DSXXXX_MONTH] = TOBCD(dt->dt_mon);
-	bcd[DSXXXX_YEAR] = TOBCD((dt->dt_year - POSIX_BASE_YEAR) % 100);
+	bcd[DSXXXX_SECONDS] = bintobcd(dt->dt_sec);
+	bcd[DSXXXX_MINUTES] = bintobcd(dt->dt_min);
+	bcd[DSXXXX_HOURS] = bintobcd(dt->dt_hour); /* DSXXXX_HOURS_12HRS_MODE=0 */
+	bcd[DSXXXX_DATE] = bintobcd(dt->dt_day);
+	bcd[DSXXXX_DAY] = bintobcd(dt->dt_wday);
+	bcd[DSXXXX_MONTH] = bintobcd(dt->dt_mon);
+	bcd[DSXXXX_YEAR] = bintobcd((dt->dt_year - POSIX_BASE_YEAR) % 100);
 	if (dt->dt_year - POSIX_BASE_YEAR >= 100)
 		bcd[DSXXXX_MONTH] |= DSXXXX_MONTH_CENTURY;
 

Index: src/sys/dev/i2c/m41st84.c
diff -u src/sys/dev/i2c/m41st84.c:1.21 src/sys/dev/i2c/m41st84.c:1.22
--- src/sys/dev/i2c/m41st84.c:1.21	Fri Jul 25 04:10:37 2014
+++ src/sys/dev/i2c/m41st84.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: m41st84.c,v 1.21 2014/07/25 08:10:37 dholland Exp $	*/
+/*	$NetBSD: m41st84.c,v 1.22 2014/11/20 16:34:26 christos Exp $	*/
 
 /*
  * Copyright (c) 2003 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: m41st84.c,v 1.21 2014/07/25 08:10:37 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: m41st84.c,v 1.22 2014/11/20 16:34:26 christos Exp $");
 
 #include "opt_strtc.h"
 
@@ -346,14 +346,14 @@ strtc_clock_read(struct strtc_softc *sc,
 	/*
 	 * Convert the M41ST84's register values into something useable
 	 */
-	dt->dt_sec = FROMBCD(bcd[M41ST84_REG_SEC] & M41ST84_SEC_MASK);
-	dt->dt_min = FROMBCD(bcd[M41ST84_REG_MIN] & M41ST84_MIN_MASK);
-	dt->dt_hour = FROMBCD(bcd[M41ST84_REG_CENHR] & M41ST84_HOUR_MASK);
-	dt->dt_day = FROMBCD(bcd[M41ST84_REG_DATE] & M41ST84_DATE_MASK);
-	dt->dt_mon = FROMBCD(bcd[M41ST84_REG_MONTH] & M41ST84_MONTH_MASK);
+	dt->dt_sec = bcdtobin(bcd[M41ST84_REG_SEC] & M41ST84_SEC_MASK);
+	dt->dt_min = bcdtobin(bcd[M41ST84_REG_MIN] & M41ST84_MIN_MASK);
+	dt->dt_hour = bcdtobin(bcd[M41ST84_REG_CENHR] & M41ST84_HOUR_MASK);
+	dt->dt_day = bcdtobin(bcd[M41ST84_REG_DATE] & M41ST84_DATE_MASK);
+	dt->dt_mon = bcdtobin(bcd[M41ST84_REG_MONTH] & M41ST84_MONTH_MASK);
 
 	/* XXX: Should be an MD way to specify EPOCH used by BIOS/Firmware */
-	dt->dt_year = FROMBCD(bcd[M41ST84_REG_YEAR]) + POSIX_BASE_YEAR;
+	dt->dt_year = bcdtobin(bcd[M41ST84_REG_YEAR]) + POSIX_BASE_YEAR;
 
 	return (1);
 }
@@ -368,14 +368,14 @@ strtc_clock_write(struct strtc_softc *sc
 	 * Convert our time representation into something the M41ST84
 	 * can understand.
 	 */
-	bcd[M41ST84_REG_CSEC] = TOBCD(0);	/* must always write as 0 */
-	bcd[M41ST84_REG_SEC] = TOBCD(dt->dt_sec);
-	bcd[M41ST84_REG_MIN] = TOBCD(dt->dt_min);
-	bcd[M41ST84_REG_CENHR] = TOBCD(dt->dt_hour);
-	bcd[M41ST84_REG_DATE] = TOBCD(dt->dt_day);
-	bcd[M41ST84_REG_DAY] = TOBCD(dt->dt_wday);
-	bcd[M41ST84_REG_MONTH] = TOBCD(dt->dt_mon);
-	bcd[M41ST84_REG_YEAR] = TOBCD((dt->dt_year - POSIX_BASE_YEAR) % 100);
+	bcd[M41ST84_REG_CSEC] = bintobcd(0);	/* must always write as 0 */
+	bcd[M41ST84_REG_SEC] = bintobcd(dt->dt_sec);
+	bcd[M41ST84_REG_MIN] = bintobcd(dt->dt_min);
+	bcd[M41ST84_REG_CENHR] = bintobcd(dt->dt_hour);
+	bcd[M41ST84_REG_DATE] = bintobcd(dt->dt_day);
+	bcd[M41ST84_REG_DAY] = bintobcd(dt->dt_wday);
+	bcd[M41ST84_REG_MONTH] = bintobcd(dt->dt_mon);
+	bcd[M41ST84_REG_YEAR] = bintobcd((dt->dt_year - POSIX_BASE_YEAR) % 100);
 
 	if (iic_acquire_bus(sc->sc_tag, I2C_F_POLL)) {
 		aprint_error_dev(sc->sc_dev,

Index: src/sys/dev/i2c/m41t00.c
diff -u src/sys/dev/i2c/m41t00.c:1.18 src/sys/dev/i2c/m41t00.c:1.19
--- src/sys/dev/i2c/m41t00.c:1.18	Fri Jul 25 04:10:37 2014
+++ src/sys/dev/i2c/m41t00.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: m41t00.c,v 1.18 2014/07/25 08:10:37 dholland Exp $	*/
+/*	$NetBSD: m41t00.c,v 1.19 2014/11/20 16:34:26 christos Exp $	*/
 
 /*
  * Copyright (c) 2003 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: m41t00.c,v 1.18 2014/07/25 08:10:37 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: m41t00.c,v 1.19 2014/11/20 16:34:26 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -311,13 +311,13 @@ m41t00_clock_read(struct m41t00_softc *s
 	/*
 	 * Convert the M41T00's register values into something useable
 	 */
-	dt->dt_sec = FROMBCD(bcd[M41T00_SEC] & M41T00_SEC_MASK);
-	dt->dt_min = FROMBCD(bcd[M41T00_MIN] & M41T00_MIN_MASK);
-	dt->dt_hour = FROMBCD(bcd[M41T00_CENHR] & M41T00_HOUR_MASK);
-	dt->dt_day = FROMBCD(bcd[M41T00_DATE] & M41T00_DATE_MASK);
-	dt->dt_wday = FROMBCD(bcd[M41T00_DAY] & M41T00_DAY_MASK);
-	dt->dt_mon = FROMBCD(bcd[M41T00_MONTH] & M41T00_MONTH_MASK);
-	dt->dt_year = FROMBCD(bcd[M41T00_YEAR] & M41T00_YEAR_MASK);
+	dt->dt_sec = bcdtobin(bcd[M41T00_SEC] & M41T00_SEC_MASK);
+	dt->dt_min = bcdtobin(bcd[M41T00_MIN] & M41T00_MIN_MASK);
+	dt->dt_hour = bcdtobin(bcd[M41T00_CENHR] & M41T00_HOUR_MASK);
+	dt->dt_day = bcdtobin(bcd[M41T00_DATE] & M41T00_DATE_MASK);
+	dt->dt_wday = bcdtobin(bcd[M41T00_DAY] & M41T00_DAY_MASK);
+	dt->dt_mon = bcdtobin(bcd[M41T00_MONTH] & M41T00_MONTH_MASK);
+	dt->dt_year = bcdtobin(bcd[M41T00_YEAR] & M41T00_YEAR_MASK);
 
 	/*
 	 * Since the m41t00 just stores 00-99, and this is 2003 as I write
@@ -339,13 +339,13 @@ m41t00_clock_write(struct m41t00_softc *
 	 * Convert our time representation into something the MAX6900
 	 * can understand.
 	 */
-	bcd[M41T00_SEC] = TOBCD(dt->dt_sec);
-	bcd[M41T00_MIN] = TOBCD(dt->dt_min);
-	bcd[M41T00_CENHR] = TOBCD(dt->dt_hour);
-	bcd[M41T00_DATE] = TOBCD(dt->dt_day);
-	bcd[M41T00_DAY] = TOBCD(dt->dt_wday);
-	bcd[M41T00_MONTH] = TOBCD(dt->dt_mon);
-	bcd[M41T00_YEAR] = TOBCD(dt->dt_year % 100);
+	bcd[M41T00_SEC] = bintobcd(dt->dt_sec);
+	bcd[M41T00_MIN] = bintobcd(dt->dt_min);
+	bcd[M41T00_CENHR] = bintobcd(dt->dt_hour);
+	bcd[M41T00_DATE] = bintobcd(dt->dt_day);
+	bcd[M41T00_DAY] = bintobcd(dt->dt_wday);
+	bcd[M41T00_MONTH] = bintobcd(dt->dt_mon);
+	bcd[M41T00_YEAR] = bintobcd(dt->dt_year % 100);
 
 	if (iic_acquire_bus(sc->sc_tag, I2C_F_POLL)) {
 		aprint_error_dev(sc->sc_dev,
@@ -386,7 +386,7 @@ m41t00_clock_write(struct m41t00_softc *
 		    "INITIAL SECONDS\n");
 		return 0;
 	}
-	init_seconds = FROMBCD(init_seconds & M41T00_SEC_MASK);
+	init_seconds = bcdtobin(init_seconds & M41T00_SEC_MASK);
 
 	for (i = 1; i < M41T00_DATE_BYTES; i++) {
 		cmdbuf[0] = m41t00_rtc_offset[i];
@@ -411,7 +411,7 @@ m41t00_clock_write(struct m41t00_softc *
 		    "FINAL SECONDS\n");
 		return 0;
 	}
-	final_seconds = FROMBCD(final_seconds & M41T00_SEC_MASK);
+	final_seconds = bcdtobin(final_seconds & M41T00_SEC_MASK);
 
 	if ((init_seconds != final_seconds) &&
 	    (((init_seconds + 1) % 60) != final_seconds)) {
Index: src/sys/dev/i2c/x1226.c
diff -u src/sys/dev/i2c/x1226.c:1.18 src/sys/dev/i2c/x1226.c:1.19
--- src/sys/dev/i2c/x1226.c:1.18	Mon Aug  4 19:28:19 2014
+++ src/sys/dev/i2c/x1226.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: x1226.c,v 1.18 2014/08/04 23:28:19 joerg Exp $	*/
+/*	$NetBSD: x1226.c,v 1.19 2014/11/20 16:34:26 christos Exp $	*/
 
 /*
  * Copyright (c) 2003 Shigeyuki Fukushima.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: x1226.c,v 1.18 2014/08/04 23:28:19 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: x1226.c,v 1.19 2014/11/20 16:34:26 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -317,29 +317,29 @@ xrtc_clock_read(struct xrtc_softc *sc, s
 	/*
 	 * Convert the X1226's register bcd values
 	 */
-	dt->dt_sec = FROMBCD(bcd[X1226_REG_SC - X1226_REG_RTC_BASE]
+	dt->dt_sec = bcdtobin(bcd[X1226_REG_SC - X1226_REG_RTC_BASE]
 			& X1226_REG_SC_MASK);
-	dt->dt_min = FROMBCD(bcd[X1226_REG_MN - X1226_REG_RTC_BASE]
+	dt->dt_min = bcdtobin(bcd[X1226_REG_MN - X1226_REG_RTC_BASE]
 			& X1226_REG_MN_MASK);
 	if (!(bcd[X1226_REG_HR - X1226_REG_RTC_BASE] & X1226_FLAG_HR_24H)) {
-		dt->dt_hour = FROMBCD(bcd[X1226_REG_HR - X1226_REG_RTC_BASE]
+		dt->dt_hour = bcdtobin(bcd[X1226_REG_HR - X1226_REG_RTC_BASE]
 				& X1226_REG_HR12_MASK);
 		if (bcd[X1226_REG_HR - X1226_REG_RTC_BASE] & X1226_FLAG_HR_12HPM) {
 			dt->dt_hour += 12;
 		}
 	} else {
-		dt->dt_hour = FROMBCD(bcd[X1226_REG_HR - X1226_REG_RTC_BASE]
+		dt->dt_hour = bcdtobin(bcd[X1226_REG_HR - X1226_REG_RTC_BASE]
 			& X1226_REG_HR24_MASK);
 	}
-	dt->dt_wday = FROMBCD(bcd[X1226_REG_DW - X1226_REG_RTC_BASE]
+	dt->dt_wday = bcdtobin(bcd[X1226_REG_DW - X1226_REG_RTC_BASE]
 			& X1226_REG_DT_MASK);
-	dt->dt_day = FROMBCD(bcd[X1226_REG_DT - X1226_REG_RTC_BASE]
+	dt->dt_day = bcdtobin(bcd[X1226_REG_DT - X1226_REG_RTC_BASE]
 			& X1226_REG_DT_MASK);
-	dt->dt_mon = FROMBCD(bcd[X1226_REG_MO - X1226_REG_RTC_BASE]
+	dt->dt_mon = bcdtobin(bcd[X1226_REG_MO - X1226_REG_RTC_BASE]
 			& X1226_REG_MO_MASK);
-	dt->dt_year = FROMBCD(bcd[X1226_REG_YR - X1226_REG_RTC_BASE]
+	dt->dt_year = bcdtobin(bcd[X1226_REG_YR - X1226_REG_RTC_BASE]
 			& X1226_REG_YR_MASK);
-	dt->dt_year += FROMBCD(bcd[X1226_REG_Y2K - X1226_REG_RTC_BASE]
+	dt->dt_year += bcdtobin(bcd[X1226_REG_Y2K - X1226_REG_RTC_BASE]
 			& X1226_REG_Y2K_MASK) * 100;
 
 	return (1);
@@ -354,15 +354,15 @@ xrtc_clock_write(struct xrtc_softc *sc, 
 	/*
 	 * Convert our time to bcd values
 	 */
-	bcd[X1226_REG_SC - X1226_REG_RTC_BASE] = TOBCD(dt->dt_sec);
-	bcd[X1226_REG_MN - X1226_REG_RTC_BASE] = TOBCD(dt->dt_min);
-	bcd[X1226_REG_HR - X1226_REG_RTC_BASE] = TOBCD(dt->dt_hour)
+	bcd[X1226_REG_SC - X1226_REG_RTC_BASE] = bintobcd(dt->dt_sec);
+	bcd[X1226_REG_MN - X1226_REG_RTC_BASE] = bintobcd(dt->dt_min);
+	bcd[X1226_REG_HR - X1226_REG_RTC_BASE] = bintobcd(dt->dt_hour)
 						| X1226_FLAG_HR_24H;
-	bcd[X1226_REG_DW - X1226_REG_RTC_BASE] = TOBCD(dt->dt_wday);
-	bcd[X1226_REG_DT - X1226_REG_RTC_BASE] = TOBCD(dt->dt_day);
-	bcd[X1226_REG_MO - X1226_REG_RTC_BASE] = TOBCD(dt->dt_mon);
-	bcd[X1226_REG_YR - X1226_REG_RTC_BASE] = TOBCD(dt->dt_year % 100);
-	bcd[X1226_REG_Y2K - X1226_REG_RTC_BASE] = TOBCD(dt->dt_year / 100);
+	bcd[X1226_REG_DW - X1226_REG_RTC_BASE] = bintobcd(dt->dt_wday);
+	bcd[X1226_REG_DT - X1226_REG_RTC_BASE] = bintobcd(dt->dt_day);
+	bcd[X1226_REG_MO - X1226_REG_RTC_BASE] = bintobcd(dt->dt_mon);
+	bcd[X1226_REG_YR - X1226_REG_RTC_BASE] = bintobcd(dt->dt_year % 100);
+	bcd[X1226_REG_Y2K - X1226_REG_RTC_BASE] = bintobcd(dt->dt_year / 100);
 
 	if (iic_acquire_bus(sc->sc_tag, I2C_F_POLL)) {
 		aprint_error_dev(sc->sc_dev,

Index: src/sys/dev/i2c/max6900.c
diff -u src/sys/dev/i2c/max6900.c:1.14 src/sys/dev/i2c/max6900.c:1.15
--- src/sys/dev/i2c/max6900.c:1.14	Fri Jul 25 04:10:37 2014
+++ src/sys/dev/i2c/max6900.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: max6900.c,v 1.14 2014/07/25 08:10:37 dholland Exp $	*/
+/*	$NetBSD: max6900.c,v 1.15 2014/11/20 16:34:26 christos Exp $	*/
 
 /*
  * Copyright (c) 2003 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: max6900.c,v 1.14 2014/07/25 08:10:37 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: max6900.c,v 1.15 2014/11/20 16:34:26 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -338,24 +338,24 @@ maxrtc_clock_read(struct maxrtc_softc *s
 	/*
 	 * Convert the MAX6900's register values into something useable
 	 */
-	dt->dt_sec = FROMBCD(bcd[MAX6900_BURST_SECOND] & MAX6900_SECOND_MASK);
-	dt->dt_min = FROMBCD(bcd[MAX6900_BURST_MINUTE] & MAX6900_MINUTE_MASK);
+	dt->dt_sec = bcdtobin(bcd[MAX6900_BURST_SECOND] & MAX6900_SECOND_MASK);
+	dt->dt_min = bcdtobin(bcd[MAX6900_BURST_MINUTE] & MAX6900_MINUTE_MASK);
 
 	if (bcd[MAX6900_BURST_HOUR] & MAX6900_HOUR_12HRS) {
-		dt->dt_hour = FROMBCD(bcd[MAX6900_BURST_HOUR] &
+		dt->dt_hour = bcdtobin(bcd[MAX6900_BURST_HOUR] &
 		    MAX6900_HOUR_12MASK);
 		if (bcd[MAX6900_BURST_HOUR] & MAX6900_HOUR_12HRS_PM)
 			dt->dt_hour += 12;
 	} else {
-		dt->dt_hour = FROMBCD(bcd[MAX6900_BURST_HOUR] &
+		dt->dt_hour = bcdtobin(bcd[MAX6900_BURST_HOUR] &
 		    MAX6900_HOUR_24MASK);
 	}
 
-	dt->dt_day = FROMBCD(bcd[MAX6900_BURST_DATE] & MAX6900_DATE_MASK);
-	dt->dt_mon = FROMBCD(bcd[MAX6900_BURST_MONTH] & MAX6900_MONTH_MASK);
-	dt->dt_year = FROMBCD(bcd[MAX6900_BURST_YEAR]);
+	dt->dt_day = bcdtobin(bcd[MAX6900_BURST_DATE] & MAX6900_DATE_MASK);
+	dt->dt_mon = bcdtobin(bcd[MAX6900_BURST_MONTH] & MAX6900_MONTH_MASK);
+	dt->dt_year = bcdtobin(bcd[MAX6900_BURST_YEAR]);
 		/* century in the burst control slot */
-	dt->dt_year += (int)FROMBCD(bcd[MAX6900_BURST_CONTROL]) * 100;
+	dt->dt_year += (int)bcdtobin(bcd[MAX6900_BURST_CONTROL]) * 100;
 
 	return (1);
 }
@@ -371,15 +371,15 @@ maxrtc_clock_write(struct maxrtc_softc *
 	 * Convert our time representation into something the MAX6900
 	 * can understand.
 	 */
-	bcd[MAX6900_BURST_SECOND] = TOBCD(dt->dt_sec);
-	bcd[MAX6900_BURST_MINUTE] = TOBCD(dt->dt_min);
-	bcd[MAX6900_BURST_HOUR] = TOBCD(dt->dt_hour) & MAX6900_HOUR_24MASK;
-	bcd[MAX6900_BURST_DATE] = TOBCD(dt->dt_day);
-	bcd[MAX6900_BURST_WDAY] = TOBCD(dt->dt_wday);
-	bcd[MAX6900_BURST_MONTH] = TOBCD(dt->dt_mon);
-	bcd[MAX6900_BURST_YEAR] = TOBCD(dt->dt_year % 100);
+	bcd[MAX6900_BURST_SECOND] = bintobcd(dt->dt_sec);
+	bcd[MAX6900_BURST_MINUTE] = bintobcd(dt->dt_min);
+	bcd[MAX6900_BURST_HOUR] = bintobcd(dt->dt_hour) & MAX6900_HOUR_24MASK;
+	bcd[MAX6900_BURST_DATE] = bintobcd(dt->dt_day);
+	bcd[MAX6900_BURST_WDAY] = bintobcd(dt->dt_wday);
+	bcd[MAX6900_BURST_MONTH] = bintobcd(dt->dt_mon);
+	bcd[MAX6900_BURST_YEAR] = bintobcd(dt->dt_year % 100);
 		/* century in control slot */
-	bcd[MAX6900_BURST_CONTROL] = TOBCD(dt->dt_year / 100);
+	bcd[MAX6900_BURST_CONTROL] = bintobcd(dt->dt_year / 100);
 
 	if (iic_acquire_bus(sc->sc_tag, I2C_F_POLL)) {
 		aprint_error_dev(sc->sc_dev,

Index: src/sys/dev/i2c/pcf8563.c
diff -u src/sys/dev/i2c/pcf8563.c:1.3 src/sys/dev/i2c/pcf8563.c:1.4
--- src/sys/dev/i2c/pcf8563.c:1.3	Sat Jan  7 16:02:15 2012
+++ src/sys/dev/i2c/pcf8563.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: pcf8563.c,v 1.3 2012/01/07 21:02:15 phx Exp $	*/
+/*	$NetBSD: pcf8563.c,v 1.4 2014/11/20 16:34:26 christos Exp $	*/
 
 /*
  * Copyright (c) 2011 Jonathan A. Kollasch
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pcf8563.c,v 1.3 2012/01/07 21:02:15 phx Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pcf8563.c,v 1.4 2014/11/20 16:34:26 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -136,12 +136,12 @@ pcf8563rtc_clock_read(struct pcf8563rtc_
 
 	iic_release_bus(sc->sc_tag, I2C_F_POLL);
 
-	dt->dt_sec = FROMBCD(bcd[PCF8563_R_SECOND] & PCF8563_M_SECOND);
-	dt->dt_min = FROMBCD(bcd[PCF8563_R_MINUTE] & PCF8563_M_MINUTE);
-	dt->dt_hour = FROMBCD(bcd[PCF8563_R_HOUR] & PCF8563_M_HOUR);
-	dt->dt_day = FROMBCD(bcd[PCF8563_R_DAY] & PCF8563_M_DAY);
-	dt->dt_mon = FROMBCD(bcd[PCF8563_R_MONTH] & PCF8563_M_MONTH);
-	dt->dt_year = FROMBCD(bcd[PCF8563_R_YEAR] & PCF8563_M_YEAR);
+	dt->dt_sec = bcdtobin(bcd[PCF8563_R_SECOND] & PCF8563_M_SECOND);
+	dt->dt_min = bcdtobin(bcd[PCF8563_R_MINUTE] & PCF8563_M_MINUTE);
+	dt->dt_hour = bcdtobin(bcd[PCF8563_R_HOUR] & PCF8563_M_HOUR);
+	dt->dt_day = bcdtobin(bcd[PCF8563_R_DAY] & PCF8563_M_DAY);
+	dt->dt_mon = bcdtobin(bcd[PCF8563_R_MONTH] & PCF8563_M_MONTH);
+	dt->dt_year = bcdtobin(bcd[PCF8563_R_YEAR] & PCF8563_M_YEAR);
 	dt->dt_year += 2000;
 
 	return 1;
@@ -153,13 +153,13 @@ pcf8563rtc_clock_write(struct pcf8563rtc
 	uint8_t bcd[PCF8563_NREGS];
 	uint8_t reg = PCF8563_R_SECOND;
 
-	bcd[PCF8563_R_SECOND] = TOBCD(dt->dt_sec);
-	bcd[PCF8563_R_MINUTE] = TOBCD(dt->dt_min);
-	bcd[PCF8563_R_HOUR] = TOBCD(dt->dt_hour);
-	bcd[PCF8563_R_DAY] = TOBCD(dt->dt_day);
-	bcd[PCF8563_R_WEEKDAY] = TOBCD(dt->dt_wday);
-	bcd[PCF8563_R_MONTH] = TOBCD(dt->dt_mon);
-	bcd[PCF8563_R_YEAR] = TOBCD(dt->dt_year % 100);
+	bcd[PCF8563_R_SECOND] = bintobcd(dt->dt_sec);
+	bcd[PCF8563_R_MINUTE] = bintobcd(dt->dt_min);
+	bcd[PCF8563_R_HOUR] = bintobcd(dt->dt_hour);
+	bcd[PCF8563_R_DAY] = bintobcd(dt->dt_day);
+	bcd[PCF8563_R_WEEKDAY] = bintobcd(dt->dt_wday);
+	bcd[PCF8563_R_MONTH] = bintobcd(dt->dt_mon);
+	bcd[PCF8563_R_YEAR] = bintobcd(dt->dt_year % 100);
 
 	if (iic_acquire_bus(sc->sc_tag, I2C_F_POLL)) {
 		device_printf(sc->sc_dev, "acquire bus for write failed\n");

Index: src/sys/dev/i2c/pcf8583.c
diff -u src/sys/dev/i2c/pcf8583.c:1.15 src/sys/dev/i2c/pcf8583.c:1.16
--- src/sys/dev/i2c/pcf8583.c:1.15	Fri Jul 25 04:10:37 2014
+++ src/sys/dev/i2c/pcf8583.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: pcf8583.c,v 1.15 2014/07/25 08:10:37 dholland Exp $	*/
+/*	$NetBSD: pcf8583.c,v 1.16 2014/11/20 16:34:26 christos Exp $	*/
 
 /*
  * Copyright (c) 2003 Wasabi Systems, Inc.
@@ -43,7 +43,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pcf8583.c,v 1.15 2014/07/25 08:10:37 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pcf8583.c,v 1.16 2014/11/20 16:34:26 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -354,18 +354,18 @@ pcfrtc_clock_read(struct pcfrtc_softc *s
 	/*
 	 * Convert the PCF8583's register values into something useable
 	 */
-	*centi      = FROMBCD(bcd[PCF8583_REG_CENTI]);
-	dt->dt_sec  = FROMBCD(bcd[PCF8583_REG_SEC]);
-	dt->dt_min  = FROMBCD(bcd[PCF8583_REG_MIN]);
-	dt->dt_hour = FROMBCD(bcd[PCF8583_REG_HOUR] & PCF8583_HOUR_MASK);
+	*centi      = bcdtobin(bcd[PCF8583_REG_CENTI]);
+	dt->dt_sec  = bcdtobin(bcd[PCF8583_REG_SEC]);
+	dt->dt_min  = bcdtobin(bcd[PCF8583_REG_MIN]);
+	dt->dt_hour = bcdtobin(bcd[PCF8583_REG_HOUR] & PCF8583_HOUR_MASK);
 	if (bcd[PCF8583_REG_HOUR] & PCF8583_HOUR_12H) {
 		dt->dt_hour %= 12;	/* 12AM -> 0, 12PM -> 12 */
 		if (bcd[PCF8583_REG_HOUR] & PCF8583_HOUR_PM)
 			dt->dt_hour += 12;
 	}
 
-	dt->dt_day = FROMBCD(bcd[PCF8583_REG_YEARDATE] & PCF8583_DATE_MASK);
-	dt->dt_mon = FROMBCD(bcd[PCF8583_REG_WKDYMON] & PCF8583_MON_MASK);
+	dt->dt_day = bcdtobin(bcd[PCF8583_REG_YEARDATE] & PCF8583_DATE_MASK);
+	dt->dt_mon = bcdtobin(bcd[PCF8583_REG_WKDYMON] & PCF8583_MON_MASK);
 
 	dt->dt_year = bcd[8] + (bcd[9] * 100);
 	/* Try to notice if the year's rolled over. */
@@ -394,12 +394,12 @@ pcfrtc_clock_write(struct pcfrtc_softc *
 	 * can understand.
 	 */
 	bcd[PCF8583_REG_CENTI]    = centi;
-	bcd[PCF8583_REG_SEC]      = TOBCD(dt->dt_sec);
-	bcd[PCF8583_REG_MIN]      = TOBCD(dt->dt_min);
-	bcd[PCF8583_REG_HOUR]     = TOBCD(dt->dt_hour) & PCF8583_HOUR_MASK;
-	bcd[PCF8583_REG_YEARDATE] = TOBCD(dt->dt_day) |
+	bcd[PCF8583_REG_SEC]      = bintobcd(dt->dt_sec);
+	bcd[PCF8583_REG_MIN]      = bintobcd(dt->dt_min);
+	bcd[PCF8583_REG_HOUR]     = bintobcd(dt->dt_hour) & PCF8583_HOUR_MASK;
+	bcd[PCF8583_REG_YEARDATE] = bintobcd(dt->dt_day) |
 	    ((dt->dt_year % 4) << PCF8583_YEAR_SHIFT);
-	bcd[PCF8583_REG_WKDYMON]  = TOBCD(dt->dt_mon) |
+	bcd[PCF8583_REG_WKDYMON]  = bintobcd(dt->dt_mon) |
 	    ((dt->dt_wday % 4) << PCF8583_WKDY_SHIFT);
 	bcd[8]                    = dt->dt_year % 100;
 	bcd[9]                    = dt->dt_year / 100;

Index: src/sys/dev/i2c/r2025.c
diff -u src/sys/dev/i2c/r2025.c:1.6 src/sys/dev/i2c/r2025.c:1.7
--- src/sys/dev/i2c/r2025.c:1.6	Sat Dec 12 09:44:10 2009
+++ src/sys/dev/i2c/r2025.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: r2025.c,v 1.6 2009/12/12 14:44:10 tsutsui Exp $ */
+/* $NetBSD: r2025.c,v 1.7 2014/11/20 16:34:26 christos Exp $ */
 
 /*-
  * Copyright (c) 2006 Shigeyuki Fukushima.
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: r2025.c,v 1.6 2009/12/12 14:44:10 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: r2025.c,v 1.7 2014/11/20 16:34:26 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -125,9 +125,9 @@ r2025rtc_gettime(struct todr_chip_handle
 		return -1;
 	}
 
-	dt.dt_sec = FROMBCD(bcd[R2025_REG_SEC] & R2025_REG_SEC_MASK);
-	dt.dt_min = FROMBCD(bcd[R2025_REG_MIN] & R2025_REG_MIN_MASK);
-	hour = FROMBCD(bcd[R2025_REG_HOUR] & R2025_REG_HOUR_MASK);
+	dt.dt_sec = bcdtobin(bcd[R2025_REG_SEC] & R2025_REG_SEC_MASK);
+	dt.dt_min = bcdtobin(bcd[R2025_REG_MIN] & R2025_REG_MIN_MASK);
+	hour = bcdtobin(bcd[R2025_REG_HOUR] & R2025_REG_HOUR_MASK);
 	if (rctrl & R2025_REG_CTRL1_H1224) {
 		dt.dt_hour = hour;
 	} else {
@@ -141,10 +141,10 @@ r2025rtc_gettime(struct todr_chip_handle
 			dt.dt_hour = hour;
 		}
 	}
-	dt.dt_wday = FROMBCD(bcd[R2025_REG_WDAY] & R2025_REG_WDAY_MASK);
-	dt.dt_day = FROMBCD(bcd[R2025_REG_DAY] & R2025_REG_DAY_MASK);
-	dt.dt_mon = FROMBCD(bcd[R2025_REG_MON] & R2025_REG_MON_MASK);
-	dt.dt_year = FROMBCD(bcd[R2025_REG_YEAR] & R2025_REG_YEAR_MASK)
+	dt.dt_wday = bcdtobin(bcd[R2025_REG_WDAY] & R2025_REG_WDAY_MASK);
+	dt.dt_day = bcdtobin(bcd[R2025_REG_DAY] & R2025_REG_DAY_MASK);
+	dt.dt_mon = bcdtobin(bcd[R2025_REG_MON] & R2025_REG_MON_MASK);
+	dt.dt_year = bcdtobin(bcd[R2025_REG_YEAR] & R2025_REG_YEAR_MASK)
 		+ ((bcd[R2025_REG_MON] & R2025_REG_MON_Y1920) ? 2000 : 1900);
 
 	tv->tv_sec = clock_ymdhms_to_secs(&dt);
@@ -179,14 +179,14 @@ r2025rtc_settime(struct todr_chip_handle
 	rctrl |= R2025_REG_CTRL1_H1224;
 
 	/* setup registers 0x00-0x06 (7 byte) */
-	bcd[R2025_REG_SEC] = TOBCD(dt.dt_sec) & R2025_REG_SEC_MASK;
-	bcd[R2025_REG_MIN] = TOBCD(dt.dt_min) & R2025_REG_MIN_MASK;
-	bcd[R2025_REG_HOUR] = TOBCD(dt.dt_hour) & R2025_REG_HOUR_MASK;
-	bcd[R2025_REG_WDAY] = TOBCD(dt.dt_wday) & R2025_REG_WDAY_MASK;
-	bcd[R2025_REG_DAY] = TOBCD(dt.dt_day) & R2025_REG_DAY_MASK;
-	bcd[R2025_REG_MON] = (TOBCD(dt.dt_mon) & R2025_REG_MON_MASK)
+	bcd[R2025_REG_SEC] = bintobcd(dt.dt_sec) & R2025_REG_SEC_MASK;
+	bcd[R2025_REG_MIN] = bintobcd(dt.dt_min) & R2025_REG_MIN_MASK;
+	bcd[R2025_REG_HOUR] = bintobcd(dt.dt_hour) & R2025_REG_HOUR_MASK;
+	bcd[R2025_REG_WDAY] = bintobcd(dt.dt_wday) & R2025_REG_WDAY_MASK;
+	bcd[R2025_REG_DAY] = bintobcd(dt.dt_day) & R2025_REG_DAY_MASK;
+	bcd[R2025_REG_MON] = (bintobcd(dt.dt_mon) & R2025_REG_MON_MASK)
 		| ((dt.dt_year >= 2000) ? R2025_REG_MON_Y1920 : 0);
-	bcd[R2025_REG_YEAR] = TOBCD(dt.dt_year % 100) & R2025_REG_YEAR_MASK;
+	bcd[R2025_REG_YEAR] = bintobcd(dt.dt_year % 100) & R2025_REG_YEAR_MASK;
 
 	/* Write RTC register */
 	if (r2025rtc_reg_write(sc, R2025_REG_CTRL1, &rctrl, 1) != 0) {

Index: src/sys/dev/i2c/rs5c372.c
diff -u src/sys/dev/i2c/rs5c372.c:1.13 src/sys/dev/i2c/rs5c372.c:1.14
--- src/sys/dev/i2c/rs5c372.c:1.13	Sun Jun 29 00:04:02 2014
+++ src/sys/dev/i2c/rs5c372.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: rs5c372.c,v 1.13 2014/06/29 04:04:02 tsutsui Exp $	*/
+/*	$NetBSD: rs5c372.c,v 1.14 2014/11/20 16:34:26 christos Exp $	*/
 
 /*-
  * Copyright (C) 2005 NONAKA Kimihiro <[email protected]>
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rs5c372.c,v 1.13 2014/06/29 04:04:02 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rs5c372.c,v 1.14 2014/11/20 16:34:26 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -175,12 +175,12 @@ rs5c372rtc_clock_read(struct rs5c372rtc_
 	/*
 	 * Convert the RS5C372's register values into something useable
 	 */
-	dt->dt_sec = FROMBCD(bcd[RS5C372_SECONDS] & RS5C372_SECONDS_MASK);
-	dt->dt_min = FROMBCD(bcd[RS5C372_MINUTES] & RS5C372_MINUTES_MASK);
-	dt->dt_hour = FROMBCD(bcd[RS5C372_HOURS] & RS5C372_HOURS_24MASK);
-	dt->dt_day = FROMBCD(bcd[RS5C372_DATE] & RS5C372_DATE_MASK);
-	dt->dt_mon = FROMBCD(bcd[RS5C372_MONTH] & RS5C372_MONTH_MASK);
-	dt->dt_year = FROMBCD(bcd[RS5C372_YEAR]) + 2000;
+	dt->dt_sec = bcdtobin(bcd[RS5C372_SECONDS] & RS5C372_SECONDS_MASK);
+	dt->dt_min = bcdtobin(bcd[RS5C372_MINUTES] & RS5C372_MINUTES_MASK);
+	dt->dt_hour = bcdtobin(bcd[RS5C372_HOURS] & RS5C372_HOURS_24MASK);
+	dt->dt_day = bcdtobin(bcd[RS5C372_DATE] & RS5C372_DATE_MASK);
+	dt->dt_mon = bcdtobin(bcd[RS5C372_MONTH] & RS5C372_MONTH_MASK);
+	dt->dt_year = bcdtobin(bcd[RS5C372_YEAR]) + 2000;
 
 	return (1);
 }
@@ -195,13 +195,13 @@ rs5c372rtc_clock_write(struct rs5c372rtc
 	 * Convert our time representation into something the RS5C372
 	 * can understand.
 	 */
-	bcd[RS5C372_SECONDS] = TOBCD(dt->dt_sec);
-	bcd[RS5C372_MINUTES] = TOBCD(dt->dt_min);
-	bcd[RS5C372_HOURS] = TOBCD(dt->dt_hour);
-	bcd[RS5C372_DATE] = TOBCD(dt->dt_day);
-	bcd[RS5C372_DAY] = TOBCD(dt->dt_wday);
-	bcd[RS5C372_MONTH] = TOBCD(dt->dt_mon);
-	bcd[RS5C372_YEAR] = TOBCD(dt->dt_year % 100);
+	bcd[RS5C372_SECONDS] = bintobcd(dt->dt_sec);
+	bcd[RS5C372_MINUTES] = bintobcd(dt->dt_min);
+	bcd[RS5C372_HOURS] = bintobcd(dt->dt_hour);
+	bcd[RS5C372_DATE] = bintobcd(dt->dt_day);
+	bcd[RS5C372_DAY] = bintobcd(dt->dt_wday);
+	bcd[RS5C372_MONTH] = bintobcd(dt->dt_mon);
+	bcd[RS5C372_YEAR] = bintobcd(dt->dt_year % 100);
 
 	if (iic_acquire_bus(sc->sc_tag, I2C_F_POLL)) {
 		aprint_error_dev(sc->sc_dev, "rs5c372rtc_clock_write: failed to "

Index: src/sys/dev/i2c/s390.c
diff -u src/sys/dev/i2c/s390.c:1.2 src/sys/dev/i2c/s390.c:1.3
--- src/sys/dev/i2c/s390.c:1.2	Sat May 28 09:59:31 2011
+++ src/sys/dev/i2c/s390.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: s390.c,v 1.2 2011/05/28 13:59:31 phx Exp $	*/
+/*	$NetBSD: s390.c,v 1.3 2014/11/20 16:34:26 christos Exp $	*/
 
 /*-
  * Copyright (c) 2011 Frank Wille.
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: s390.c,v 1.2 2011/05/28 13:59:31 phx Exp $");
+__KERNEL_RCSID(0, "$NetBSD: s390.c,v 1.3 2014/11/20 16:34:26 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -160,12 +160,12 @@ s390rtc_clock_read(struct s390rtc_softc 
 	/*
 	 * Convert the register values into something useable.
 	 */
-	dt->dt_sec = FROMBCD(bcd[S390_RT1_SECOND]);
-	dt->dt_min = FROMBCD(bcd[S390_RT1_MINUTE]);
-	dt->dt_hour = FROMBCD(bcd[S390_RT1_HOUR] & 0x3f);
-	dt->dt_day = FROMBCD(bcd[S390_RT1_DAY]);
-	dt->dt_mon = FROMBCD(bcd[S390_RT1_MONTH]);
-	dt->dt_year = FROMBCD(bcd[S390_RT1_YEAR]) + 2000;
+	dt->dt_sec = bcdtobin(bcd[S390_RT1_SECOND]);
+	dt->dt_min = bcdtobin(bcd[S390_RT1_MINUTE]);
+	dt->dt_hour = bcdtobin(bcd[S390_RT1_HOUR] & 0x3f);
+	dt->dt_day = bcdtobin(bcd[S390_RT1_DAY]);
+	dt->dt_mon = bcdtobin(bcd[S390_RT1_MONTH]);
+	dt->dt_year = bcdtobin(bcd[S390_RT1_YEAR]) + 2000;
 
 	return 1;
 }
@@ -179,13 +179,13 @@ s390rtc_clock_write(struct s390rtc_softc
 	 * Convert our time representation into something the S-xx390
 	 * can understand.
 	 */
-	bcd[S390_RT1_SECOND] = TOBCD(dt->dt_sec);
-	bcd[S390_RT1_MINUTE] = TOBCD(dt->dt_min);
-	bcd[S390_RT1_HOUR] = TOBCD(dt->dt_hour);
-	bcd[S390_RT1_DAY] = TOBCD(dt->dt_day);
-	bcd[S390_RT1_WDAY] = TOBCD(dt->dt_wday);
-	bcd[S390_RT1_MONTH] = TOBCD(dt->dt_mon);
-	bcd[S390_RT1_YEAR] = TOBCD(dt->dt_year % 100);
+	bcd[S390_RT1_SECOND] = bintobcd(dt->dt_sec);
+	bcd[S390_RT1_MINUTE] = bintobcd(dt->dt_min);
+	bcd[S390_RT1_HOUR] = bintobcd(dt->dt_hour);
+	bcd[S390_RT1_DAY] = bintobcd(dt->dt_day);
+	bcd[S390_RT1_WDAY] = bintobcd(dt->dt_wday);
+	bcd[S390_RT1_MONTH] = bintobcd(dt->dt_mon);
+	bcd[S390_RT1_YEAR] = bintobcd(dt->dt_year % 100);
 
 	return s390rtc_write(sc, S390_REALTIME1, bcd, S390_RT1_NBYTES);
 }

Index: src/sys/dev/i2c/tps65950.c
diff -u src/sys/dev/i2c/tps65950.c:1.4 src/sys/dev/i2c/tps65950.c:1.5
--- src/sys/dev/i2c/tps65950.c:1.4	Tue Feb 25 13:30:09 2014
+++ src/sys/dev/i2c/tps65950.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: tps65950.c,v 1.4 2014/02/25 18:30:09 pooka Exp $ */
+/* $NetBSD: tps65950.c,v 1.5 2014/11/20 16:34:26 christos Exp $ */
 
 /*-
  * Copyright (c) 2012 Jared D. McNeill <[email protected]>
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tps65950.c,v 1.4 2014/02/25 18:30:09 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tps65950.c,v 1.5 2014/11/20 16:34:26 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -361,13 +361,13 @@ tps65950_rtc_gettime(todr_chip_handle_t 
 	RTC_READ(TPS65950_ID4_REG_WEEKS_REG, weeks_reg);
 	iic_release_bus(sc->sc_i2c, 0);
 
-	dt->dt_sec = FROMBCD(seconds_reg);
-	dt->dt_min = FROMBCD(minutes_reg);
-	dt->dt_hour = FROMBCD(hours_reg);
-	dt->dt_day = FROMBCD(days_reg);
-	dt->dt_mon = FROMBCD(months_reg);
-	dt->dt_year = FROMBCD(years_reg) + 2000;
-	dt->dt_wday = FROMBCD(weeks_reg);
+	dt->dt_sec = bcdtobin(seconds_reg);
+	dt->dt_min = bcdtobin(minutes_reg);
+	dt->dt_hour = bcdtobin(hours_reg);
+	dt->dt_day = bcdtobin(days_reg);
+	dt->dt_mon = bcdtobin(months_reg);
+	dt->dt_year = bcdtobin(years_reg) + 2000;
+	dt->dt_wday = bcdtobin(weeks_reg);
 
 	return 0;
 }
@@ -380,13 +380,13 @@ tps65950_rtc_settime(todr_chip_handle_t 
 
 	iic_acquire_bus(sc->sc_i2c, 0);
 	tps65950_rtc_enable(sc, false);
-	RTC_WRITE(TPS65950_ID4_REG_SECONDS_REG, TOBCD(dt->dt_sec));
-	RTC_WRITE(TPS65950_ID4_REG_MINUTES_REG, TOBCD(dt->dt_min));
-	RTC_WRITE(TPS65950_ID4_REG_HOURS_REG, TOBCD(dt->dt_hour));
-	RTC_WRITE(TPS65950_ID4_REG_DAYS_REG, TOBCD(dt->dt_day));
-	RTC_WRITE(TPS65950_ID4_REG_MONTHS_REG, TOBCD(dt->dt_mon));
-	RTC_WRITE(TPS65950_ID4_REG_YEARS_REG, TOBCD(dt->dt_year % 100));
-	RTC_WRITE(TPS65950_ID4_REG_WEEKS_REG, TOBCD(dt->dt_wday));
+	RTC_WRITE(TPS65950_ID4_REG_SECONDS_REG, bintobcd(dt->dt_sec));
+	RTC_WRITE(TPS65950_ID4_REG_MINUTES_REG, bintobcd(dt->dt_min));
+	RTC_WRITE(TPS65950_ID4_REG_HOURS_REG, bintobcd(dt->dt_hour));
+	RTC_WRITE(TPS65950_ID4_REG_DAYS_REG, bintobcd(dt->dt_day));
+	RTC_WRITE(TPS65950_ID4_REG_MONTHS_REG, bintobcd(dt->dt_mon));
+	RTC_WRITE(TPS65950_ID4_REG_YEARS_REG, bintobcd(dt->dt_year % 100));
+	RTC_WRITE(TPS65950_ID4_REG_WEEKS_REG, bintobcd(dt->dt_wday));
 	tps65950_rtc_enable(sc, true);
 	iic_release_bus(sc->sc_i2c, 0);
 

Index: src/sys/dev/ic/mc146818.c
diff -u src/sys/dev/ic/mc146818.c:1.18 src/sys/dev/ic/mc146818.c:1.19
--- src/sys/dev/ic/mc146818.c:1.18	Sat Dec 13 12:32:53 2008
+++ src/sys/dev/ic/mc146818.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: mc146818.c,v 1.18 2008/12/13 17:32:53 tsutsui Exp $	*/
+/*	$NetBSD: mc146818.c,v 1.19 2014/11/20 16:34:26 christos Exp $	*/
 
 /*-
  * Copyright (c) 2003 Izumi Tsutsui.  All rights reserved.
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mc146818.c,v 1.18 2008/12/13 17:32:53 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mc146818.c,v 1.19 2014/11/20 16:34:26 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -97,7 +97,7 @@ mc146818_gettime_ymdhms(todr_chip_handle
 		}
 	}
 
-#define	FROMREG(x)	((sc->sc_flag & MC146818_BCD) ? FROMBCD(x) : (x))
+#define	FROMREG(x)	((sc->sc_flag & MC146818_BCD) ? bcdtobin(x) : (x))
 
 	dt->dt_sec  = FROMREG((*sc->sc_mcread)(sc, MC_SEC));
 	dt->dt_min  = FROMREG((*sc->sc_mcread)(sc, MC_MIN));
@@ -150,7 +150,7 @@ mc146818_settime_ymdhms(todr_chip_handle
 	(*sc->sc_mcwrite)(sc, MC_REGB,
 	    (*sc->sc_mcread)(sc, MC_REGB) | MC_REGB_SET);
 
-#define	TOREG(x)	((sc->sc_flag & MC146818_BCD) ? TOBCD(x) : (x))
+#define	TOREG(x)	((sc->sc_flag & MC146818_BCD) ? bintobcd(x) : (x))
 
 	(*sc->sc_mcwrite)(sc, MC_SEC, TOREG(dt->dt_sec));
 	(*sc->sc_mcwrite)(sc, MC_MIN, TOREG(dt->dt_min));

Index: src/sys/dev/ic/mk48txx.c
diff -u src/sys/dev/ic/mk48txx.c:1.26 src/sys/dev/ic/mk48txx.c:1.27
--- src/sys/dev/ic/mk48txx.c:1.26	Mon Jan  3 20:28:15 2011
+++ src/sys/dev/ic/mk48txx.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: mk48txx.c,v 1.26 2011/01/04 01:28:15 matt Exp $ */
+/*	$NetBSD: mk48txx.c,v 1.27 2014/11/20 16:34:26 christos Exp $ */
 /*-
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mk48txx.c,v 1.26 2011/01/04 01:28:15 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mk48txx.c,v 1.27 2014/11/20 16:34:26 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -120,16 +120,16 @@ mk48txx_gettime_ymdhms(todr_chip_handle_
 	csr |= MK48TXX_CSR_READ;
 	(*sc->sc_nvwr)(sc, clkoff + MK48TXX_ICSR, csr);
 
-	dt->dt_sec = FROMBCD((*sc->sc_nvrd)(sc, clkoff + MK48TXX_ISEC));
-	dt->dt_min = FROMBCD((*sc->sc_nvrd)(sc, clkoff + MK48TXX_IMIN));
-	dt->dt_hour = FROMBCD((*sc->sc_nvrd)(sc, clkoff + MK48TXX_IHOUR));
-	dt->dt_day = FROMBCD((*sc->sc_nvrd)(sc, clkoff + MK48TXX_IDAY));
-	dt->dt_wday = FROMBCD((*sc->sc_nvrd)(sc, clkoff + MK48TXX_IWDAY));
-	dt->dt_mon = FROMBCD((*sc->sc_nvrd)(sc, clkoff + MK48TXX_IMON));
-	year = FROMBCD((*sc->sc_nvrd)(sc, clkoff + MK48TXX_IYEAR));
+	dt->dt_sec = bcdtobin((*sc->sc_nvrd)(sc, clkoff + MK48TXX_ISEC));
+	dt->dt_min = bcdtobin((*sc->sc_nvrd)(sc, clkoff + MK48TXX_IMIN));
+	dt->dt_hour = bcdtobin((*sc->sc_nvrd)(sc, clkoff + MK48TXX_IHOUR));
+	dt->dt_day = bcdtobin((*sc->sc_nvrd)(sc, clkoff + MK48TXX_IDAY));
+	dt->dt_wday = bcdtobin((*sc->sc_nvrd)(sc, clkoff + MK48TXX_IWDAY));
+	dt->dt_mon = bcdtobin((*sc->sc_nvrd)(sc, clkoff + MK48TXX_IMON));
+	year = bcdtobin((*sc->sc_nvrd)(sc, clkoff + MK48TXX_IYEAR));
 
 	if (sc->sc_flag & MK48TXX_HAVE_CENT_REG) {
-		year += 100*FROMBCD(csr & MK48TXX_CSR_CENT_MASK);
+		year += 100*bcdtobin(csr & MK48TXX_CSR_CENT_MASK);
 	} else {
 		year += sc->sc_year0;
 		if (year < POSIX_BASE_YEAR &&
@@ -181,22 +181,22 @@ mk48txx_settime_ymdhms(todr_chip_handle_
 	csr |= MK48TXX_CSR_WRITE;
 	(*sc->sc_nvwr)(sc, clkoff + MK48TXX_ICSR, csr);
 
-	(*sc->sc_nvwr)(sc, clkoff + MK48TXX_ISEC, TOBCD(dt->dt_sec));
-	(*sc->sc_nvwr)(sc, clkoff + MK48TXX_IMIN, TOBCD(dt->dt_min));
-	(*sc->sc_nvwr)(sc, clkoff + MK48TXX_IHOUR, TOBCD(dt->dt_hour));
-	(*sc->sc_nvwr)(sc, clkoff + MK48TXX_IWDAY, TOBCD(dt->dt_wday));
-	(*sc->sc_nvwr)(sc, clkoff + MK48TXX_IDAY, TOBCD(dt->dt_day));
-	(*sc->sc_nvwr)(sc, clkoff + MK48TXX_IMON, TOBCD(dt->dt_mon));
-	(*sc->sc_nvwr)(sc, clkoff + MK48TXX_IYEAR, TOBCD(year));
+	(*sc->sc_nvwr)(sc, clkoff + MK48TXX_ISEC, bintobcd(dt->dt_sec));
+	(*sc->sc_nvwr)(sc, clkoff + MK48TXX_IMIN, bintobcd(dt->dt_min));
+	(*sc->sc_nvwr)(sc, clkoff + MK48TXX_IHOUR, bintobcd(dt->dt_hour));
+	(*sc->sc_nvwr)(sc, clkoff + MK48TXX_IWDAY, bintobcd(dt->dt_wday));
+	(*sc->sc_nvwr)(sc, clkoff + MK48TXX_IDAY, bintobcd(dt->dt_day));
+	(*sc->sc_nvwr)(sc, clkoff + MK48TXX_IMON, bintobcd(dt->dt_mon));
+	(*sc->sc_nvwr)(sc, clkoff + MK48TXX_IYEAR, bintobcd(year));
 
 	/*
 	 * If we have a century register and the century has changed
 	 * update it.
 	 */
 	if ((sc->sc_flag & MK48TXX_HAVE_CENT_REG)
-	    && (csr & MK48TXX_CSR_CENT_MASK) != TOBCD(cent)) {
+	    && (csr & MK48TXX_CSR_CENT_MASK) != bintobcd(cent)) {
 		csr &= ~MK48TXX_CSR_CENT_MASK;
-		csr |= MK48TXX_CSR_CENT_MASK & TOBCD(cent);
+		csr |= MK48TXX_CSR_CENT_MASK & bintobcd(cent);
 		(*sc->sc_nvwr)(sc, clkoff + MK48TXX_ICSR, csr);
 	}
 

Index: src/sys/dev/ic/mm58167.c
diff -u src/sys/dev/ic/mm58167.c:1.15 src/sys/dev/ic/mm58167.c:1.16
--- src/sys/dev/ic/mm58167.c:1.15	Thu Jul 25 00:21:47 2013
+++ src/sys/dev/ic/mm58167.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: mm58167.c,v 1.15 2013/07/25 04:21:47 msaitoh Exp $	*/
+/*	$NetBSD: mm58167.c,v 1.16 2014/11/20 16:34:26 christos Exp $	*/
 
 /*
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mm58167.c,v 1.15 2013/07/25 04:21:47 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mm58167.c,v 1.16 2014/11/20 16:34:26 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/malloc.h>
@@ -104,7 +104,7 @@ mm58167_gettime_ymdhms(todr_chip_handle_
 	do {
 #define _MM58167_GET(dt_f, mm_f)					\
 	byte_value = mm58167_read(sc, mm_f);				\
-	dt->dt_f = FROMBCD(byte_value)
+	dt->dt_f = bcdtobin(byte_value)
 
 		_MM58167_GET(dt_mon, mm58167_mon);
 		_MM58167_GET(dt_day, mm58167_day);
@@ -246,7 +246,7 @@ mm58167_settime_ymdhms(todr_chip_handle_
 
 	/* Load everything. */
 #define _MM58167_PUT(dt_f, mm_f)					\
-	byte_value = TOBCD(dt->dt_f);					\
+	byte_value = bintobcd(dt->dt_f);					\
 	mm58167_write(sc, mm_f, byte_value)
 
 	_MM58167_PUT(dt_mon, mm58167_mon);

Index: src/sys/dev/ic/rs5c313.c
diff -u src/sys/dev/ic/rs5c313.c:1.9 src/sys/dev/ic/rs5c313.c:1.10
--- src/sys/dev/ic/rs5c313.c:1.9	Tue Apr  6 11:29:19 2010
+++ src/sys/dev/ic/rs5c313.c	Thu Nov 20 11:34:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: rs5c313.c,v 1.9 2010/04/06 15:29:19 nonaka Exp $	*/
+/*	$NetBSD: rs5c313.c,v 1.10 2014/11/20 16:34:26 christos Exp $	*/
 
 /*-
  * Copyright (c) 2006 The NetBSD Foundation, Inc.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rs5c313.c,v 1.9 2010/04/06 15:29:19 nonaka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rs5c313.c,v 1.10 2014/11/20 16:34:26 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -229,7 +229,7 @@ rs5c313_todr_settime_ymdhms(todr_chip_ha
 
 #define	RTCSET(x, y)							     \
 	do {								     \
-		t = TOBCD(dt->dt_ ## y) & 0xff;				     \
+		t = bintobcd(dt->dt_ ## y) & 0xff;				     \
 		rs5c313_write_reg(sc, RS5C313_ ## x ## 1, t & 0x0f);	     \
 		rs5c313_write_reg(sc, RS5C313_ ## x ## 10, (t >> 4) & 0x0f); \
 	} while (/* CONSTCOND */0)
@@ -243,7 +243,7 @@ rs5c313_todr_settime_ymdhms(todr_chip_ha
 #undef	RTCSET
 
 	t = dt->dt_year % 100;
-	t = TOBCD(t);
+	t = bintobcd(t);
 	rs5c313_write_reg(sc, RS5C313_YEAR1, t & 0x0f);
 	rs5c313_write_reg(sc, RS5C313_YEAR10, (t >> 4) & 0x0f);
 

Reply via email to