blob: 5eeca4bade69ef1083af38fd5c252deeaeeb7e9b [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Prakash Dhavali0573c4d2014-02-12 13:19:04 -08002 * Copyright (c) 2012 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.
Kiet Lamaa8e15a2014-02-11 23:30:06 -080020 */
Prakash Dhavali0573c4d2014-02-12 13:19:04 -080021
22/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
27
Jeff Johnson295189b2012-06-20 16:38:30 -070028/** ------------------------------------------------------------------------- *
29 ------------------------------------------------------------------------- *
30
31
32 \file wlan_nv.h
33
34 \brief Types for NV implementation
35 Anything that needs to be publicly available should
36 be in this file
37
38 $Id$
39
Jeff Johnson295189b2012-06-20 16:38:30 -070040
41 ========================================================================== */
42
43#if !defined( __WLAN_NV_H )
44#define __WLAN_NV_H
45
46#include "halLegacyPalTypes.h"
47#include "halCompiler.h"
48
49//From HAL/inc/halNv.h
50typedef enum
51{
52 //Common Nv Fields
53 NV_COMMON_PRODUCT_ID, // 0
54 NV_COMMON_PRODUCT_BANDS, // 1
55 NV_COMMON_NUM_OF_TX_CHAINS, // 2
56 NV_COMMON_NUM_OF_RX_CHAINS, // 3
57 NV_COMMON_MAC_ADDR, // 4
58 NV_COMMON_MFG_SERIAL_NUMBER, // 5
59 NV_COMMON_WLAN_NV_REV_ID, // 6
60 NV_COMMON_COUPLER_TYPE, // 7
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -080061 NV_COMMON_NV_VERSION, // 8
62 NV_COMMON_RESERVED, // 9
Jeff Johnson295189b2012-06-20 16:38:30 -070063
64 NUM_NV_FIELDS,
65 NV_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
66
67}eNvField;
68
69
70#define NV_FIELD_MAC_ADDR_SIZE 6
71#define NV_FIELD_MFG_SN_SIZE 40
72typedef enum
73{
74 PRODUCT_BAND_11_B_G = 0, //Gen6.0 is only this setting
75 PRODUCT_BAND_11_A_B_G = 1,
76 PRODUCT_BAND_11_A = 2,
77
78 NUM_PRODUCT_BANDS,
79 NUM_PRODUCT_BANDS_INVALID = 0x7FFFFFFF /* define as 4 bytes data */
80}eNvProductBands; //NV_COMMON_PRODUCT_BANDS
81
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -080082#define EXTERNAL_PA 1
83#define INTERNAL_PA 0
84
85#define EXTERNAL_LNA 1
86#define INTERNAL_LNA 0
87
88#define EXTERNAL_COUPLER 1
89#define INTERNAL_COUPLER 0
90
91#define EXTERNAL_PDET 1
92#define INTERNAL_PDET 0
93
94#define DPD_ENABLED 1
95#define DPD_DISABLED 0
96
97#define TPC_MODE_OPEN_LOOP 0
98#define TPC_MODE_SCPC 1
99#define TPC_MODE_CLPC_MODE2 2
100#define TPC_MODE_CLPC_MODE3 3
101
102#define PA_POLARITY_TX_UNUSED 0
103#define PA_POLARITY_TX_POSITIVE 1
104#define PA_POLARITY_TX_NEGATIVE 2
105#define PA_POLARITY_RX_UNUSED 0
106#define PA_POLARITY_RX_POSITIVE 1
107#define PA_POLARITY_RX_NEGATIVE 2
108
109#define NV_VERSION_INVALID 0xFF
110#define NV_VERSION_11N_11AC_COUPER_TYPE 0
111#define NV_VERSION_11N_11AC_FW_CONFIG 1
112#define NV_VERSION_LPDC_FW_CONFIG 2
Leo Chang09a60182013-12-04 18:12:10 -0800113#ifdef FEATURE_WLAN_CH144
114#define NV_VERSION_CH144_CONFIG 3
115#endif /* FEATURE_WLAN_CH144 */
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800116
117#ifdef WCN_PRONTO
Leo Chang09a60182013-12-04 18:12:10 -0800118#ifdef FEATURE_WLAN_CH144
119#define WLAN_NV_VERSION NV_VERSION_CH144_CONFIG
120#else
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800121#define WLAN_NV_VERSION NV_VERSION_LPDC_FW_CONFIG
Leo Chang09a60182013-12-04 18:12:10 -0800122#endif /* FEATURE_WLAN_CH144 */
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800123#else //WCN_PRONTO
124#define WLAN_NV_VERSION NV_VERSION_11N_11AC_FW_CONFIG
125#endif //WCN_PRONTO
Jeff Johnson295189b2012-06-20 16:38:30 -0700126
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700127typedef PACKED_PRE struct PACKED_POST
128{
129 uint8 macAddr1[NV_FIELD_MAC_ADDR_SIZE]; /* Default, not change name for compatibility */
130 uint8 macAddr2[NV_FIELD_MAC_ADDR_SIZE];
131 uint8 macAddr3[NV_FIELD_MAC_ADDR_SIZE];
132 uint8 macAddr4[NV_FIELD_MAC_ADDR_SIZE];
133} sMacAddr;
134
Jeff Johnson295189b2012-06-20 16:38:30 -0700135typedef PACKED_PRE union PACKED_POST
136{
137 //common NV fields
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800138 uint16 productId;
139 uint8 productBands;
140 uint8 wlanNvRevId;
141 uint8 numOfTxChains;
142 uint8 numOfRxChains;
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700143 sMacAddr macAddr;
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800144 uint8 mfgSN[NV_FIELD_MFG_SN_SIZE];
145 uint8 couplerType;
146 uint8 nvVersion;
Jeff Johnson295189b2012-06-20 16:38:30 -0700147} uNvFields;
148
149
Jeff Johnson295189b2012-06-20 16:38:30 -0700150//format of common part of nv
151typedef PACKED_PRE struct PACKED_POST
152{
153 //always ensure fields are aligned to 32-bit boundaries
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800154 uint16 productId;
155 uint8 productBands;
156 uint8 wlanNvRevId; //0: WCN1312, 1: WCN1314, 2: WCN3660
Jeff Johnson295189b2012-06-20 16:38:30 -0700157
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800158 uint8 numOfTxChains;
159 uint8 numOfRxChains;
160 uint8 macAddr[NV_FIELD_MAC_ADDR_SIZE]; /* Default, not change name for compatibility */
161 uint8 macAddr2[NV_FIELD_MAC_ADDR_SIZE];
162 uint8 macAddr3[NV_FIELD_MAC_ADDR_SIZE];
163 uint8 macAddr4[NV_FIELD_MAC_ADDR_SIZE];
164 uint8 mfgSN[NV_FIELD_MFG_SN_SIZE];
165 uint8 couplerType;
166 uint8 nvVersion;
Jeff Johnson295189b2012-06-20 16:38:30 -0700167} sNvFields;
168
169
170//From wlanfw/inc/halPhyTypes.h
171
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800172typedef int8 tPowerdBm; //power in signed 8-bit integer, no decimal places
Jeff Johnson295189b2012-06-20 16:38:30 -0700173
174typedef PACKED_PRE union PACKED_POST
175{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800176 uint32 measurement; //measured values can be passed to pttApi, but are maintained to 2 decimal places internally
177 int16 reported; //used internally only - reported values only maintain 2 decimals places
Jeff Johnson295189b2012-06-20 16:38:30 -0700178}uAbsPwrPrecision;
179
180typedef enum
181{
182 PHY_TX_CHAIN_0 = 0,
183
Prasanna Kumarc322b652013-07-18 16:22:45 -0700184 NUM_PHY_MAX_TX_CHAINS = 1,
185 PHY_MAX_TX_CHAINS = NUM_PHY_MAX_TX_CHAINS,
Jeff Johnson295189b2012-06-20 16:38:30 -0700186 PHY_ALL_TX_CHAINS,
187
188 //possible tx chain combinations
189 PHY_NO_TX_CHAINS,
190 PHY_TX_CHAIN_INVALID = 0x7FFFFFFF /* define as 4 bytes data */
191}ePhyTxChains;
192
193//From wlanfw/inc/halRfTypes.h
194
195typedef enum
196{
197 REG_DOMAIN_FCC,
198 REG_DOMAIN_ETSI,
199 REG_DOMAIN_JAPAN,
200 REG_DOMAIN_WORLD,
201 REG_DOMAIN_N_AMER_EXC_FCC,
202 REG_DOMAIN_APAC,
203 REG_DOMAIN_KOREA,
204 REG_DOMAIN_HI_5GHZ,
205 REG_DOMAIN_NO_5GHZ,
206
207 NUM_REG_DOMAINS,
208 NUM_REG_DOMAINS_INVALID = 0x7FFFFFFF /* define as 4 bytes data */
209}eRegDomainId;
210
211typedef enum
212{
213 RF_SUBBAND_2_4_GHZ = 0,
214 RF_SUBBAND_5_LOW_GHZ = 1, //Low & Mid U-NII
215 RF_SUBBAND_5_MID_GHZ = 2, //ETSI
216 RF_SUBBAND_5_HIGH_GHZ = 3, //High U-NII
Madan Mohan Koyyalamudi8cb5dc72012-09-24 12:08:56 -0700217 RF_SUBBAND_4_9_GHZ = 4, //Japanese
Jeff Johnson295189b2012-06-20 16:38:30 -0700218
219
220 NUM_RF_SUBBANDS,
221
222 MAX_RF_SUBBANDS,
223 INVALID_RF_SUBBAND,
224
225 RF_BAND_2_4_GHZ = 0,
226 RF_BAND_5_GHZ = 1,
227 NUM_RF_BANDS,
228 BOTH_RF_BANDS,
229 RF_SUBBAND_INVALID = 0x7FFFFFFF /* define as 4 bytes data */
230}eRfSubBand;
231
232typedef enum
233{
234 //2.4GHz Band
235 RF_CHAN_1 = 0,
Leo Chang09a60182013-12-04 18:12:10 -0800236 RF_CHAN_2,
237 RF_CHAN_3,
238 RF_CHAN_4,
239 RF_CHAN_5,
240 RF_CHAN_6,
241 RF_CHAN_7,
242 RF_CHAN_8,
243 RF_CHAN_9,
244 RF_CHAN_10,
245 RF_CHAN_11,
246 RF_CHAN_12,
247 RF_CHAN_13,
248 RF_CHAN_14,
Jeff Johnson295189b2012-06-20 16:38:30 -0700249
Madan Mohan Koyyalamudi8cb5dc72012-09-24 12:08:56 -0700250 //4.9GHz Band
Leo Chang09a60182013-12-04 18:12:10 -0800251 RF_CHAN_240,
252 RF_CHAN_244,
253 RF_CHAN_248,
254 RF_CHAN_252,
255 RF_CHAN_208,
256 RF_CHAN_212,
257 RF_CHAN_216,
Jeff Johnson295189b2012-06-20 16:38:30 -0700258
259 //5GHz Low & Mid U-NII Band
Leo Chang09a60182013-12-04 18:12:10 -0800260 RF_CHAN_36,
261 RF_CHAN_40,
262 RF_CHAN_44,
263 RF_CHAN_48,
264 RF_CHAN_52,
265 RF_CHAN_56,
266 RF_CHAN_60,
267 RF_CHAN_64,
Jeff Johnson295189b2012-06-20 16:38:30 -0700268
269 //5GHz Mid Band - ETSI & FCC
Leo Chang09a60182013-12-04 18:12:10 -0800270 RF_CHAN_100,
271 RF_CHAN_104,
272 RF_CHAN_108,
273 RF_CHAN_112,
274 RF_CHAN_116,
275 RF_CHAN_120,
276 RF_CHAN_124,
277 RF_CHAN_128,
278 RF_CHAN_132,
279 RF_CHAN_136,
280 RF_CHAN_140,
281#ifdef FEATURE_WLAN_CH144
282 RF_CHAN_144,
283#endif /* FEATURE_WLAN_CH144 */
Jeff Johnson295189b2012-06-20 16:38:30 -0700284 //5GHz High U-NII Band
Leo Chang09a60182013-12-04 18:12:10 -0800285 RF_CHAN_149,
286 RF_CHAN_153,
287 RF_CHAN_157,
288 RF_CHAN_161,
289 RF_CHAN_165,
Jeff Johnson295189b2012-06-20 16:38:30 -0700290
291 //CHANNEL BONDED CHANNELS
Leo Chang09a60182013-12-04 18:12:10 -0800292 RF_CHAN_BOND_3,
293 RF_CHAN_BOND_4,
294 RF_CHAN_BOND_5,
295 RF_CHAN_BOND_6,
296 RF_CHAN_BOND_7,
297 RF_CHAN_BOND_8,
298 RF_CHAN_BOND_9,
299 RF_CHAN_BOND_10,
300 RF_CHAN_BOND_11,
301 RF_CHAN_BOND_242, //4.9GHz Band
302 RF_CHAN_BOND_246,
303 RF_CHAN_BOND_250,
304 RF_CHAN_BOND_210,
305 RF_CHAN_BOND_214,
306 RF_CHAN_BOND_38, //5GHz Low & Mid U-NII Band
307 RF_CHAN_BOND_42,
308 RF_CHAN_BOND_46,
309 RF_CHAN_BOND_50,
310 RF_CHAN_BOND_54,
311 RF_CHAN_BOND_58,
312 RF_CHAN_BOND_62,
313 RF_CHAN_BOND_102, //5GHz Mid Band - ETSI & FCC
314 RF_CHAN_BOND_106,
315 RF_CHAN_BOND_110,
316 RF_CHAN_BOND_114,
317 RF_CHAN_BOND_118,
318 RF_CHAN_BOND_122,
319 RF_CHAN_BOND_126,
320 RF_CHAN_BOND_130,
321 RF_CHAN_BOND_134,
322 RF_CHAN_BOND_138,
323#ifdef FEATURE_WLAN_CH144
324 RF_CHAN_BOND_142,
325#endif /* FEATURE_WLAN_CH144 */
326 RF_CHAN_BOND_151, //5GHz High U-NII Band
327 RF_CHAN_BOND_155,
328 RF_CHAN_BOND_159,
329 RF_CHAN_BOND_163,
Jeff Johnson295189b2012-06-20 16:38:30 -0700330
331 NUM_RF_CHANNELS,
332
333 MIN_2_4GHZ_CHANNEL = RF_CHAN_1,
334 MAX_2_4GHZ_CHANNEL = RF_CHAN_14,
Jeff Johnson295189b2012-06-20 16:38:30 -0700335
Madan Mohan Koyyalamudi8cb5dc72012-09-24 12:08:56 -0700336 MIN_5GHZ_CHANNEL = RF_CHAN_240,
Jeff Johnson295189b2012-06-20 16:38:30 -0700337 MAX_5GHZ_CHANNEL = RF_CHAN_165,
338 NUM_5GHZ_CHANNELS = (MAX_5GHZ_CHANNEL - MIN_5GHZ_CHANNEL + 1),
339
Madan Mohan Koyyalamudi8cb5dc72012-09-24 12:08:56 -0700340 MIN_20MHZ_RF_CHANNEL = RF_CHAN_1,
Jeff Johnson295189b2012-06-20 16:38:30 -0700341 MAX_20MHZ_RF_CHANNEL = RF_CHAN_165,
342 NUM_20MHZ_RF_CHANNELS = (MAX_20MHZ_RF_CHANNEL - MIN_20MHZ_RF_CHANNEL + 1),
343
344 MIN_40MHZ_RF_CHANNEL = RF_CHAN_BOND_3,
345 MAX_40MHZ_RF_CHANNEL = RF_CHAN_BOND_163,
346 NUM_40MHZ_RF_CHANNELS = (MAX_40MHZ_RF_CHANNEL - MIN_40MHZ_RF_CHANNEL + 1),
347
348 MIN_CB_2_4GHZ_CHANNEL = RF_CHAN_BOND_3,
349 MAX_CB_2_4GHZ_CHANNEL = RF_CHAN_BOND_11,
350
Madan Mohan Koyyalamudi8cb5dc72012-09-24 12:08:56 -0700351 MIN_CB_5GHZ_CHANNEL = RF_CHAN_BOND_242,
Jeff Johnson295189b2012-06-20 16:38:30 -0700352 MAX_CB_5GHZ_CHANNEL = RF_CHAN_BOND_163,
353
354 NUM_TPC_2_4GHZ_CHANNELS = 14,
355 NUM_TPC_5GHZ_CHANNELS = NUM_5GHZ_CHANNELS,
356
357 INVALID_RF_CHANNEL = 0xBAD,
358 RF_CHANNEL_INVALID_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
359}eRfChannels;
360
Prasanna Kumarc322b652013-07-18 16:22:45 -0700361typedef enum
362{
363 RF_CHAN_1_1 = RF_CHAN_1,
364 RF_CHAN_2_1 = RF_CHAN_2,
365 RF_CHAN_3_1 = RF_CHAN_3,
366 RF_CHAN_4_1 = RF_CHAN_4,
367 RF_CHAN_5_1 = RF_CHAN_5,
368 RF_CHAN_6_1 = RF_CHAN_6,
369 RF_CHAN_7_1 = RF_CHAN_7,
370 RF_CHAN_8_1 = RF_CHAN_8,
371 RF_CHAN_9_1 = RF_CHAN_9,
372 RF_CHAN_10_1 = RF_CHAN_10,
373 RF_CHAN_11_1 = RF_CHAN_11,
374 RF_CHAN_12_1 = RF_CHAN_12,
375 RF_CHAN_13_1 = RF_CHAN_13,
376 RF_CHAN_14_1 = RF_CHAN_14,
377// The above params are used for scripts.
378 NUM_2_4GHZ_CHANNELS,
379}eRfChannels_2_4GHz;
380
Jeff Johnson295189b2012-06-20 16:38:30 -0700381enum
382{
383 NV_CHANNEL_DISABLE,
384 NV_CHANNEL_ENABLE,
385 NV_CHANNEL_DFS,
386 NV_CHANNEL_INVALID
387};
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800388typedef uint8 eNVChannelEnabledType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700389
390typedef PACKED_PRE struct PACKED_POST
391{
392 eNVChannelEnabledType enabled;
393 tPowerdBm pwrLimit;
394}sRegulatoryChannel;
395
396typedef PACKED_PRE struct PACKED_POST
397{
398 sRegulatoryChannel channels[NUM_RF_CHANNELS];
399 uAbsPwrPrecision antennaGain[NUM_RF_SUBBANDS];
400 uAbsPwrPrecision bRatePowerOffset[NUM_2_4GHZ_CHANNELS];
401 uAbsPwrPrecision gnRatePowerOffset[NUM_RF_CHANNELS];
402}ALIGN_4 sRegulatoryDomains;
403
404typedef PACKED_PRE struct PACKED_POST
405{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800406 int16 bRssiOffset[NUM_RF_CHANNELS];
407 int16 gnRssiOffset[NUM_RF_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -0700408}ALIGN_4 sRssiChannelOffsets;
409
410typedef PACKED_PRE struct PACKED_POST
411{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800412 uint16 targetFreq; //number in MHz
413 uint16 channelNum; //channel number as in the eRfChannels enumeration
Jeff Johnson295189b2012-06-20 16:38:30 -0700414 eRfSubBand band; //band that this channel belongs to
415}tRfChannelProps;
416
417typedef enum
418{
419 MODE_802_11B = 0,
420 MODE_802_11AG = 1,
421 MODE_802_11N = 2,
422 NUM_802_11_MODES,
423 MODE_802_11_INVALID = 0x7FFFFFFF /* define as 4 bytes data */
424} e80211Modes;
425
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800426#define HW_CAL_VALUES_VALID_BMAP_UNUSED 0 //Value
427//Bit mask
Leo Chang09a60182013-12-04 18:12:10 -0800428#define HW_CAL_VALUES_VALID_BMAP_SLEEP_TIME_OVERHEAD_2G_MASK 0x1
429#define HW_CAL_VALUES_VALID_BMAP_SLEEP_TIME_OVERHEAD_5G_MASK 0x2
430#define HW_CAL_VALUES_VALID_BMAP_SLEEP_TIME_OVERHEAD_xLNA_5G_MASK 0x4
431#define HW_CAL_VALUES_VALID_TXBBF_SEL_9MHZ_MASK 0x8
432#define HW_CAL_VALUES_VALID_CUSTOM_TCXO_REG8_MASK 0x10
433#define HW_CAL_VALUES_VALID_CUSTOM_TCXO_REG9_MASK 0x20
434#define HW_CAL_VALUES_VALID_ANTENNA_DIVERSITY_ENABLED_MASK 0x40
435#define HW_CAL_VALUES_VALID_CUSTOM_RC_DELAY_MASK 0x80
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800436
Jeff Johnson295189b2012-06-20 16:38:30 -0700437//From wlanfw/inc/halPhyCalMemory.h
438typedef PACKED_PRE struct PACKED_POST
439{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800440 uint16 psSlpTimeOvrHd2G;
441 uint16 psSlpTimeOvrHd5G;
Jeff Johnson295189b2012-06-20 16:38:30 -0700442
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800443 uint16 psSlpTimeOvrHdxLNA5G;
444 uint8 nv_TxBBFSel9MHz : 1;
445 uint8 hwParam1 : 7;
446 uint8 hwParam2;
447
448 uint16 custom_tcxo_reg8;
449 uint16 custom_tcxo_reg9;
450
451 uint32 hwParam3;
452 uint32 hwParam4;
453 uint32 hwParam5;
454 uint32 hwParam6;
455 uint32 hwParam7;
456 uint32 hwParam8;
457 uint32 hwParam9;
458 uint32 hwParam10;
459 uint32 hwParam11;
Jeff Johnson295189b2012-06-20 16:38:30 -0700460}sCalData;
461
462typedef PACKED_PRE struct PACKED_POST
463{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800464 uint32 validBmap; //use eNvCalID
Jeff Johnson295189b2012-06-20 16:38:30 -0700465 sCalData calData;
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800466}sHwCalValues;
Jeff Johnson295189b2012-06-20 16:38:30 -0700467
468typedef PACKED_PRE struct PACKED_POST
469{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800470 uint32 txFirFilterMode;
Jeff Johnson295189b2012-06-20 16:38:30 -0700471}sTxBbFilterMode;
472
473typedef PACKED_PRE struct PACKED_POST
474{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800475 int16 ofdmPwrOffset;
476 int16 rsvd;
Jeff Johnson295189b2012-06-20 16:38:30 -0700477}sOfdmCmdPwrOffset;
478
479//From wlanfw/inc/halPhyCfg.h
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800480typedef uint8 tTpcLutValue;
Jeff Johnson295189b2012-06-20 16:38:30 -0700481
482#define MAX_TPC_CAL_POINTS (8)
483
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800484typedef uint8 tPowerDetect; //7-bit power detect reading
Jeff Johnson295189b2012-06-20 16:38:30 -0700485
486typedef PACKED_PRE struct PACKED_POST
487{
488 tPowerDetect pwrDetAdc; //= SENSED_PWR register, which reports the 8-bit ADC
489 // the stored ADC value gets shifted to 7-bits as the index to the LUT
490 tPowerDetect adjustedPwrDet; //7-bit value that goes into the LUT at the LUT[pwrDet] location
491 //MSB set if extraPrecision.hi8_adjustedPwrDet is used
492}tTpcCaldPowerPoint;
493
Prasanna Kumarc322b652013-07-18 16:22:45 -0700494typedef tTpcCaldPowerPoint tTpcCaldPowerTable[NUM_PHY_MAX_TX_CHAINS][MAX_TPC_CAL_POINTS];
Jeff Johnson295189b2012-06-20 16:38:30 -0700495
496typedef PACKED_PRE struct PACKED_POST
497{
498 tTpcCaldPowerTable empirical; //calibrated power points
499}tTpcConfig;
500
501//From wlanfw/inc/phyTxPower.h
502#ifndef TPC_MEM_POWER_LUT_DEPTH
503#define TPC_MEM_POWER_LUT_DEPTH 256
504#endif
505
Prasanna Kumarc322b652013-07-18 16:22:45 -0700506typedef tTpcLutValue tTpcPowerTable[NUM_PHY_MAX_TX_CHAINS][TPC_MEM_POWER_LUT_DEPTH];
Jeff Johnson295189b2012-06-20 16:38:30 -0700507
508typedef PACKED_PRE struct PACKED_POST
509{
510 tTpcConfig *pwrSampled; //points to CLPC data in calMemory
511}tPhyTxPowerBand;
512
513//From halPhyRates.h
514typedef enum
515{
516 //802.11b Rates
517 HAL_PHY_RATE_11B_LONG_1_MBPS,
518 HAL_PHY_RATE_11B_LONG_2_MBPS,
519 HAL_PHY_RATE_11B_LONG_5_5_MBPS,
520 HAL_PHY_RATE_11B_LONG_11_MBPS,
521 HAL_PHY_RATE_11B_SHORT_2_MBPS,
522 HAL_PHY_RATE_11B_SHORT_5_5_MBPS,
523 HAL_PHY_RATE_11B_SHORT_11_MBPS,
524
525 //Spica_Virgo 11A 20MHz Rates
526 HAL_PHY_RATE_11A_6_MBPS,
527 HAL_PHY_RATE_11A_9_MBPS,
528 HAL_PHY_RATE_11A_12_MBPS,
529 HAL_PHY_RATE_11A_18_MBPS,
530 HAL_PHY_RATE_11A_24_MBPS,
531 HAL_PHY_RATE_11A_36_MBPS,
532 HAL_PHY_RATE_11A_48_MBPS,
533 HAL_PHY_RATE_11A_54_MBPS,
534
535 // 11A 20MHz Rates
536 HAL_PHY_RATE_11A_DUP_6_MBPS,
537 HAL_PHY_RATE_11A_DUP_9_MBPS,
538 HAL_PHY_RATE_11A_DUP_12_MBPS,
539 HAL_PHY_RATE_11A_DUP_18_MBPS,
540 HAL_PHY_RATE_11A_DUP_24_MBPS,
541 HAL_PHY_RATE_11A_DUP_36_MBPS,
542 HAL_PHY_RATE_11A_DUP_48_MBPS,
543 HAL_PHY_RATE_11A_DUP_54_MBPS,
544
545 //MCS Index #0-7 (20/40MHz)
546 HAL_PHY_RATE_MCS_1NSS_6_5_MBPS,
547 HAL_PHY_RATE_MCS_1NSS_13_MBPS,
548 HAL_PHY_RATE_MCS_1NSS_19_5_MBPS,
549 HAL_PHY_RATE_MCS_1NSS_26_MBPS,
550 HAL_PHY_RATE_MCS_1NSS_39_MBPS,
551 HAL_PHY_RATE_MCS_1NSS_52_MBPS,
552 HAL_PHY_RATE_MCS_1NSS_58_5_MBPS,
553 HAL_PHY_RATE_MCS_1NSS_65_MBPS,
554 HAL_PHY_RATE_MCS_1NSS_MM_SG_7_2_MBPS,
555 HAL_PHY_RATE_MCS_1NSS_MM_SG_14_4_MBPS,
556 HAL_PHY_RATE_MCS_1NSS_MM_SG_21_7_MBPS,
557 HAL_PHY_RATE_MCS_1NSS_MM_SG_28_9_MBPS,
558 HAL_PHY_RATE_MCS_1NSS_MM_SG_43_3_MBPS,
559 HAL_PHY_RATE_MCS_1NSS_MM_SG_57_8_MBPS,
560 HAL_PHY_RATE_MCS_1NSS_MM_SG_65_MBPS,
561 HAL_PHY_RATE_MCS_1NSS_MM_SG_72_2_MBPS,
562
563 //MCS Index #8-15 (20/40MHz)
564 HAL_PHY_RATE_MCS_1NSS_CB_13_5_MBPS,
565 HAL_PHY_RATE_MCS_1NSS_CB_27_MBPS,
566 HAL_PHY_RATE_MCS_1NSS_CB_40_5_MBPS,
567 HAL_PHY_RATE_MCS_1NSS_CB_54_MBPS,
568 HAL_PHY_RATE_MCS_1NSS_CB_81_MBPS,
569 HAL_PHY_RATE_MCS_1NSS_CB_108_MBPS,
570 HAL_PHY_RATE_MCS_1NSS_CB_121_5_MBPS,
571 HAL_PHY_RATE_MCS_1NSS_CB_135_MBPS,
572 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_15_MBPS,
573 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_30_MBPS,
574 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_45_MBPS,
575 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_60_MBPS,
576 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_90_MBPS,
577 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_120_MBPS,
578 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_135_MBPS,
579 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_150_MBPS,
580
Jeff Johnsone7245742012-09-05 17:12:55 -0700581#ifdef WLAN_FEATURE_11AC
582 /*11A duplicate 80MHz Rates*/
583 HAL_PHY_RATE_11AC_DUP_6_MBPS,
584 HAL_PHY_RATE_11AC_DUP_9_MBPS,
585 HAL_PHY_RATE_11AC_DUP_12_MBPS,
586 HAL_PHY_RATE_11AC_DUP_18_MBPS,
587 HAL_PHY_RATE_11AC_DUP_24_MBPS,
588 HAL_PHY_RATE_11AC_DUP_36_MBPS,
589 HAL_PHY_RATE_11AC_DUP_48_MBPS,
590 HAL_PHY_RATE_11AC_DUP_54_MBPS,
591
592 /*11AC rate 20MHZ Normal GI*/
593 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_6_5_MBPS,
594 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_13_MBPS,
595 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_19_5_MBPS,
596 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_26_MBPS,
597 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_39_MBPS,
598 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_52_MBPS,
599 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_58_5_MBPS,
600 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_65_MBPS,
601 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_78_MBPS,
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800602#ifdef WCN_PRONTO
603 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_86_5_MBPS,
604#endif
Jeff Johnsone7245742012-09-05 17:12:55 -0700605
606 /*11AC rate 20MHZ Shortl GI*/
607 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_7_2_MBPS,
608 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_14_4_MBPS,
609 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_21_6_MBPS,
610 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_28_8_MBPS,
611 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_43_3_MBPS,
612 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_57_7_MBPS,
613 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_65_MBPS,
614 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_72_2_MBPS,
615 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_86_6_MBPS,
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800616#ifdef WCN_PRONTO
617 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_96_1_MBPS,
618#endif
Jeff Johnsone7245742012-09-05 17:12:55 -0700619
620 /*11AC rates 40MHZ normal GI*/
621 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_13_5_MBPS ,
622 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_27_MBPS,
623 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_40_5_MBPS,
624 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_54_MBPS,
625 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_81_MBPS,
626 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_108_MBPS,
627 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_121_5_MBPS,
628 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_135_MBPS,
629 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_162_MBPS,
630 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_180_MBPS,
631
632 /*11AC rates 40MHZ short GI*/
633 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_15_MBPS ,
634 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_30_MBPS,
635 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_45_MBPS,
636 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_60_MBPS,
637 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_90_MBPS,
638 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_120_MBPS,
639 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_135_MBPS,
640 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_150_MBPS,
641 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_180_MBPS,
642 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_200_MBPS,
643
644 /*11AC rates 80 MHZ normal GI*/
645 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_29_3_MBPS ,
646 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_58_5_MBPS,
647 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_87_8_MBPS,
648 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_117_MBPS,
649 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_175_5_MBPS,
650 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_234_MBPS,
651 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_263_3_MBPS,
652 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_292_5_MBPS,
653 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_351_MBPS,
654 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_390_MBPS,
655
656 /*11AC rates 80 MHZ short GI*/
657 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_32_5_MBPS ,
658 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_65_MBPS,
659 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_97_5_MBPS,
660 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_130_MBPS,
661 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_195_MBPS,
662 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_260_MBPS,
663 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_292_5_MBPS,
664 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_325_MBPS,
665 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_390_MBPS,
666 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_433_3_MBPS,
667#endif //WLAN_FEATURE_11AC
668
Jeff Johnson295189b2012-06-20 16:38:30 -0700669 NUM_HAL_PHY_RATES,
670 HAL_PHY_RATE_INVALID,
671 MIN_RATE_INDEX = 0,
Jeff Johnsone7245742012-09-05 17:12:55 -0700672 MAX_RATE_INDEX = NUM_HAL_PHY_RATES - 1,
Jeff Johnson295189b2012-06-20 16:38:30 -0700673 HAL_PHY_RATE_INVALID_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
674}eHalPhyRates;
675
Jeff Johnson295189b2012-06-20 16:38:30 -0700676#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 -0700677typedef uAbsPwrPrecision tRateGroupPwr[NUM_HAL_PHY_RATES];
Jeff Johnson295189b2012-06-20 16:38:30 -0700678
679//From halNvTables.h
680#define NV_FIELD_COUNTRY_CODE_SIZE 3
681typedef PACKED_PRE struct PACKED_POST
682{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800683 uint8 regDomain; //from eRegDomainId
684 uint8 countryCode[NV_FIELD_COUNTRY_CODE_SIZE]; // string identifier
Jeff Johnson295189b2012-06-20 16:38:30 -0700685}sDefaultCountry;
686
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700687
688#define GF_PA_BIAS_SELECT_MASK 0X7 //(3 bits)
689#define TSMC_PA_BIAS_SELECT_MASK 0x7 //(3 bits)
690
691#define GF_PA_BIAS_SELECT_1 0X0
692#define GF_PA_BIAS_SELECT_2 0X1
693
694#define TSMC_PA_BIAS_SELECT_1 0X0
695#define TSMC_PA_BIAS_SELECT_2 0X1
696#define TSMC_PA_BIAS_SELECT_3 0x2
697
698
699#define EXT_PA_CTRL_POLARITY_DEFAULT 0X0
700#define EXT_PA_CTRL_POLARITY_VALID 0X80
701
702#define EXT_PA_CTRL0_POLARITY_MASK 0X3
703#define EXT_PA_CTRL0_POLARITY_OFFSET 0X0
704#define EXT_PA_CTRL1_POLARITY_MASK 0XC
705#define EXT_PA_CTRL1_POLARITY_OFFSET 0X2
706
707#define EXT_PA_CTRL_POLARITY_ZERO 0X1
708#define EXT_PA_CTRL_POLARITY_ONE 0X2
709
Leo Chang09a60182013-12-04 18:12:10 -0800710#define GF_TX_PWR_ADJUST_2G_MASK 0XF0000
711#define GF_TX_PWR_ADJUST_2G_OFFSET 16
712#define GF_TX_PWR_ADJUST_5G_LOW_MASK 0XF00000
713#define GF_TX_PWR_ADJUST_5G_LOW_OFFSET 20
714#define GF_TX_PWR_ADJUST_5G_MID_MASK 0XF000000
715#define GF_TX_PWR_ADJUST_5G_MID_OFFSET 24
716#define GF_TX_PWR_ADJUST_5G_HIGH_MASK 0XF0000000
717#define GF_TX_PWR_ADJUST_5G_HIGH_OFFSET 28
718
719
Jeff Johnson295189b2012-06-20 16:38:30 -0700720typedef PACKED_PRE struct PACKED_POST
721{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800722 uint8 skuID;
723 uint8 tpcMode2G;
724 uint8 tpcMode5G;
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700725 uint8 configItem1;
Jeff Johnson295189b2012-06-20 16:38:30 -0700726
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800727 uint8 xPA2G;
728 uint8 xPA5G;
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700729 uint8 extPaCtrl0Polarity;
730 uint8 extPaCtrl1Polarity;
Jeff Johnson295189b2012-06-20 16:38:30 -0700731
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800732 uint8 xLNA2G;
733 uint8 xLNA5G;
734 uint8 xCoupler2G;
735 uint8 xCoupler5G;
Jeff Johnson295189b2012-06-20 16:38:30 -0700736
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800737 uint8 xPdet2G;
738 uint8 xPdet5G;
739 uint8 enableDPD2G;
740 uint8 enableDPD5G;
Jeff Johnson295189b2012-06-20 16:38:30 -0700741
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800742 uint8 pdadcSelect2G;
743 uint8 pdadcSelect5GLow;
744 uint8 pdadcSelect5GMid;
745 uint8 pdadcSelect5GHigh;
Jeff Johnson295189b2012-06-20 16:38:30 -0700746
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700747 uint32 configItem2;
748 uint32 configItem3;
749 uint32 configItem4;
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800750}sFwConfig;
Jeff Johnson295189b2012-06-20 16:38:30 -0700751
Jeff Johnson295189b2012-06-20 16:38:30 -0700752
753#define NUM_RF_VR_RATE 13
754typedef uAbsPwrPrecision tRateGroupPwrVR[NUM_RF_VR_RATE];
755
756typedef PACKED_PRE union PACKED_POST
757{
758 tRateGroupPwr pwrOptimum[NUM_RF_SUBBANDS]; // NV_TABLE_RATE_POWER_SETTINGS
759 sRegulatoryDomains regDomains[NUM_REG_DOMAINS]; // NV_TABLE_REGULATORY_DOMAINS
760 sDefaultCountry defaultCountryTable; // NV_TABLE_DEFAULT_COUNTRY
761 tTpcPowerTable plutCharacterized[NUM_RF_CHANNELS]; // NV_TABLE_TPC_POWER_TABLE
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800762 int16 plutPdadcOffset[NUM_RF_CHANNELS]; // NV_TABLE_TPC_PDADC_OFFSETS
Jeff Johnson295189b2012-06-20 16:38:30 -0700763 tRateGroupPwrVR pwrOptimum_virtualRate[NUM_RF_SUBBANDS]; // NV_TABLE_VIRTUAL_RATE
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800764 sFwConfig fwConfig; // NV_TABLE_FW_CONFIG
Jeff Johnson295189b2012-06-20 16:38:30 -0700765 sRssiChannelOffsets rssiChanOffsets[2]; // NV_TABLE_RSSI_CHANNEL_OFFSETS
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800766 sHwCalValues hwCalValues; // NV_TABLE_HW_CAL_VALUES
767 int16 antennaPathLoss[NUM_RF_CHANNELS]; // NV_TABLE_ANTENNA_PATH_LOSS
768 int16 pktTypePwrLimits[NUM_802_11_MODES][NUM_RF_CHANNELS]; // NV_TABLE_PACKET_TYPE_POWER_LIMITS
Jeff Johnson295189b2012-06-20 16:38:30 -0700769 sOfdmCmdPwrOffset ofdmCmdPwrOffset; // NV_TABLE_OFDM_CMD_PWR_OFFSET
770 sTxBbFilterMode txbbFilterMode; // NV_TABLE_TX_BB_FILTER_MODE
771}ALIGN_4 uNvTables;
772
773//From halPhy.h
774typedef tPowerdBm tChannelPwrLimit;
775
776typedef PACKED_PRE struct PACKED_POST
777{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800778 uint8 chanId;
Jeff Johnson295189b2012-06-20 16:38:30 -0700779 tChannelPwrLimit pwr;
780} ALIGN_4 tChannelListWithPower;
781
782//From HAL/inc/halNvTables.h
783typedef enum
784{
785 NV_FIELDS_IMAGE = 0, //contains all fields
786
787 NV_TABLE_RATE_POWER_SETTINGS = 2,
788 NV_TABLE_REGULATORY_DOMAINS = 3,
789 NV_TABLE_DEFAULT_COUNTRY = 4,
790 NV_TABLE_TPC_POWER_TABLE = 5,
791 NV_TABLE_TPC_PDADC_OFFSETS = 6,
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800792 NV_TABLE_HW_CAL_VALUES = 7,
Jeff Johnson295189b2012-06-20 16:38:30 -0700793 NV_TABLE_RSSI_CHANNEL_OFFSETS = 9,
794 NV_TABLE_CAL_MEMORY = 10, //cal memory structure from halPhyCalMemory.h preceded by status
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800795 NV_TABLE_FW_CONFIG = 11,
Jeff Johnson295189b2012-06-20 16:38:30 -0700796 NV_TABLE_ANTENNA_PATH_LOSS = 12,
797 NV_TABLE_PACKET_TYPE_POWER_LIMITS = 13,
798 NV_TABLE_OFDM_CMD_PWR_OFFSET = 14,
799 NV_TABLE_TX_BB_FILTER_MODE = 15,
800 NV_TABLE_VIRTUAL_RATE = 18,
801
802 NUM_NV_TABLE_IDS,
803 NV_ALL_TABLES = 0xFFF,
804 NV_BINARY_IMAGE = 0x1000,
805 NV_MAX_TABLE = 0x7FFFFFFF /* define as 4 bytes data */
806}eNvTable;
807
808typedef PACKED_PRE struct PACKED_POST
809{
810 tRateGroupPwr pwrOptimum[NUM_RF_SUBBANDS]; // NV_TABLE_RATE_POWER_SETTINGS
811 sRegulatoryDomains regDomains[NUM_REG_DOMAINS]; // NV_TABLE_REGULATORY_DOMAINS
812 sDefaultCountry defaultCountryTable; // NV_TABLE_DEFAULT_COUNTRY
813 tTpcPowerTable plutCharacterized[NUM_RF_CHANNELS]; // NV_TABLE_TPC_POWER_TABLE
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800814 int16 plutPdadcOffset[NUM_RF_CHANNELS]; // NV_TABLE_TPC_PDADC_OFFSETS
Jeff Johnson295189b2012-06-20 16:38:30 -0700815 tRateGroupPwrVR pwrOptimum_virtualRate[NUM_RF_SUBBANDS]; // NV_TABLE_VIRTUAL_RATE
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800816 sFwConfig fwConfig; // NV_TABLE_FW_CONFIG
Jeff Johnson295189b2012-06-20 16:38:30 -0700817 sRssiChannelOffsets rssiChanOffsets[2]; // NV_TABLE_RSSI_CHANNEL_OFFSETS
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800818 sHwCalValues hwCalValues; // NV_TABLE_HW_CAL_VALUES
819 int16 antennaPathLoss[NUM_RF_CHANNELS]; // NV_TABLE_ANTENNA_PATH_LOSS
820 int16 pktTypePwrLimits[NUM_802_11_MODES][NUM_RF_CHANNELS]; // NV_TABLE_PACKET_TYPE_POWER_LIMITS
Jeff Johnson295189b2012-06-20 16:38:30 -0700821 sOfdmCmdPwrOffset ofdmCmdPwrOffset; // NV_TABLE_OFDM_CMD_PWR_OFFSET
822 sTxBbFilterMode txbbFilterMode; // NV_TABLE_TX_BB_FILTER_MODE
823}ALIGN_4 sNvTables;
824
825typedef PACKED_PRE struct PACKED_POST
826{
827 sNvFields fields;
828 sNvTables tables;
829}ALIGN_4 sHalNv;
830
831extern const sHalNv nvDefaults;
832
833#endif
834