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