blob: e4e9ea75856c13307da981779872ac6d4c30c8e8 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20*/
21/*
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -080022* Copyright (c) 2012 Qualcomm Atheros, Inc.
23* All Rights Reserved.
24* Qualcomm Atheros Confidential and Proprietary.
25*/
Jeff Johnson295189b2012-06-20 16:38:30 -070026
27/** ------------------------------------------------------------------------- *
28 ------------------------------------------------------------------------- *
29
30
31 \file wlan_nv.h
32
33 \brief Types for NV implementation
34 Anything that needs to be publicly available should
35 be in this file
36
37 $Id$
38
39 Copyright (C) 2006 Airgo Networks, Incorporated
40
41
42 ========================================================================== */
43
44#if !defined( __WLAN_NV_H )
45#define __WLAN_NV_H
46
47#include "halLegacyPalTypes.h"
48#include "halCompiler.h"
49
50//From HAL/inc/halNv.h
51typedef enum
52{
53 //Common Nv Fields
54 NV_COMMON_PRODUCT_ID, // 0
55 NV_COMMON_PRODUCT_BANDS, // 1
56 NV_COMMON_NUM_OF_TX_CHAINS, // 2
57 NV_COMMON_NUM_OF_RX_CHAINS, // 3
58 NV_COMMON_MAC_ADDR, // 4
59 NV_COMMON_MFG_SERIAL_NUMBER, // 5
60 NV_COMMON_WLAN_NV_REV_ID, // 6
61 NV_COMMON_COUPLER_TYPE, // 7
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -080062 NV_COMMON_NV_VERSION, // 8
63 NV_COMMON_RESERVED, // 9
Jeff Johnson295189b2012-06-20 16:38:30 -070064
65 NUM_NV_FIELDS,
66 NV_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
67
68}eNvField;
69
70
71#define NV_FIELD_MAC_ADDR_SIZE 6
72#define NV_FIELD_MFG_SN_SIZE 40
73typedef enum
74{
75 PRODUCT_BAND_11_B_G = 0, //Gen6.0 is only this setting
76 PRODUCT_BAND_11_A_B_G = 1,
77 PRODUCT_BAND_11_A = 2,
78
79 NUM_PRODUCT_BANDS,
80 NUM_PRODUCT_BANDS_INVALID = 0x7FFFFFFF /* define as 4 bytes data */
81}eNvProductBands; //NV_COMMON_PRODUCT_BANDS
82
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -080083#define EXTERNAL_PA 1
84#define INTERNAL_PA 0
85
86#define EXTERNAL_LNA 1
87#define INTERNAL_LNA 0
88
89#define EXTERNAL_COUPLER 1
90#define INTERNAL_COUPLER 0
91
92#define EXTERNAL_PDET 1
93#define INTERNAL_PDET 0
94
95#define DPD_ENABLED 1
96#define DPD_DISABLED 0
97
98#define TPC_MODE_OPEN_LOOP 0
99#define TPC_MODE_SCPC 1
100#define TPC_MODE_CLPC_MODE2 2
101#define TPC_MODE_CLPC_MODE3 3
102
103#define PA_POLARITY_TX_UNUSED 0
104#define PA_POLARITY_TX_POSITIVE 1
105#define PA_POLARITY_TX_NEGATIVE 2
106#define PA_POLARITY_RX_UNUSED 0
107#define PA_POLARITY_RX_POSITIVE 1
108#define PA_POLARITY_RX_NEGATIVE 2
109
110#define NV_VERSION_INVALID 0xFF
111#define NV_VERSION_11N_11AC_COUPER_TYPE 0
112#define NV_VERSION_11N_11AC_FW_CONFIG 1
113#define NV_VERSION_LPDC_FW_CONFIG 2
114
115#ifdef WCN_PRONTO
116#define WLAN_NV_VERSION NV_VERSION_LPDC_FW_CONFIG
117#else //WCN_PRONTO
118#define WLAN_NV_VERSION NV_VERSION_11N_11AC_FW_CONFIG
119#endif //WCN_PRONTO
Jeff Johnson295189b2012-06-20 16:38:30 -0700120
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700121typedef PACKED_PRE struct PACKED_POST
122{
123 uint8 macAddr1[NV_FIELD_MAC_ADDR_SIZE]; /* Default, not change name for compatibility */
124 uint8 macAddr2[NV_FIELD_MAC_ADDR_SIZE];
125 uint8 macAddr3[NV_FIELD_MAC_ADDR_SIZE];
126 uint8 macAddr4[NV_FIELD_MAC_ADDR_SIZE];
127} sMacAddr;
128
Jeff Johnson295189b2012-06-20 16:38:30 -0700129typedef PACKED_PRE union PACKED_POST
130{
131 //common NV fields
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800132 uint16 productId;
133 uint8 productBands;
134 uint8 wlanNvRevId;
135 uint8 numOfTxChains;
136 uint8 numOfRxChains;
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700137 sMacAddr macAddr;
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800138 uint8 mfgSN[NV_FIELD_MFG_SN_SIZE];
139 uint8 couplerType;
140 uint8 nvVersion;
Jeff Johnson295189b2012-06-20 16:38:30 -0700141} uNvFields;
142
143
Jeff Johnson295189b2012-06-20 16:38:30 -0700144//format of common part of nv
145typedef PACKED_PRE struct PACKED_POST
146{
147 //always ensure fields are aligned to 32-bit boundaries
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800148 uint16 productId;
149 uint8 productBands;
150 uint8 wlanNvRevId; //0: WCN1312, 1: WCN1314, 2: WCN3660
Jeff Johnson295189b2012-06-20 16:38:30 -0700151
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800152 uint8 numOfTxChains;
153 uint8 numOfRxChains;
154 uint8 macAddr[NV_FIELD_MAC_ADDR_SIZE]; /* Default, not change name for compatibility */
155 uint8 macAddr2[NV_FIELD_MAC_ADDR_SIZE];
156 uint8 macAddr3[NV_FIELD_MAC_ADDR_SIZE];
157 uint8 macAddr4[NV_FIELD_MAC_ADDR_SIZE];
158 uint8 mfgSN[NV_FIELD_MFG_SN_SIZE];
159 uint8 couplerType;
160 uint8 nvVersion;
Jeff Johnson295189b2012-06-20 16:38:30 -0700161} sNvFields;
162
163
164//From wlanfw/inc/halPhyTypes.h
165
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800166typedef int8 tPowerdBm; //power in signed 8-bit integer, no decimal places
Jeff Johnson295189b2012-06-20 16:38:30 -0700167
168typedef PACKED_PRE union PACKED_POST
169{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800170 uint32 measurement; //measured values can be passed to pttApi, but are maintained to 2 decimal places internally
171 int16 reported; //used internally only - reported values only maintain 2 decimals places
Jeff Johnson295189b2012-06-20 16:38:30 -0700172}uAbsPwrPrecision;
173
174typedef enum
175{
176 PHY_TX_CHAIN_0 = 0,
177
Prasanna Kumarc322b652013-07-18 16:22:45 -0700178 NUM_PHY_MAX_TX_CHAINS = 1,
179 PHY_MAX_TX_CHAINS = NUM_PHY_MAX_TX_CHAINS,
Jeff Johnson295189b2012-06-20 16:38:30 -0700180 PHY_ALL_TX_CHAINS,
181
182 //possible tx chain combinations
183 PHY_NO_TX_CHAINS,
184 PHY_TX_CHAIN_INVALID = 0x7FFFFFFF /* define as 4 bytes data */
185}ePhyTxChains;
186
187//From wlanfw/inc/halRfTypes.h
188
189typedef enum
190{
191 REG_DOMAIN_FCC,
192 REG_DOMAIN_ETSI,
193 REG_DOMAIN_JAPAN,
194 REG_DOMAIN_WORLD,
195 REG_DOMAIN_N_AMER_EXC_FCC,
196 REG_DOMAIN_APAC,
197 REG_DOMAIN_KOREA,
198 REG_DOMAIN_HI_5GHZ,
199 REG_DOMAIN_NO_5GHZ,
200
201 NUM_REG_DOMAINS,
202 NUM_REG_DOMAINS_INVALID = 0x7FFFFFFF /* define as 4 bytes data */
203}eRegDomainId;
204
205typedef enum
206{
207 RF_SUBBAND_2_4_GHZ = 0,
208 RF_SUBBAND_5_LOW_GHZ = 1, //Low & Mid U-NII
209 RF_SUBBAND_5_MID_GHZ = 2, //ETSI
210 RF_SUBBAND_5_HIGH_GHZ = 3, //High U-NII
Madan Mohan Koyyalamudi8cb5dc72012-09-24 12:08:56 -0700211 RF_SUBBAND_4_9_GHZ = 4, //Japanese
Jeff Johnson295189b2012-06-20 16:38:30 -0700212
213
214 NUM_RF_SUBBANDS,
215
216 MAX_RF_SUBBANDS,
217 INVALID_RF_SUBBAND,
218
219 RF_BAND_2_4_GHZ = 0,
220 RF_BAND_5_GHZ = 1,
221 NUM_RF_BANDS,
222 BOTH_RF_BANDS,
223 RF_SUBBAND_INVALID = 0x7FFFFFFF /* define as 4 bytes data */
224}eRfSubBand;
225
226typedef enum
227{
228 //2.4GHz Band
229 RF_CHAN_1 = 0,
230 RF_CHAN_2 = 1,
231 RF_CHAN_3 = 2,
232 RF_CHAN_4 = 3,
233 RF_CHAN_5 = 4,
234 RF_CHAN_6 = 5,
235 RF_CHAN_7 = 6,
236 RF_CHAN_8 = 7,
237 RF_CHAN_9 = 8,
238 RF_CHAN_10 = 9,
239 RF_CHAN_11 = 10,
240 RF_CHAN_12 = 11,
241 RF_CHAN_13 = 12,
242 RF_CHAN_14 = 13,
243
Madan Mohan Koyyalamudi8cb5dc72012-09-24 12:08:56 -0700244 //4.9GHz Band
245 RF_CHAN_240 = 14,
246 RF_CHAN_244 = 15,
247 RF_CHAN_248 = 16,
248 RF_CHAN_252 = 17,
249 RF_CHAN_208 = 18,
250 RF_CHAN_212 = 19,
251 RF_CHAN_216 = 20,
Jeff Johnson295189b2012-06-20 16:38:30 -0700252
253 //5GHz Low & Mid U-NII Band
254 RF_CHAN_36 = 21,
255 RF_CHAN_40 = 22,
256 RF_CHAN_44 = 23,
257 RF_CHAN_48 = 24,
258 RF_CHAN_52 = 25,
259 RF_CHAN_56 = 26,
260 RF_CHAN_60 = 27,
261 RF_CHAN_64 = 28,
262
263 //5GHz Mid Band - ETSI & FCC
264 RF_CHAN_100 = 29,
265 RF_CHAN_104 = 30,
266 RF_CHAN_108 = 31,
267 RF_CHAN_112 = 32,
268 RF_CHAN_116 = 33,
269 RF_CHAN_120 = 34,
270 RF_CHAN_124 = 35,
271 RF_CHAN_128 = 36,
272 RF_CHAN_132 = 37,
273 RF_CHAN_136 = 38,
274 RF_CHAN_140 = 39,
275
276 //5GHz High U-NII Band
277 RF_CHAN_149 = 40,
278 RF_CHAN_153 = 41,
279 RF_CHAN_157 = 42,
280 RF_CHAN_161 = 43,
281 RF_CHAN_165 = 44,
282
283 //CHANNEL BONDED CHANNELS
284 RF_CHAN_BOND_3 = 45,
285 RF_CHAN_BOND_4 = 46,
286 RF_CHAN_BOND_5 = 47,
287 RF_CHAN_BOND_6 = 48,
288 RF_CHAN_BOND_7 = 49,
289 RF_CHAN_BOND_8 = 50,
290 RF_CHAN_BOND_9 = 51,
291 RF_CHAN_BOND_10 = 52,
292 RF_CHAN_BOND_11 = 53,
Madan Mohan Koyyalamudi8cb5dc72012-09-24 12:08:56 -0700293 RF_CHAN_BOND_242 = 54, //4.9GHz Band
294 RF_CHAN_BOND_246 = 55,
295 RF_CHAN_BOND_250 = 56,
296 RF_CHAN_BOND_210 = 57,
297 RF_CHAN_BOND_214 = 58,
Jeff Johnson295189b2012-06-20 16:38:30 -0700298 RF_CHAN_BOND_38 = 59, //5GHz Low & Mid U-NII Band
299 RF_CHAN_BOND_42 = 60,
300 RF_CHAN_BOND_46 = 61,
301 RF_CHAN_BOND_50 = 62,
302 RF_CHAN_BOND_54 = 63,
303 RF_CHAN_BOND_58 = 64,
304 RF_CHAN_BOND_62 = 65,
305 RF_CHAN_BOND_102 = 66, //5GHz Mid Band - ETSI & FCC
306 RF_CHAN_BOND_106 = 67,
307 RF_CHAN_BOND_110 = 68,
308 RF_CHAN_BOND_114 = 69,
309 RF_CHAN_BOND_118 = 70,
310 RF_CHAN_BOND_122 = 71,
311 RF_CHAN_BOND_126 = 72,
312 RF_CHAN_BOND_130 = 73,
313 RF_CHAN_BOND_134 = 74,
314 RF_CHAN_BOND_138 = 75,
315 RF_CHAN_BOND_151 = 76, //5GHz High U-NII Band
316 RF_CHAN_BOND_155 = 77,
317 RF_CHAN_BOND_159 = 78,
318 RF_CHAN_BOND_163 = 79,
319
320 NUM_RF_CHANNELS,
321
322 MIN_2_4GHZ_CHANNEL = RF_CHAN_1,
323 MAX_2_4GHZ_CHANNEL = RF_CHAN_14,
Jeff Johnson295189b2012-06-20 16:38:30 -0700324
Madan Mohan Koyyalamudi8cb5dc72012-09-24 12:08:56 -0700325 MIN_5GHZ_CHANNEL = RF_CHAN_240,
Jeff Johnson295189b2012-06-20 16:38:30 -0700326 MAX_5GHZ_CHANNEL = RF_CHAN_165,
327 NUM_5GHZ_CHANNELS = (MAX_5GHZ_CHANNEL - MIN_5GHZ_CHANNEL + 1),
328
Madan Mohan Koyyalamudi8cb5dc72012-09-24 12:08:56 -0700329 MIN_20MHZ_RF_CHANNEL = RF_CHAN_1,
Jeff Johnson295189b2012-06-20 16:38:30 -0700330 MAX_20MHZ_RF_CHANNEL = RF_CHAN_165,
331 NUM_20MHZ_RF_CHANNELS = (MAX_20MHZ_RF_CHANNEL - MIN_20MHZ_RF_CHANNEL + 1),
332
333 MIN_40MHZ_RF_CHANNEL = RF_CHAN_BOND_3,
334 MAX_40MHZ_RF_CHANNEL = RF_CHAN_BOND_163,
335 NUM_40MHZ_RF_CHANNELS = (MAX_40MHZ_RF_CHANNEL - MIN_40MHZ_RF_CHANNEL + 1),
336
337 MIN_CB_2_4GHZ_CHANNEL = RF_CHAN_BOND_3,
338 MAX_CB_2_4GHZ_CHANNEL = RF_CHAN_BOND_11,
339
Madan Mohan Koyyalamudi8cb5dc72012-09-24 12:08:56 -0700340 MIN_CB_5GHZ_CHANNEL = RF_CHAN_BOND_242,
Jeff Johnson295189b2012-06-20 16:38:30 -0700341 MAX_CB_5GHZ_CHANNEL = RF_CHAN_BOND_163,
342
343 NUM_TPC_2_4GHZ_CHANNELS = 14,
344 NUM_TPC_5GHZ_CHANNELS = NUM_5GHZ_CHANNELS,
345
346 INVALID_RF_CHANNEL = 0xBAD,
347 RF_CHANNEL_INVALID_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
348}eRfChannels;
349
Prasanna Kumarc322b652013-07-18 16:22:45 -0700350typedef enum
351{
352 RF_CHAN_1_1 = RF_CHAN_1,
353 RF_CHAN_2_1 = RF_CHAN_2,
354 RF_CHAN_3_1 = RF_CHAN_3,
355 RF_CHAN_4_1 = RF_CHAN_4,
356 RF_CHAN_5_1 = RF_CHAN_5,
357 RF_CHAN_6_1 = RF_CHAN_6,
358 RF_CHAN_7_1 = RF_CHAN_7,
359 RF_CHAN_8_1 = RF_CHAN_8,
360 RF_CHAN_9_1 = RF_CHAN_9,
361 RF_CHAN_10_1 = RF_CHAN_10,
362 RF_CHAN_11_1 = RF_CHAN_11,
363 RF_CHAN_12_1 = RF_CHAN_12,
364 RF_CHAN_13_1 = RF_CHAN_13,
365 RF_CHAN_14_1 = RF_CHAN_14,
366// The above params are used for scripts.
367 NUM_2_4GHZ_CHANNELS,
368}eRfChannels_2_4GHz;
369
Jeff Johnson295189b2012-06-20 16:38:30 -0700370enum
371{
372 NV_CHANNEL_DISABLE,
373 NV_CHANNEL_ENABLE,
374 NV_CHANNEL_DFS,
375 NV_CHANNEL_INVALID
376};
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800377typedef uint8 eNVChannelEnabledType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700378
379typedef PACKED_PRE struct PACKED_POST
380{
381 eNVChannelEnabledType enabled;
382 tPowerdBm pwrLimit;
383}sRegulatoryChannel;
384
385typedef PACKED_PRE struct PACKED_POST
386{
387 sRegulatoryChannel channels[NUM_RF_CHANNELS];
388 uAbsPwrPrecision antennaGain[NUM_RF_SUBBANDS];
389 uAbsPwrPrecision bRatePowerOffset[NUM_2_4GHZ_CHANNELS];
390 uAbsPwrPrecision gnRatePowerOffset[NUM_RF_CHANNELS];
391}ALIGN_4 sRegulatoryDomains;
392
393typedef PACKED_PRE struct PACKED_POST
394{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800395 int16 bRssiOffset[NUM_RF_CHANNELS];
396 int16 gnRssiOffset[NUM_RF_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -0700397}ALIGN_4 sRssiChannelOffsets;
398
399typedef PACKED_PRE struct PACKED_POST
400{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800401 uint16 targetFreq; //number in MHz
402 uint16 channelNum; //channel number as in the eRfChannels enumeration
Jeff Johnson295189b2012-06-20 16:38:30 -0700403 eRfSubBand band; //band that this channel belongs to
404}tRfChannelProps;
405
406typedef enum
407{
408 MODE_802_11B = 0,
409 MODE_802_11AG = 1,
410 MODE_802_11N = 2,
411 NUM_802_11_MODES,
412 MODE_802_11_INVALID = 0x7FFFFFFF /* define as 4 bytes data */
413} e80211Modes;
414
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800415#define HW_CAL_VALUES_VALID_BMAP_UNUSED 0 //Value
416//Bit mask
417#define HW_VAL_VALUES_VALID_BMAP_SLEEP_TIME_OVERHEAD_2G_MASK 0x1
418#define HW_VAL_VALUES_VALID_BMAP_SLEEP_TIME_OVERHEAD_5G_MASK 0x2
419#define HW_VAL_VALUES_VALID_BMAP_SLEEP_TIME_OVERHEAD_xLNA_5G_MASK 0x4
420#define HW_VAL_VALUES_VALID_TXBBF_SEL_9MHZ_MASK 0x8
421#define HW_VAL_VALUES_VALID_CUSTOM_TCXO_REG8_MASK 0x10
422#define HW_VAL_VALUES_VALID_CUSTOM_TCXO_REG9_MASK 0x20
423
424
Jeff Johnson295189b2012-06-20 16:38:30 -0700425//From wlanfw/inc/halPhyCalMemory.h
426typedef PACKED_PRE struct PACKED_POST
427{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800428 uint16 psSlpTimeOvrHd2G;
429 uint16 psSlpTimeOvrHd5G;
Jeff Johnson295189b2012-06-20 16:38:30 -0700430
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800431 uint16 psSlpTimeOvrHdxLNA5G;
432 uint8 nv_TxBBFSel9MHz : 1;
433 uint8 hwParam1 : 7;
434 uint8 hwParam2;
435
436 uint16 custom_tcxo_reg8;
437 uint16 custom_tcxo_reg9;
438
439 uint32 hwParam3;
440 uint32 hwParam4;
441 uint32 hwParam5;
442 uint32 hwParam6;
443 uint32 hwParam7;
444 uint32 hwParam8;
445 uint32 hwParam9;
446 uint32 hwParam10;
447 uint32 hwParam11;
Jeff Johnson295189b2012-06-20 16:38:30 -0700448}sCalData;
449
450typedef PACKED_PRE struct PACKED_POST
451{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800452 uint32 validBmap; //use eNvCalID
Jeff Johnson295189b2012-06-20 16:38:30 -0700453 sCalData calData;
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800454}sHwCalValues;
Jeff Johnson295189b2012-06-20 16:38:30 -0700455
456typedef PACKED_PRE struct PACKED_POST
457{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800458 uint32 txFirFilterMode;
Jeff Johnson295189b2012-06-20 16:38:30 -0700459}sTxBbFilterMode;
460
461typedef PACKED_PRE struct PACKED_POST
462{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800463 int16 ofdmPwrOffset;
464 int16 rsvd;
Jeff Johnson295189b2012-06-20 16:38:30 -0700465}sOfdmCmdPwrOffset;
466
467//From wlanfw/inc/halPhyCfg.h
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800468typedef uint8 tTpcLutValue;
Jeff Johnson295189b2012-06-20 16:38:30 -0700469
470#define MAX_TPC_CAL_POINTS (8)
471
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800472typedef uint8 tPowerDetect; //7-bit power detect reading
Jeff Johnson295189b2012-06-20 16:38:30 -0700473
474typedef PACKED_PRE struct PACKED_POST
475{
476 tPowerDetect pwrDetAdc; //= SENSED_PWR register, which reports the 8-bit ADC
477 // the stored ADC value gets shifted to 7-bits as the index to the LUT
478 tPowerDetect adjustedPwrDet; //7-bit value that goes into the LUT at the LUT[pwrDet] location
479 //MSB set if extraPrecision.hi8_adjustedPwrDet is used
480}tTpcCaldPowerPoint;
481
Prasanna Kumarc322b652013-07-18 16:22:45 -0700482typedef tTpcCaldPowerPoint tTpcCaldPowerTable[NUM_PHY_MAX_TX_CHAINS][MAX_TPC_CAL_POINTS];
Jeff Johnson295189b2012-06-20 16:38:30 -0700483
484typedef PACKED_PRE struct PACKED_POST
485{
486 tTpcCaldPowerTable empirical; //calibrated power points
487}tTpcConfig;
488
489//From wlanfw/inc/phyTxPower.h
490#ifndef TPC_MEM_POWER_LUT_DEPTH
491#define TPC_MEM_POWER_LUT_DEPTH 256
492#endif
493
Prasanna Kumarc322b652013-07-18 16:22:45 -0700494typedef tTpcLutValue tTpcPowerTable[NUM_PHY_MAX_TX_CHAINS][TPC_MEM_POWER_LUT_DEPTH];
Jeff Johnson295189b2012-06-20 16:38:30 -0700495
496typedef PACKED_PRE struct PACKED_POST
497{
498 tTpcConfig *pwrSampled; //points to CLPC data in calMemory
499}tPhyTxPowerBand;
500
501//From halPhyRates.h
502typedef enum
503{
504 //802.11b Rates
505 HAL_PHY_RATE_11B_LONG_1_MBPS,
506 HAL_PHY_RATE_11B_LONG_2_MBPS,
507 HAL_PHY_RATE_11B_LONG_5_5_MBPS,
508 HAL_PHY_RATE_11B_LONG_11_MBPS,
509 HAL_PHY_RATE_11B_SHORT_2_MBPS,
510 HAL_PHY_RATE_11B_SHORT_5_5_MBPS,
511 HAL_PHY_RATE_11B_SHORT_11_MBPS,
512
513 //Spica_Virgo 11A 20MHz Rates
514 HAL_PHY_RATE_11A_6_MBPS,
515 HAL_PHY_RATE_11A_9_MBPS,
516 HAL_PHY_RATE_11A_12_MBPS,
517 HAL_PHY_RATE_11A_18_MBPS,
518 HAL_PHY_RATE_11A_24_MBPS,
519 HAL_PHY_RATE_11A_36_MBPS,
520 HAL_PHY_RATE_11A_48_MBPS,
521 HAL_PHY_RATE_11A_54_MBPS,
522
523 // 11A 20MHz Rates
524 HAL_PHY_RATE_11A_DUP_6_MBPS,
525 HAL_PHY_RATE_11A_DUP_9_MBPS,
526 HAL_PHY_RATE_11A_DUP_12_MBPS,
527 HAL_PHY_RATE_11A_DUP_18_MBPS,
528 HAL_PHY_RATE_11A_DUP_24_MBPS,
529 HAL_PHY_RATE_11A_DUP_36_MBPS,
530 HAL_PHY_RATE_11A_DUP_48_MBPS,
531 HAL_PHY_RATE_11A_DUP_54_MBPS,
532
533 //MCS Index #0-7 (20/40MHz)
534 HAL_PHY_RATE_MCS_1NSS_6_5_MBPS,
535 HAL_PHY_RATE_MCS_1NSS_13_MBPS,
536 HAL_PHY_RATE_MCS_1NSS_19_5_MBPS,
537 HAL_PHY_RATE_MCS_1NSS_26_MBPS,
538 HAL_PHY_RATE_MCS_1NSS_39_MBPS,
539 HAL_PHY_RATE_MCS_1NSS_52_MBPS,
540 HAL_PHY_RATE_MCS_1NSS_58_5_MBPS,
541 HAL_PHY_RATE_MCS_1NSS_65_MBPS,
542 HAL_PHY_RATE_MCS_1NSS_MM_SG_7_2_MBPS,
543 HAL_PHY_RATE_MCS_1NSS_MM_SG_14_4_MBPS,
544 HAL_PHY_RATE_MCS_1NSS_MM_SG_21_7_MBPS,
545 HAL_PHY_RATE_MCS_1NSS_MM_SG_28_9_MBPS,
546 HAL_PHY_RATE_MCS_1NSS_MM_SG_43_3_MBPS,
547 HAL_PHY_RATE_MCS_1NSS_MM_SG_57_8_MBPS,
548 HAL_PHY_RATE_MCS_1NSS_MM_SG_65_MBPS,
549 HAL_PHY_RATE_MCS_1NSS_MM_SG_72_2_MBPS,
550
551 //MCS Index #8-15 (20/40MHz)
552 HAL_PHY_RATE_MCS_1NSS_CB_13_5_MBPS,
553 HAL_PHY_RATE_MCS_1NSS_CB_27_MBPS,
554 HAL_PHY_RATE_MCS_1NSS_CB_40_5_MBPS,
555 HAL_PHY_RATE_MCS_1NSS_CB_54_MBPS,
556 HAL_PHY_RATE_MCS_1NSS_CB_81_MBPS,
557 HAL_PHY_RATE_MCS_1NSS_CB_108_MBPS,
558 HAL_PHY_RATE_MCS_1NSS_CB_121_5_MBPS,
559 HAL_PHY_RATE_MCS_1NSS_CB_135_MBPS,
560 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_15_MBPS,
561 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_30_MBPS,
562 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_45_MBPS,
563 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_60_MBPS,
564 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_90_MBPS,
565 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_120_MBPS,
566 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_135_MBPS,
567 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_150_MBPS,
568
Jeff Johnsone7245742012-09-05 17:12:55 -0700569#ifdef WLAN_FEATURE_11AC
570 /*11A duplicate 80MHz Rates*/
571 HAL_PHY_RATE_11AC_DUP_6_MBPS,
572 HAL_PHY_RATE_11AC_DUP_9_MBPS,
573 HAL_PHY_RATE_11AC_DUP_12_MBPS,
574 HAL_PHY_RATE_11AC_DUP_18_MBPS,
575 HAL_PHY_RATE_11AC_DUP_24_MBPS,
576 HAL_PHY_RATE_11AC_DUP_36_MBPS,
577 HAL_PHY_RATE_11AC_DUP_48_MBPS,
578 HAL_PHY_RATE_11AC_DUP_54_MBPS,
579
580 /*11AC rate 20MHZ Normal GI*/
581 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_6_5_MBPS,
582 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_13_MBPS,
583 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_19_5_MBPS,
584 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_26_MBPS,
585 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_39_MBPS,
586 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_52_MBPS,
587 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_58_5_MBPS,
588 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_65_MBPS,
589 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_78_MBPS,
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800590#ifdef WCN_PRONTO
591 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_86_5_MBPS,
592#endif
Jeff Johnsone7245742012-09-05 17:12:55 -0700593
594 /*11AC rate 20MHZ Shortl GI*/
595 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_7_2_MBPS,
596 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_14_4_MBPS,
597 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_21_6_MBPS,
598 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_28_8_MBPS,
599 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_43_3_MBPS,
600 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_57_7_MBPS,
601 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_65_MBPS,
602 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_72_2_MBPS,
603 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_86_6_MBPS,
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800604#ifdef WCN_PRONTO
605 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_96_1_MBPS,
606#endif
Jeff Johnsone7245742012-09-05 17:12:55 -0700607
608 /*11AC rates 40MHZ normal GI*/
609 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_13_5_MBPS ,
610 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_27_MBPS,
611 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_40_5_MBPS,
612 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_54_MBPS,
613 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_81_MBPS,
614 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_108_MBPS,
615 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_121_5_MBPS,
616 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_135_MBPS,
617 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_162_MBPS,
618 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_180_MBPS,
619
620 /*11AC rates 40MHZ short GI*/
621 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_15_MBPS ,
622 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_30_MBPS,
623 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_45_MBPS,
624 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_60_MBPS,
625 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_90_MBPS,
626 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_120_MBPS,
627 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_135_MBPS,
628 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_150_MBPS,
629 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_180_MBPS,
630 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_200_MBPS,
631
632 /*11AC rates 80 MHZ normal GI*/
633 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_29_3_MBPS ,
634 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_58_5_MBPS,
635 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_87_8_MBPS,
636 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_117_MBPS,
637 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_175_5_MBPS,
638 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_234_MBPS,
639 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_263_3_MBPS,
640 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_292_5_MBPS,
641 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_351_MBPS,
642 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_390_MBPS,
643
644 /*11AC rates 80 MHZ short GI*/
645 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_32_5_MBPS ,
646 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_65_MBPS,
647 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_97_5_MBPS,
648 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_130_MBPS,
649 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_195_MBPS,
650 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_260_MBPS,
651 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_292_5_MBPS,
652 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_325_MBPS,
653 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_390_MBPS,
654 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_433_3_MBPS,
655#endif //WLAN_FEATURE_11AC
656
Jeff Johnson295189b2012-06-20 16:38:30 -0700657 NUM_HAL_PHY_RATES,
658 HAL_PHY_RATE_INVALID,
659 MIN_RATE_INDEX = 0,
Jeff Johnsone7245742012-09-05 17:12:55 -0700660 MAX_RATE_INDEX = NUM_HAL_PHY_RATES - 1,
Jeff Johnson295189b2012-06-20 16:38:30 -0700661 HAL_PHY_RATE_INVALID_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
662}eHalPhyRates;
663
Jeff Johnson295189b2012-06-20 16:38:30 -0700664#define NUM_RATE_POWER_GROUPS NUM_HAL_PHY_RATES //total number of rate power groups including the CB_RATE_POWER_OFFSET
Prasanna Kumarc322b652013-07-18 16:22:45 -0700665typedef uAbsPwrPrecision tRateGroupPwr[NUM_HAL_PHY_RATES];
Jeff Johnson295189b2012-06-20 16:38:30 -0700666
667//From halNvTables.h
668#define NV_FIELD_COUNTRY_CODE_SIZE 3
669typedef PACKED_PRE struct PACKED_POST
670{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800671 uint8 regDomain; //from eRegDomainId
672 uint8 countryCode[NV_FIELD_COUNTRY_CODE_SIZE]; // string identifier
Jeff Johnson295189b2012-06-20 16:38:30 -0700673}sDefaultCountry;
674
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700675
676#define GF_PA_BIAS_SELECT_MASK 0X7 //(3 bits)
677#define TSMC_PA_BIAS_SELECT_MASK 0x7 //(3 bits)
678
679#define GF_PA_BIAS_SELECT_1 0X0
680#define GF_PA_BIAS_SELECT_2 0X1
681
682#define TSMC_PA_BIAS_SELECT_1 0X0
683#define TSMC_PA_BIAS_SELECT_2 0X1
684#define TSMC_PA_BIAS_SELECT_3 0x2
685
686
687#define EXT_PA_CTRL_POLARITY_DEFAULT 0X0
688#define EXT_PA_CTRL_POLARITY_VALID 0X80
689
690#define EXT_PA_CTRL0_POLARITY_MASK 0X3
691#define EXT_PA_CTRL0_POLARITY_OFFSET 0X0
692#define EXT_PA_CTRL1_POLARITY_MASK 0XC
693#define EXT_PA_CTRL1_POLARITY_OFFSET 0X2
694
695#define EXT_PA_CTRL_POLARITY_ZERO 0X1
696#define EXT_PA_CTRL_POLARITY_ONE 0X2
697
Jeff Johnson295189b2012-06-20 16:38:30 -0700698typedef PACKED_PRE struct PACKED_POST
699{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800700 uint8 skuID;
701 uint8 tpcMode2G;
702 uint8 tpcMode5G;
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700703 uint8 configItem1;
Jeff Johnson295189b2012-06-20 16:38:30 -0700704
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800705 uint8 xPA2G;
706 uint8 xPA5G;
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700707 uint8 extPaCtrl0Polarity;
708 uint8 extPaCtrl1Polarity;
Jeff Johnson295189b2012-06-20 16:38:30 -0700709
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800710 uint8 xLNA2G;
711 uint8 xLNA5G;
712 uint8 xCoupler2G;
713 uint8 xCoupler5G;
Jeff Johnson295189b2012-06-20 16:38:30 -0700714
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800715 uint8 xPdet2G;
716 uint8 xPdet5G;
717 uint8 enableDPD2G;
718 uint8 enableDPD5G;
Jeff Johnson295189b2012-06-20 16:38:30 -0700719
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800720 uint8 pdadcSelect2G;
721 uint8 pdadcSelect5GLow;
722 uint8 pdadcSelect5GMid;
723 uint8 pdadcSelect5GHigh;
Jeff Johnson295189b2012-06-20 16:38:30 -0700724
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700725 uint32 configItem2;
726 uint32 configItem3;
727 uint32 configItem4;
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800728}sFwConfig;
Jeff Johnson295189b2012-06-20 16:38:30 -0700729
Jeff Johnson295189b2012-06-20 16:38:30 -0700730
731#define NUM_RF_VR_RATE 13
732typedef uAbsPwrPrecision tRateGroupPwrVR[NUM_RF_VR_RATE];
733
734typedef PACKED_PRE union PACKED_POST
735{
736 tRateGroupPwr pwrOptimum[NUM_RF_SUBBANDS]; // NV_TABLE_RATE_POWER_SETTINGS
737 sRegulatoryDomains regDomains[NUM_REG_DOMAINS]; // NV_TABLE_REGULATORY_DOMAINS
738 sDefaultCountry defaultCountryTable; // NV_TABLE_DEFAULT_COUNTRY
739 tTpcPowerTable plutCharacterized[NUM_RF_CHANNELS]; // NV_TABLE_TPC_POWER_TABLE
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800740 int16 plutPdadcOffset[NUM_RF_CHANNELS]; // NV_TABLE_TPC_PDADC_OFFSETS
Jeff Johnson295189b2012-06-20 16:38:30 -0700741 tRateGroupPwrVR pwrOptimum_virtualRate[NUM_RF_SUBBANDS]; // NV_TABLE_VIRTUAL_RATE
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800742 sFwConfig fwConfig; // NV_TABLE_FW_CONFIG
Jeff Johnson295189b2012-06-20 16:38:30 -0700743 sRssiChannelOffsets rssiChanOffsets[2]; // NV_TABLE_RSSI_CHANNEL_OFFSETS
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800744 sHwCalValues hwCalValues; // NV_TABLE_HW_CAL_VALUES
745 int16 antennaPathLoss[NUM_RF_CHANNELS]; // NV_TABLE_ANTENNA_PATH_LOSS
746 int16 pktTypePwrLimits[NUM_802_11_MODES][NUM_RF_CHANNELS]; // NV_TABLE_PACKET_TYPE_POWER_LIMITS
Jeff Johnson295189b2012-06-20 16:38:30 -0700747 sOfdmCmdPwrOffset ofdmCmdPwrOffset; // NV_TABLE_OFDM_CMD_PWR_OFFSET
748 sTxBbFilterMode txbbFilterMode; // NV_TABLE_TX_BB_FILTER_MODE
749}ALIGN_4 uNvTables;
750
751//From halPhy.h
752typedef tPowerdBm tChannelPwrLimit;
753
754typedef PACKED_PRE struct PACKED_POST
755{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800756 uint8 chanId;
Jeff Johnson295189b2012-06-20 16:38:30 -0700757 tChannelPwrLimit pwr;
758} ALIGN_4 tChannelListWithPower;
759
760//From HAL/inc/halNvTables.h
761typedef enum
762{
763 NV_FIELDS_IMAGE = 0, //contains all fields
764
765 NV_TABLE_RATE_POWER_SETTINGS = 2,
766 NV_TABLE_REGULATORY_DOMAINS = 3,
767 NV_TABLE_DEFAULT_COUNTRY = 4,
768 NV_TABLE_TPC_POWER_TABLE = 5,
769 NV_TABLE_TPC_PDADC_OFFSETS = 6,
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800770 NV_TABLE_HW_CAL_VALUES = 7,
Jeff Johnson295189b2012-06-20 16:38:30 -0700771 NV_TABLE_RSSI_CHANNEL_OFFSETS = 9,
772 NV_TABLE_CAL_MEMORY = 10, //cal memory structure from halPhyCalMemory.h preceded by status
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800773 NV_TABLE_FW_CONFIG = 11,
Jeff Johnson295189b2012-06-20 16:38:30 -0700774 NV_TABLE_ANTENNA_PATH_LOSS = 12,
775 NV_TABLE_PACKET_TYPE_POWER_LIMITS = 13,
776 NV_TABLE_OFDM_CMD_PWR_OFFSET = 14,
777 NV_TABLE_TX_BB_FILTER_MODE = 15,
778 NV_TABLE_VIRTUAL_RATE = 18,
779
780 NUM_NV_TABLE_IDS,
781 NV_ALL_TABLES = 0xFFF,
782 NV_BINARY_IMAGE = 0x1000,
783 NV_MAX_TABLE = 0x7FFFFFFF /* define as 4 bytes data */
784}eNvTable;
785
786typedef PACKED_PRE struct PACKED_POST
787{
788 tRateGroupPwr pwrOptimum[NUM_RF_SUBBANDS]; // NV_TABLE_RATE_POWER_SETTINGS
789 sRegulatoryDomains regDomains[NUM_REG_DOMAINS]; // NV_TABLE_REGULATORY_DOMAINS
790 sDefaultCountry defaultCountryTable; // NV_TABLE_DEFAULT_COUNTRY
791 tTpcPowerTable plutCharacterized[NUM_RF_CHANNELS]; // NV_TABLE_TPC_POWER_TABLE
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800792 int16 plutPdadcOffset[NUM_RF_CHANNELS]; // NV_TABLE_TPC_PDADC_OFFSETS
Jeff Johnson295189b2012-06-20 16:38:30 -0700793 tRateGroupPwrVR pwrOptimum_virtualRate[NUM_RF_SUBBANDS]; // NV_TABLE_VIRTUAL_RATE
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800794 sFwConfig fwConfig; // NV_TABLE_FW_CONFIG
Jeff Johnson295189b2012-06-20 16:38:30 -0700795 sRssiChannelOffsets rssiChanOffsets[2]; // NV_TABLE_RSSI_CHANNEL_OFFSETS
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800796 sHwCalValues hwCalValues; // NV_TABLE_HW_CAL_VALUES
797 int16 antennaPathLoss[NUM_RF_CHANNELS]; // NV_TABLE_ANTENNA_PATH_LOSS
798 int16 pktTypePwrLimits[NUM_802_11_MODES][NUM_RF_CHANNELS]; // NV_TABLE_PACKET_TYPE_POWER_LIMITS
Jeff Johnson295189b2012-06-20 16:38:30 -0700799 sOfdmCmdPwrOffset ofdmCmdPwrOffset; // NV_TABLE_OFDM_CMD_PWR_OFFSET
800 sTxBbFilterMode txbbFilterMode; // NV_TABLE_TX_BB_FILTER_MODE
801}ALIGN_4 sNvTables;
802
803typedef PACKED_PRE struct PACKED_POST
804{
805 sNvFields fields;
806 sNvTables tables;
807}ALIGN_4 sHalNv;
808
809extern const sHalNv nvDefaults;
810
811#endif
812