1 |
/* GXemul: $Id: mk48txxreg.h,v 1.1 2006/01/17 05:55:58 debug Exp $ */ |
2 |
/* $NetBSD: mk48txxreg.h,v 1.7 2003/11/01 22:41:42 tsutsui Exp $ */ |
3 |
|
4 |
#ifndef MK48TXXREG_H |
5 |
#define MK48TXXREG_H |
6 |
|
7 |
/*- |
8 |
* Copyright (c) 2000 The NetBSD Foundation, Inc. |
9 |
* All rights reserved. |
10 |
* |
11 |
* This code is derived from software contributed to The NetBSD Foundation |
12 |
* by Paul Kranenburg. |
13 |
* |
14 |
* Redistribution and use in source and binary forms, with or without |
15 |
* modification, are permitted provided that the following conditions |
16 |
* are met: |
17 |
* 1. Redistributions of source code must retain the above copyright |
18 |
* notice, this list of conditions and the following disclaimer. |
19 |
* 2. Redistributions in binary form must reproduce the above copyright |
20 |
* notice, this list of conditions and the following disclaimer in the |
21 |
* documentation and/or other materials provided with the distribution. |
22 |
* 3. All advertising materials mentioning features or use of this software |
23 |
* must display the following acknowledgement: |
24 |
* This product includes software developed by the NetBSD |
25 |
* Foundation, Inc. and its contributors. |
26 |
* 4. Neither the name of The NetBSD Foundation nor the names of its |
27 |
* contributors may be used to endorse or promote products derived |
28 |
* from this software without specific prior written permission. |
29 |
* |
30 |
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS |
31 |
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
32 |
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
33 |
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS |
34 |
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
35 |
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
36 |
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
37 |
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
38 |
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
39 |
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
40 |
* POSSIBILITY OF SUCH DAMAGE. |
41 |
*/ |
42 |
|
43 |
/* |
44 |
* Mostek MK48Txx clocks. |
45 |
* |
46 |
* The MK48T02 has 2KB of non-volatile memory. The time-of-day clock |
47 |
* registers start at offset 0x7f8. |
48 |
* |
49 |
* The MK48T08 and MK48T18 have 8KB of non-volatile memory |
50 |
* |
51 |
* The MK48T59 also has 8KB of non-volatile memory but in addition it |
52 |
* has a battery low detection bit and a power supply wakeup alarm for |
53 |
* power management. It's at offset 0x1ff0 in the NVRAM. |
54 |
*/ |
55 |
|
56 |
/* |
57 |
* Mostek MK48TXX register definitions |
58 |
*/ |
59 |
|
60 |
/* |
61 |
* The first bank of eight registers at offset (nvramsz - 16) is |
62 |
* available only on more recent (which??) MK48Txx models. |
63 |
*/ |
64 |
#define MK48TXX_IFLAGS 0 /* flags */ |
65 |
/* 1 unused on MK48T59 */ |
66 |
#define MK48TXX_IASEC 2 /* alarm seconds (0..59; BCD) */ |
67 |
#define MK48TXX_IAMIN 3 /* alarm minutes (0..59; BCD) */ |
68 |
#define MK48TXX_IAHOUR 4 /* alarm hour (0..23; BCD) */ |
69 |
#define MK48TXX_IADAY 5 /* alarm day (1..31; BCD) */ |
70 |
#define MK48TXX_IINTR 6 /* interrupts */ |
71 |
#define MK48TXX_IWDOG 7 /* watchdog */ |
72 |
#define MK48TXX_ICSR 8 /* control register */ |
73 |
#define MK48TXX_ISEC 9 /* seconds (0..59; BCD) */ |
74 |
#define MK48TXX_IMIN 10 /* minutes (0..59; BCD) */ |
75 |
#define MK48TXX_IHOUR 11 /* hour (0..23; BCD) */ |
76 |
#define MK48TXX_IWDAY 12 /* weekday (1..7) */ |
77 |
#define MK48TXX_IDAY 13 /* day in month (1..31; BCD) */ |
78 |
#define MK48TXX_IMON 14 /* month (1..12; BCD) */ |
79 |
#define MK48TXX_IYEAR 15 /* year (0..99; BCD) */ |
80 |
|
81 |
/* Bits in the flags register */ |
82 |
#define MK48TXX_FLAGS_WDF 0x80 /* watchdog flag */ |
83 |
#define MK48TXX_FLAGS_ALARM 0x40 /* alarm flag */ |
84 |
#define MK48TXX_FLAGS_BATTLOW 0x10 /* battery low */ |
85 |
|
86 |
/* Bits in the interrupt register */ |
87 |
#define MK48TXX_INTR_AFE 0x80 /* alarm flag enable */ |
88 |
#define MK48TXX_INTR_ABE 0x20 /* alarm in battery backup enable */ |
89 |
|
90 |
/* Bits in the watchdog register */ |
91 |
#define MK48TXX_WDOG_WDS 0x80 /* watchdog steering */ |
92 |
#define MK48TXX_WDOG_BMB_MASK 0x7c /* watchdog multiplier bits */ |
93 |
#define MK48TXX_WDOG_BMB_SHIFT 2 |
94 |
#define MK48TXX_WDOG_RES_MASK 0x03 /* watchdog resolution bits */ |
95 |
#define MK48TXX_WDOG_RES_1_16S 0x00 /* 1/16 seconds */ |
96 |
#define MK48TXX_WDOG_RES_1_4S 0x01 /* 1/4 seconds */ |
97 |
#define MK48TXX_WDOG_RES_1S 0x02 /* 1 second */ |
98 |
#define MK48TXX_WDOG_RES_4S 0x03 /* 4 seconds */ |
99 |
|
100 |
/* Bits in the control register */ |
101 |
#define MK48TXX_CSR_WRITE 0x80 /* want to write */ |
102 |
#define MK48TXX_CSR_READ 0x40 /* want to read (freeze clock) */ |
103 |
|
104 |
/* Bit in the weekday register */ |
105 |
#define MK48TXX_WDAY_FT 0x40 /* freq test: toggle sec[0] at 512Hz */ |
106 |
/* next two are on MK48T59 only */ |
107 |
#define MK48TXX_WDAY_CEB 0x20 /* century enable */ |
108 |
#define MK48TXX_WDAY_CB 0x10 /* century bit */ |
109 |
|
110 |
/* Bit in the seconds register */ |
111 |
#define MK48TXX_SEC_STOP 0x80 /* stop the oscillator */ |
112 |
|
113 |
#define MK48T02_CLKSZ 2048 |
114 |
#define MK48T02_CLKOFF 0x7f0 |
115 |
|
116 |
#define MK48T08_CLKSZ 8192 |
117 |
#define MK48T08_CLKOFF 0x1ff0 |
118 |
|
119 |
#define MK48T18_CLKSZ 8192 |
120 |
#define MK48T18_CLKOFF 0x1ff0 |
121 |
|
122 |
#define MK48T59_CLKSZ 8192 |
123 |
#define MK48T59_CLKOFF 0x1ff0 |
124 |
|
125 |
#endif /* MK48TXXREG_H */ |