blob: ed163357c5e4d391d3aab415195016f0bd4033df [file] [log] [blame]
Leo Chang09a60182013-12-04 18:12:10 -08001/** ------------------------------------------------------------------------- *
2* Copyright (c) 2012-2013 Qualcomm Atheros, Inc.
3* All Rights Reserved.
4* Qualcomm Atheros Confidential and Proprietary.
5 ------------------------------------------------------------------------- *
6
7
8 \file wlan_nv2.h
9
10 \brief Types for NV implementation
11 Anything that needs to be publicly available should
12 be in this file
13
14 $Id$
15
16 Copyright (C) 2006 Airgo Networks, Incorporated
17
18
19 ========================================================================== */
20
21#if !defined( __WLAN_NV2_H )
22#define __WLAN_NV2_H
23
24#include "halLegacyPalTypes.h"
25#include "halCompiler.h"
26#include "wlan_nv.h"
27
28/* From here, NV2 No CH144 support reduced structure
29 * This structure will be used for NV2 backward compatibility */
30
31typedef enum
32{
33 //2.4GHz Band
34 RF_CHAN_1_V2 = 0,
35 RF_CHAN_2_V2 = 1,
36 RF_CHAN_3_V2 = 2,
37 RF_CHAN_4_V2 = 3,
38 RF_CHAN_5_V2 = 4,
39 RF_CHAN_6_V2 = 5,
40 RF_CHAN_7_V2 = 6,
41 RF_CHAN_8_V2 = 7,
42 RF_CHAN_9_V2 = 8,
43 RF_CHAN_10_V2 = 9,
44 RF_CHAN_11_V2 = 10,
45 RF_CHAN_12_V2 = 11,
46 RF_CHAN_13_V2 = 12,
47 RF_CHAN_14_V2 = 13,
48
49 //4.9GHz Band
50 RF_CHAN_240_V2 = 14,
51 RF_CHAN_244_V2 = 15,
52 RF_CHAN_248_V2 = 16,
53 RF_CHAN_252_V2 = 17,
54 RF_CHAN_208_V2 = 18,
55 RF_CHAN_212_V2 = 19,
56 RF_CHAN_216_V2 = 20,
57
58 //5GHz Low & Mid U-NII Band
59 RF_CHAN_36_V2 = 21,
60 RF_CHAN_40_V2 = 22,
61 RF_CHAN_44_V2 = 23,
62 RF_CHAN_48_V2 = 24,
63 RF_CHAN_52_V2 = 25,
64 RF_CHAN_56_V2 = 26,
65 RF_CHAN_60_V2 = 27,
66 RF_CHAN_64_V2 = 28,
67
68 //5GHz Mid Band - ETSI & FCC
69 RF_CHAN_100_V2 = 29,
70 RF_CHAN_104_V2 = 30,
71 RF_CHAN_108_V2 = 31,
72 RF_CHAN_112_V2 = 32,
73 RF_CHAN_116_V2 = 33,
74 RF_CHAN_120_V2 = 34,
75 RF_CHAN_124_V2 = 35,
76 RF_CHAN_128_V2 = 36,
77 RF_CHAN_132_V2 = 37,
78 RF_CHAN_136_V2 = 38,
79 RF_CHAN_140_V2 = 39,
80
81 //5GHz High U-NII Band
82 RF_CHAN_149_V2 = 40,
83 RF_CHAN_153_V2 = 41,
84 RF_CHAN_157_V2 = 42,
85 RF_CHAN_161_V2 = 43,
86 RF_CHAN_165_V2 = 44,
87
88 //CHANNEL BONDED CHANNELS
89 RF_CHAN_BOND_3_V2 = 45,
90 RF_CHAN_BOND_4_V2 = 46,
91 RF_CHAN_BOND_5_V2 = 47,
92 RF_CHAN_BOND_6_V2 = 48,
93 RF_CHAN_BOND_7_V2 = 49,
94 RF_CHAN_BOND_8_V2 = 50,
95 RF_CHAN_BOND_9_V2 = 51,
96 RF_CHAN_BOND_10_V2 = 52,
97 RF_CHAN_BOND_11_V2 = 53,
98 RF_CHAN_BOND_242_V2 = 54, //4.9GHz Band
99 RF_CHAN_BOND_246_V2 = 55,
100 RF_CHAN_BOND_250_V2 = 56,
101 RF_CHAN_BOND_210_V2 = 57,
102 RF_CHAN_BOND_214_V2 = 58,
103 RF_CHAN_BOND_38_V2 = 59, //5GHz Low & Mid U-NII Band
104 RF_CHAN_BOND_42_V2 = 60,
105 RF_CHAN_BOND_46_V2 = 61,
106 RF_CHAN_BOND_50_V2 = 62,
107 RF_CHAN_BOND_54_V2 = 63,
108 RF_CHAN_BOND_58_V2 = 64,
109 RF_CHAN_BOND_62_V2 = 65,
110 RF_CHAN_BOND_102_V2 = 66, //5GHz Mid Band - ETSI & FCC
111 RF_CHAN_BOND_106_V2 = 67,
112 RF_CHAN_BOND_110_V2 = 68,
113 RF_CHAN_BOND_114_V2 = 69,
114 RF_CHAN_BOND_118_V2 = 70,
115 RF_CHAN_BOND_122_V2 = 71,
116 RF_CHAN_BOND_126_V2 = 72,
117 RF_CHAN_BOND_130_V2 = 73,
118 RF_CHAN_BOND_134_V2 = 74,
119 RF_CHAN_BOND_138_V2 = 75,
120 RF_CHAN_BOND_151_V2 = 76, //5GHz High U-NII Band
121 RF_CHAN_BOND_155_V2 = 77,
122 RF_CHAN_BOND_159_V2 = 78,
123 RF_CHAN_BOND_163_V2 = 79,
124
125 NUM_RF_CHANNELS_V2,
126
127 MIN_2_4GHZ_CHANNEL_V2 = RF_CHAN_1_V2,
128 MAX_2_4GHZ_CHANNEL_V2 = RF_CHAN_14_V2,
129
130 MIN_5GHZ_CHANNEL_V2 = RF_CHAN_240_V2,
131 MAX_5GHZ_CHANNEL_V2 = RF_CHAN_165_V2,
132 NUM_5GHZ_CHANNELS_V2 = (MAX_5GHZ_CHANNEL_V2 - MIN_5GHZ_CHANNEL_V2 + 1),
133
134 MIN_20MHZ_RF_CHANNEL_V2 = RF_CHAN_1_V2,
135 MAX_20MHZ_RF_CHANNEL_V2 = RF_CHAN_165_V2,
136 NUM_20MHZ_RF_CHANNELS_V2 = (MAX_20MHZ_RF_CHANNEL_V2 - MIN_20MHZ_RF_CHANNEL_V2 + 1),
137
138 MIN_40MHZ_RF_CHANNEL_V2 = RF_CHAN_BOND_3_V2,
139 MAX_40MHZ_RF_CHANNEL_V2 = RF_CHAN_BOND_163_V2,
140 NUM_40MHZ_RF_CHANNELS_V2 = (MAX_40MHZ_RF_CHANNEL_V2 - MIN_40MHZ_RF_CHANNEL_V2 + 1),
141
142 MIN_CB_2_4GHZ_CHANNEL_V2 = RF_CHAN_BOND_3_V2,
143 MAX_CB_2_4GHZ_CHANNEL_V2 = RF_CHAN_BOND_11_V2,
144
145 MIN_CB_5GHZ_CHANNEL_V2 = RF_CHAN_BOND_242_V2,
146 MAX_CB_5GHZ_CHANNEL_V2 = RF_CHAN_BOND_163_V2,
147
148 NUM_TPC_2_4GHZ_CHANNELS_V2 = 14,
149 NUM_TPC_5GHZ_CHANNELS_V2 = NUM_5GHZ_CHANNELS_V2,
150
151 INVALID_RF_CHANNEL_V2 = 0xBAD,
152 RF_CHANNEL_INVALID_MAX_FIELD_V2 = 0x7FFFFFFF /* define as 4 bytes data */
153}eRfChannelsV2;
154
155typedef PACKED_PRE struct PACKED_POST
156{
157 sRegulatoryChannel channels[NUM_RF_CHANNELS_V2];
158 uAbsPwrPrecision antennaGain[NUM_RF_SUBBANDS];
159 uAbsPwrPrecision bRatePowerOffset[NUM_2_4GHZ_CHANNELS];
160 uAbsPwrPrecision gnRatePowerOffset[NUM_RF_CHANNELS_V2];
161}ALIGN_4 sRegulatoryDomainsV2;
162
163typedef PACKED_PRE struct PACKED_POST
164{
165 int16 bRssiOffset[NUM_RF_CHANNELS_V2];
166 int16 gnRssiOffset[NUM_RF_CHANNELS_V2];
167}ALIGN_4 sRssiChannelOffsetsV2;
168
169typedef PACKED_PRE union PACKED_POST
170{
171 tRateGroupPwr pwrOptimum[NUM_RF_SUBBANDS]; // NV_TABLE_RATE_POWER_SETTINGS
172 sRegulatoryDomainsV2 regDomains[NUM_REG_DOMAINS]; // NV_TABLE_REGULATORY_DOMAINS
173 sDefaultCountry defaultCountryTable; // NV_TABLE_DEFAULT_COUNTRY
174 tTpcPowerTable plutCharacterized[NUM_RF_CHANNELS_V2]; // NV_TABLE_TPC_POWER_TABLE
175 int16 plutPdadcOffset[NUM_RF_CHANNELS_V2]; // NV_TABLE_TPC_PDADC_OFFSETS
176 tRateGroupPwrVR pwrOptimum_virtualRate[NUM_RF_SUBBANDS]; // NV_TABLE_VIRTUAL_RATE
177 sFwConfig fwConfig; // NV_TABLE_FW_CONFIG
178 sRssiChannelOffsetsV2 rssiChanOffsets[2]; // NV_TABLE_RSSI_CHANNEL_OFFSETS
179 sHwCalValues hwCalValues; // NV_TABLE_HW_CAL_VALUES
180 int16 antennaPathLoss[NUM_RF_CHANNELS_V2]; // NV_TABLE_ANTENNA_PATH_LOSS
181 int16 pktTypePwrLimits[NUM_802_11_MODES][NUM_RF_CHANNELS_V2]; // NV_TABLE_PACKET_TYPE_POWER_LIMITS
182 sOfdmCmdPwrOffset ofdmCmdPwrOffset; // NV_TABLE_OFDM_CMD_PWR_OFFSET
183 sTxBbFilterMode txbbFilterMode; // NV_TABLE_TX_BB_FILTER_MODE
184}ALIGN_4 uNvTablesV2;
185
186typedef PACKED_PRE struct PACKED_POST
187{
188 tRateGroupPwr pwrOptimum[NUM_RF_SUBBANDS]; // NV_TABLE_RATE_POWER_SETTINGS
189 sRegulatoryDomainsV2 regDomains[NUM_REG_DOMAINS]; // NV_TABLE_REGULATORY_DOMAINS
190 sDefaultCountry defaultCountryTable; // NV_TABLE_DEFAULT_COUNTRY
191 tTpcPowerTable plutCharacterized[NUM_RF_CHANNELS_V2]; // NV_TABLE_TPC_POWER_TABLE
192 int16 plutPdadcOffset[NUM_RF_CHANNELS_V2]; // NV_TABLE_TPC_PDADC_OFFSETS
193 tRateGroupPwrVR pwrOptimum_virtualRate[NUM_RF_SUBBANDS]; // NV_TABLE_VIRTUAL_RATE
194 sFwConfig fwConfig; // NV_TABLE_FW_CONFIG
195 sRssiChannelOffsetsV2 rssiChanOffsets[2]; // NV_TABLE_RSSI_CHANNEL_OFFSETS
196 sHwCalValues hwCalValues; // NV_TABLE_HW_CAL_VALUES
197 int16 antennaPathLoss[NUM_RF_CHANNELS_V2]; // NV_TABLE_ANTENNA_PATH_LOSS
198 int16 pktTypePwrLimits[NUM_802_11_MODES][NUM_RF_CHANNELS_V2]; // NV_TABLE_PACKET_TYPE_POWER_LIMITS
199 sOfdmCmdPwrOffset ofdmCmdPwrOffset; // NV_TABLE_OFDM_CMD_PWR_OFFSET
200 sTxBbFilterMode txbbFilterMode; // NV_TABLE_TX_BB_FILTER_MODE
201}ALIGN_4 sNvTablesV2;
202
203typedef PACKED_PRE struct PACKED_POST
204{
205 sNvFields fields;
206 sNvTablesV2 tables;
207}ALIGN_4 sHalNvV2;
208
209extern const sHalNvV2 nvDefaultsV2;
210
211#endif
212