/*
 * Indices for 802.11 a/b/g/n/ac 1-3 chain symmetric transmit rates
 *
 * Copyright (C) 1999-2013, Broadcom Corporation
 * 
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 *
 * $Id: bcmwifi_rates.h 5187 2012-06-29 06:17:50Z $
 */

#ifndef _bcmwifi_rates_h_
#define _bcmwifi_rates_h_

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */


#define WL_RATESET_SZ_DSSS		4
#define WL_RATESET_SZ_OFDM		8
#define WL_RATESET_SZ_HT_MCS	8
#define WL_RATESET_SZ_VHT_MCS	10

#define WL_TX_CHAINS_MAX	3

#define WL_RATE_DISABLED		(-128) /* Power value corresponding to unsupported rate */

/* Transmit channel bandwidths */
typedef enum wl_tx_bw {
	WL_TX_BW_20,
	WL_TX_BW_40,
	WL_TX_BW_80,
	WL_TX_BW_20IN40,
	WL_TX_BW_20IN80,
	WL_TX_BW_40IN80
} wl_tx_bw_t;


/*
 * Transmit modes.
 * Not all modes are listed here, only those required for disambiguation. e.g. SPEXP is not listed
 */
typedef enum wl_tx_mode {
	WL_TX_MODE_NONE,
	WL_TX_MODE_STBC,
	WL_TX_MODE_CDD,
	WL_TX_MODE_TXBF,
	WL_NUM_TX_MODES
} wl_tx_mode_t;


/* Number of transmit chains */
typedef enum wl_tx_chains {
	WL_TX_CHAINS_1 = 1,
	WL_TX_CHAINS_2,
	WL_TX_CHAINS_3
} wl_tx_chains_t;


/* Number of transmit streams */
typedef enum wl_tx_nss {
	WL_TX_NSS_1 = 1,
	WL_TX_NSS_2,
	WL_TX_NSS_3
} wl_tx_nss_t;


