1 /*
2  * This file is subject to the terms and conditions of the GNU General Public
3  * License.  See the file "COPYING" in the main directory of this archive
4  * for more details.
5  *
6  * Copyright (C) 1996, 2001-2003 Silicon Graphics, Inc. All rights reserved.
7  * Copyright (C) 2001 by Ralf Baechle
8  */
9 #ifndef _ASM_IA64_SN_KLCLOCK_H
10 #define _ASM_IA64_SN_KLCLOCK_H
11 
12 #include <asm/sn/ioc3.h>
13 #include <asm/sn/ioc4.h>
14 
15 #define RTC_BASE_ADDR		(unsigned char *)(nvram_base)
16 
17 /* Defines for the SGS-Thomson M48T35 clock */
18 #define RTC_SGS_WRITE_ENABLE    0x80
19 #define RTC_SGS_READ_PROTECT    0x40
20 #define RTC_SGS_YEAR_ADDR       (RTC_BASE_ADDR + 0x7fffL)
21 #define RTC_SGS_MONTH_ADDR      (RTC_BASE_ADDR + 0x7ffeL)
22 #define RTC_SGS_DATE_ADDR       (RTC_BASE_ADDR + 0x7ffdL)
23 #define RTC_SGS_DAY_ADDR        (RTC_BASE_ADDR + 0x7ffcL)
24 #define RTC_SGS_HOUR_ADDR       (RTC_BASE_ADDR + 0x7ffbL)
25 #define RTC_SGS_MIN_ADDR        (RTC_BASE_ADDR + 0x7ffaL)
26 #define RTC_SGS_SEC_ADDR        (RTC_BASE_ADDR + 0x7ff9L)
27 #define RTC_SGS_CONTROL_ADDR    (RTC_BASE_ADDR + 0x7ff8L)
28 
29 /* Defines for the Dallas DS1386 */
30 #define RTC_DAL_UPDATE_ENABLE   0x80
31 #define RTC_DAL_UPDATE_DISABLE  0x00
32 #define RTC_DAL_YEAR_ADDR       (RTC_BASE_ADDR + 0xaL)
33 #define RTC_DAL_MONTH_ADDR      (RTC_BASE_ADDR + 0x9L)
34 #define RTC_DAL_DATE_ADDR       (RTC_BASE_ADDR + 0x8L)
35 #define RTC_DAL_DAY_ADDR        (RTC_BASE_ADDR + 0x6L)
36 #define RTC_DAL_HOUR_ADDR       (RTC_BASE_ADDR + 0x4L)
37 #define RTC_DAL_MIN_ADDR        (RTC_BASE_ADDR + 0x2L)
38 #define RTC_DAL_SEC_ADDR        (RTC_BASE_ADDR + 0x1L)
39 #define RTC_DAL_CONTROL_ADDR    (RTC_BASE_ADDR + 0xbL)
40 #define RTC_DAL_USER_ADDR       (RTC_BASE_ADDR + 0xeL)
41 
42 /* Defines for the Dallas DS1742 */
43 #define RTC_DS1742_WRITE_ENABLE    0x80
44 #define RTC_DS1742_READ_ENABLE     0x40
45 #define RTC_DS1742_UPDATE_DISABLE  0x00
46 #define RTC_DS1742_YEAR_ADDR       (RTC_BASE_ADDR + 0x7ffL)
47 #define RTC_DS1742_MONTH_ADDR      (RTC_BASE_ADDR + 0x7feL)
48 #define RTC_DS1742_DATE_ADDR       (RTC_BASE_ADDR + 0x7fdL)
49 #define RTC_DS1742_DAY_ADDR        (RTC_BASE_ADDR + 0x7fcL)
50 #define RTC_DS1742_HOUR_ADDR       (RTC_BASE_ADDR + 0x7fbL)
51 #define RTC_DS1742_MIN_ADDR        (RTC_BASE_ADDR + 0x7faL)
52 #define RTC_DS1742_SEC_ADDR        (RTC_BASE_ADDR + 0x7f9L)
53 #define RTC_DS1742_CONTROL_ADDR    (RTC_BASE_ADDR + 0x7f8L)
54 #define RTC_DS1742_USER_ADDR       (RTC_BASE_ADDR + 0x0L)
55 
56 #define BCD_TO_INT(x) (((x>>4) * 10) + (x & 0xf))
57 #define INT_TO_BCD(x) (((x / 10)<<4) + (x % 10))
58 
59 #define YRREF	1970
60 
61 #endif /* _ASM_IA64_SN_KLCLOCK_H  */
62