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 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
14#define RTC_BASE_ADDR		(unsigned char *)(nvram_base)
15
16/* Defines for the SGS-Thomson M48T35 clock */
17#define RTC_SGS_WRITE_ENABLE    0x80
18#define RTC_SGS_READ_PROTECT    0x40
19#define RTC_SGS_YEAR_ADDR       (RTC_BASE_ADDR + 0x7fffL)
20#define RTC_SGS_MONTH_ADDR      (RTC_BASE_ADDR + 0x7ffeL)
21#define RTC_SGS_DATE_ADDR       (RTC_BASE_ADDR + 0x7ffdL)
22#define RTC_SGS_DAY_ADDR        (RTC_BASE_ADDR + 0x7ffcL)
23#define RTC_SGS_HOUR_ADDR       (RTC_BASE_ADDR + 0x7ffbL)
24#define RTC_SGS_MIN_ADDR        (RTC_BASE_ADDR + 0x7ffaL)
25#define RTC_SGS_SEC_ADDR        (RTC_BASE_ADDR + 0x7ff9L)
26#define RTC_SGS_CONTROL_ADDR    (RTC_BASE_ADDR + 0x7ff8L)
27
28/* Defines for the Dallas DS1386 */
29#define RTC_DAL_UPDATE_ENABLE   0x80
30#define RTC_DAL_UPDATE_DISABLE  0x00
31#define RTC_DAL_YEAR_ADDR       (RTC_BASE_ADDR + 0xaL)
32#define RTC_DAL_MONTH_ADDR      (RTC_BASE_ADDR + 0x9L)
33#define RTC_DAL_DATE_ADDR       (RTC_BASE_ADDR + 0x8L)
34#define RTC_DAL_DAY_ADDR        (RTC_BASE_ADDR + 0x6L)
35#define RTC_DAL_HOUR_ADDR       (RTC_BASE_ADDR + 0x4L)
36#define RTC_DAL_MIN_ADDR        (RTC_BASE_ADDR + 0x2L)
37#define RTC_DAL_SEC_ADDR        (RTC_BASE_ADDR + 0x1L)
38#define RTC_DAL_CONTROL_ADDR    (RTC_BASE_ADDR + 0xbL)
39#define RTC_DAL_USER_ADDR       (RTC_BASE_ADDR + 0xeL)
40
41/* Defines for the Dallas DS1742 */
42#define RTC_DS1742_WRITE_ENABLE    0x80
43#define RTC_DS1742_READ_ENABLE     0x40
44#define RTC_DS1742_UPDATE_DISABLE  0x00
45#define RTC_DS1742_YEAR_ADDR       (RTC_BASE_ADDR + 0x7ffL)
46#define RTC_DS1742_MONTH_ADDR      (RTC_BASE_ADDR + 0x7feL)
47#define RTC_DS1742_DATE_ADDR       (RTC_BASE_ADDR + 0x7fdL)
48#define RTC_DS1742_DAY_ADDR        (RTC_BASE_ADDR + 0x7fcL)
49#define RTC_DS1742_HOUR_ADDR       (RTC_BASE_ADDR + 0x7fbL)
50#define RTC_DS1742_MIN_ADDR        (RTC_BASE_ADDR + 0x7faL)
51#define RTC_DS1742_SEC_ADDR        (RTC_BASE_ADDR + 0x7f9L)
52#define RTC_DS1742_CONTROL_ADDR    (RTC_BASE_ADDR + 0x7f8L)
53#define RTC_DS1742_USER_ADDR       (RTC_BASE_ADDR + 0x0L)
54
55#define BCD_TO_INT(x) (((x>>4) * 10) + (x & 0xf))
56#define INT_TO_BCD(x) (((x / 10)<<4) + (x % 10))
57
58#define YRREF	1970
59
60#endif /* _ASM_IA64_SN_KLCLOCK_H  */
61