1 /******************************************************************************
2 *                                                                             *
3 * License Agreement                                                           *
4 *                                                                             *
5 * Copyright (c) 2003 Altera Corporation, San Jose, California, USA.           *
6 * All rights reserved.                                                        *
7 *                                                                             *
8 * Permission is hereby granted, free of charge, to any person obtaining a     *
9 * copy of this software and associated documentation files (the "Software"),  *
10 * to deal in the Software without restriction, including without limitation   *
11 * the rights to use, copy, modify, merge, publish, distribute, sublicense,    *
12 * and/or sell copies of the Software, and to permit persons to whom the       *
13 * Software is furnished to do so, subject to the following conditions:        *
14 *                                                                             *
15 * The above copyright notice and this permission notice shall be included in  *
16 * all copies or substantial portions of the Software.                         *
17 *                                                                             *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR  *
19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,    *
20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE *
21 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      *
22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING     *
23 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER         *
24 * DEALINGS IN THE SOFTWARE.                                                   *
25 *                                                                             *
26 *                                                                             *
27 ******************************************************************************/
28 
29 #ifndef __ALTERA_AVALON_TIMER_REGS_H__
30 #define __ALTERA_AVALON_TIMER_REGS_H__
31 
32 #include <io.h>
33 
34 /* STATUS register */
35 #define ALTERA_AVALON_TIMER_STATUS_REG              0
36 #define IOADDR_ALTERA_AVALON_TIMER_STATUS(base) \
37   __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_TIMER_STATUS_REG)
38 #define IORD_ALTERA_AVALON_TIMER_STATUS(base) \
39   IORD(base, ALTERA_AVALON_TIMER_STATUS_REG)
40 #define IOWR_ALTERA_AVALON_TIMER_STATUS(base, data) \
41   IOWR(base, ALTERA_AVALON_TIMER_STATUS_REG, data)
42 #define ALTERA_AVALON_TIMER_STATUS_TO_MSK           (0x1)
43 #define ALTERA_AVALON_TIMER_STATUS_TO_OFST          (0)
44 #define ALTERA_AVALON_TIMER_STATUS_RUN_MSK          (0x2)
45 #define ALTERA_AVALON_TIMER_STATUS_RUN_OFST         (1)
46 
47 /* CONTROL register */
48 #define ALTERA_AVALON_TIMER_CONTROL_REG             1
49 #define IOADDR_ALTERA_AVALON_TIMER_CONTROL(base) \
50   __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_TIMER_CONTROL_REG)
51 #define IORD_ALTERA_AVALON_TIMER_CONTROL(base) \
52   IORD(base, ALTERA_AVALON_TIMER_CONTROL_REG)
53 #define IOWR_ALTERA_AVALON_TIMER_CONTROL(base, data) \
54   IOWR(base, ALTERA_AVALON_TIMER_CONTROL_REG, data)
55 #define ALTERA_AVALON_TIMER_CONTROL_ITO_MSK         (0x1)
56 #define ALTERA_AVALON_TIMER_CONTROL_ITO_OFST        (0)
57 #define ALTERA_AVALON_TIMER_CONTROL_CONT_MSK        (0x2)
58 #define ALTERA_AVALON_TIMER_CONTROL_CONT_OFST       (1)
59 #define ALTERA_AVALON_TIMER_CONTROL_START_MSK       (0x4)
60 #define ALTERA_AVALON_TIMER_CONTROL_START_OFST      (2)
61 #define ALTERA_AVALON_TIMER_CONTROL_STOP_MSK        (0x8)
62 #define ALTERA_AVALON_TIMER_CONTROL_STOP_OFST       (3)
63 
64 /* Period and SnapShot Register for COUNTER_SIZE = 32 */
65 /*----------------------------------------------------*/
66 /* PERIODL register */
67 #define ALTERA_AVALON_TIMER_PERIODL_REG             2
68 #define IOADDR_ALTERA_AVALON_TIMER_PERIODL(base) \
69   __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_TIMER_PERIODL_REG)
70 #define IORD_ALTERA_AVALON_TIMER_PERIODL(base) \
71   IORD(base, ALTERA_AVALON_TIMER_PERIODL_REG)
72 #define IOWR_ALTERA_AVALON_TIMER_PERIODL(base, data) \
73   IOWR(base, ALTERA_AVALON_TIMER_PERIODL_REG, data)
74 #define ALTERA_AVALON_TIMER_PERIODL_MSK             (0xFFFF)
75 #define ALTERA_AVALON_TIMER_PERIODL_OFST            (0)
76 
77 /* PERIODH register */
78 #define ALTERA_AVALON_TIMER_PERIODH_REG             3
79 #define IOADDR_ALTERA_AVALON_TIMER_PERIODH(base) \
80   __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_TIMER_PERIODH_REG)
81 #define IORD_ALTERA_AVALON_TIMER_PERIODH(base) \
82   IORD(base, ALTERA_AVALON_TIMER_PERIODH_REG)
83 #define IOWR_ALTERA_AVALON_TIMER_PERIODH(base, data) \
84   IOWR(base, ALTERA_AVALON_TIMER_PERIODH_REG, data)
85 #define ALTERA_AVALON_TIMER_PERIODH_MSK             (0xFFFF)
86 #define ALTERA_AVALON_TIMER_PERIODH_OFST            (0)
87 
88 /* SNAPL register */
89 #define ALTERA_AVALON_TIMER_SNAPL_REG               4
90 #define IOADDR_ALTERA_AVALON_TIMER_SNAPL(base) \
91   __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_TIMER_SNAPL_REG)
92 #define IORD_ALTERA_AVALON_TIMER_SNAPL(base) \
93   IORD(base, ALTERA_AVALON_TIMER_SNAPL_REG)
94 #define IOWR_ALTERA_AVALON_TIMER_SNAPL(base, data) \
95   IOWR(base, ALTERA_AVALON_TIMER_SNAPL_REG, data)
96 #define ALTERA_AVALON_TIMER_SNAPL_MSK               (0xFFFF)
97 #define ALTERA_AVALON_TIMER_SNAPL_OFST              (0)
98 
99 /* SNAPH register */
100 #define ALTERA_AVALON_TIMER_SNAPH_REG               5
101 #define IOADDR_ALTERA_AVALON_TIMER_SNAPH(base) \
102   __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_TIMER_SNAPH_REG)
103 #define IORD_ALTERA_AVALON_TIMER_SNAPH(base) \
104   IORD(base, ALTERA_AVALON_TIMER_SNAPH_REG)
105 #define IOWR_ALTERA_AVALON_TIMER_SNAPH(base, data) \
106   IOWR(base, ALTERA_AVALON_TIMER_SNAPH_REG, data)
107 #define ALTERA_AVALON_TIMER_SNAPH_MSK               (0xFFFF)
108 #define ALTERA_AVALON_TIMER_SNAPH_OFST              (0)
109 
110 /* Period and SnapShot Register for COUNTER_SIZE = 64 */
111 /*----------------------------------------------------*/
112 /* PERIOD_0 register */
113 #define ALTERA_AVALON_TIMER_PERIOD_0_REG             2
114 #define IOADDR_ALTERA_AVALON_TIMER_PERIOD_0(base) \
115   __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_TIMER_PERIOD_0_REG)
116 #define IORD_ALTERA_AVALON_TIMER_PERIOD_0(base) \
117   IORD(base, ALTERA_AVALON_TIMER_PERIOD_0_REG)
118 #define IOWR_ALTERA_AVALON_TIMER_PERIOD_0(base, data) \
119   IOWR(base, ALTERA_AVALON_TIMER_PERIOD_0_REG, data)
120 #define ALTERA_AVALON_TIMER_PERIOD_0_MSK             (0xFFFF)
121 #define ALTERA_AVALON_TIMER_PERIOD_0_OFST            (0)
122 
123 /* PERIOD_1 register */
124 #define ALTERA_AVALON_TIMER_PERIOD_1_REG             3
125 #define IOADDR_ALTERA_AVALON_TIMER_PERIOD_1(base) \
126   __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_TIMER_PERIOD_1_REG)
127 #define IORD_ALTERA_AVALON_TIMER_PERIOD_1(base) \
128   IORD(base, ALTERA_AVALON_TIMER_PERIOD_1_REG)
129 #define IOWR_ALTERA_AVALON_TIMER_PERIOD_1(base, data) \
130   IOWR(base, ALTERA_AVALON_TIMER_PERIOD_1_REG, data)
131 #define ALTERA_AVALON_TIMER_PERIOD_1_MSK             (0xFFFF)
132 #define ALTERA_AVALON_TIMER_PERIOD_1_OFST            (0)
133 
134 /* PERIOD_2 register */
135 #define ALTERA_AVALON_TIMER_PERIOD_2_REG             4
136 #define IOADDR_ALTERA_AVALON_TIMER_PERIOD_2(base) \
137   __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_TIMER_PERIOD_2_REG)
138 #define IORD_ALTERA_AVALON_TIMER_PERIOD_2(base) \
139   IORD(base, ALTERA_AVALON_TIMER_PERIOD_2_REG)
140 #define IOWR_ALTERA_AVALON_TIMER_PERIOD_2(base, data) \
141   IOWR(base, ALTERA_AVALON_TIMER_PERIOD_2_REG, data)
142 #define ALTERA_AVALON_TIMER_PERIOD_2_MSK             (0xFFFF)
143 #define ALTERA_AVALON_TIMER_PERIOD_2_OFST            (0)
144 
145 /* PERIOD_3 register */
146 #define ALTERA_AVALON_TIMER_PERIOD_3_REG             5
147 #define IOADDR_ALTERA_AVALON_TIMER_PERIOD_3(base) \
148   __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_TIMER_PERIOD_3_REG)
149 #define IORD_ALTERA_AVALON_TIMER_PERIOD_3(base) \
150   IORD(base, ALTERA_AVALON_TIMER_PERIOD_3_REG)
151 #define IOWR_ALTERA_AVALON_TIMER_PERIOD_3(base, data) \
152   IOWR(base, ALTERA_AVALON_TIMER_PERIOD_3_REG, data)
153 #define ALTERA_AVALON_TIMER_PERIOD_3_MSK             (0xFFFF)
154 #define ALTERA_AVALON_TIMER_PERIOD_3_OFST            (0)
155 
156 /* SNAP_0 register */
157 #define ALTERA_AVALON_TIMER_SNAP_0_REG               6
158 #define IOADDR_ALTERA_AVALON_TIMER_SNAP_0(base) \
159   __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_TIMER_SNAP_0_REG)
160 #define IORD_ALTERA_AVALON_TIMER_SNAP_0(base) \
161   IORD(base, ALTERA_AVALON_TIMER_SNAP_0_REG)
162 #define IOWR_ALTERA_AVALON_TIMER_SNAP_0(base, data) \
163   IOWR(base, ALTERA_AVALON_TIMER_SNAP_0_REG, data)
164 #define ALTERA_AVALON_TIMER_SNAP_0_MSK               (0xFFFF)
165 #define ALTERA_AVALON_TIMER_SNAP_0_OFST              (0)
166 
167 /* SNAP_1 register */
168 #define ALTERA_AVALON_TIMER_SNAP_1_REG               7
169 #define IOADDR_ALTERA_AVALON_TIMER_SNAP_1(base) \
170   __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_TIMER_SNAP_1_REG)
171 #define IORD_ALTERA_AVALON_TIMER_SNAP_1(base) \
172   IORD(base, ALTERA_AVALON_TIMER_SNAP_1_REG)
173 #define IOWR_ALTERA_AVALON_TIMER_SNAP_1(base, data) \
174   IOWR(base, ALTERA_AVALON_TIMER_SNAP_1_REG, data)
175 #define ALTERA_AVALON_TIMER_SNAP_1_MSK               (0xFFFF)
176 #define ALTERA_AVALON_TIMER_SNAP_1_OFST              (0)
177 
178 /* SNAP_2 register */
179 #define ALTERA_AVALON_TIMER_SNAP_2_REG               8
180 #define IOADDR_ALTERA_AVALON_TIMER_SNAP_2(base) \
181   __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_TIMER_SNAP_2_REG)
182 #define IORD_ALTERA_AVALON_TIMER_SNAP_2(base) \
183   IORD(base, ALTERA_AVALON_TIMER_SNAP_2_REG)
184 #define IOWR_ALTERA_AVALON_TIMER_SNAP_2(base, data) \
185   IOWR(base, ALTERA_AVALON_TIMER_SNAP_2_REG, data)
186 #define ALTERA_AVALON_TIMER_SNAP_2_MSK               (0xFFFF)
187 #define ALTERA_AVALON_TIMER_SNAP_2_OFST              (0)
188 
189 /* SNAP_3 register */
190 #define ALTERA_AVALON_TIMER_SNAP_3_REG               9
191 #define IOADDR_ALTERA_AVALON_TIMER_SNAP_3(base) \
192   __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_TIMER_SNAP_3_REG)
193 #define IORD_ALTERA_AVALON_TIMER_SNAP_3(base) \
194   IORD(base, ALTERA_AVALON_TIMER_SNAP_3_REG)
195 #define IOWR_ALTERA_AVALON_TIMER_SNAP_3(base, data) \
196   IOWR(base, ALTERA_AVALON_TIMER_SNAP_3_REG, data)
197 #define ALTERA_AVALON_TIMER_SNAP_3_MSK               (0xFFFF)
198 #define ALTERA_AVALON_TIMER_SNAP_3_OFST              (0)
199 
200 #endif /* __ALTERA_AVALON_TIMER_REGS_H__ */
201