blob: 3e71c635514b1c273c1d918a7dc6d9cae6c03e99 [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
178 PHY_MAX_TX_CHAINS = 1,
179 PHY_ALL_TX_CHAINS,
180
181 //possible tx chain combinations
182 PHY_NO_TX_CHAINS,
183 PHY_TX_CHAIN_INVALID = 0x7FFFFFFF /* define as 4 bytes data */
184}ePhyTxChains;
185
186//From wlanfw/inc/halRfTypes.h
187
188typedef enum
189{
190 REG_DOMAIN_FCC,
191 REG_DOMAIN_ETSI,
192 REG_DOMAIN_JAPAN,
193 REG_DOMAIN_WORLD,
194 REG_DOMAIN_N_AMER_EXC_FCC,
195 REG_DOMAIN_APAC,
196 REG_DOMAIN_KOREA,
197 REG_DOMAIN_HI_5GHZ,
198 REG_DOMAIN_NO_5GHZ,
199
200 NUM_REG_DOMAINS,
201 NUM_REG_DOMAINS_INVALID = 0x7FFFFFFF /* define as 4 bytes data */
202}eRegDomainId;
203
204typedef enum
205{
206 RF_SUBBAND_2_4_GHZ = 0,
207 RF_SUBBAND_5_LOW_GHZ = 1, //Low & Mid U-NII
208 RF_SUBBAND_5_MID_GHZ = 2, //ETSI
209 RF_SUBBAND_5_HIGH_GHZ = 3, //High U-NII
Madan Mohan Koyyalamudi8cb5dc72012-09-24 12:08:56 -0700210 RF_SUBBAND_4_9_GHZ = 4, //Japanese
Jeff Johnson295189b2012-06-20 16:38:30 -0700211
212
213 NUM_RF_SUBBANDS,
214
215 MAX_RF_SUBBANDS,
216 INVALID_RF_SUBBAND,
217
218 RF_BAND_2_4_GHZ = 0,
219 RF_BAND_5_GHZ = 1,
220 NUM_RF_BANDS,
221 BOTH_RF_BANDS,
222 RF_SUBBAND_INVALID = 0x7FFFFFFF /* define as 4 bytes data */
223}eRfSubBand;
224
225typedef enum
226{
227 //2.4GHz Band
228 RF_CHAN_1 = 0,
229 RF_CHAN_2 = 1,
230 RF_CHAN_3 = 2,
231 RF_CHAN_4 = 3,
232 RF_CHAN_5 = 4,
233 RF_CHAN_6 = 5,
234 RF_CHAN_7 = 6,
235 RF_CHAN_8 = 7,
236 RF_CHAN_9 = 8,
237 RF_CHAN_10 = 9,
238 RF_CHAN_11 = 10,
239 RF_CHAN_12 = 11,
240 RF_CHAN_13 = 12,
241 RF_CHAN_14 = 13,
242
Madan Mohan Koyyalamudi8cb5dc72012-09-24 12:08:56 -0700243 //4.9GHz Band
244 RF_CHAN_240 = 14,
245 RF_CHAN_244 = 15,
246 RF_CHAN_248 = 16,
247 RF_CHAN_252 = 17,
248 RF_CHAN_208 = 18,
249 RF_CHAN_212 = 19,
250 RF_CHAN_216 = 20,
Jeff Johnson295189b2012-06-20 16:38:30 -0700251
252 //5GHz Low & Mid U-NII Band
253 RF_CHAN_36 = 21,
254 RF_CHAN_40 = 22,
255 RF_CHAN_44 = 23,
256 RF_CHAN_48 = 24,
257 RF_CHAN_52 = 25,
258 RF_CHAN_56 = 26,
259 RF_CHAN_60 = 27,
260 RF_CHAN_64 = 28,
261
262 //5GHz Mid Band - ETSI & FCC
263 RF_CHAN_100 = 29,
264 RF_CHAN_104 = 30,
265 RF_CHAN_108 = 31,
266 RF_CHAN_112 = 32,
267 RF_CHAN_116 = 33,
268 RF_CHAN_120 = 34,
269 RF_CHAN_124 = 35,
270 RF_CHAN_128 = 36,
271 RF_CHAN_132 = 37,
272 RF_CHAN_136 = 38,
273 RF_CHAN_140 = 39,
274
275 //5GHz High U-NII Band
276 RF_CHAN_149 = 40,
277 RF_CHAN_153 = 41,
278 RF_CHAN_157 = 42,
279 RF_CHAN_161 = 43,
280 RF_CHAN_165 = 44,
281
282 //CHANNEL BONDED CHANNELS
283 RF_CHAN_BOND_3 = 45,
284 RF_CHAN_BOND_4 = 46,
285 RF_CHAN_BOND_5 = 47,
286 RF_CHAN_BOND_6 = 48,
287 RF_CHAN_BOND_7 = 49,
288 RF_CHAN_BOND_8 = 50,
289 RF_CHAN_BOND_9 = 51,
290 RF_CHAN_BOND_10 = 52,
291 RF_CHAN_BOND_11 = 53,
Madan Mohan Koyyalamudi8cb5dc72012-09-24 12:08:56 -0700292 RF_CHAN_BOND_242 = 54, //4.9GHz Band
293 RF_CHAN_BOND_246 = 55,
294 RF_CHAN_BOND_250 = 56,
295 RF_CHAN_BOND_210 = 57,
296 RF_CHAN_BOND_214 = 58,
Jeff Johnson295189b2012-06-20 16:38:30 -0700297 RF_CHAN_BOND_38 = 59, //5GHz Low & Mid U-NII Band
298 RF_CHAN_BOND_42 = 60,
299 RF_CHAN_BOND_46 = 61,
300 RF_CHAN_BOND_50 = 62,
301 RF_CHAN_BOND_54 = 63,
302 RF_CHAN_BOND_58 = 64,
303 RF_CHAN_BOND_62 = 65,
304 RF_CHAN_BOND_102 = 66, //5GHz Mid Band - ETSI & FCC
305 RF_CHAN_BOND_106 = 67,
306 RF_CHAN_BOND_110 = 68,
307 RF_CHAN_BOND_114 = 69,
308 RF_CHAN_BOND_118 = 70,
309 RF_CHAN_BOND_122 = 71,
310 RF_CHAN_BOND_126 = 72,
311 RF_CHAN_BOND_130 = 73,
312 RF_CHAN_BOND_134 = 74,
313 RF_CHAN_BOND_138 = 75,
314 RF_CHAN_BOND_151 = 76, //5GHz High U-NII Band
315 RF_CHAN_BOND_155 = 77,
316 RF_CHAN_BOND_159 = 78,
317 RF_CHAN_BOND_163 = 79,
318
319 NUM_RF_CHANNELS,
320
321 MIN_2_4GHZ_CHANNEL = RF_CHAN_1,
322 MAX_2_4GHZ_CHANNEL = RF_CHAN_14,
323 NUM_2_4GHZ_CHANNELS = (MAX_2_4GHZ_CHANNEL - MIN_2_4GHZ_CHANNEL + 1),
324
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
350enum
351{
352 NV_CHANNEL_DISABLE,
353 NV_CHANNEL_ENABLE,
354 NV_CHANNEL_DFS,
355 NV_CHANNEL_INVALID
356};
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800357typedef uint8 eNVChannelEnabledType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700358
359typedef PACKED_PRE struct PACKED_POST
360{
361 eNVChannelEnabledType enabled;
362 tPowerdBm pwrLimit;
363}sRegulatoryChannel;
364
365typedef PACKED_PRE struct PACKED_POST
366{
367 sRegulatoryChannel channels[NUM_RF_CHANNELS];
368 uAbsPwrPrecision antennaGain[NUM_RF_SUBBANDS];
369 uAbsPwrPrecision bRatePowerOffset[NUM_2_4GHZ_CHANNELS];
370 uAbsPwrPrecision gnRatePowerOffset[NUM_RF_CHANNELS];
371}ALIGN_4 sRegulatoryDomains;
372
373typedef PACKED_PRE struct PACKED_POST
374{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800375 int16 bRssiOffset[NUM_RF_CHANNELS];
376 int16 gnRssiOffset[NUM_RF_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -0700377}ALIGN_4 sRssiChannelOffsets;
378
379typedef PACKED_PRE struct PACKED_POST
380{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800381 uint16 targetFreq; //number in MHz
382 uint16 channelNum; //channel number as in the eRfChannels enumeration
Jeff Johnson295189b2012-06-20 16:38:30 -0700383 eRfSubBand band; //band that this channel belongs to
384}tRfChannelProps;
385
386typedef enum
387{
388 MODE_802_11B = 0,
389 MODE_802_11AG = 1,
390 MODE_802_11N = 2,
391 NUM_802_11_MODES,
392 MODE_802_11_INVALID = 0x7FFFFFFF /* define as 4 bytes data */
393} e80211Modes;
394
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800395#define HW_CAL_VALUES_VALID_BMAP_UNUSED 0 //Value
396//Bit mask
397#define HW_VAL_VALUES_VALID_BMAP_SLEEP_TIME_OVERHEAD_2G_MASK 0x1
398#define HW_VAL_VALUES_VALID_BMAP_SLEEP_TIME_OVERHEAD_5G_MASK 0x2
399#define HW_VAL_VALUES_VALID_BMAP_SLEEP_TIME_OVERHEAD_xLNA_5G_MASK 0x4
400#define HW_VAL_VALUES_VALID_TXBBF_SEL_9MHZ_MASK 0x8
401#define HW_VAL_VALUES_VALID_CUSTOM_TCXO_REG8_MASK 0x10
402#define HW_VAL_VALUES_VALID_CUSTOM_TCXO_REG9_MASK 0x20
403
404
Jeff Johnson295189b2012-06-20 16:38:30 -0700405//From wlanfw/inc/halPhyCalMemory.h
406typedef PACKED_PRE struct PACKED_POST
407{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800408 uint16 psSlpTimeOvrHd2G;
409 uint16 psSlpTimeOvrHd5G;
Jeff Johnson295189b2012-06-20 16:38:30 -0700410
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800411 uint16 psSlpTimeOvrHdxLNA5G;
412 uint8 nv_TxBBFSel9MHz : 1;
413 uint8 hwParam1 : 7;
414 uint8 hwParam2;
415
416 uint16 custom_tcxo_reg8;
417 uint16 custom_tcxo_reg9;
418
419 uint32 hwParam3;
420 uint32 hwParam4;
421 uint32 hwParam5;
422 uint32 hwParam6;
423 uint32 hwParam7;
424 uint32 hwParam8;
425 uint32 hwParam9;
426 uint32 hwParam10;
427 uint32 hwParam11;
Jeff Johnson295189b2012-06-20 16:38:30 -0700428}sCalData;
429
430typedef PACKED_PRE struct PACKED_POST
431{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800432 uint32 validBmap; //use eNvCalID
Jeff Johnson295189b2012-06-20 16:38:30 -0700433 sCalData calData;
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800434}sHwCalValues;
Jeff Johnson295189b2012-06-20 16:38:30 -0700435
436typedef PACKED_PRE struct PACKED_POST
437{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800438 uint32 txFirFilterMode;
Jeff Johnson295189b2012-06-20 16:38:30 -0700439}sTxBbFilterMode;
440
441typedef PACKED_PRE struct PACKED_POST
442{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800443 int16 ofdmPwrOffset;
444 int16 rsvd;
Jeff Johnson295189b2012-06-20 16:38:30 -0700445}sOfdmCmdPwrOffset;
446
447//From wlanfw/inc/halPhyCfg.h
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800448typedef uint8 tTpcLutValue;
Jeff Johnson295189b2012-06-20 16:38:30 -0700449
450#define MAX_TPC_CAL_POINTS (8)
451
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800452typedef uint8 tPowerDetect; //7-bit power detect reading
Jeff Johnson295189b2012-06-20 16:38:30 -0700453
454typedef PACKED_PRE struct PACKED_POST
455{
456 tPowerDetect pwrDetAdc; //= SENSED_PWR register, which reports the 8-bit ADC
457 // the stored ADC value gets shifted to 7-bits as the index to the LUT
458 tPowerDetect adjustedPwrDet; //7-bit value that goes into the LUT at the LUT[pwrDet] location
459 //MSB set if extraPrecision.hi8_adjustedPwrDet is used
460}tTpcCaldPowerPoint;
461
462typedef tTpcCaldPowerPoint tTpcCaldPowerTable[PHY_MAX_TX_CHAINS][MAX_TPC_CAL_POINTS];
463
464typedef PACKED_PRE struct PACKED_POST
465{
466 tTpcCaldPowerTable empirical; //calibrated power points
467}tTpcConfig;
468
469//From wlanfw/inc/phyTxPower.h
470#ifndef TPC_MEM_POWER_LUT_DEPTH
471#define TPC_MEM_POWER_LUT_DEPTH 256
472#endif
473
474typedef tTpcLutValue tTpcPowerTable[PHY_MAX_TX_CHAINS][TPC_MEM_POWER_LUT_DEPTH];
475
476typedef PACKED_PRE struct PACKED_POST
477{
478 tTpcConfig *pwrSampled; //points to CLPC data in calMemory
479}tPhyTxPowerBand;
480
481//From halPhyRates.h
482typedef enum
483{
484 //802.11b Rates
485 HAL_PHY_RATE_11B_LONG_1_MBPS,
486 HAL_PHY_RATE_11B_LONG_2_MBPS,
487 HAL_PHY_RATE_11B_LONG_5_5_MBPS,
488 HAL_PHY_RATE_11B_LONG_11_MBPS,
489 HAL_PHY_RATE_11B_SHORT_2_MBPS,
490 HAL_PHY_RATE_11B_SHORT_5_5_MBPS,
491 HAL_PHY_RATE_11B_SHORT_11_MBPS,
492
493 //Spica_Virgo 11A 20MHz Rates
494 HAL_PHY_RATE_11A_6_MBPS,
495 HAL_PHY_RATE_11A_9_MBPS,
496 HAL_PHY_RATE_11A_12_MBPS,
497 HAL_PHY_RATE_11A_18_MBPS,
498 HAL_PHY_RATE_11A_24_MBPS,
499 HAL_PHY_RATE_11A_36_MBPS,
500 HAL_PHY_RATE_11A_48_MBPS,
501 HAL_PHY_RATE_11A_54_MBPS,
502
503 // 11A 20MHz Rates
504 HAL_PHY_RATE_11A_DUP_6_MBPS,
505 HAL_PHY_RATE_11A_DUP_9_MBPS,
506 HAL_PHY_RATE_11A_DUP_12_MBPS,
507 HAL_PHY_RATE_11A_DUP_18_MBPS,
508 HAL_PHY_RATE_11A_DUP_24_MBPS,
509 HAL_PHY_RATE_11A_DUP_36_MBPS,
510 HAL_PHY_RATE_11A_DUP_48_MBPS,
511 HAL_PHY_RATE_11A_DUP_54_MBPS,
512
513 //MCS Index #0-7 (20/40MHz)
514 HAL_PHY_RATE_MCS_1NSS_6_5_MBPS,
515 HAL_PHY_RATE_MCS_1NSS_13_MBPS,
516 HAL_PHY_RATE_MCS_1NSS_19_5_MBPS,
517 HAL_PHY_RATE_MCS_1NSS_26_MBPS,
518 HAL_PHY_RATE_MCS_1NSS_39_MBPS,
519 HAL_PHY_RATE_MCS_1NSS_52_MBPS,
520 HAL_PHY_RATE_MCS_1NSS_58_5_MBPS,
521 HAL_PHY_RATE_MCS_1NSS_65_MBPS,
522 HAL_PHY_RATE_MCS_1NSS_MM_SG_7_2_MBPS,
523 HAL_PHY_RATE_MCS_1NSS_MM_SG_14_4_MBPS,
524 HAL_PHY_RATE_MCS_1NSS_MM_SG_21_7_MBPS,
525 HAL_PHY_RATE_MCS_1NSS_MM_SG_28_9_MBPS,
526 HAL_PHY_RATE_MCS_1NSS_MM_SG_43_3_MBPS,
527 HAL_PHY_RATE_MCS_1NSS_MM_SG_57_8_MBPS,
528 HAL_PHY_RATE_MCS_1NSS_MM_SG_65_MBPS,
529 HAL_PHY_RATE_MCS_1NSS_MM_SG_72_2_MBPS,
530
531 //MCS Index #8-15 (20/40MHz)
532 HAL_PHY_RATE_MCS_1NSS_CB_13_5_MBPS,
533 HAL_PHY_RATE_MCS_1NSS_CB_27_MBPS,
534 HAL_PHY_RATE_MCS_1NSS_CB_40_5_MBPS,
535 HAL_PHY_RATE_MCS_1NSS_CB_54_MBPS,
536 HAL_PHY_RATE_MCS_1NSS_CB_81_MBPS,
537 HAL_PHY_RATE_MCS_1NSS_CB_108_MBPS,
538 HAL_PHY_RATE_MCS_1NSS_CB_121_5_MBPS,
539 HAL_PHY_RATE_MCS_1NSS_CB_135_MBPS,
540 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_15_MBPS,
541 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_30_MBPS,
542 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_45_MBPS,
543 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_60_MBPS,
544 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_90_MBPS,
545 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_120_MBPS,
546 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_135_MBPS,
547 HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_150_MBPS,
548
Jeff Johnsone7245742012-09-05 17:12:55 -0700549#ifdef WLAN_FEATURE_11AC
550 /*11A duplicate 80MHz Rates*/
551 HAL_PHY_RATE_11AC_DUP_6_MBPS,
552 HAL_PHY_RATE_11AC_DUP_9_MBPS,
553 HAL_PHY_RATE_11AC_DUP_12_MBPS,
554 HAL_PHY_RATE_11AC_DUP_18_MBPS,
555 HAL_PHY_RATE_11AC_DUP_24_MBPS,
556 HAL_PHY_RATE_11AC_DUP_36_MBPS,
557 HAL_PHY_RATE_11AC_DUP_48_MBPS,
558 HAL_PHY_RATE_11AC_DUP_54_MBPS,
559
560 /*11AC rate 20MHZ Normal GI*/
561 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_6_5_MBPS,
562 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_13_MBPS,
563 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_19_5_MBPS,
564 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_26_MBPS,
565 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_39_MBPS,
566 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_52_MBPS,
567 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_58_5_MBPS,
568 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_65_MBPS,
569 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_78_MBPS,
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800570#ifdef WCN_PRONTO
571 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_86_5_MBPS,
572#endif
Jeff Johnsone7245742012-09-05 17:12:55 -0700573
574 /*11AC rate 20MHZ Shortl GI*/
575 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_7_2_MBPS,
576 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_14_4_MBPS,
577 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_21_6_MBPS,
578 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_28_8_MBPS,
579 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_43_3_MBPS,
580 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_57_7_MBPS,
581 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_65_MBPS,
582 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_72_2_MBPS,
583 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_86_6_MBPS,
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800584#ifdef WCN_PRONTO
585 HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_96_1_MBPS,
586#endif
Jeff Johnsone7245742012-09-05 17:12:55 -0700587
588 /*11AC rates 40MHZ normal GI*/
589 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_13_5_MBPS ,
590 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_27_MBPS,
591 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_40_5_MBPS,
592 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_54_MBPS,
593 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_81_MBPS,
594 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_108_MBPS,
595 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_121_5_MBPS,
596 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_135_MBPS,
597 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_162_MBPS,
598 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_180_MBPS,
599
600 /*11AC rates 40MHZ short GI*/
601 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_15_MBPS ,
602 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_30_MBPS,
603 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_45_MBPS,
604 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_60_MBPS,
605 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_90_MBPS,
606 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_120_MBPS,
607 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_135_MBPS,
608 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_150_MBPS,
609 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_180_MBPS,
610 HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_200_MBPS,
611
612 /*11AC rates 80 MHZ normal GI*/
613 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_29_3_MBPS ,
614 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_58_5_MBPS,
615 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_87_8_MBPS,
616 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_117_MBPS,
617 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_175_5_MBPS,
618 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_234_MBPS,
619 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_263_3_MBPS,
620 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_292_5_MBPS,
621 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_351_MBPS,
622 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_390_MBPS,
623
624 /*11AC rates 80 MHZ short GI*/
625 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_32_5_MBPS ,
626 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_65_MBPS,
627 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_97_5_MBPS,
628 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_130_MBPS,
629 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_195_MBPS,
630 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_260_MBPS,
631 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_292_5_MBPS,
632 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_325_MBPS,
633 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_390_MBPS,
634 HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_433_3_MBPS,
635#endif //WLAN_FEATURE_11AC
636
Jeff Johnson295189b2012-06-20 16:38:30 -0700637 NUM_HAL_PHY_RATES,
638 HAL_PHY_RATE_INVALID,
639 MIN_RATE_INDEX = 0,
Jeff Johnsone7245742012-09-05 17:12:55 -0700640 MAX_RATE_INDEX = NUM_HAL_PHY_RATES - 1,
Jeff Johnson295189b2012-06-20 16:38:30 -0700641 HAL_PHY_RATE_INVALID_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
642}eHalPhyRates;
643
Jeff Johnson295189b2012-06-20 16:38:30 -0700644#define NUM_RATE_POWER_GROUPS NUM_HAL_PHY_RATES //total number of rate power groups including the CB_RATE_POWER_OFFSET
645typedef uAbsPwrPrecision tRateGroupPwr[NUM_RATE_POWER_GROUPS];
646
647//From halNvTables.h
648#define NV_FIELD_COUNTRY_CODE_SIZE 3
649typedef PACKED_PRE struct PACKED_POST
650{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800651 uint8 regDomain; //from eRegDomainId
652 uint8 countryCode[NV_FIELD_COUNTRY_CODE_SIZE]; // string identifier
Jeff Johnson295189b2012-06-20 16:38:30 -0700653}sDefaultCountry;
654
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700655
656#define GF_PA_BIAS_SELECT_MASK 0X7 //(3 bits)
657#define TSMC_PA_BIAS_SELECT_MASK 0x7 //(3 bits)
658
659#define GF_PA_BIAS_SELECT_1 0X0
660#define GF_PA_BIAS_SELECT_2 0X1
661
662#define TSMC_PA_BIAS_SELECT_1 0X0
663#define TSMC_PA_BIAS_SELECT_2 0X1
664#define TSMC_PA_BIAS_SELECT_3 0x2
665
666
667#define EXT_PA_CTRL_POLARITY_DEFAULT 0X0
668#define EXT_PA_CTRL_POLARITY_VALID 0X80
669
670#define EXT_PA_CTRL0_POLARITY_MASK 0X3
671#define EXT_PA_CTRL0_POLARITY_OFFSET 0X0
672#define EXT_PA_CTRL1_POLARITY_MASK 0XC
673#define EXT_PA_CTRL1_POLARITY_OFFSET 0X2
674
675#define EXT_PA_CTRL_POLARITY_ZERO 0X1
676#define EXT_PA_CTRL_POLARITY_ONE 0X2
677
Jeff Johnson295189b2012-06-20 16:38:30 -0700678typedef PACKED_PRE struct PACKED_POST
679{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800680 uint8 skuID;
681 uint8 tpcMode2G;
682 uint8 tpcMode5G;
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700683 uint8 configItem1;
Jeff Johnson295189b2012-06-20 16:38:30 -0700684
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800685 uint8 xPA2G;
686 uint8 xPA5G;
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700687 uint8 extPaCtrl0Polarity;
688 uint8 extPaCtrl1Polarity;
Jeff Johnson295189b2012-06-20 16:38:30 -0700689
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800690 uint8 xLNA2G;
691 uint8 xLNA5G;
692 uint8 xCoupler2G;
693 uint8 xCoupler5G;
Jeff Johnson295189b2012-06-20 16:38:30 -0700694
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800695 uint8 xPdet2G;
696 uint8 xPdet5G;
697 uint8 enableDPD2G;
698 uint8 enableDPD5G;
Jeff Johnson295189b2012-06-20 16:38:30 -0700699
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800700 uint8 pdadcSelect2G;
701 uint8 pdadcSelect5GLow;
702 uint8 pdadcSelect5GMid;
703 uint8 pdadcSelect5GHigh;
Jeff Johnson295189b2012-06-20 16:38:30 -0700704
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700705 uint32 configItem2;
706 uint32 configItem3;
707 uint32 configItem4;
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800708}sFwConfig;
Jeff Johnson295189b2012-06-20 16:38:30 -0700709
Jeff Johnson295189b2012-06-20 16:38:30 -0700710
711#define NUM_RF_VR_RATE 13
712typedef uAbsPwrPrecision tRateGroupPwrVR[NUM_RF_VR_RATE];
713
714typedef PACKED_PRE union PACKED_POST
715{
716 tRateGroupPwr pwrOptimum[NUM_RF_SUBBANDS]; // NV_TABLE_RATE_POWER_SETTINGS
717 sRegulatoryDomains regDomains[NUM_REG_DOMAINS]; // NV_TABLE_REGULATORY_DOMAINS
718 sDefaultCountry defaultCountryTable; // NV_TABLE_DEFAULT_COUNTRY
719 tTpcPowerTable plutCharacterized[NUM_RF_CHANNELS]; // NV_TABLE_TPC_POWER_TABLE
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800720 int16 plutPdadcOffset[NUM_RF_CHANNELS]; // NV_TABLE_TPC_PDADC_OFFSETS
Jeff Johnson295189b2012-06-20 16:38:30 -0700721 tRateGroupPwrVR pwrOptimum_virtualRate[NUM_RF_SUBBANDS]; // NV_TABLE_VIRTUAL_RATE
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800722 sFwConfig fwConfig; // NV_TABLE_FW_CONFIG
Jeff Johnson295189b2012-06-20 16:38:30 -0700723 sRssiChannelOffsets rssiChanOffsets[2]; // NV_TABLE_RSSI_CHANNEL_OFFSETS
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800724 sHwCalValues hwCalValues; // NV_TABLE_HW_CAL_VALUES
725 int16 antennaPathLoss[NUM_RF_CHANNELS]; // NV_TABLE_ANTENNA_PATH_LOSS
726 int16 pktTypePwrLimits[NUM_802_11_MODES][NUM_RF_CHANNELS]; // NV_TABLE_PACKET_TYPE_POWER_LIMITS
Jeff Johnson295189b2012-06-20 16:38:30 -0700727 sOfdmCmdPwrOffset ofdmCmdPwrOffset; // NV_TABLE_OFDM_CMD_PWR_OFFSET
728 sTxBbFilterMode txbbFilterMode; // NV_TABLE_TX_BB_FILTER_MODE
729}ALIGN_4 uNvTables;
730
731//From halPhy.h
732typedef tPowerdBm tChannelPwrLimit;
733
734typedef PACKED_PRE struct PACKED_POST
735{
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800736 uint8 chanId;
Jeff Johnson295189b2012-06-20 16:38:30 -0700737 tChannelPwrLimit pwr;
738} ALIGN_4 tChannelListWithPower;
739
740//From HAL/inc/halNvTables.h
741typedef enum
742{
743 NV_FIELDS_IMAGE = 0, //contains all fields
744
745 NV_TABLE_RATE_POWER_SETTINGS = 2,
746 NV_TABLE_REGULATORY_DOMAINS = 3,
747 NV_TABLE_DEFAULT_COUNTRY = 4,
748 NV_TABLE_TPC_POWER_TABLE = 5,
749 NV_TABLE_TPC_PDADC_OFFSETS = 6,
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800750 NV_TABLE_HW_CAL_VALUES = 7,
Jeff Johnson295189b2012-06-20 16:38:30 -0700751 NV_TABLE_RSSI_CHANNEL_OFFSETS = 9,
752 NV_TABLE_CAL_MEMORY = 10, //cal memory structure from halPhyCalMemory.h preceded by status
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800753 NV_TABLE_FW_CONFIG = 11,
Jeff Johnson295189b2012-06-20 16:38:30 -0700754 NV_TABLE_ANTENNA_PATH_LOSS = 12,
755 NV_TABLE_PACKET_TYPE_POWER_LIMITS = 13,
756 NV_TABLE_OFDM_CMD_PWR_OFFSET = 14,
757 NV_TABLE_TX_BB_FILTER_MODE = 15,
758 NV_TABLE_VIRTUAL_RATE = 18,
759
760 NUM_NV_TABLE_IDS,
761 NV_ALL_TABLES = 0xFFF,
762 NV_BINARY_IMAGE = 0x1000,
763 NV_MAX_TABLE = 0x7FFFFFFF /* define as 4 bytes data */
764}eNvTable;
765
766typedef PACKED_PRE struct PACKED_POST
767{
768 tRateGroupPwr pwrOptimum[NUM_RF_SUBBANDS]; // NV_TABLE_RATE_POWER_SETTINGS
769 sRegulatoryDomains regDomains[NUM_REG_DOMAINS]; // NV_TABLE_REGULATORY_DOMAINS
770 sDefaultCountry defaultCountryTable; // NV_TABLE_DEFAULT_COUNTRY
771 tTpcPowerTable plutCharacterized[NUM_RF_CHANNELS]; // NV_TABLE_TPC_POWER_TABLE
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800772 int16 plutPdadcOffset[NUM_RF_CHANNELS]; // NV_TABLE_TPC_PDADC_OFFSETS
Jeff Johnson295189b2012-06-20 16:38:30 -0700773 tRateGroupPwrVR pwrOptimum_virtualRate[NUM_RF_SUBBANDS]; // NV_TABLE_VIRTUAL_RATE
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800774 sFwConfig fwConfig; // NV_TABLE_FW_CONFIG
Jeff Johnson295189b2012-06-20 16:38:30 -0700775 sRssiChannelOffsets rssiChanOffsets[2]; // NV_TABLE_RSSI_CHANNEL_OFFSETS
Gopichand Nakkala90bcf7a2013-01-04 11:45:31 -0800776 sHwCalValues hwCalValues; // NV_TABLE_HW_CAL_VALUES
777 int16 antennaPathLoss[NUM_RF_CHANNELS]; // NV_TABLE_ANTENNA_PATH_LOSS
778 int16 pktTypePwrLimits[NUM_802_11_MODES][NUM_RF_CHANNELS]; // NV_TABLE_PACKET_TYPE_POWER_LIMITS
Jeff Johnson295189b2012-06-20 16:38:30 -0700779 sOfdmCmdPwrOffset ofdmCmdPwrOffset; // NV_TABLE_OFDM_CMD_PWR_OFFSET
780 sTxBbFilterMode txbbFilterMode; // NV_TABLE_TX_BB_FILTER_MODE
781}ALIGN_4 sNvTables;
782
783typedef PACKED_PRE struct PACKED_POST
784{
785 sNvFields fields;
786 sNvTables tables;
787}ALIGN_4 sHalNv;
788
789extern const sHalNv nvDefaults;
790
791#endif
792