typedef enum clm_rates {
	/************
	* 1 chain  *
	************
	*/

	/* 1 Stream */
	WL_RATE_1X1_DSSS_1         = 0,
	WL_RATE_1X1_DSSS_2         = 1,
	WL_RATE_1X1_DSSS_5_5       = 2,
	WL_RATE_1X1_DSSS_11        = 3,

	WL_RATE_1X1_OFDM_6         = 4,
	WL_RATE_1X1_OFDM_9         = 5,
	WL_RATE_1X1_OFDM_12        = 6,
	WL_RATE_1X1_OFDM_18        = 7,
	WL_RATE_1X1_OFDM_24        = 8,
	WL_RATE_1X1_OFDM_36        = 9,
	WL_RATE_1X1_OFDM_48        = 10,
	WL_RATE_1X1_OFDM_54        = 11,

	WL_RATE_1X1_MCS0           = 12,
	WL_RATE_1X1_MCS1           = 13,
	WL_RATE_1X1_MCS2           = 14,
	WL_RATE_1X1_MCS3           = 15,
	WL_RATE_1X1_MCS4           = 16,
	WL_RATE_1X1_MCS5           = 17,
	WL_RATE_1X1_MCS6           = 18,
	WL_RATE_1X1_MCS7           = 19,

	WL_RATE_1X1_VHT0SS1        = 12,
	WL_RATE_1X1_VHT1SS1        = 13,
	WL_RATE_1X1_VHT2SS1        = 14,
	WL_RATE_1X1_VHT3SS1        = 15,
	WL_RATE_1X1_VHT4SS1        = 16,
	WL_RATE_1X1_VHT5SS1        = 17,
	WL_RATE_1X1_VHT6SS1        = 18,
	WL_RATE_1X1_VHT7SS1        = 19,
	WL_RATE_1X1_VHT8SS1        = 20,
	WL_RATE_1X1_VHT9SS1        = 21,


	/************
	* 2 chains *
	************
	*/

	/* 1 Stream expanded + 1 */
	WL_RATE_1X2_DSSS_1         = 22,
	WL_RATE_1X2_DSSS_2         = 23,
	WL_RATE_1X2_DSSS_5_5       = 24,
	WL_RATE_1X2_DSSS_11        = 25,

	WL_RATE_1X2_CDD_OFDM_6     = 26,
	WL_RATE_1X2_CDD_OFDM_9     = 27,
	WL_RATE_1X2_CDD_OFDM_12    = 28,
	WL_RATE_1X2_CDD_OFDM_18    = 29,
	WL_RATE_1X2_CDD_OFDM_24    = 30,
	WL_RATE_1X2_CDD_OFDM_36    = 31,
	WL_RATE_1X2_CDD_OFDM_48    = 32,
	WL_RATE_1X2_CDD_OFDM_54    = 33,

	WL_RATE_1X2_CDD_MCS0       = 34,
	WL_RATE_1X2_CDD_MCS1       = 35,
	WL_RATE_1X2_CDD_MCS2       = 36,
	WL_RATE_1X2_CDD_MCS3       = 37,
	WL_RATE_1X2_CDD_MCS4       = 38,
	WL_RATE_1X2_CDD_MCS5       = 39,
	WL_RATE_1X2_CDD_MCS6       = 40,
	WL_RATE_1X2_CDD_MCS7       = 41,

	WL_RATE_1X2_VHT0SS1        = 34,
	WL_RATE_1X2_VHT1SS1        = 35,
	WL_RATE_1X2_VHT2SS1        = 36,
	WL_RATE_1X2_VHT3SS1        = 37,
	WL_RATE_1X2_VHT4SS1        = 38,
	WL_RATE_1X2_VHT5SS1        = 39,
	WL_RATE_1X2_VHT6SS1        = 40,
	WL_RATE_1X2_VHT7SS1        = 41,
	WL_RATE_1X2_VHT8SS1        = 42,
	WL_RATE_1X2_VHT9SS1        = 43,

	/* 2 Streams */
	WL_RATE_2X2_STBC_MCS0      = 44,
	WL_RATE_2X2_STBC_MCS1      = 45,
	WL_RATE_2X2_STBC_MCS2      = 46,
	WL_RATE_2X2_STBC_MCS3      = 47,
	WL_RATE_2X2_STBC_MCS4      = 48,
	WL_RATE_2X2_STBC_MCS5      = 49,
	WL_RATE_2X2_STBC_MCS6      = 50,
	WL_RATE_2X2_STBC_MCS7      = 51,

	WL_RATE_2X2_STBC_VHT0SS1   = 44,
	WL_RATE_2X2_STBC_VHT1SS1   = 45,
	WL_RATE_2X2_STBC_VHT2SS1   = 46,
	WL_RATE_2X2_STBC_VHT3SS1   = 47,
	WL_RATE_2X2_STBC_VHT4SS1   = 48,
	WL_RATE_2X2_STBC_VHT5SS1   = 49,
	WL_RATE_2X2_STBC_VHT6SS1   = 50,
	WL_RATE_2X2_STBC_VHT7SS1   = 51,
	WL_RATE_2X2_STBC_VHT8SS1   = 52,
	WL_RATE_2X2_STBC_VHT9SS1   = 53,

	WL_RATE_2X2_SDM_MCS8       = 54,
	WL_RATE_2X2_SDM_MCS9       = 55,
	WL_RATE_2X2_SDM_MCS10      = 56,
	WL_RATE_2X2_SDM_MCS11      = 57,
	WL_RATE_2X2_SDM_MCS12      = 58,
	WL_RATE_2X2_SDM_MCS13      = 59,
	WL_RATE_2X2_SDM_MCS14      = 60,
	WL_RATE_2X2_SDM_MCS15      = 61,

	WL_RATE_2X2_VHT0SS2        = 54,
	WL_RATE_2X2_VHT1SS2        = 55,
	WL_RATE_2X2_VHT2SS2        = 56,
	WL_RATE_2X2_VHT3SS2        = 57,
	WL_RATE_2X2_VHT4SS2        = 58,
	WL_RATE_2X2_VHT5SS2        = 59,
	WL_RATE_2X2_VHT6SS2        = 60,
	WL_RATE_2X2_VHT7SS2        = 61,
	WL_RATE_2X2_VHT8SS2        = 62,
	WL_RATE_2X2_VHT9SS2        = 63,

	/************
	* 3 chains *
	************
	*/

	/* 1 Stream expanded + 2 */
	WL_RATE_1X3_DSSS_1         = 64,
	WL_RATE_1X3_DSSS_2         = 65,
	WL_RATE_1X3_DSSS_5_5       = 66,
	WL_RATE_1X3_DSSS_11        = 67,

	WL_RATE_1X3_CDD_OFDM_6     = 68,
	WL_RATE_1X3_CDD_OFDM_9     = 69,
	WL_RATE_1X3_CDD_OFDM_12    = 70,
	WL_RATE_1X3_CDD_OFDM_18    = 71,
	WL_RATE_1X3_CDD_OFDM_24    = 72,
	WL_RATE_1X3_CDD_OFDM_36    = 73,
	WL_RATE_1X3_CDD_OFDM_48    = 74,
	WL_RATE_1X3_CDD_OFDM_54    = 75,

	WL_RATE_1X3_CDD_MCS0       = 76,
	WL_RATE_1X3_CDD_MCS1       = 77,
	WL_RATE_1X3_CDD_MCS2       = 78,
	WL_RATE_1X3_CDD_MCS3       = 79,
	WL_RATE_1X3_CDD_MCS4       = 80,
	WL_RATE_1X3_CDD_MCS5       = 81,
	WL_RATE_1X3_CDD_MCS6       = 82,
	WL_RATE_1X3_CDD_MCS7       = 83,

	WL_RATE_1X3_VHT0SS1        = 76,
	WL_RATE_1X3_VHT1SS1        = 77,
	WL_RATE_1X3_VHT2SS1        = 78,
	WL_RATE_1X3_VHT3SS1        = 79,
	WL_RATE_1X3_VHT4SS1        = 80,
	WL_RATE_1X3_VHT5SS1        = 81,
	WL_RATE_1X3_VHT6SS1        = 82,
	WL_RATE_1X3_VHT7SS1        = 83,
	WL_RATE_1X3_VHT8SS1        = 84,
	WL_RATE_1X3_VHT9SS1        = 85,

	/* 2 Streams expanded + 1 */
	WL_RATE_2X3_STBC_MCS0      = 86,
	WL_RATE_2X3_STBC_MCS1      = 87,
	WL_RATE_2X3_STBC_MCS2      = 88,
	WL_RATE_2X3_STBC_MCS3      = 89,
	WL_RATE_2X3_STBC_MCS4      = 90,
	WL_RATE_2X3_STBC_MCS5      = 91,
	WL_RATE_2X3_STBC_MCS6      = 92,
	WL_RATE_2X3_STBC_MCS7      = 93,

	WL_RATE_2X3_STBC_VHT0SS1   = 86,
	WL_RATE_2X3_STBC_VHT1SS1   = 87,
	WL_RATE_2X3_STBC_VHT2SS1   = 88,
	WL_RATE_2X3_STBC_VHT3SS1   = 89,
	WL_RATE_2X3_STBC_VHT4SS1   = 90,
	WL_RATE_2X3_STBC_VHT5SS1   = 91,
	WL_RATE_2X3_STBC_VHT6SS1   = 92,
	WL_RATE_2X3_STBC_VHT7SS1   = 93,
	WL_RATE_2X3_STBC_VHT8SS1   = 94,
	WL_RATE_2X3_STBC_VHT9SS1   = 95,

	WL_RATE_2X3_SDM_MCS8       = 96,
	WL_RATE_2X3_SDM_MCS9       = 97,
	WL_RATE_2X3_SDM_MCS10      = 98,
	WL_RATE_2X3_SDM_MCS11      = 99,
	WL_RATE_2X3_SDM_MCS12      = 100,
	WL_RATE_2X3_SDM_MCS13      = 101,
	WL_RATE_2X3_SDM_MCS14      = 102,
	WL_RATE_2X3_SDM_MCS15      = 103,

	WL_RATE_2X3_VHT0SS2        = 96,
	WL_RATE_2X3_VHT1SS2        = 97,
	WL_RATE_2X3_VHT2SS2        = 98,
	WL_RATE_2X3_VHT3SS2        = 99,
	WL_RATE_2X3_VHT4SS2        = 100,
	WL_RATE_2X3_VHT5SS2        = 101,
	WL_RATE_2X3_VHT6SS2        = 102,
	WL_RATE_2X3_VHT7SS2        = 103,
	WL_RATE_2X3_VHT8SS2        = 104,
	WL_RATE_2X3_VHT9SS2        = 105,

	/* 3 Streams */
	WL_RATE_3X3_SDM_MCS16      = 106,
	WL_RATE_3X3_SDM_MCS17      = 107,
	WL_RATE_3X3_SDM_MCS18      = 108,
	WL_RATE_3X3_SDM_MCS19      = 109,
	WL_RATE_3X3_SDM_MCS20      = 110,
	WL_RATE_3X3_SDM_MCS21      = 111,
	WL_RATE_3X3_SDM_MCS22      = 112,
	WL_RATE_3X3_SDM_MCS23      = 113,

	WL_RATE_3X3_VHT0SS3        = 106,
	WL_RATE_3X3_VHT1SS3        = 107,
	WL_RATE_3X3_VHT2SS3        = 108,
	WL_RATE_3X3_VHT3SS3        = 109,
	WL_RATE_3X3_VHT4SS3        = 110,
	WL_RATE_3X3_VHT5SS3        = 111,
	WL_RATE_3X3_VHT6SS3        = 112,
	WL_RATE_3X3_VHT7SS3        = 113,
	WL_RATE_3X3_VHT8SS3        = 114,
	WL_RATE_3X3_VHT9SS3        = 115,


	/****************************
	 * TX Beamforming, 2 chains *
	 ****************************
	 */

	/* 1 Stream expanded + 1 */

	WL_RATE_1X2_TXBF_OFDM_6    = 116,
	WL_RATE_1X2_TXBF_OFDM_9    = 117,
	WL_RATE_1X2_TXBF_OFDM_12   = 118,
	WL_RATE_1X2_TXBF_OFDM_18   = 119,
	WL_RATE_1X2_TXBF_OFDM_24   = 120,
	WL_RATE_1X2_TXBF_OFDM_36   = 121,
	WL_RATE_1X2_TXBF_OFDM_48   = 122,
	WL_RATE_1X2_TXBF_OFDM_54   = 123,

	WL_RATE_1X2_TXBF_MCS0      = 124,
	WL_RATE_1X2_TXBF_MCS1      = 125,
	WL_RATE_1X2_TXBF_MCS2      = 126,
	WL_RATE_1X2_TXBF_MCS3      = 127,
	WL_RATE_1X2_TXBF_MCS4      = 128,
	WL_RATE_1X2_TXBF_MCS5      = 129,
	WL_RATE_1X2_TXBF_MCS6      = 130,
	WL_RATE_1X2_TXBF_MCS7      = 131,

	WL_RATE_1X2_TXBF_VHT0SS1   = 124,
	WL_RATE_1X2_TXBF_VHT1SS1   = 125,
	WL_RATE_1X2_TXBF_VHT2SS1   = 126,
	WL_RATE_1X2_TXBF_VHT3SS1   = 127,
	WL_RATE_1X2_TXBF_VHT4SS1   = 128,
	WL_RATE_1X2_TXBF_VHT5SS1   = 129,
	WL_RATE_1X2_TXBF_VHT6SS1   = 130,
	WL_RATE_1X2_TXBF_VHT7SS1   = 131,
	WL_RATE_1X2_TXBF_VHT8SS1   = 132,
	WL_RATE_1X2_TXBF_VHT9SS1   = 133,

	/* 2 Streams */

	WL_RATE_2X2_TXBF_SDM_MCS8  = 134,
	WL_RATE_2X2_TXBF_SDM_MCS9  = 135,
	WL_RATE_2X2_TXBF_SDM_MCS10 = 136,
	WL_RATE_2X2_TXBF_SDM_MCS11 = 137,
	WL_RATE_2X2_TXBF_SDM_MCS12 = 138,
	WL_RATE_2X2_TXBF_SDM_MCS13 = 139,
	WL_RATE_2X2_TXBF_SDM_MCS14 = 140,
	WL_RATE_2X2_TXBF_SDM_MCS15 = 141,

	WL_RATE_2X2_TXBF_VHT0SS2   = 134,
	WL_RATE_2X2_TXBF_VHT1SS2   = 135,
	WL_RATE_2X2_TXBF_VHT2SS2   = 136,
	WL_RATE_2X2_TXBF_VHT3SS2   = 137,
	WL_RATE_2X2_TXBF_VHT4SS2   = 138,
	WL_RATE_2X2_TXBF_VHT5SS2   = 139,
	WL_RATE_2X2_TXBF_VHT6SS2   = 140,
	WL_RATE_2X2_TXBF_VHT7SS2   = 141,


	/****************************
	 * TX Beamforming, 3 chains *
	 ****************************
	 */

	/* 1 Stream expanded + 2 */

	WL_RATE_1X3_TXBF_OFDM_6    = 142,
	WL_RATE_1X3_TXBF_OFDM_9    = 143,
	WL_RATE_1X3_TXBF_OFDM_12   = 144,
	WL_RATE_1X3_TXBF_OFDM_18   = 145,
	WL_RATE_1X3_TXBF_OFDM_24   = 146,
	WL_RATE_1X3_TXBF_OFDM_36   = 147,
	WL_RATE_1X3_TXBF_OFDM_48   = 148,
	WL_RATE_1X3_TXBF_OFDM_54   = 149,

	WL_RATE_1X3_TXBF_MCS0      = 150,
	WL_RATE_1X3_TXBF_MCS1      = 151,
	WL_RATE_1X3_TXBF_MCS2      = 152,
	WL_RATE_1X3_TXBF_MCS3      = 153,
	WL_RATE_1X3_TXBF_MCS4      = 154,
	WL_RATE_1X3_TXBF_MCS5      = 155,
	WL_RATE_1X3_TXBF_MCS6      = 156,
	WL_RATE_1X3_TXBF_MCS7      = 157,

	WL_RATE_1X3_TXBF_VHT0SS1   = 150,
	WL_RATE_1X3_TXBF_VHT1SS1   = 151,
	WL_RATE_1X3_TXBF_VHT2SS1   = 152,
	WL_RATE_1X3_TXBF_VHT3SS1   = 153,
	WL_RATE_1X3_TXBF_VHT4SS1   = 154,
	WL_RATE_1X3_TXBF_VHT5SS1   = 155,
	WL_RATE_1X3_TXBF_VHT6SS1   = 156,
	WL_RATE_1X3_TXBF_VHT7SS1   = 157,
	WL_RATE_1X3_TXBF_VHT8SS1   = 158,
	WL_RATE_1X3_TXBF_VHT9SS1   = 159,

	/* 2 Streams expanded + 1 */

	WL_RATE_2X3_TXBF_SDM_MCS8  = 160,
	WL_RATE_2X3_TXBF_SDM_MCS9  = 161,
	WL_RATE_2X3_TXBF_SDM_MCS10 = 162,
	WL_RATE_2X3_TXBF_SDM_MCS11 = 163,
	WL_RATE_2X3_TXBF_SDM_MCS12 = 164,
	WL_RATE_2X3_TXBF_SDM_MCS13 = 165,
	WL_RATE_2X3_TXBF_SDM_MCS14 = 166,
	WL_RATE_2X3_TXBF_SDM_MCS15 = 167,

	WL_RATE_2X3_TXBF_VHT0SS2   = 160,
	WL_RATE_2X3_TXBF_VHT1SS2   = 161,
	WL_RATE_2X3_TXBF_VHT2SS2   = 162,
	WL_RATE_2X3_TXBF_VHT3SS2   = 163,
	WL_RATE_2X3_TXBF_VHT4SS2   = 164,
	WL_RATE_2X3_TXBF_VHT5SS2   = 165,
	WL_RATE_2X3_TXBF_VHT6SS2   = 166,
	WL_RATE_2X3_TXBF_VHT7SS2   = 167,
	WL_RATE_2X3_TXBF_VHT8SS2   = 168,
	WL_RATE_2X3_TXBF_VHT9SS2   = 169,

	/* 3 Streams */

	WL_RATE_3X3_TXBF_SDM_MCS16 = 170,
	WL_RATE_3X3_TXBF_SDM_MCS17 = 171,
	WL_RATE_3X3_TXBF_SDM_MCS18 = 172,
	WL_RATE_3X3_TXBF_SDM_MCS19 = 173,
	WL_RATE_3X3_TXBF_SDM_MCS20 = 174,
	WL_RATE_3X3_TXBF_SDM_MCS21 = 175,
	WL_RATE_3X3_TXBF_SDM_MCS22 = 176,
	WL_RATE_3X3_TXBF_SDM_MCS23 = 177,

	WL_RATE_3X3_TXBF_VHT0SS3   = 170,
	WL_RATE_3X3_TXBF_VHT1SS3   = 171,
	WL_RATE_3X3_TXBF_VHT2SS3   = 172,
	WL_RATE_3X3_TXBF_VHT3SS3   = 173,
	WL_RATE_3X3_TXBF_VHT4SS3   = 174,
	WL_RATE_3X3_TXBF_VHT5SS3   = 175,
	WL_RATE_3X3_TXBF_VHT6SS3   = 176,
	WL_RATE_3X3_TXBF_VHT7SS3   = 177
} clm_rates_t;

/* Number of rate codes */
#define WL_NUMRATES 178

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* _bcmwifi_rates_h_ */
