summaryrefslogtreecommitdiff
path: root/include/bcd.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/bcd.h')
-rw-r--r--include/bcd.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/include/bcd.h b/include/bcd.h
new file mode 100644
index 0000000..9ecd328
--- /dev/null
+++ b/include/bcd.h
@@ -0,0 +1,23 @@
+/* Permission is hereby granted to copy, modify and redistribute this code
+ * in terms of the GNU Library General Public License, Version 2 or later,
+ * at your option.
+ */
+
+/* inline functions to translate to/from binary and binary-coded decimal
+ * (frequently found in RTC chips).
+ */
+
+#ifndef _BCD_H
+#define _BCD_H
+
+static inline unsigned int bcd2bin(unsigned int val)
+{
+ return ((val) & 0x0f) + ((val & 0xff) >> 4) * 10;
+}
+
+static inline unsigned int bin2bcd(unsigned int val)
+{
+ return (((val / 10) << 4) | (val % 10));
+}
+
+#endif /* _BCD_H */