1 |
/* GXemul: $Id: vr_rtcreg.h,v 1.1 2006/10/02 09:26:53 debug Exp $ */ |
2 |
/* $NetBSD: rtcreg.h,v 1.8 2002/02/10 14:36:52 sato Exp $ */ |
3 |
|
4 |
#ifndef VR_RTCREG_H |
5 |
#define VR_RTCREG_H |
6 |
|
7 |
/*- |
8 |
* Copyright (c) 1999 Shin Takemura. All rights reserved. |
9 |
* Copyright (c) 1999-2001 SATO Kazumi. All rights reserved. |
10 |
* Copyright (c) 1999 PocketBSD Project. All rights reserved. |
11 |
* |
12 |
* Redistribution and use in source and binary forms, with or without |
13 |
* modification, are permitted provided that the following conditions |
14 |
* are met: |
15 |
* 1. Redistributions of source code must retain the above copyright |
16 |
* notice, this list of conditions and the following disclaimer. |
17 |
* 2. Redistributions in binary form must reproduce the above copyright |
18 |
* notice, this list of conditions and the following disclaimer in the |
19 |
* documentation and/or other materials provided with the distribution. |
20 |
* 3. All advertising materials mentioning features or use of this software |
21 |
* must display the following acknowledgement: |
22 |
* This product includes software developed by the PocketBSD project |
23 |
* and its contributors. |
24 |
* 4. Neither the name of the project nor the names of its contributors |
25 |
* may be used to endorse or promote products derived from this software |
26 |
* without specific prior written permission. |
27 |
* |
28 |
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
29 |
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
30 |
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
31 |
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
32 |
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
33 |
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
34 |
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
35 |
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
36 |
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
37 |
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
38 |
* SUCH DAMAGE. |
39 |
* |
40 |
*/ |
41 |
|
42 |
#define SECMIN ((unsigned)60) /* seconds per minute */ |
43 |
#define SECHOUR ((unsigned)(60*SECMIN)) /* seconds per hour */ |
44 |
|
45 |
#define SEC2MIN ((unsigned)60/2) /* 2seconds per minute */ |
46 |
#define SEC2HOUR ((unsigned)(60*SECMIN)/2) /* 2seconds per hour */ |
47 |
#define SEC2DAY ((unsigned)(24*SECHOUR)/2) /* 2seconds per day */ |
48 |
#define SEC2YR ((unsigned)(365*SECDAY)/2) /* 2seconds per common year */ |
49 |
|
50 |
#define YRREF 1999 |
51 |
#define MREF 1 |
52 |
#define DREF 1 |
53 |
|
54 |
#ifndef YBASE |
55 |
#define YBASE 1900 |
56 |
#endif |
57 |
|
58 |
#define EPOCHOFF 0 /* epoch offset */ |
59 |
#ifndef EPOCHYEAR |
60 |
#define EPOCHYEAR 1850 /* XXX */ /* WINCE epoch year */ |
61 |
#endif |
62 |
#define EPOCHMONTH 1 /* WINCE epoch month of year */ |
63 |
#define EPOCHDATE 1 /* WINCE epoch date of month */ |
64 |
|
65 |
#define LEAPYEAR4(year) ((((year) % 4) == 0 && ((year) % 100) != 0) || ((year%400)) == 0) |
66 |
#define LEAPYEAR2(year) (((year) % 4) == 0) |
67 |
|
68 |
/* |
69 |
* RTC (Real Time Clock Unit) Registers definitions. |
70 |
* start 0x0B0000C0 (Vr4102-4121) |
71 |
* start 0x0F000100 (Vr4122-4131) |
72 |
* start 0x0B0000C0 (Vr4181) |
73 |
*/ |
74 |
#define RTC_NO_REG_W 0xffffffff |
75 |
|
76 |
#define ETIME_L_REG_W 0x000 /* Elapsed Time L */ |
77 |
#define ETIME_M_REG_W 0x002 /* Elapsed Time M */ |
78 |
#define ETIME_H_REG_W 0x004 /* Elapsed Time H */ |
79 |
|
80 |
#define ETIME_L_HZ 0x8000 /* 1 HZ */ |
81 |
|
82 |
|
83 |
#define ECMP_L_REG_W 0x008 /* Elapsed Compare L */ |
84 |
#define ECMP_M_REG_W 0x00a /* Elapsed Compare M */ |
85 |
#define ECMP_H_REG_W 0x00c /* Elapsed Compare H */ |
86 |
|
87 |
|
88 |
#define RTCL1_L_REG_W 0x010 /* RTC Long 1 L */ |
89 |
#define RTCL1_H_REG_W 0x012 /* RTC Long 1 H */ |
90 |
|
91 |
#define RTCL1_L_HZ 0x8000 /* 1 HZ */ |
92 |
|
93 |
|
94 |
#define RTCL1_CNT_L_REG_W 0x014 /* RTC Long 1 Count L */ |
95 |
#define RTCL1_CNT_H_REG_W 0x016 /* RTC Long 1 Count H */ |
96 |
|
97 |
|
98 |
#define RTCL2_L_REG_W 0x018 /* RTC Long 2 L */ |
99 |
#define RTCL2_H_REG_W 0x01a /* RTC Long 2 H */ |
100 |
|
101 |
#define RTCL2_L_HZ 0x8000 /* 1 HZ */ |
102 |
|
103 |
|
104 |
#define RTCL2_CNT_L_REG_W 0x01c /* RTC Long 2 Count L */ |
105 |
#define RTCL2_CNT_H_REG_W 0x01e /* RTC Long 2 Count H */ |
106 |
|
107 |
|
108 |
#define VR4102_TCLK_L_REG_W 0x100 /* TCLK L */ |
109 |
#define VR4102_TCLK_H_REG_W 0x102 /* TCLK H */ |
110 |
#define VR4122_TCLK_L_REG_W 0x020 /* TCLK L */ |
111 |
#define VR4122_TCLK_H_REG_W 0x022 /* TCLK H */ |
112 |
#if defined SINGLE_VRIP_BASE |
113 |
#if defined VRGROUP_4102_4121 |
114 |
#define TCLK_L_REG_W VR4102_TCLK_L_REG_W /* TCLK L */ |
115 |
#define TCLK_H_REG_W VR4102_TCLK_H_REG_W /* TCLK H */ |
116 |
#endif /* VRGROUP_4102_4121 */ |
117 |
#if defined VRGROUP_4122_4131 |
118 |
#define TCLK_L_REG_W VR4122_TCLK_L_REG_W /* TCLK L */ |
119 |
#define TCLK_H_REG_W VR4122_TCLK_H_REG_W /* TCLK H */ |
120 |
#endif /* VRGROUP_4122_4131 */ |
121 |
#if defined VRGROUP_4181 |
122 |
#define TCLK_L_REG_W RTC_NO_REG_W |
123 |
#define TCLK_H_REG_W RTC_NO_REG_W |
124 |
#endif /* VRGROUP_4181 */ |
125 |
#endif /* defined SINGLE_VRIP_BASE */ |
126 |
|
127 |
|
128 |
#define VR4102_TCLK_CNT_L_REG_W 0x104 /* TCLK Count L */ |
129 |
#define VR4102_TCLK_CNT_H_REG_W 0x106 /* TCLK Count H */ |
130 |
#define VR4122_TCLK_CNT_L_REG_W 0x024 /* TCLK Count L */ |
131 |
#define VR4122_TCLK_CNT_H_REG_W 0x026 /* TCLK Count H */ |
132 |
#if defined SINGLE_VRIP_BASE |
133 |
#if defined VRGROUP_4102_4121 |
134 |
#define TCLK_CNT_L_REG_W VR4102_TCLK_CNT_L_REG_W /* TCLK Count L */ |
135 |
#define TCLK_CNT_H_REG_W VR4102_TCLK_CNT_L_REG_W /* TCLK Count H */ |
136 |
#endif /* VRGROUP_4102_4121 */ |
137 |
#if defined VRGROUP_4122_4131 |
138 |
#define TCLK_CNT_L_REG_W VR4122_TCLK_CNT_L_REG_W /* TCLK Count L */ |
139 |
#define TCLK_CNT_H_REG_W VR4122_TCLK_CNT_H_REG_W /* TCLK Count H */ |
140 |
#endif /* VRGROUP_4122_4131 */ |
141 |
#if defined VRGROUP_4181 |
142 |
#define TCLK_CNT_L_REG_W RTC_NO_REG_W |
143 |
#define TCLK_CNT_H_REG_W RTC_NO_REG_W |
144 |
#endif /* VRGROUP_4181 */ |
145 |
#endif /* defined SINGLE_VRIP_BASE */ |
146 |
|
147 |
|
148 |
#define VR4102_RTCINT_REG_W 0x11e /* RTC intr reg. */ |
149 |
#define VR4122_RTCINT_REG_W 0x03e /* RTC intr reg. */ |
150 |
#define VR4181_RTCINT_REG_W 0x11e /* RTC intr reg. */ |
151 |
#if defined SINGLE_VRIP_BASE |
152 |
#if defined VRGROUP_4102_4121 |
153 |
#define RTCINT_REG_W VR4102_RTCINT_REG_W /* RTC intr reg. */ |
154 |
#endif /* VRGROUP_4102_4121 */ |
155 |
#if defined VRGROUP_4122_4131 |
156 |
#define RTCINT_REG_W VR4122_RTCINT_REG_W /* RTC intr reg. */ |
157 |
#endif /* VRGROUP_4122 */ |
158 |
#if defined VRGROUP_4181 |
159 |
#define RTCINT_REG_W VR4181_RTCINT_REG_W /* RTC intr reg. */ |
160 |
#endif /* VRGROUP_4181 */ |
161 |
#endif /* defined SINGLE_VRIP_BASE */ |
162 |
|
163 |
#define RTCINT_TCLOCK (1<<3) /* TClock */ |
164 |
#define RTCINT_RTCLONG2 (1<<2) /* RTC Long 2 */ |
165 |
#define RTCINT_RTCLONG1 (1<<1) /* RTC Long 1 */ |
166 |
#define RTCINT_ELAPSED (1) /* Elapsed time */ |
167 |
#define RTCINT_ALL (RTCINT_TCLOCK|RTCINT_RTCLONG2|RTCINT_RTCLONG1|RTCINT_ELAPSED) |
168 |
|
169 |
#endif /* VR_RTCREG_H */ |