1 /*
2  * ds17287rtc.h - register definitions for the ds1728[57] RTC / CMOS RAM
3  *
4  * This file is subject to the terms and conditions of the GNU General Public
5  * License.  See the file "COPYING" in the main directory of this archive
6  * for more details.
7  *
8  * (C) 2003 Guido Guenther <agx@sigxcpu.org>
9  */
10 #ifndef __LINUX_DS17287RTC_H
11 #define __LINUX_DS17287RTC_H
12 
13 #include <linux/rtc.h>			/* get the user-level API */
14 #include <linux/mc146818rtc.h>
15 
16 /* Register A */
17 #define DS_REGA_DV2	0x40		/* countdown chain */
18 #define DS_REGA_DV1	0x20		/* oscillator enable */
19 #define DS_REGA_DV0	0x10		/* bank select */
20 
21 /* bank 1 registers */
22 #define DS_B1_MODEL	0x40		/* model number byte */
23 #define DS_B1_SN1 	0x41		/* serial number byte 1 */
24 #define DS_B1_SN2 	0x42		/* serial number byte 2 */
25 #define DS_B1_SN3 	0x43		/* serial number byte 3 */
26 #define DS_B1_SN4 	0x44		/* serial number byte 4 */
27 #define DS_B1_SN5 	0x45		/* serial number byte 5 */
28 #define DS_B1_SN6 	0x46		/* serial number byte 6 */
29 #define DS_B1_CRC 	0x47		/* CRC byte */
30 #define DS_B1_CENTURY 	0x48		/* Century byte */
31 #define DS_B1_DALARM 	0x49		/* date alarm */
32 #define DS_B1_XCTRL4A	0x4a		/* extendec control register 4a */
33 #define DS_B1_XCTRL4B	0x4b		/* extendec control register 4b */
34 #define DS_B1_RTCADDR2 	0x4e		/* rtc address 2 */
35 #define DS_B1_RTCADDR3 	0x4f		/* rtc address 3 */
36 #define DS_B1_RAMLSB	0x50		/* extended ram LSB */
37 #define DS_B1_RAMMSB	0x51		/* extended ram MSB */
38 #define DS_B1_RAMDPORT	0x53		/* extended ram data port */
39 
40 /* register details */
41 /* extended control register 4a */
42 #define DS_XCTRL4A_VRT2	0x80 		/* valid ram and time */
43 #define DS_XCTRL4A_INCR	0x40		/* increment progress status */
44 #define DS_XCTRL4A_BME	0x20		/* burst mode enable */
45 #define DS_XCTRL4A_PAB	0x08		/* power active bar ctrl */
46 #define DS_XCTRL4A_RF	0x04		/* ram clear flag */
47 #define DS_XCTRL4A_WF	0x02		/* wake up alarm flag */
48 #define DS_XCTRL4A_KF	0x01		/* kickstart flag */
49 
50 /* interrupt causes */
51 #define DS_XCTRL4A_IFS	(DS_XCTRL4A_RF|DS_XCTRL4A_WF|DS_XCTRL4A_KF)
52 
53 /* extended control register 4b */
54 #define DS_XCTRL4B_ABE	0x80 		/* auxiliary battery enable */
55 #define DS_XCTRL4B_E32K	0x40		/* enable 32.768 kHz Output */
56 #define DS_XCTRL4B_CS	0x20		/* crystal select */
57 #define DS_XCTRL4B_RCE	0x10		/* ram clear enable */
58 #define DS_XCTRL4B_PRS	0x08		/* PAB resec select */
59 #define DS_XCTRL4B_RIE	0x04		/* ram clear interrupt enable */
60 #define DS_XCTRL4B_WFE	0x02		/* wake up alarm interrupt enable */
61 #define DS_XCTRL4B_KFE	0x01		/* kickstart interrupt enable */
62 
63 /* interrupt enable bits */
64 #define DS_XCTRL4B_IFES	(DS_XCTRL4B_RIE|DS_XCTRL4B_WFE|DS_XCTRL4B_KFE)
65 
66 #endif /* __LINUX_DS17287RTC_H */
67