1 /*
2  * ds1742rtc.h - register definitions for the Real-Time-Clock / CMOS RAM
3  *
4  *   Based on include/asm-mips/ds1643rtc.h.
5  *
6  * Copyright (C) 1999-2001 Toshiba Corporation
7  * It was written to be part of the Linux operating system.
8  */
9 /* permission is hereby granted to copy, modify and redistribute this code
10  * in terms of the GNU Library General Public License, Version 2 or later,
11  * at your option.
12  */
13 #ifndef _DS1742RTC_H
14 #define _DS1742RTC_H
15 
16 #include <linux/rtc.h>
17 #include <asm/mc146818rtc.h>	/* bad name... */
18 
19 #define RTC_BRAM_SIZE		0x800
20 #define RTC_OFFSET		0x7f8
21 
22 /**********************************************************************
23  * register summary
24  **********************************************************************/
25 #define RTC_CONTROL		(RTC_OFFSET + 0)
26 #define RTC_CENTURY		(RTC_OFFSET + 0)
27 #define RTC_SECONDS		(RTC_OFFSET + 1)
28 #define RTC_MINUTES		(RTC_OFFSET + 2)
29 #define RTC_HOURS		(RTC_OFFSET + 3)
30 #define RTC_DAY			(RTC_OFFSET + 4)
31 #define RTC_DATE		(RTC_OFFSET + 5)
32 #define RTC_MONTH		(RTC_OFFSET + 6)
33 #define RTC_YEAR		(RTC_OFFSET + 7)
34 
35 #define RTC_CENTURY_MASK	0x3f
36 #define RTC_SECONDS_MASK	0x7f
37 #define RTC_DAY_MASK		0x07
38 
39 /*
40  * Bits in the Control/Century register
41  */
42 #define RTC_WRITE		0x80
43 #define RTC_READ		0x40
44 
45 /*
46  * Bits in the Seconds register
47  */
48 #define RTC_STOP		0x80
49 
50 /*
51  * Bits in the Day register
52  */
53 #define RTC_BATT_FLAG		0x80
54 #define RTC_FREQ_TEST		0x40
55 
56 /*
57  * Conversion between binary and BCD.
58  */
59 #ifndef BCD_TO_BIN
60 #define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)
61 #endif
62 
63 #ifndef BIN_TO_BCD
64 #define BIN_TO_BCD(val) ((val)=(((val)/10)<<4) + (val)%10)
65 #endif
66 
67 #endif /* _DS1742RTC_H */
68