Setting up repository
[linux-libre-firmware.git] / openfwwf / spr.inc
1 #ifndef SPECIAL_PURPOSE_REGISTER_H_
2 #define SPECIAL_PURPOSE_REGISTER_H_
3
4 /* Special purpose register definitions */
5
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_BKOFFDELAY                      spr145
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
556
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) */
576
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) */
596
597
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
631
632
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 */
650
651
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 */
659
660
661 #endif /* SPECIAL_PURPOSE_REGISTER_H_ */
662
663 // vim: syntax=b43 ts=8