bcd.h 548 B

12345678910111213141516171819202122232425
  1. /* Permission is hereby granted to copy, modify and redistribute this code
  2. * in terms of the GNU Library General Public License, Version 2 or later,
  3. * at your option.
  4. */
  5. /* inline functions to translate to/from binary and binary-coded decimal
  6. * (frequently found in RTC chips).
  7. */
  8. #ifndef _BCD_H
  9. #define _BCD_H
  10. #include <linux/types.h>
  11. static inline unsigned int bcd2bin(u8 val)
  12. {
  13. return ((val) & 0x0f) + ((val) >> 4) * 10;
  14. }
  15. static inline u8 bin2bcd (unsigned int val)
  16. {
  17. return (((val / 10) << 4) | (val % 10));
  18. }
  19. #endif /* _BCD_H */