allow coexistance of N build and AC build.
[tomato.git] / release / src-rt-6.x / include / bcmwifi_rates.h
blob1d806b3934ee4ec33fd33618c9dd472fa32b743e
1 /*
2 * Indices for 802.11 a/b/g/n/ac 1-3 chain symmetric transmit rates
4 * Copyright (C) 2011, Broadcom Corporation. All Rights Reserved.
5 *
6 * Permission to use, copy, modify, and/or distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
13 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
15 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
16 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18 * $Id: bcmwifi_rates.h 252708 2011-04-12 06:45:56Z $
21 #ifndef _bcmwifi_rates_h_
22 #define _bcmwifi_rates_h_
24 #ifdef __cplusplus
25 extern "C" {
26 #endif /* __cplusplus */
29 #define WL_RATESET_SZ_DSSS 4
30 #define WL_RATESET_SZ_OFDM 8
31 #define WL_RATESET_SZ_HT_MCS 8
32 #define WL_RATESET_SZ_VHT_MCS 10
34 #define WL_TX_CHAINS_MAX 3
36 #define WL_RATE_DISABLED (-128) /* Power value corresponding to unsupported rate */
38 /* Transmit channel bandwidths */
39 typedef enum wl_tx_bw {
40 WL_TX_BW_20,
41 WL_TX_BW_40,
42 WL_TX_BW_80,
43 WL_TX_BW_20IN40,
44 WL_TX_BW_20IN80,
45 WL_TX_BW_40IN80,
46 WL_TX_BW_ALL
47 } wl_tx_bw_t;
51 * Transmit modes.
52 * Not all modes are listed here, only those required for disambiguation. e.g. SPEXP is not listed
54 typedef enum wl_tx_mode {
55 WL_TX_MODE_NONE,
56 WL_TX_MODE_STBC,
57 WL_TX_MODE_CDD,
58 WL_TX_MODE_SDM
59 } wl_tx_mode_t;
62 /* Number of transmit chains */
63 typedef enum wl_tx_chains {
64 WL_TX_CHAINS_1 = 1,
65 WL_TX_CHAINS_2,
66 WL_TX_CHAINS_3
67 } wl_tx_chains_t;
70 /* Number of transmit streams */
71 typedef enum wl_tx_nss {
72 WL_TX_NSS_1 = 1,
73 WL_TX_NSS_2,
74 WL_TX_NSS_3
75 } wl_tx_nss_t;
78 typedef enum clm_rates {
79 /************
80 * 1 chain *
81 ************
84 /* 1 Stream */
85 WL_RATE_1X1_DSSS_1 = 0,
86 WL_RATE_1X1_DSSS_2 = 1,
87 WL_RATE_1X1_DSSS_5_5 = 2,
88 WL_RATE_1X1_DSSS_11 = 3,
90 WL_RATE_1X1_OFDM_6 = 4,
91 WL_RATE_1X1_OFDM_9 = 5,
92 WL_RATE_1X1_OFDM_12 = 6,
93 WL_RATE_1X1_OFDM_18 = 7,
94 WL_RATE_1X1_OFDM_24 = 8,
95 WL_RATE_1X1_OFDM_36 = 9,
96 WL_RATE_1X1_OFDM_48 = 10,
97 WL_RATE_1X1_OFDM_54 = 11,
99 WL_RATE_1X1_MCS0 = 12,
100 WL_RATE_1X1_MCS1 = 13,
101 WL_RATE_1X1_MCS2 = 14,
102 WL_RATE_1X1_MCS3 = 15,
103 WL_RATE_1X1_MCS4 = 16,
104 WL_RATE_1X1_MCS5 = 17,
105 WL_RATE_1X1_MCS6 = 18,
106 WL_RATE_1X1_MCS7 = 19,
108 WL_RATE_1X1_VHT0SS1 = 12,
109 WL_RATE_1X1_VHT1SS1 = 13,
110 WL_RATE_1X1_VHT2SS1 = 14,
111 WL_RATE_1X1_VHT3SS1 = 15,
112 WL_RATE_1X1_VHT4SS1 = 16,
113 WL_RATE_1X1_VHT5SS1 = 17,
114 WL_RATE_1X1_VHT6SS1 = 18,
115 WL_RATE_1X1_VHT7SS1 = 19,
116 WL_RATE_1X1_VHT8SS1 = 20,
117 WL_RATE_1X1_VHT9SS1 = 21,
120 /************
121 * 2 chains *
122 ************
125 /* 1 Stream expanded + 1 */
126 WL_RATE_1X2_DSSS_1 = 22,
127 WL_RATE_1X2_DSSS_2 = 23,
128 WL_RATE_1X2_DSSS_5_5 = 24,
129 WL_RATE_1X2_DSSS_11 = 25,
131 WL_RATE_1X2_CDD_OFDM_6 = 26,
132 WL_RATE_1X2_CDD_OFDM_9 = 27,
133 WL_RATE_1X2_CDD_OFDM_12 = 28,
134 WL_RATE_1X2_CDD_OFDM_18 = 29,
135 WL_RATE_1X2_CDD_OFDM_24 = 30,
136 WL_RATE_1X2_CDD_OFDM_36 = 31,
137 WL_RATE_1X2_CDD_OFDM_48 = 32,
138 WL_RATE_1X2_CDD_OFDM_54 = 33,
140 WL_RATE_1X2_CDD_MCS0 = 34,
141 WL_RATE_1X2_CDD_MCS1 = 35,
142 WL_RATE_1X2_CDD_MCS2 = 36,
143 WL_RATE_1X2_CDD_MCS3 = 37,
144 WL_RATE_1X2_CDD_MCS4 = 38,
145 WL_RATE_1X2_CDD_MCS5 = 39,
146 WL_RATE_1X2_CDD_MCS6 = 40,
147 WL_RATE_1X2_CDD_MCS7 = 41,
149 WL_RATE_1X2_VHT0SS1 = 34,
150 WL_RATE_1X2_VHT1SS1 = 35,
151 WL_RATE_1X2_VHT2SS1 = 36,
152 WL_RATE_1X2_VHT3SS1 = 37,
153 WL_RATE_1X2_VHT4SS1 = 38,
154 WL_RATE_1X2_VHT5SS1 = 39,
155 WL_RATE_1X2_VHT6SS1 = 40,
156 WL_RATE_1X2_VHT7SS1 = 41,
157 WL_RATE_1X2_VHT8SS1 = 42,
158 WL_RATE_1X2_VHT9SS1 = 43,
160 /* 2 Streams */
161 WL_RATE_2X2_STBC_MCS0 = 44,
162 WL_RATE_2X2_STBC_MCS1 = 45,
163 WL_RATE_2X2_STBC_MCS2 = 46,
164 WL_RATE_2X2_STBC_MCS3 = 47,
165 WL_RATE_2X2_STBC_MCS4 = 48,
166 WL_RATE_2X2_STBC_MCS5 = 49,
167 WL_RATE_2X2_STBC_MCS6 = 50,
168 WL_RATE_2X2_STBC_MCS7 = 51,
170 WL_RATE_2X2_STBC_VHT0SS1 = 44,
171 WL_RATE_2X2_STBC_VHT1SS1 = 45,
172 WL_RATE_2X2_STBC_VHT2SS1 = 46,
173 WL_RATE_2X2_STBC_VHT3SS1 = 47,
174 WL_RATE_2X2_STBC_VHT4SS1 = 48,
175 WL_RATE_2X2_STBC_VHT5SS1 = 49,
176 WL_RATE_2X2_STBC_VHT6SS1 = 50,
177 WL_RATE_2X2_STBC_VHT7SS1 = 51,
178 WL_RATE_2X2_STBC_VHT8SS1 = 52,
179 WL_RATE_2X2_STBC_VHT9SS1 = 53,
181 WL_RATE_2X2_SDM_MCS8 = 54,
182 WL_RATE_2X2_SDM_MCS9 = 55,
183 WL_RATE_2X2_SDM_MCS10 = 56,
184 WL_RATE_2X2_SDM_MCS11 = 57,
185 WL_RATE_2X2_SDM_MCS12 = 58,
186 WL_RATE_2X2_SDM_MCS13 = 59,
187 WL_RATE_2X2_SDM_MCS14 = 60,
188 WL_RATE_2X2_SDM_MCS15 = 61,
190 WL_RATE_2X2_VHT0SS2 = 54,
191 WL_RATE_2X2_VHT1SS2 = 55,
192 WL_RATE_2X2_VHT2SS2 = 56,
193 WL_RATE_2X2_VHT3SS2 = 57,
194 WL_RATE_2X2_VHT4SS2 = 58,
195 WL_RATE_2X2_VHT5SS2 = 59,
196 WL_RATE_2X2_VHT6SS2 = 60,
197 WL_RATE_2X2_VHT7SS2 = 61,
198 WL_RATE_2X2_VHT8SS2 = 62,
199 WL_RATE_2X2_VHT9SS2 = 63,
202 /************
203 * 3 chains *
204 ************
207 /* 1 Stream expanded + 2 */
208 WL_RATE_1X3_DSSS_1 = 64,
209 WL_RATE_1X3_DSSS_2 = 65,
210 WL_RATE_1X3_DSSS_5_5 = 66,
211 WL_RATE_1X3_DSSS_11 = 67,
213 WL_RATE_1X3_CDD_OFDM_6 = 68,
214 WL_RATE_1X3_CDD_OFDM_9 = 69,
215 WL_RATE_1X3_CDD_OFDM_12 = 70,
216 WL_RATE_1X3_CDD_OFDM_18 = 71,
217 WL_RATE_1X3_CDD_OFDM_24 = 72,
218 WL_RATE_1X3_CDD_OFDM_36 = 73,
219 WL_RATE_1X3_CDD_OFDM_48 = 74,
220 WL_RATE_1X3_CDD_OFDM_54 = 75,
222 WL_RATE_1X3_CDD_MCS0 = 76,
223 WL_RATE_1X3_CDD_MCS1 = 77,
224 WL_RATE_1X3_CDD_MCS2 = 78,
225 WL_RATE_1X3_CDD_MCS3 = 79,
226 WL_RATE_1X3_CDD_MCS4 = 80,
227 WL_RATE_1X3_CDD_MCS5 = 81,
228 WL_RATE_1X3_CDD_MCS6 = 82,
229 WL_RATE_1X3_CDD_MCS7 = 83,
231 WL_RATE_1X3_VHT0SS1 = 76,
232 WL_RATE_1X3_VHT1SS1 = 77,
233 WL_RATE_1X3_VHT2SS1 = 78,
234 WL_RATE_1X3_VHT3SS1 = 79,
235 WL_RATE_1X3_VHT4SS1 = 80,
236 WL_RATE_1X3_VHT5SS1 = 81,
237 WL_RATE_1X3_VHT6SS1 = 82,
238 WL_RATE_1X3_VHT7SS1 = 83,
239 WL_RATE_1X3_VHT8SS1 = 84,
240 WL_RATE_1X3_VHT9SS1 = 85,
242 /* 2 Streams expanded + 1 */
243 WL_RATE_2X3_STBC_MCS0 = 86,
244 WL_RATE_2X3_STBC_MCS1 = 87,
245 WL_RATE_2X3_STBC_MCS2 = 88,
246 WL_RATE_2X3_STBC_MCS3 = 89,
247 WL_RATE_2X3_STBC_MCS4 = 90,
248 WL_RATE_2X3_STBC_MCS5 = 91,
249 WL_RATE_2X3_STBC_MCS6 = 92,
250 WL_RATE_2X3_STBC_MCS7 = 93,
252 WL_RATE_2X3_STBC_VHT0SS1 = 86,
253 WL_RATE_2X3_STBC_VHT1SS1 = 87,
254 WL_RATE_2X3_STBC_VHT2SS1 = 88,
255 WL_RATE_2X3_STBC_VHT3SS1 = 89,
256 WL_RATE_2X3_STBC_VHT4SS1 = 90,
257 WL_RATE_2X3_STBC_VHT5SS1 = 91,
258 WL_RATE_2X3_STBC_VHT6SS1 = 92,
259 WL_RATE_2X3_STBC_VHT7SS1 = 93,
260 WL_RATE_2X3_STBC_VHT8SS1 = 94,
261 WL_RATE_2X3_STBC_VHT9SS1 = 95,
263 WL_RATE_2X3_SDM_MCS8 = 96,
264 WL_RATE_2X3_SDM_MCS9 = 97,
265 WL_RATE_2X3_SDM_MCS10 = 98,
266 WL_RATE_2X3_SDM_MCS11 = 99,
267 WL_RATE_2X3_SDM_MCS12 = 100,
268 WL_RATE_2X3_SDM_MCS13 = 101,
269 WL_RATE_2X3_SDM_MCS14 = 102,
270 WL_RATE_2X3_SDM_MCS15 = 103,
272 WL_RATE_2X3_VHT0SS2 = 96,
273 WL_RATE_2X3_VHT1SS2 = 97,
274 WL_RATE_2X3_VHT2SS2 = 98,
275 WL_RATE_2X3_VHT3SS2 = 99,
276 WL_RATE_2X3_VHT4SS2 = 100,
277 WL_RATE_2X3_VHT5SS2 = 101,
278 WL_RATE_2X3_VHT6SS2 = 102,
279 WL_RATE_2X3_VHT7SS2 = 103,
280 WL_RATE_2X3_VHT8SS2 = 104,
281 WL_RATE_2X3_VHT9SS2 = 105,
283 /* 3 Streams */
284 WL_RATE_3X3_SDM_MCS16 = 106,
285 WL_RATE_3X3_SDM_MCS17 = 107,
286 WL_RATE_3X3_SDM_MCS18 = 108,
287 WL_RATE_3X3_SDM_MCS19 = 109,
288 WL_RATE_3X3_SDM_MCS20 = 110,
289 WL_RATE_3X3_SDM_MCS21 = 111,
290 WL_RATE_3X3_SDM_MCS22 = 112,
291 WL_RATE_3X3_SDM_MCS23 = 113,
293 WL_RATE_3X3_VHT0SS3 = 106,
294 WL_RATE_3X3_VHT1SS3 = 107,
295 WL_RATE_3X3_VHT2SS3 = 108,
296 WL_RATE_3X3_VHT3SS3 = 109,
297 WL_RATE_3X3_VHT4SS3 = 110,
298 WL_RATE_3X3_VHT5SS3 = 111,
299 WL_RATE_3X3_VHT6SS3 = 112,
300 WL_RATE_3X3_VHT7SS3 = 113,
301 WL_RATE_3X3_VHT8SS3 = 114,
302 WL_RATE_3X3_VHT9SS3 = 115,
304 /* Number of rate codes */
305 WL_NUMRATES = 116
306 } clm_rates_t;
308 #ifdef __cplusplus
310 #endif /* __cplusplus */
312 #endif /* _bcmwifi_rates_h_ */