blob: d0b08301b88f22bac941a58b40a2b4a00f565e25 [file] [log] [blame]
Larry Finger94a79942011-08-23 19:00:42 -05001/******************************************************************************
2 * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
3 *
4 * This program is distributed in the hope that it will be useful, but WITHOUT
5 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
6 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
7 * more details.
8 *
9 * You should have received a copy of the GNU General Public License along with
10 * this program; if not, write to the Free Software Foundation, Inc.,
11 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
12 *
13 * The full GNU General Public License is included in this distribution in the
14 * file called LICENSE.
15 *
16 * Contact Information:
17 * wlanfae <wlanfae@realtek.com>
18******************************************************************************/
19
20
21#ifndef R8190P_DEF_H
22#define R8190P_DEF_H
23
24#include <linux/types.h>
25
26#define MAX_SILENT_RESET_RX_SLOT_NUM 10
27
28#define RX_MPDU_QUEUE 0
29#define RX_CMD_QUEUE 1
30
31
Larry Finger70f9f792011-07-19 12:54:24 -050032enum rtl819x_loopback {
Larry Finger94a79942011-08-23 19:00:42 -050033 RTL819X_NO_LOOPBACK = 0,
34 RTL819X_MAC_LOOPBACK = 1,
35 RTL819X_DMA_LOOPBACK = 2,
36 RTL819X_CCK_LOOPBACK = 3,
Larry Finger70f9f792011-07-19 12:54:24 -050037};
Larry Finger94a79942011-08-23 19:00:42 -050038
39
40#define RESET_DELAY_8185 20
41
Larry Fingerac513a82011-08-25 11:48:11 -050042#define RT_IBSS_INT_MASKS (IMR_BcnInt | IMR_BcnInt | IMR_TBDOK | IMR_TBDER)
Larry Finger94a79942011-08-23 19:00:42 -050043
44#define DESC90_RATE1M 0x00
45#define DESC90_RATE2M 0x01
46#define DESC90_RATE5_5M 0x02
47#define DESC90_RATE11M 0x03
48#define DESC90_RATE6M 0x04
49#define DESC90_RATE9M 0x05
50#define DESC90_RATE12M 0x06
51#define DESC90_RATE18M 0x07
52#define DESC90_RATE24M 0x08
53#define DESC90_RATE36M 0x09
54#define DESC90_RATE48M 0x0a
55#define DESC90_RATE54M 0x0b
56#define DESC90_RATEMCS0 0x00
57#define DESC90_RATEMCS1 0x01
58#define DESC90_RATEMCS2 0x02
59#define DESC90_RATEMCS3 0x03
60#define DESC90_RATEMCS4 0x04
61#define DESC90_RATEMCS5 0x05
62#define DESC90_RATEMCS6 0x06
63#define DESC90_RATEMCS7 0x07
64#define DESC90_RATEMCS8 0x08
65#define DESC90_RATEMCS9 0x09
66#define DESC90_RATEMCS10 0x0a
67#define DESC90_RATEMCS11 0x0b
68#define DESC90_RATEMCS12 0x0c
69#define DESC90_RATEMCS13 0x0d
70#define DESC90_RATEMCS14 0x0e
71#define DESC90_RATEMCS15 0x0f
72#define DESC90_RATEMCS32 0x20
73
74#define SHORT_SLOT_TIME 9
75#define NON_SHORT_SLOT_TIME 20
76
77
78#define MAX_LINES_HWCONFIG_TXT 1000
79#define MAX_BYTES_LINE_HWCONFIG_TXT 128
80
81#define SW_THREE_WIRE 0
82#define HW_THREE_WIRE 2
83
84#define BT_DEMO_BOARD 0
85#define BT_QA_BOARD 1
86#define BT_FPGA 2
87
Larry Fingerac513a82011-08-25 11:48:11 -050088#define RX_SMOOTH 20
Larry Finger94a79942011-08-23 19:00:42 -050089
90#define QSLT_BK 0x1
91#define QSLT_BE 0x0
92#define QSLT_VI 0x4
93#define QSLT_VO 0x6
94#define QSLT_BEACON 0x10
95#define QSLT_HIGH 0x11
96#define QSLT_MGNT 0x12
97#define QSLT_CMD 0x13
98
99#define NUM_OF_FIRMWARE_QUEUE 10
100#define NUM_OF_PAGES_IN_FW 0x100
101#define NUM_OF_PAGE_IN_FW_QUEUE_BK 0x007
102#define NUM_OF_PAGE_IN_FW_QUEUE_BE 0x0aa
103#define NUM_OF_PAGE_IN_FW_QUEUE_VI 0x024
104#define NUM_OF_PAGE_IN_FW_QUEUE_VO 0x007
105#define NUM_OF_PAGE_IN_FW_QUEUE_HCCA 0
106#define NUM_OF_PAGE_IN_FW_QUEUE_CMD 0x2
107#define NUM_OF_PAGE_IN_FW_QUEUE_MGNT 0x10
108#define NUM_OF_PAGE_IN_FW_QUEUE_HIGH 0
109#define NUM_OF_PAGE_IN_FW_QUEUE_BCN 0x4
110#define NUM_OF_PAGE_IN_FW_QUEUE_PUB 0xd
111
112#define NUM_OF_PAGE_IN_FW_QUEUE_BK_DTM 0x026
113#define NUM_OF_PAGE_IN_FW_QUEUE_BE_DTM 0x048
114#define NUM_OF_PAGE_IN_FW_QUEUE_VI_DTM 0x048
115#define NUM_OF_PAGE_IN_FW_QUEUE_VO_DTM 0x026
116#define NUM_OF_PAGE_IN_FW_QUEUE_PUB_DTM 0x00
117
118#define APPLIED_RESERVED_QUEUE_IN_FW 0x80000000
119#define RSVD_FW_QUEUE_PAGE_BK_SHIFT 0x00
120#define RSVD_FW_QUEUE_PAGE_BE_SHIFT 0x08
121#define RSVD_FW_QUEUE_PAGE_VI_SHIFT 0x10
122#define RSVD_FW_QUEUE_PAGE_VO_SHIFT 0x18
123#define RSVD_FW_QUEUE_PAGE_MGNT_SHIFT 0x10
124#define RSVD_FW_QUEUE_PAGE_BCN_SHIFT 0x00
125#define RSVD_FW_QUEUE_PAGE_PUB_SHIFT 0x08
126
127#define HAL_PRIME_CHNL_OFFSET_DONT_CARE 0
128#define HAL_PRIME_CHNL_OFFSET_LOWER 1
129#define HAL_PRIME_CHNL_OFFSET_UPPER 2
130
131
Larry Finger1238aa42011-07-19 12:56:14 -0500132enum version_8190_loopback {
Larry Fingerac513a82011-08-25 11:48:11 -0500133 VERSION_8190_BD = 0x3,
Larry Finger94a79942011-08-23 19:00:42 -0500134 VERSION_8190_BE
Larry Finger1238aa42011-07-19 12:56:14 -0500135};
Larry Finger94a79942011-08-23 19:00:42 -0500136
137#define IC_VersionCut_C 0x2
138#define IC_VersionCut_D 0x3
139#define IC_VersionCut_E 0x4
140
Larry Finger0ad01412011-07-19 13:03:47 -0500141enum rf_optype {
Larry Fingerac513a82011-08-25 11:48:11 -0500142 RF_OP_By_SW_3wire = 0,
143 RF_OP_By_FW,
144 RF_OP_MAX
Larry Finger0ad01412011-07-19 13:03:47 -0500145};
Larry Finger94a79942011-08-23 19:00:42 -0500146
Larry Finger9bf6e4c2011-07-18 21:16:51 -0500147struct bb_reg_definition {
Larry Finger94a79942011-08-23 19:00:42 -0500148 u32 rfintfs;
149 u32 rfintfi;
150 u32 rfintfo;
151 u32 rfintfe;
152 u32 rf3wireOffset;
153 u32 rfLSSI_Select;
154 u32 rfTxGainStage;
155 u32 rfHSSIPara1;
156 u32 rfHSSIPara2;
157 u32 rfSwitchControl;
158 u32 rfAGCControl1;
159 u32 rfAGCControl2;
160 u32 rfRxIQImbalance;
161 u32 rfRxAFE;
162 u32 rfTxIQImbalance;
163 u32 rfTxAFE;
164 u32 rfLSSIReadBack;
165 u32 rfLSSIReadBackPi;
Larry Fingerd3b2c172011-07-19 12:50:41 -0500166};
Larry Finger94a79942011-08-23 19:00:42 -0500167
Larry Fingera07dc3d2011-07-18 21:27:34 -0500168struct tx_fwinfo_8190pci {
Larry Finger94a79942011-08-23 19:00:42 -0500169 u8 TxRate:7;
170 u8 CtsEnable:1;
171 u8 RtsRate:7;
172 u8 RtsEnable:1;
173 u8 TxHT:1;
174 u8 Short:1;
175 u8 TxBandwidth:1;
176 u8 TxSubCarrier:2;
177 u8 STBC:2;
178 u8 AllowAggregation:1;
179 u8 RtsHT:1;
180 u8 RtsShort:1;
181 u8 RtsBandwidth:1;
182 u8 RtsSubcarrier:2;
183 u8 RtsSTBC:2;
184 u8 EnableCPUDur:1;
185
186 u32 RxMF:2;
187 u32 RxAMD:3;
188 u32 TxPerPktInfoFeedback:1;
189 u32 Reserved1:2;
190 u32 TxAGCOffset:4;
191 u32 TxAGCSign:1;
192 u32 RAW_TXD:1;
193 u32 Retry_Limit:4;
194 u32 Reserved2:1;
195 u32 PacketID:13;
196
197
Larry Fingerd3b2c172011-07-19 12:50:41 -0500198};
Larry Finger94a79942011-08-23 19:00:42 -0500199
200
201#define TX_DESC_SIZE 32
202
203#define TX_DESC_CMD_SIZE 32
204
205
206#define TX_STATUS_DESC_SIZE 32
207
208#define TX_FWINFO_SIZE 8
209
210
211#define RX_DESC_SIZE 16
212
213#define RX_STATUS_DESC_SIZE 16
214
215#define RX_DRIVER_INFO_SIZE 8
216
Larry Fingerc13ac632011-07-18 21:32:47 -0500217struct log_int_8190 {
Larry Finger94a79942011-08-23 19:00:42 -0500218 u32 nIMR_COMDOK;
219 u32 nIMR_MGNTDOK;
220 u32 nIMR_HIGH;
221 u32 nIMR_VODOK;
222 u32 nIMR_VIDOK;
223 u32 nIMR_BEDOK;
224 u32 nIMR_BKDOK;
225 u32 nIMR_ROK;
226 u32 nIMR_RCOK;
227 u32 nIMR_TBDOK;
228 u32 nIMR_BDOK;
229 u32 nIMR_RXFOVW;
Larry Fingerc13ac632011-07-18 21:32:47 -0500230};
Larry Finger94a79942011-08-23 19:00:42 -0500231
Larry Finger910d9e52011-07-18 21:34:49 -0500232struct phy_ofdm_rx_status_rxsc_sgien_exintfflag {
Larry Finger94a79942011-08-23 19:00:42 -0500233 u8 reserved:4;
234 u8 rxsc:2;
235 u8 sgi_en:1;
236 u8 ex_intf_flag:1;
Larry Fingerd3b2c172011-07-19 12:50:41 -0500237};
Larry Finger94a79942011-08-23 19:00:42 -0500238
Larry Finger2ae7ea82011-07-18 21:42:14 -0500239struct phy_sts_ofdm_819xpci {
Larry Finger94a79942011-08-23 19:00:42 -0500240 u8 trsw_gain_X[4];
241 u8 pwdb_all;
242 u8 cfosho_X[4];
243 u8 cfotail_X[4];
244 u8 rxevm_X[2];
245 u8 rxsnr_X[4];
246 u8 pdsnr_X[2];
247 u8 csi_current_X[2];
248 u8 csi_target_X[2];
249 u8 sigevm;
250 u8 max_ex_pwr;
251 u8 sgi_en;
252 u8 rxsc_sgien_exflg;
Larry Fingerd3b2c172011-07-19 12:50:41 -0500253};
Larry Finger94a79942011-08-23 19:00:42 -0500254
Larry Fingerececd692011-07-18 22:36:06 -0500255struct phy_sts_cck_819xpci {
Larry Finger94a79942011-08-23 19:00:42 -0500256 u8 adc_pwdb_X[4];
257 u8 sq_rpt;
258 u8 cck_agc_rpt;
Larry Fingerd3b2c172011-07-19 12:50:41 -0500259};
Larry Finger94a79942011-08-23 19:00:42 -0500260
261
262#define PHY_RSSI_SLID_WIN_MAX 100
263#define PHY_Beacon_RSSI_SLID_WIN_MAX 10
264
Larry Fingerbc27e892011-07-18 22:27:06 -0500265struct tx_desc {
Larry Fingerac513a82011-08-25 11:48:11 -0500266 u16 PktSize;
267 u8 Offset;
268 u8 Reserved1:3;
269 u8 CmdInit:1;
270 u8 LastSeg:1;
271 u8 FirstSeg:1;
272 u8 LINIP:1;
273 u8 OWN:1;
Larry Finger94a79942011-08-23 19:00:42 -0500274
Larry Fingerac513a82011-08-25 11:48:11 -0500275 u8 TxFWInfoSize;
276 u8 RATid:3;
277 u8 DISFB:1;
278 u8 USERATE:1;
279 u8 MOREFRAG:1;
280 u8 NoEnc:1;
281 u8 PIFS:1;
282 u8 QueueSelect:5;
283 u8 NoACM:1;
284 u8 Resv:2;
285 u8 SecCAMID:5;
286 u8 SecDescAssign:1;
287 u8 SecType:2;
Larry Finger94a79942011-08-23 19:00:42 -0500288
Larry Fingerac513a82011-08-25 11:48:11 -0500289 u16 TxBufferSize;
290 u8 PktId:7;
291 u8 Resv1:1;
292 u8 Reserved2;
Larry Finger94a79942011-08-23 19:00:42 -0500293
294 u32 TxBuffAddr;
295
296 u32 NextDescAddress;
297
Larry Fingerac513a82011-08-25 11:48:11 -0500298 u32 Reserved5;
299 u32 Reserved6;
300 u32 Reserved7;
Larry Fingerd3b2c172011-07-19 12:50:41 -0500301};
Larry Finger94a79942011-08-23 19:00:42 -0500302
303
Larry Finger32153122011-07-18 22:38:16 -0500304struct tx_desc_cmd {
Larry Finger94a79942011-08-23 19:00:42 -0500305 u16 PktSize;
306 u8 Reserved1;
307 u8 CmdType:3;
308 u8 CmdInit:1;
309 u8 LastSeg:1;
310 u8 FirstSeg:1;
311 u8 LINIP:1;
312 u8 OWN:1;
313
314 u16 ElementReport;
315 u16 Reserved2;
316
317 u16 TxBufferSize;
318 u16 Reserved3;
319
320 u32 TxBuffAddr;
321 u32 NextDescAddress;
322 u32 Reserved4;
323 u32 Reserved5;
324 u32 Reserved6;
Larry Fingerd3b2c172011-07-19 12:50:41 -0500325};
Larry Finger94a79942011-08-23 19:00:42 -0500326
Larry Finger4f534b32011-07-18 22:52:12 -0500327struct rx_desc {
Larry Finger94a79942011-08-23 19:00:42 -0500328 u16 Length:14;
329 u16 CRC32:1;
330 u16 ICV:1;
331 u8 RxDrvInfoSize;
332 u8 Shift:2;
333 u8 PHYStatus:1;
334 u8 SWDec:1;
335 u8 LastSeg:1;
336 u8 FirstSeg:1;
337 u8 EOR:1;
338 u8 OWN:1;
339
340 u32 Reserved2;
341
342 u32 Reserved3;
343
344 u32 BufferAddress;
345
Larry Fingerd3b2c172011-07-19 12:50:41 -0500346};
Larry Finger94a79942011-08-23 19:00:42 -0500347
348
Larry Finger6f22c622011-07-18 22:56:46 -0500349struct rx_fwinfo {
Larry Finger94a79942011-08-23 19:00:42 -0500350 u16 Reserved1:12;
351 u16 PartAggr:1;
352 u16 FirstAGGR:1;
353 u16 Reserved2:2;
354
355 u8 RxRate:7;
356 u8 RxHT:1;
357
358 u8 BW:1;
359 u8 SPLCP:1;
360 u8 Reserved3:2;
361 u8 PAM:1;
362 u8 Mcast:1;
363 u8 Bcast:1;
364 u8 Reserved4:1;
365
366 u32 TSFL;
367
Larry Fingerd3b2c172011-07-19 12:50:41 -0500368};
Larry Finger94a79942011-08-23 19:00:42 -0500369
370#endif