1 #ifndef SPECIAL_PURPOSE_REGISTER_H_
2 #define SPECIAL_PURPOSE_REGISTER_H_
4 /* Special purpose register definitions */
6 #define SPR_RXE_0x00 spr000
7 #define SPR_RXE_Copy_Offset spr001
8 #define SPR_RXE_Copy_Length spr002
9 #define SPR_RXE_FIFOCTL0 spr003
10 #define SPR_RXE_FIFOCTL1 spr004
11 #define RXE_FIFOCTL1_STARTCOPY 0 /* bit0: Start copying the data into the FIFO */
12 #define RXE_FIFOCTL1_SUSPEND 2 /* bit2: Suspend the RX engine. Used during TX */
13 #define RXE_FIFOCTL1_HAVEPAD 5 /* bit5: Padding for RX frame present */
14 #define SPR_Received_Frame_Count spr005
15 #define SPR_RXE_0x0c spr006
16 #define SPR_RXE_RXHDR_OFFSET spr007
17 #define SPR_RXE_RXHDR_LEN spr008
18 #define SPR_RXE_PHYRXSTAT0 spr009
19 #define SPR_RXE_PHYRXSTAT1 spr00a
20 #define SPR_RXE_0x16 spr00b
21 #define SPR_RXE_FRAMELEN spr00c
22 #define SPR_RXE_0x1a spr00d
23 #define RXE_0x1a_OVERFLOW 15 /* bit15: Indicate FIFO overflow */
24 #define SPR_RXE_ENCODING spr00e
25 #define RXE_ENCODING_OFDM 13 /* bit13: Frame encoding was OFDM */
26 #define SPR_RXE_0x1e spr00f
27 #define SPR_RCM_Control spr010
28 #define SPR_RCM_Match_Data spr011
29 #define SPR_RCM_Match_Mask spr012
30 #define SPR_RCM_Match_Delay spr013
31 #define SPR_RCM_Condition_Mask_Low spr014
32 #define SPR_RCM_Condition_Mask_High spr015
33 #define SPR_RCM_Condition_Delay spr016
34 #define SPR_RXE_0x2e spr017
35 #define SPR_Ext_IHR_Address spr018
36 #define SPR_Ext_IHR_Data spr019
37 #define SPR_RXE_PHYRXSTAT2 spr01a
38 #define SPR_RXE_PHYRXSTAT3 spr01b
39 #define SPR_PHY_Mode spr01c
40 #define SPR_RCM_TA_Control spr01d
41 #define SPR_RCM_TA_Size spr01e
42 #define SPR_RCM_TA_Address_0 spr01f
43 #define SPR_RCM_TA_Address_1 spr020
44 #define SPR_RCM_TA_Address_2 spr021
45 #define SPR_RXE_0x44 spr022
46 #define SPR_RXE_0x46 spr023
47 #define SPR_RXE_0x48 spr024
48 #define SPR_RXE_0x4a spr025
49 #define SPR_RXE_0x4c spr026
50 #define SPR_RXE_0x4e spr027
51 #define SPR_RXE_0x50 spr028
52 #define SPR_RXE_0x52 spr029
53 #define SPR_RXE_0x54 spr02a
54 #define SPR_RXE_0x56 spr02b
55 #define SPR_RXE_0x58 spr02c
56 #define SPR_RXE_0x5a spr02d
57 #define SPR_RXE_0x5c spr02e
58 #define SPR_RXE_0x5e spr02f
59 #define SPR_RXE_0x60 spr030
60 #define SPR_RXE_0x62 spr031
61 #define SPR_RXE_0x64 spr032
62 #define SPR_RXE_0x66 spr033
63 #define SPR_RXE_0x68 spr034
64 #define SPR_RXE_0x6a spr035
65 #define SPR_RXE_0x6c spr036
66 #define SPR_RXE_0x6e spr037
67 #define SPR_RXE_0x70 spr038
68 #define SPR_RXE_0x72 spr039
69 #define SPR_RXE_0x74 spr03a
70 #define SPR_RXE_0x76 spr03b
71 #define SPR_RXE_0x78 spr03c
72 #define SPR_RXE_0x7a spr03d
73 #define SPR_RXE_0x7c spr03e
74 #define SPR_RXE_0x7e spr03f
75 #define SPR_MAC_MAX_NAP spr040
76 #define SPR_MAC_CTLHI spr041
77 #define SPR_MAC_IRQLO spr042
78 #define SPR_MAC_IRQHI spr043
79 #define SPR_MAC_IRQMASKLO spr044
80 #define SPR_MAC_IRQMASKHI spr045
81 #define SPR_PSM_0x0c spr046
82 #define SPR_MAC_CMD spr047
83 #define MACCMD_BEAC0 0 /* bit0: Beacon 0 busy/valid */
84 #define MACCMD_BEAC1 1 /* bit1: Beacon 1 busy/valid */
85 #define MACCMD_DFQ 2 /* bit2: Directed frame queue valid */
86 #define MACCMD_CCA 3 /* bit3: Channel clear assessment */
87 #define MACCMD_BGNOISE 4 /* bit4: BG-noise measurement request */
88 #define SPR_BRC spr048
89 #define BRC_TXMOREFRAGS 4 /* bit4: Set if there are more TX frags to come */
90 #define SPR_PHY_HDR_Parameter spr049
91 #define SPR_Postcard spr04a
92 #define SPR_Postcard_Location_Low spr04b
93 #define SPR_Postcard_Location_High spr04c
94 #define SPR_GPIO_IN spr04d
95 #define SPR_GPIO_OUT spr04e
96 #define SPR_GPIO_OUTEN spr04f
97 #define SPR_BRED0 spr050
98 #define SPR_BRED1 spr051
99 #define SPR_BRED2 spr052
100 #define SPR_BRED3 spr053
101 #define SPR_BRCL0 spr054
102 #define SPR_BRCL1 spr055
103 #define SPR_BRCL2 spr056
104 #define SPR_BRCL3 spr057
105 #define SPR_BRPO0 spr058
106 #define SPR_BRPO1 spr059
107 #define SPR_BRPO2 spr05a
108 #define SPR_BRPO3 spr05b
109 #define SPR_BRWK0 spr05c
110 #define SPR_BRWK1 spr05d
111 #define SPR_BRWK2 spr05e
112 #define SPR_BRWK3 spr05f
113 #define SPR_BASE0 spr060 /* Offset Register 0 */
114 #define SPR_BASE1 spr061 /* Offset Register 1 */
115 #define SPR_BASE2 spr062 /* Offset Register 2 */
116 #define SPR_BASE3 spr063 /* Offset Register 3 */
117 #define SPR_BASE4 spr064 /* Offset Register 4 */
118 #define SPR_BASE5 spr065 /* Offset Register 5 */
119 #define SPR_BASE6 spr066 /* Do not use. It's broken! */
120 #define SPR_PSM_0x4e spr067
121 #define SPR_PC0 spr068 /* Link Register 0 */
122 #define SPR_PC1 spr069 /* Link Register 1 */
123 #define SPR_PC2 spr06a /* Link Register 2 */
124 #define SPR_PC3 spr06b /* Link Register 3 */
125 #define SPR_PSM_COND spr06c /* PSM external condition bits */
126 #define SPR_PSM_0x5a spr06d
127 #define SPR_PSM_0x5c spr06e
128 #define SPR_PSM_0x5e spr06f
129 #define SPR_PSM_0x60 spr070
130 #define SPR_PSM_0x62 spr071
131 #define SPR_PSM_0x64 spr072
132 #define SPR_PSM_0x66 spr073
133 #define SPR_PSM_0x68 spr074
134 #define SPR_PSM_0x6a spr075
135 #define SPR_PSM_0x6c spr076
136 #define SPR_PSM_0x6e spr077
137 #define SPR_PSM_0x70 spr078
138 #define SPR_PSM_0x72 spr079
139 #define SPR_PSM_0x74 spr07a
140 #define SPR_PSM_0x76 spr07b
141 #define SPR_PSM_0x78 spr07c
142 #define SPR_PSM_0x7a spr07d
143 #define SPR_PSM_0x7c spr07e
144 #define SPR_PSM_0x7e spr07f
145 #define SPR_TXE0_CTL spr080
146 #define TXE_CTL_ENABLED 0 /* bit0: The engine is enabled */
147 #define TXE_CTL_FCS 14 /* bit14: Generate the FCS */
148 #define SPR_TXE0_AUX spr081
149 #define SPR_TXE0_TS_LOC spr082
150 #define SPR_TXE0_TIMEOUT spr083
151 #define SPR_TXE0_WM0 spr084
152 #define SPR_TXE0_WM1 spr085
153 #define SPR_TXE0_PHY_CTL spr086
154 #define SPR_TXE0_STATUS spr087
155 #define TXE_STATUS_BUSY 7 /* bit7: TX engine busy */
156 #define TXE_STATUS_MEND 10 /* bit10: TXE M end */
157 #define SPR_TXE0_0x10 spr088
158 #define SPR_TXE0_0x12 spr089
159 #define SPR_TXE0_0x14 spr08a
160 #define SPR_TXE0_0x16 spr08b
161 #define SPR_TX_STATUS0 spr08c
162 #define SPR_TX_STATUS1 spr08d
163 #define SPR_TX_STATUS2 spr08e
164 #define SPR_TX_STATUS3 spr08f
165 #define SPR_TXE0_FIFO_Def spr090
166 #define SPR_TXE0_0x22 spr091
167 #define SPR_TXE0_0x24 spr092
168 #define SPR_TXE0_0x26 spr093
169 #define SPR_TXE0_0x28 spr094
170 #define SPR_TXE0_0x2a spr095
171 #define SPR_TXE0_0x2c spr096
172 #define SPR_TXE0_0x2e spr097
173 #define SPR_TXE0_0x30 spr098
174 #define SPR_TXE0_0x32 spr099
175 #define SPR_TXE0_0x34 spr09a
176 #define SPR_TXE0_0x36 spr09b
177 #define SPR_TXE0_0x38 spr09c
178 #define SPR_TXE0_0x3a spr09d
179 #define SPR_TXE0_0x3c spr09e
180 #define SPR_TXE0_0x3e spr09f
181 #define SPR_TXE0_FIFO_CMD spr0a0
182 #define TXE_FIFO_CMD_TXDONE 13 /* bit13: Set after the current transmission finished */
183 #define TXE_FIFO_CMD_COPY 14 /* bit14: Start copying of data */
184 #define SPR_TXE0_FIFO_FLUSH spr0a1
185 #define SPR_TXE0_FIFO_THRES spr0a2
186 #define SPR_TXE0_FIFO_RDY spr0a3 /* FIFO-ready bitmask. bit-nr = FIFO-nr */
187 #define SPR_TXE0_FIFO_PRI_RDY spr0a4
188 #define SPR_TXE0_FIFO_RQ_PRI spr0a5
189 #define SPR_TXE0_Template_TX_Pointer spr0a6
190 #define SPR_TXE0_0x4e spr0a7
191 #define SPR_TXE0_Template_Pointer spr0a8
192 #define SPR_TXE0_0x52 spr0a9
193 #define SPR_TXE0_0x54 spr0aa
194 #define SPR_TXE0_0x56 spr0ab
195 #define SPR_TXE0_0x58 spr0ac
196 #define SPR_TXE0_0x5a spr0ad
197 #define SPR_TXE0_0x5c spr0ae
198 #define SPR_TXE0_0x5e spr0af
199 #define SPR_TXE0_Template_Data_Low spr0b0
200 #define SPR_TXE0_Template_Data_High spr0b1
201 #define SPR_TXE0_0x64 spr0b2
202 #define SPR_TXE0_0x66 spr0b3
203 #define SPR_TXE0_SELECT spr0b4
204 #define TXE_SELECT_DST 0x0003 /* Destination code mask */
205 #define TXE_SELECT_DST_SHM 0x0001 /* Destination code for the SHM */
206 #define TXE_SELECT_DST_PHY 0x0002 /* Destination code for the PHY */
207 #define TXE_SELECT_DST_DISCARD 0x0003 /* Destination code for discarding */
208 #define TXE_SELECT_USE_TXCNT 2 /* bit2: Use the TX_COUNT register */
209 #define TXE_SELECT_UNK0x20 5 /* bit5: ??FIXME: Unknown meaning. Seems to be PHY related. */
210 #define TXE_SELECT_SRC 0x1F00 /* Source code mask */
211 #define TXE_SELECT_SRC_SHIFT 8
212 #define TXE_SELECT_SRC_FIFO0 0x0000 /* Source code for FIFO 0 */
213 #define TXE_SELECT_SRC_FIFO1 0x0100 /* Source code for FIFO 1 */
214 #define TXE_SELECT_SRC_FIFO2 0x0200 /* Source code for FIFO 2 */
215 #define TXE_SELECT_SRC_FIFO3 0x0300 /* Source code for FIFO 3 */
216 #define TXE_SELECT_SRC_FIFO4 0x0400 /* Source code for FIFO 4 */
217 #define TXE_SELECT_SRC_FIFO5 0x0500 /* Source code for FIFO 5 */
218 #define TXE_SELECT_SRC_FIFO6 0x0600 /* Source code for FIFO 6 */
219 #define TXE_SELECT_SRC_FIFO7 0x0700 /* Source code for FIFO 7 */
220 #define TXE_SELECT_SRC_TRAM 0x0800 /* Source code for Template Ram */
221 #define SPR_TXE0_TX_COUNT spr0b5 /* Number of bytes to process */
222 #define SPR_TXE0_TX_SHM_ADDR spr0b6 /* The SHM address to copy the TX header to (in bytes!) */
223 #define SPR_TXE0_0x6e spr0b7
224 #define SPR_TXE0_0x70 spr0b8
225 #define SPR_TXE0_0x72 spr0b9
226 #define SPR_TXE0_0x74 spr0ba
227 #define SPR_TXE0_0x76 spr0bb
228 #define SPR_TXE0_0x78 spr0bc
229 #define SPR_TXE0_0x7a spr0bd
230 #define SPR_TXE0_0x7c spr0be
231 #define SPR_TXE0_0x7e spr0bf
232 /* Transmit Modify Engine masks */
233 #define SPR_TME_MASK0 spr0c0
234 #define SPR_TME_MASK2 spr0c1
235 #define SPR_TME_MASK4 spr0c2
236 #define SPR_TME_MASK6 spr0c3
237 #define SPR_TME_MASK8 spr0c4
238 #define SPR_TME_MASK10 spr0c5
239 #define SPR_TME_MASK12 spr0c6
240 #define SPR_TME_MASK14 spr0c7
241 #define SPR_TME_MASK16 spr0c8
242 #define SPR_TME_MASK18 spr0c9
243 #define SPR_TME_MASK20 spr0ca
244 #define SPR_TME_MASK22 spr0cb
245 #define SPR_TME_MASK24 spr0cc
246 #define SPR_TME_MASK26 spr0cd
247 #define SPR_TME_MASK28 spr0ce
248 #define SPR_TME_MASK30 spr0cf
249 #define SPR_TME_MASK32 spr0d0
250 #define SPR_TME_MASK34 spr0d1
251 #define SPR_TME_MASK36 spr0d2
252 #define SPR_TME_MASK38 spr0d3
253 #define SPR_TME_MASK40 spr0d4
254 #define SPR_TME_MASK42 spr0d5
255 #define SPR_TME_MASK44 spr0d6
256 #define SPR_TME_MASK46 spr0d7
257 #define SPR_TME_MASK48 spr0d8
258 #define SPR_TME_MASK50 spr0d9
259 #define SPR_TME_MASK52 spr0da
260 #define SPR_TME_MASK54 spr0db
261 #define SPR_TME_MASK56 spr0dc
262 #define SPR_TME_MASK58 spr0dd
263 #define SPR_TME_MASK60 spr0de
264 #define SPR_TME_MASK62 spr0df
265 /* Transmit Modify Engine values */
266 #define SPR_TME_VAL0 spr0e0
267 #define SPR_TME_VAL2 spr0e1
268 #define SPR_TME_VAL4 spr0e2
269 #define SPR_TME_VAL6 spr0e3
270 #define SPR_TME_VAL8 spr0e4
271 #define SPR_TME_VAL10 spr0e5
272 #define SPR_TME_VAL12 spr0e6
273 #define SPR_TME_VAL14 spr0e7
274 #define SPR_TME_VAL16 spr0e8
275 #define SPR_TME_VAL18 spr0e9
276 #define SPR_TME_VAL20 spr0ea
277 #define SPR_TME_VAL22 spr0eb
278 #define SPR_TME_VAL24 spr0ec
279 #define SPR_TME_VAL26 spr0ed
280 #define SPR_TME_VAL28 spr0ee
281 #define SPR_TME_VAL30 spr0ef
282 #define SPR_TME_VAL32 spr0f0
283 #define SPR_TME_VAL34 spr0f1
284 #define SPR_TME_VAL36 spr0f2
285 #define SPR_TME_VAL38 spr0f3
286 #define SPR_TME_VAL40 spr0f4
287 #define SPR_TME_VAL42 spr0f5
288 #define SPR_TME_VAL44 spr0f6
289 #define SPR_TME_VAL46 spr0f7
290 #define SPR_TME_VAL48 spr0f8
291 #define SPR_TME_VAL50 spr0f9
292 #define SPR_TME_VAL52 spr0fa
293 #define SPR_TME_VAL54 spr0fb
294 #define SPR_TME_VAL56 spr0fc
295 #define SPR_TME_VAL58 spr0fd
296 #define SPR_TME_VAL60 spr0fe
297 #define SPR_TME_VAL62 spr0ff
298 #define SPR_TSF_0x00 spr100
299 #define SPR_TSF_0x02 spr101
300 #define SPR_TSF_CFP_Start_Low spr102
301 #define SPR_TSF_CFP_Start_High spr103
302 #define SPR_TSF_0x08 spr104
303 #define SPR_TSF_0x0a spr105
304 #define SPR_TSF_0x0c spr106
305 #define SPR_TSF_0x0e spr107
306 #define SPR_TSF_0x10 spr108
307 #define SPR_TSF_CFP_PreTBTT spr109
308 #define SPR_TSF_0x14 spr10a
309 #define SPR_TSF_0x16 spr10b
310 #define SPR_TSF_0x18 spr10c
311 #define SPR_TSF_0x1a spr10d
312 #define SPR_TSF_0x1c spr10e
313 #define SPR_TSF_0x1e spr10f
314 #define SPR_TSF_0x20 spr110
315 #define SPR_TSF_0x22 spr111
316 #define SPR_TSF_0x24 spr112
317 #define SPR_TSF_0x26 spr113
318 #define SPR_TSF_0x28 spr114
319 #define SPR_TSF_0x2a spr115
320 #define SPR_TX_FES_Time spr116
321 #define SPR_TSF_0x2e spr117
322 #define SPR_TSF_0x30 spr118
323 #define SPR_TSF_WORD0 spr119
324 #define SPR_TSF_WORD1 spr11a
325 #define SPR_TSF_WORD2 spr11b
326 #define SPR_TSF_WORD3 spr11c
327 #define SPR_TSF_0x3a spr11d
328 #define SPR_TSF_0x3c spr11e
329 #define SPR_TSF_0x3e spr11f
330 #define SPR_TSF_0x40 spr120
331 #define SPR_TSF_0x42 spr121
332 #define SPR_TSF_0x44 spr122
333 #define SPR_TSF_GPT0_STAT spr123
334 #define GPT_STAT_EN 15 /* bit15: Enable the timer */
335 #define GPT_STAT_8MHZ 14 /* bit14: Use 8MHz base (otherwise 88MHz) */
336 #define SPR_TSF_GPT1_STAT spr124
337 #define SPR_TSF_GPT0_CNTLO spr125
338 #define SPR_TSF_GPT1_CNTLO spr126
339 #define SPR_TSF_GPT0_CNTHI spr127
340 #define SPR_TSF_GPT1_CNTHI spr128
341 #define SPR_TSF_GPT0_VALLO spr129
342 #define SPR_TSF_GPT1_VALLO spr12a
343 #define SPR_TSF_GPT0_VALHI spr12b
344 #define SPR_TSF_GPT1_VALHI spr12c
345 #define SPR_TSF_RANDOM spr12d
346 #define SPR_TSF_0x5c spr12e
347 #define SPR_TSF_0x5e spr12f
348 #define SPR_TSF_0x60 spr130
349 #define SPR_TSF_0x62 spr131
350 #define SPR_TSF_0x64 spr132
351 #define SPR_TSF_GPT2_STAT spr133
352 #define SPR_TSF_GPT2_CNTLO spr134
353 #define SPR_TSF_GPT2_CNTHI spr135
354 #define SPR_TSF_GPT2_VALLO spr136
355 #define SPR_TSF_GPT2_VALHI spr137
356 #define SPR_TSF_GPT_ALL_STAT spr138
357 #define SPR_TSF_0x72 spr139
358 #define SPR_TSF_0x74 spr13a
359 #define SPR_TSF_0x76 spr13b
360 #define SPR_TSF_0x78 spr13c
361 #define SPR_TSF_0x7a spr13d
362 #define SPR_TSF_0x7c spr13e
363 #define SPR_TSF_0x7e spr13f
364 #define SPR_IFS_sifs_rx_tx_tx spr140
365 #define SPR_IFS_sifs_nav_tx spr141
366 #define SPR_IFS_slot spr142
367 #define SPR_IFS_0x06 spr143
368 #define SPR_IFS_CTL spr144
369 #define SPR_IFS_BKOFFTIME spr145 /* BackoffTime; in units of PHY slots */
370 #define SPR_IFS_0x0c spr146
371 #define SPR_IFS_0x0e spr147
372 #define SPR_IFS_STAT spr148
373 #define SPR_IFS_med_busy_ctl spr149
374 #define SPR_IFS_if_tx_duration spr14a
375 #define SPR_IFS_0x16 spr14b
376 #define SPR_IFS_0x18 spr14c
377 #define SPR_IFS_0x1a spr14d
378 #define SPR_IFS_0x1c spr14e
379 #define SPR_IFS_0x1e spr14f
380 #define SPR_SCC_Control spr150
381 #define SPR_SCC_Timer_Low spr151
382 #define SPR_SCC_Timer_High spr152
383 #define SPR_SCC_Divisor spr153
384 #define SPR_SCC_Fast_Powerup_Delay spr154
385 #define SPR_SCC_Period spr155
386 #define SPR_SCC_Period_Divisor spr156
387 #define SPR_IFS_0x2e spr157
388 #define SPR_IFS_0x30 spr158
389 #define SPR_IFS_0x32 spr159
390 #define SPR_IFS_0x34 spr15a
391 #define SPR_IFS_0x36 spr15b
392 #define SPR_IFS_0x38 spr15c
393 #define SPR_IFS_0x3a spr15d
394 #define SPR_IFS_0x3c spr15e
395 #define SPR_IFS_0x3e spr15f
396 #define SPR_IFS_0x40 spr160
397 #define SPR_IFS_0x42 spr161
398 #define SPR_IFS_0x44 spr162
399 #define SPR_IFS_0x46 spr163
400 #define SPR_IFS_0x48 spr164
401 #define SPR_IFS_0x4a spr165
402 #define SPR_IFS_0x4c spr166
403 #define SPR_IFS_0x4e spr167
404 #define SPR_IFS_0x50 spr168
405 #define SPR_IFS_0x52 spr169
406 #define SPR_IFS_0x54 spr16a
407 #define SPR_IFS_0x56 spr16b
408 #define SPR_IFS_0x58 spr16c
409 #define SPR_IFS_0x5a spr16d
410 #define SPR_IFS_0x5c spr16e
411 #define SPR_IFS_0x5e spr16f
412 #define SPR_IFS_0x60 spr170
413 #define SPR_IFS_0x62 spr171
414 #define SPR_IFS_0x64 spr172
415 #define SPR_IFS_0x66 spr173
416 #define SPR_IFS_0x68 spr174
417 #define SPR_IFS_0x6a spr175
418 #define SPR_IFS_0x6c spr176
419 #define SPR_IFS_0x6e spr177
420 #define SPR_IFS_0x70 spr178
421 #define SPR_IFS_0x72 spr179
422 #define SPR_IFS_0x74 spr17a
423 #define SPR_IFS_0x76 spr17b
424 #define SPR_IFS_0x78 spr17c
425 #define SPR_IFS_0x7a spr17d
426 #define SPR_IFS_0x7c spr17e
427 #define SPR_IFS_0x7e spr17f
428 #define SPR_NAV_CTL spr180
429 #define SPR_NAV_STAT spr181
430 #define SPR_NAV_0x04 spr182
431 #define SPR_NAV_0x06 spr183
432 #define SPR_NAV_0x08 spr184
433 #define SPR_NAV_0x0a spr185
434 #define SPR_NAV_ALLOCATION spr186
435 #define SPR_NAV_0x0e spr187
436 #define SPR_NAV_0x10 spr188
437 #define SPR_NAV_0x12 spr189
438 #define SPR_NAV_0x14 spr18a
439 #define SPR_NAV_0x16 spr18b
440 #define SPR_NAV_0x18 spr18c
441 #define SPR_NAV_0x1a spr18d
442 #define SPR_NAV_0x1c spr18e
443 #define SPR_NAV_0x1e spr18f
444 #define SPR_NAV_0x20 spr190
445 #define SPR_NAV_0x22 spr191
446 #define SPR_NAV_0x24 spr192
447 #define SPR_NAV_0x26 spr193
448 #define SPR_NAV_0x28 spr194
449 #define SPR_NAV_0x2a spr195
450 #define SPR_NAV_0x2c spr196
451 #define SPR_NAV_0x2e spr197
452 #define SPR_NAV_0x30 spr198
453 #define SPR_NAV_0x32 spr199
454 #define SPR_NAV_0x34 spr19a
455 #define SPR_NAV_0x36 spr19b
456 #define SPR_NAV_0x38 spr19c
457 #define SPR_NAV_0x3a spr19d
458 #define SPR_NAV_0x3c spr19e
459 #define SPR_NAV_0x3e spr19f
460 #define SPR_NAV_0x40 spr1a0
461 #define SPR_NAV_0x42 spr1a1
462 #define SPR_NAV_0x44 spr1a2
463 #define SPR_NAV_0x46 spr1a3
464 #define SPR_NAV_0x48 spr1a4
465 #define SPR_NAV_0x4a spr1a5
466 #define SPR_NAV_0x4c spr1a6
467 #define SPR_NAV_0x4e spr1a7
468 #define SPR_NAV_0x50 spr1a8
469 #define SPR_NAV_0x52 spr1a9
470 #define SPR_NAV_0x54 spr1aa
471 #define SPR_NAV_0x56 spr1ab
472 #define SPR_NAV_0x58 spr1ac
473 #define SPR_NAV_0x5a spr1ad
474 #define SPR_NAV_0x5c spr1ae
475 #define SPR_NAV_0x5e spr1af
476 #define SPR_NAV_0x60 spr1b0
477 #define SPR_NAV_0x62 spr1b1
478 #define SPR_NAV_0x64 spr1b2
479 #define SPR_NAV_0x66 spr1b3
480 #define SPR_NAV_0x68 spr1b4
481 #define SPR_NAV_0x6a spr1b5
482 #define SPR_NAV_0x6c spr1b6
483 #define SPR_NAV_0x6e spr1b7
484 #define SPR_NAV_0x70 spr1b8
485 #define SPR_NAV_0x72 spr1b9
486 #define SPR_NAV_0x74 spr1ba
487 #define SPR_NAV_0x76 spr1bb
488 #define SPR_NAV_0x78 spr1bc
489 #define SPR_NAV_0x7a spr1bd
490 #define SPR_NAV_0x7c spr1be
491 #define SPR_NAV_0x7e spr1bf
492 #define SPR_WEP_0x00 spr1c0
493 #define SPR_WEP_0x02 spr1c1
494 #define SPR_WEP_0x04 spr1c2
495 #define SPR_WEP_0x06 spr1c3
496 #define SPR_WEP_0x08 spr1c4
497 #define SPR_WEP_0x0a spr1c5
498 #define SPR_WEP_0x0c spr1c6
499 #define SPR_WEP_0x0e spr1c7
500 #define SPR_WEP_0x10 spr1c8
501 #define SPR_WEP_0x12 spr1c9
502 #define SPR_WEP_0x14 spr1ca
503 #define SPR_WEP_0x16 spr1cb
504 #define SPR_WEP_0x18 spr1cc
505 #define SPR_WEP_0x1a spr1cd
506 #define SPR_WEP_0x1c spr1ce
507 #define SPR_WEP_0x1e spr1cf
508 #define SPR_WEP_0x20 spr1d0
509 #define SPR_WEP_0x22 spr1d1
510 #define SPR_WEP_0x24 spr1d2
511 #define SPR_WEP_0x26 spr1d3
512 #define SPR_WEP_0x28 spr1d4
513 #define SPR_WEP_0x2a spr1d5
514 #define SPR_WEP_0x2c spr1d6
515 #define SPR_WEP_0x2e spr1d7
516 #define SPR_WEP_0x30 spr1d8
517 #define SPR_WEP_0x32 spr1d9
518 #define SPR_WEP_0x34 spr1da
519 #define SPR_WEP_0x36 spr1db
520 #define SPR_WEP_0x38 spr1dc
521 #define SPR_WEP_0x3a spr1dd
522 #define SPR_WEP_0x3c spr1de
523 #define SPR_WEP_0x3e spr1df
524 #define SPR_WEP_CTL spr1e0
525 #define SPR_WEP_IV_Location spr1e1
526 #define SPR_WEP_IV_Key spr1e2
527 #define SPR_WEP_WKey spr1e3
528 #define SPR_WEP_0x48 spr1e4
529 #define SPR_WEP_0x4a spr1e5
530 #define SPR_WEP_0x4c spr1e6
531 #define SPR_WEP_0x4e spr1e7
532 #define SPR_WEP_0x50 spr1e8
533 #define SPR_WEP_0x52 spr1e9
534 #define SPR_WEP_0x54 spr1ea
535 #define SPR_WEP_AES_Control spr1eb
536 #define SPR_WEP_0x58 spr1ec
537 #define SPR_WEP_0x5a spr1ed
538 #define SPR_WEP_0x5c spr1ee
539 #define SPR_WEP_0x5e spr1ef
540 #define SPR_PMQ_control_low spr1f0
541 #define SPR_PMQ_control_high spr1f1
542 #define SPR_PMQ_pat_0 spr1f2
543 #define SPR_PMQ_pat_1 spr1f3
544 #define SPR_PMQ_pat_2 spr1f4
545 #define SPR_PMQ_dat spr1f5
546 #define SPR_PMQ_dat_or spr1f6
547 #define SPR_PMQ_0x0e spr1f7
548 #define SPR_PMQ_pat_h0 spr1f8
549 #define SPR_PMQ_pat_h1 spr1f9
550 #define SPR_PMQ_pat_h2 spr1fa
551 #define SPR_PMQ_dat_h spr1fb
552 #define SPR_PMQ_0x18 spr1fc
553 #define SPR_PMQ_0x1a spr1fd
554 #define SPR_PMQ_0x1c spr1fe
555 #define SPR_PMQ_0x1e spr1ff
557 /* Named definitions for the Transmit Modify Engine MASK registers */
558 #define SPR_TME_M_PLCP0 SPR_TME_MASK0 /* PLCP header (low) */
559 #define SPR_TME_M_PLCP1 SPR_TME_MASK2 /* PLCP header (middle) */
560 #define SPR_TME_M_PLCP2 SPR_TME_MASK4 /* PLCP header (high) */
561 #define SPR_TME_M_FCTL SPR_TME_MASK6 /* Frame control */
562 #define SPR_TME_M_DURID SPR_TME_MASK8 /* Duration / ID */
563 #define SPR_TME_M_ADDR1_0 SPR_TME_MASK10 /* Address 1 (low) */
564 #define SPR_TME_M_ADDR1_1 SPR_TME_MASK12 /* Address 1 (middle) */
565 #define SPR_TME_M_ADDR1_2 SPR_TME_MASK14 /* Address 1 (high) */
566 #define SPR_TME_M_ADDR2_0 SPR_TME_MASK16 /* Address 2 (low) */
567 #define SPR_TME_M_ADDR2_1 SPR_TME_MASK18 /* Address 2 (middle) */
568 #define SPR_TME_M_ADDR2_2 SPR_TME_MASK20 /* Address 2 (high) */
569 #define SPR_TME_M_ADDR3_0 SPR_TME_MASK22 /* Address 3 (low) */
570 #define SPR_TME_M_ADDR3_1 SPR_TME_MASK24 /* Address 3 (middle) */
571 #define SPR_TME_M_ADDR3_2 SPR_TME_MASK26 /* Address 3 (high) */
572 #define SPR_TME_M_SEQ SPR_TME_MASK28 /* Sequence control */
573 #define SPR_TME_M_ADDR4_0 SPR_TME_MASK30 /* Address 4 (low) */
574 #define SPR_TME_M_ADDR4_1 SPR_TME_MASK32 /* Address 4 (middle) */
575 #define SPR_TME_M_ADDR4_2 SPR_TME_MASK34 /* Address 4 (high) */
577 /* Named definitions for the Transmit Modify Engine VALUE registers */
578 #define SPR_TME_V_PLCP0 SPR_TME_VAL0 /* PLCP header (low) */
579 #define SPR_TME_V_PLCP1 SPR_TME_VAL2 /* PLCP header (middle) */
580 #define SPR_TME_V_PLCP2 SPR_TME_VAL4 /* PLCP header (high) */
581 #define SPR_TME_V_FCTL SPR_TME_VAL6 /* Frame control */
582 #define SPR_TME_V_DURID SPR_TME_VAL8 /* Duration / ID */
583 #define SPR_TME_V_ADDR1_0 SPR_TME_VAL10 /* Address 1 (low) */
584 #define SPR_TME_V_ADDR1_1 SPR_TME_VAL12 /* Address 1 (middle) */
585 #define SPR_TME_V_ADDR1_2 SPR_TME_VAL14 /* Address 1 (high) */
586 #define SPR_TME_V_ADDR2_0 SPR_TME_VAL16 /* Address 2 (low) */
587 #define SPR_TME_V_ADDR2_1 SPR_TME_VAL18 /* Address 2 (middle) */
588 #define SPR_TME_V_ADDR2_2 SPR_TME_VAL20 /* Address 2 (high) */
589 #define SPR_TME_V_ADDR3_0 SPR_TME_VAL22 /* Address 3 (low) */
590 #define SPR_TME_V_ADDR3_1 SPR_TME_VAL24 /* Address 3 (middle) */
591 #define SPR_TME_V_ADDR3_2 SPR_TME_VAL26 /* Address 3 (high) */
592 #define SPR_TME_V_SEQ SPR_TME_VAL28 /* Sequence control */
593 #define SPR_TME_V_ADDR4_0 SPR_TME_VAL30 /* Address 4 (low) */
594 #define SPR_TME_V_ADDR4_1 SPR_TME_VAL32 /* Address 4 (middle) */
595 #define SPR_TME_V_ADDR4_2 SPR_TME_VAL34 /* Address 4 (high) */
598 /* Interrupts (SPR_MAC_IRQLO/HI) */
599 #define IRQLO_MAC_SUSPENDED 0x0001
600 #define IRQLO_BEACONTEMP_AVAIL 0x0002
601 #define IRQLO_TBTT_INDI 0x0004
602 #define IRQLO_BEACON_TX_OK 0x0008
603 #define IRQLO_BEACON_CANCEL 0x0010
604 #define IRQLO_ATIM_END 0x0020
605 #define IRQLO_PMQ 0x0040
606 #define IRQLO_UNDEFINED_0 0x0080
607 #define IRQLO_PIO_WORKAROUND 0x0100
608 #define IRQLO_MAC_TXERR 0x0200
609 #define IRQLO_UNDEFINED_2 0x0400
610 #define IRQLO_PHY_TXERR 0x0800
611 #define IRQLO_PMEVENT 0x1000
612 #define IRQLO_TIMER0 0x2000
613 #define IRQLO_TIMER1 0x4000
614 #define IRQLO_DMA 0x8000
615 #define IRQHI_TXFIFO_FLUSH_OK 0x0001
616 #define IRQHI_CCA_MEASURE_OK 0x0002
617 #define IRQHI_NOISESAMPLE_OK 0x0004
618 #define IRQHI_UNDEFINED_3 0x0008
619 #define IRQHI_UNDEFINED_4 0x0010
620 #define IRQHI_UNDEFINED_5 0x0020
621 #define IRQHI_UNDEFINED_6 0x0040
622 #define IRQHI_UNDEFINED_7 0x0080
623 #define IRQHI_UNDEFINED_8 0x0100
624 #define IRQHI_UNDEFINED_9 0x0200
625 #define IRQHI_UNDEFINED_10 0x0400
626 #define IRQHI_DEBUG 0x0800
627 #define IRQHI_RFKILL 0x1000
628 #define IRQHI_TX_OK 0x2000
629 #define IRQHI_PHY_G_CHANGED 0x4000
630 #define IRQHI_TIMEOUT 0x8000
633 /* MAC Control High bits */
634 #define MACCTL_BE 0 /* bit0: Big Endian mode */
635 #define MACCTL_INFRA 1 /* bit1: Infrastructure mode */
636 #define MACCTL_AP 2 /* bit2: AccessPoint mode */
637 #define MACCTL_RADIOLOCK 3 /* bit3: Radio lock */
638 #define MACCTL_BEACPROMISC 4 /* bit4: Beacon Promiscuous */
639 #define MACCTL_KEEP_BADPLCP 5 /* bit5: Keep frames with bad PLCP */
640 #define MACCTL_KEEP_CTL 6 /* bit6: Keep control frames */
641 #define MACCTL_KEEP_BAD 7 /* bit7: Keep bad frames (FCS) */
642 #define MACCTL_PROMISC 8 /* bit8: Promiscuous mode */
643 #define MACCTL_HWPS 9 /* bit9: Hardware Power Saving */
644 #define MACCTL_AWAKE 10 /* bit10: Device is awake */
645 #define MACCTL_CLOSEDNET 11 /* bit11: Closed net (no SSID bcast) */
646 #define MACCTL_TBTTHOLD 12 /* bit12: TBTT Hold */
647 #define MACCTL_DISCTXSTAT 13 /* bit13: Discard TX status */
648 #define MACCTL_DISCPMQ 14 /* bit14: Discard Power Management Queue */
649 #define MACCTL_GMODE 15 /* bit15: G Mode */
652 /* The FIFO queue numbers */
653 #define FIFO_BK 0 /* Background */
654 #define FIFO_BE 1 /* Best Effort */
655 #define FIFO_VI 2 /* Video */
656 #define FIFO_VO 3 /* Voice */
657 #define FIFO_MCAST 4 /* Broadcast / Multicast */
658 #define FIFO_ATIM 5 /* ATIM window info */
661 #endif /* SPECIAL_PURPOSE_REGISTER_H_ */
663 // vim: syntax=b43 ts=8