Home | History | Annotate | Download | only in FirmwareApi
      1 /*
      2  * public_radio.h
      3  *
      4  * Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved.
      5  * All rights reserved.
      6  *
      7  * Redistribution and use in source and binary forms, with or without
      8  * modification, are permitted provided that the following conditions
      9  * are met:
     10  *
     11  *  * Redistributions of source code must retain the above copyright
     12  *    notice, this list of conditions and the following disclaimer.
     13  *  * Redistributions in binary form must reproduce the above copyright
     14  *    notice, this list of conditions and the following disclaimer in
     15  *    the documentation and/or other materials provided with the
     16  *    distribution.
     17  *  * Neither the name Texas Instruments nor the names of its
     18  *    contributors may be used to endorse or promote products derived
     19  *    from this software without specific prior written permission.
     20  *
     21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     24  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     25  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     26  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     27  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     28  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     29  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     30  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     31  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     32  */
     33 
     34 /**********************************************************************************************************************
     35   FILENAME:       public_radio.h
     36 
     37   DESCRIPTION:    Contains information element defines/structures used by the TNETxxxx and host and Radio Module.
     38                   This is a PUBLIC header, which customers will use.
     39 ***********************************************************************************************************************/
     40 /*
     41 =======================================================================================================================
     42                       R E V I S I O N    H I S T O R Y
     43 
     44   04/29/05  BRK  1. retrieved from ClearCase and added this rev. history
     45                  2. added two new entries to RadioParamType_e  enum
     46                  3. increased MAX_RADIO_PARAM_POWER_TABLE (from 20 to 56)
     47                     - this is sort of a kludge, struct RadioParam_t  should have used an
     48                       array pointer instead of an actual data block
     49   06/10/05  BRK  changed MAX_RADIO_PARAM_POWER_TABLE for 1251 support (sort of a KLUDGE)
     50   07/15/05  BRK  added RADIO_PABIAS_TABLE entry to RadioParamType_e  enum
     51   04/12/06  MH   Added new run-time calibration state: RFPLL_CALIBRATION_NEEDED
     52 
     53   Note: This code should only be edited with TAB stops set at 4
     54 =======================================================================================================================
     55  */
     56 #ifndef PUBLIC_RADIO
     57 #define PUBLIC_RADIO
     58 
     59 #include "public_types.h"
     60 #define MAC_ADDR_SIZE 6
     61 /* typedef uint8 TMacAddr[MAC_ADDR_SIZE]; */
     62 /*defined in tiDefs.h*/
     63 /************************************************************************/
     64 /*																		*/
     65 /*							Definitions section                         */
     66 /*																		*/
     67 /************************************************************************/
     68 /* radio parameter to set */
     69 #ifdef TNETW1251
     70 #define MAX_RADIO_PARAM_POWER_TABLE  			(4*48)		/* cPowLmtTbl[] max size for ABG radios */
     71 #else
     72 #define MAX_RADIO_PARAM_POWER_TABLE  			(56)     	/* cPowLmtTbl[] max size for BG radios*/
     73 #endif
     74 #define MAX_RADIO_PARAM_LEN          			(MAX_RADIO_PARAM_POWER_TABLE)
     75 
     76 #define RADIO_PARAM_POWER_TABLE_ENABLE        	(0x01)  	/* mask for RADIO_PARAM_POWER_ENABLES usage*/
     77 #define RADIO_PARAM_POWER_LIMIT_TABLE_ENABLE  	(0x02)  	/* mask for RADIO_PARAM_POWER_ENABLES usage*/
     78 #define RADIO_PARAM_POWER_ADJ_TABLE_ENABLE    	(0x04)  	/* mask for RADIO_PARAM_POWER_ENABLES usage*/
     79 
     80 #define NUM_OF_POWER_LEVEL      				(4)
     81 
     82 
     83 #define TX_TEMPLATE_MAX_BUF_LEN					(512)
     84 
     85 #define RX_PLT_LNA_STEPS_BUF_LEN				(4)
     86 #define RX_PLT_TA_STEPS_BUF_LEN					(4)
     87 
     88 #define RX_STAT_PACKETS_PER_MESSAGE           	(20)
     89 
     90 #define MULTIPLE_PACKET_SIZE		1024
     91 #define MAX_TX_PACKET_SIZE_11_B		(2 * MULTIPLE_PACKET_SIZE)
     92 #define MAX_TX_PACKET_SIZE_11_G		(4 * MULTIPLE_PACKET_SIZE)
     93 #define MAX_TX_PACKET_SIZE_11_N		(8 * MULTIPLE_PACKET_SIZE) /* must be PDU */
     94 
     95 /* Radio Band */
     96 typedef enum
     97 {
     98 	eELEVEN_A_B,
     99 	eELEVEN_A_G,
    100 	eELEVEN_N,
    101 
    102 	MAX_MODULATION
    103 }Modulation;
    104 
    105 /************************************************************************/
    106 /*																		*/
    107 /*							Enumerations section                        */
    108 /*																		*/
    109 /************************************************************************/
    110 
    111 /* Radio band types. */
    112 typedef enum RADIO_BAND_TYPE_ENMT
    113 {
    114 	FIRST_BAND_TYPE_E,
    115 /*______________________________________*/
    116 
    117 	_2_4_G_BAND_TYPE_E = FIRST_BAND_TYPE_E,
    118 	_5_G_BAND_TYPE_E,
    119 /*_______________________________________________*/
    120     UNUSED_BAND_TYPE_E,
    121 	NUMBER_OF_BANDS_E = UNUSED_BAND_TYPE_E,
    122 	LAST_BAND_TYPE_E = (NUMBER_OF_BANDS_E - 1)
    123 
    124 }RADIO_BAND_TYPE_ENM;
    125 
    126 
    127 #define RADIO_BAND_2_4GHZ_BASE_FREQUENCY					2407
    128 #define RADIO_BAND_JAPAN_4_9_GHZ_BASE_FREQUENCY				5000
    129 #define RADIO_BAND_5GHZ_BASE_FREQUENCY						5000
    130 
    131 #define RADIO_BAND_2_4GHZ_MULTIPLE_BASE_FREQUENCY			5
    132 #define RADIO_BAND_JAPAN_4_9_GHZ_MULTIPLE_BASE_FREQUENCY	(-5)
    133 #define RADIO_BAND_5GHZ_MULTIPLE_BASE_FREQUENCY				5
    134 
    135 #define GIGA_HZ_TO_MEGA_HZ									1000
    136 
    137 
    138 
    139 /* Radio sub-band types. */
    140 typedef enum RADIO_SUB_BAND_TYPE_ENMT
    141 {
    142 	FIRST_SUB_BAND_TYPE_E,
    143 /*______________________________________*/
    144 
    145 	_2_4_G_SUB_BAND_TYPE_E = FIRST_SUB_BAND_TYPE_E, /* band b/g */
    146 	FIRST_SUB_BANDS_IN_5G_BAND_E,
    147 	LOW_JAPAN_4_9_G_SUB_BAND_TYPE_E = FIRST_SUB_BANDS_IN_5G_BAND_E,	/* band 4.9Ghz (Japan) low sub-band (J1-J4) */
    148 	MID_JAPAN_4_9_G_SUB_BAND_TYPE_E,                /* band 4.9Ghz (Japan) mid sub-band(J8,J12,J16) */
    149 	HIGH_JAPAN_4_9_G_SUB_BAND_TYPE_E,               /* band 4.9Ghz (Japan) high sub-band(J34,36,J38,40, J42, 44, J46,48) */
    150 	_5_G_FIRST_SUB_BAND_TYPE_E,                     /* band 5GHz 1st sub-band(52->64 in steps of 4) */
    151 	_5_G_SECOND_SUB_BAND_TYPE_E,                    /* band 5GHz 2nd sub-band(100->116 in steps of 4) */
    152 	_5_G_THIRD_SUB_BAND_TYPE_E,                     /* band 5GHz 3rd sub-band(120->140 in steps of 4) */
    153     _5_G_FOURTH_SUB_BAND_TYPE_E,                    /* band 5GHz 4th sub-band(149->165 in steps of 4) */
    154 	LAST_SUB_BANDS_IN_5G_BAND_E = _5_G_FOURTH_SUB_BAND_TYPE_E,
    155 /*_______________________________________________*/
    156     UNUSED_SUB_BAND_TYPE_E,
    157 	NUMBER_OF_SUB_BANDS_E = UNUSED_SUB_BAND_TYPE_E,
    158 	LAST_SUB_BAND_TYPE_E = (NUMBER_OF_SUB_BANDS_E - 1)
    159 
    160 }RADIO_SUB_BAND_TYPE_ENM;
    161 
    162 #define NUMBER_OF_SUB_BANDS_IN_5G_BAND_E	(LAST_SUB_BANDS_IN_5G_BAND_E - FIRST_SUB_BANDS_IN_5G_BAND_E + 1)
    163 
    164 typedef struct
    165 {
    166 	uint8					uDbm[NUMBER_OF_SUB_BANDS_E][NUM_OF_POWER_LEVEL];
    167 } TpowerLevelTable_t;
    168 
    169 /* Channel number */
    170 typedef enum RADIO_CHANNEL_NUMBER_ENMT
    171 {
    172 	/*---------------------------------*/
    173 	/* _2_4_G_SUB_BAND_TYPE_E          */
    174 	/*---------------------------------*/
    175 
    176 	/* index 0 */ RADIO_CHANNEL_INDEX_0_NUMBER_1_E = 1,
    177 	/* index 1 */ RADIO_CHANNEL_INDEX_1_NUMBER_2_E = 2,
    178 	/* index 2 */ RADIO_CHANNEL_INDEX_2_NUMBER_3_E = 3,
    179 	/* index 3 */ RADIO_CHANNEL_INDEX_3_NUMBER_4_E = 4,
    180 	/* index 4 */ RADIO_CHANNEL_INDEX_4_NUMBER_5_E = 5,
    181 	/* index 5 */ RADIO_CHANNEL_INDEX_5_NUMBER_6_E = 6,
    182 	/* index 6 */ RADIO_CHANNEL_INDEX_6_NUMBER_7_E = 7,
    183 	/* index 7 */ RADIO_CHANNEL_INDEX_7_NUMBER_8_E = 8,
    184 	/* index 8 */ RADIO_CHANNEL_INDEX_8_NUMBER_9_E = 9,
    185 	/* index 9 */ RADIO_CHANNEL_INDEX_9_NUMBER_10_E = 10,
    186 	/* index 10 */ RADIO_CHANNEL_INDEX_10_NUMBER_11_E = 11,
    187 	/* index 11 */ RADIO_CHANNEL_INDEX_11_NUMBER_12_E = 12,
    188 	/* index 12 */ RADIO_CHANNEL_INDEX_12_NUMBER_13_E = 13,
    189 	/* index 13 */ RADIO_CHANNEL_INDEX_13_NUMBER_14_E = 14,
    190 
    191 	/*---------------------------------*/
    192 	/* LOW_JAPAN_4_9_G_SUB_BAND_TYPE_E */
    193 	/*---------------------------------*/
    194 	/* index 14 */ RADIO_CHANNEL_INDEX_14_NUMBER_J1_E = 16,
    195 	/* index 15 */ RADIO_CHANNEL_INDEX_15_NUMBER_J2_E = 12,
    196 	/* index 16 */ RADIO_CHANNEL_INDEX_16_NUMBER_J3_E = 8,
    197 	/* index 17 */ RADIO_CHANNEL_INDEX_17_NUMBER_J4_E = 4,
    198 
    199 	/*---------------------------------*/
    200 	/* MID_JAPAN_4_9_G_SUB_BAND_TYPE_E */
    201 	/*---------------------------------*/
    202 	/* index 18 */ RADIO_CHANNEL_INDEX_18_NUMBER_J8_E = 8,
    203 	/* index 19 */ RADIO_CHANNEL_INDEX_19_NUMBER_J12_E = 12,
    204 	/* index 20 */ RADIO_CHANNEL_INDEX_20_NUMBER_J16_E = 16,
    205 
    206 	/*----------------------------------*/
    207 	/* HIGH_JAPAN_4_9_G_SUB_BAND_TYPE_E */
    208 	/*----------------------------------*/
    209 	/* index 21 */ RADIO_CHANNEL_INDEX_21_NUMBER_J34_E = 34,
    210 	/* index 22 */ RADIO_CHANNEL_INDEX_22_NUMBER_36_E = 36,
    211 	/* index 23 */ RADIO_CHANNEL_INDEX_23_NUMBER_J38_E = 38,
    212 	/* index 24 */ RADIO_CHANNEL_INDEX_24_NUMBER_40_E = 40,
    213 	/* index 25 */ RADIO_CHANNEL_INDEX_25_NUMBER_J42_E = 42,
    214 	/* index 26 */ RADIO_CHANNEL_INDEX_26_NUMBER_44_E = 44,
    215 	/* index 27 */ RADIO_CHANNEL_INDEX_27_NUMBER_J46_E = 46,
    216 	/* index 28 */ RADIO_CHANNEL_INDEX_28_NUMBER_48_E = 48,
    217 
    218 	/*---------------------------------*/
    219 	/* _5_G_FIRST_SUB_BAND_TYPE_E      */
    220 	/*---------------------------------*/
    221 	/* index 29 */ RADIO_CHANNEL_INDEX_29_NUMBER_52_E = 52,
    222 	/* index 30 */ RADIO_CHANNEL_INDEX_30_NUMBER_56_E = 56,
    223 	/* index 31 */ RADIO_CHANNEL_INDEX_31_ENUMBER_60_E = 60,
    224 	/* index 32 */ RADIO_CHANNEL_INDEX_32_ENUMBER_64_E = 64,
    225 
    226 	/*---------------------------------*/
    227 	/* _5_G_SECOND_SUB_BAND_TYPE_E     */
    228 	/*---------------------------------*/
    229 	/* index 33 */ RADIO_CHANNEL_INDEX_33_NUMBER_100_E = 100,
    230 	/* index 34 */ RADIO_CHANNEL_INDEX_34_NUMBER_104_E = 104,
    231 	/* index 35 */ RADIO_CHANNEL_INDEX_35_NUMBER_108_E = 108,
    232 	/* index 36 */ RADIO_CHANNEL_INDEX_36_NUMBER_112_E = 112,
    233 	/* index 37 */ RADIO_CHANNEL_INDEX_37_NUMBER_116_E = 116,
    234 
    235 	/*---------------------------------*/
    236 	/* _5_G_THIRD_SUB_BAND_TYPE_E      */
    237 	/*---------------------------------*/
    238 	/* index 38 */ RADIO_CHANNEL_INDEX_38_NUMBER_120_E = 120,
    239 	/* index 39 */ RADIO_CHANNEL_INDEX_39_NUMBER_124_E = 124,
    240 	/* index 40 */ RADIO_CHANNEL_INDEX_40_NUMBER_128_E = 128,
    241 	/* index 41 */ RADIO_CHANNEL_INDEX_41_NUMBER_132_E = 132,
    242 	/* index 42 */ RADIO_CHANNEL_INDEX_42_NUMBER_136_E = 136,
    243 	/* index 43 */ RADIO_CHANNEL_INDEX_43_NUMBER_140_E = 140,
    244 
    245 
    246 	/*---------------------------------*/
    247 	/* _5_G_FOURTH_SUB_BAND_TYPE_E     */
    248 	/*---------------------------------*/
    249 	/* index 44 */ RADIO_CHANNEL_INDEX_44_NUMBER_149_E = 149,
    250 	/* index 45 */ RADIO_CHANNEL_INDEX_45_NUMBER_153_E = 153,
    251 	/* index 46 */ RADIO_CHANNEL_INDEX_46_NUMBER_157_E = 157,
    252 	/* index 47 */ RADIO_CHANNEL_INDEX_47_NUMBER_161_E = 161,
    253 	/* index 48 */ RADIO_CHANNEL_INDEX_48_NUMBER_165_E = 165
    254 
    255 }RADIO_CHANNEL_NUMBER_ENM;
    256 
    257 /* Radio channels */
    258 typedef enum RADIO_CHANNEL_INDEX_ENMT
    259 {
    260 	FIRST_RADIO_CHANNEL_INDEX_E,
    261 /*______________________________________*/
    262 
    263 	/*---------------------------------*/
    264 	/* _2_4_G_SUB_BAND_TYPE_E          */
    265 	/*---------------------------------*/
    266 	FIRST_2_4_G_BAND_RADIO_CHANNEL_INDEX_E = FIRST_RADIO_CHANNEL_INDEX_E,					/* 0 */
    267 	FIRST_2_4_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = FIRST_2_4_G_BAND_RADIO_CHANNEL_INDEX_E,	/* 0 */
    268 
    269 	/* Channels 0-13 indexes in the FW are 1-14 channels number in the RS */
    270 	RADIO_CHANNEL_INDEX_0_E = FIRST_2_4_G_SUB_BAND_RADIO_CHANNEL_INDEX_E,/* 0 */
    271 	RADIO_CHANNEL_INDEX_1_E,	/* 1 */
    272 	RADIO_CHANNEL_INDEX_2_E,	/* 2 */
    273 	RADIO_CHANNEL_INDEX_3_E,	/* 3 */
    274 	RADIO_CHANNEL_INDEX_4_E,	/* 4 */
    275 	RADIO_CHANNEL_INDEX_5_E,	/* 5 */
    276 	RADIO_CHANNEL_INDEX_6_E,	/* 6 */
    277 	RADIO_CHANNEL_INDEX_7_E,	/* 7 */
    278 	RADIO_CHANNEL_INDEX_8_E,	/* 8 */
    279 	RADIO_CHANNEL_INDEX_9_E,	/* 9 */
    280 	RADIO_CHANNEL_INDEX_10_E,	/* 10 */
    281 	RADIO_CHANNEL_INDEX_11_E,	/* 11 */
    282 	RADIO_CHANNEL_INDEX_12_E,	/* 12 */
    283 	RADIO_CHANNEL_INDEX_13_E,	/* 13 */
    284 	LAST_2_4_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_13_E,				/* 13 */
    285     LAST_2_4_G_BAND_RADIO_CHANNEL_INDEX_E = LAST_2_4_G_SUB_BAND_RADIO_CHANNEL_INDEX_E,	/* 13 */
    286 	NUMBER_OF_2_4_G_CHANNEL_INDICES_E = LAST_2_4_G_BAND_RADIO_CHANNEL_INDEX_E,			/* 13 */
    287 
    288 	/*---------------------------------*/
    289 	/* LOW_JAPAN_4_9_G_SUB_BAND_TYPE_E */
    290 	/*---------------------------------*/
    291 	FIRST_5_G_BAND_RADIO_CHANNEL_INDEX_E,	/* 14 */
    292 	FIRST_LOW_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = FIRST_5_G_BAND_RADIO_CHANNEL_INDEX_E,	/* 14 */
    293 
    294 	/* Channels 14-17 indexes in the FW are J1-J4 channels number in the RS */
    295 	RADIO_CHANNEL_INDEX_14_E = FIRST_LOW_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E,				/* 14 */
    296 	RADIO_CHANNEL_INDEX_15_E,	/* 15 */
    297 	RADIO_CHANNEL_INDEX_16_E,	/* 16 */
    298 	RADIO_CHANNEL_INDEX_17_E,	/* 17 */
    299     LAST_LOW_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_17_E,	/* 17 */
    300 
    301 	/*---------------------------------*/
    302 	/* MID_JAPAN_4_9_G_SUB_BAND_TYPE_E */
    303 	/*---------------------------------*/
    304 	FIRST_MID_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E,	/* 18 */
    305 
    306 	/* Channel 18 index in the FW is channel number J8 in the RS */
    307     RADIO_CHANNEL_INDEX_18_E = FIRST_MID_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E,	/* 18 */
    308 
    309 	/* Channel 19 index in the FW is channel number J12 in the RS */
    310 	RADIO_CHANNEL_INDEX_19_E,	/* 19 */
    311 
    312 	/* Channel 20 index in the FW is channel number J16 in the RS */
    313 	RADIO_CHANNEL_INDEX_20_E,	/* 20 */
    314     LAST_MID_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_20_E,		/* 20 */
    315 
    316 	/*----------------------------------*/
    317 	/* HIGH_JAPAN_4_9_G_SUB_BAND_TYPE_E */
    318 	/*----------------------------------*/
    319 	FIRST_HIGH_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E,	/* 21 */
    320 
    321 	/* Channel 21 index in the FW is channel number J34 in the RS */
    322     RADIO_CHANNEL_INDEX_21_E = FIRST_HIGH_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 21 */
    323 
    324 	/* Channel 22 index in the FW is channel number 36 in the RS */
    325 	RADIO_CHANNEL_INDEX_22_E,	/* 22 */
    326 
    327 	/* Channel 23 index in the FW is channel number J38 in the RS */
    328 	RADIO_CHANNEL_INDEX_23_E,	/* 23 */
    329 
    330 	/* Channel 24 index in the FW is channel number 40 in the RS */
    331 	RADIO_CHANNEL_INDEX_24_E,	/* 24 */
    332 
    333 	/* Channel 25 index in the FW is channel number J42 in the RS */
    334 	RADIO_CHANNEL_INDEX_25_E,	/* 25 */
    335 
    336 	/* Channel 26 index in the FW is channel number 44 in the RS */
    337 	RADIO_CHANNEL_INDEX_26_E,	/* 26 */
    338 
    339 	/* Channel 27 index in the FW is channel number J46 in the RS */
    340 	RADIO_CHANNEL_INDEX_27_E,	/* 27 */
    341 
    342 	/* Channel 28 index in the FW is channel number 48 in the RS */
    343 	RADIO_CHANNEL_INDEX_28_E,	/* 28 */
    344     LAST_HIGH_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_28_E, /* 28 */
    345     LAST_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = LAST_HIGH_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E,	/* 28 */
    346 	/*---------------------------------*/
    347 	/* _5_G_FIRST_SUB_BAND_TYPE_E      */
    348 	/*---------------------------------*/
    349 	FIRST_5_G_FIRST_SUB_BAND_RADIO_CHANNEL_INDEX_E,	/* 29 */
    350 
    351 	/* Channel 29 index in the FW is channel number 52 in the RS */
    352 	RADIO_CHANNEL_INDEX_29_E = FIRST_5_G_FIRST_SUB_BAND_RADIO_CHANNEL_INDEX_E,	/* 29 */
    353 
    354 	/* Channel 30 index in the FW is channel number 56 in the RS */
    355 	RADIO_CHANNEL_INDEX_30_E,	/* 30 */
    356 
    357 	/* Channel 31 index in the FW is channel number 60 in the RS */
    358 	RADIO_CHANNEL_INDEX_31_E,	/* 31 */
    359 
    360 	/* Channel 32 index in the FW is channel number 64 in the RS */
    361 	RADIO_CHANNEL_INDEX_32_E,	/* 32 */
    362 	LAST_5_G_FIRST_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_32_E,	/* 32 */
    363 
    364 	/*---------------------------------*/
    365 	/* _5_G_SECOND_SUB_BAND_TYPE_E     */
    366 	/*---------------------------------*/
    367 	FIRST_5_G_SECOND_SUB_BAND_RADIO_CHANNEL_INDEX_E,	/* 33 */
    368 
    369 	/* Channel 33 index in the FW is channel number 100 in the RS */
    370 	RADIO_CHANNEL_INDEX_33_E = FIRST_5_G_SECOND_SUB_BAND_RADIO_CHANNEL_INDEX_E,	/* 33 */
    371 
    372 	/* Channel 34 index in the FW is channel number 104 in the RS */
    373 	RADIO_CHANNEL_INDEX_34_E,	/* 34 */
    374 
    375 	/* Channel 35 index in the FW is channel number 108 in the RS */
    376 	RADIO_CHANNEL_INDEX_35_E,	/* 35 */
    377 
    378 	/* Channel 36 index in the FW is channel number 112 in the RS */
    379 	RADIO_CHANNEL_INDEX_36_E,	/* 36 */
    380 
    381 	/* Channel 37 index in the FW is channel number 116 in the RS */
    382 	RADIO_CHANNEL_INDEX_37_E,	/* 37 */
    383 	LAST_5_G_SECOND_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_37_E,	/* 37 */
    384 
    385 	/*---------------------------------*/
    386 	/* _5_G_THIRD_SUB_BAND_TYPE_E      */
    387 	/*---------------------------------*/
    388 	FIRST_5_G_THIRD_SUB_BAND_RADIO_CHANNEL_INDEX_E,	/* 38 */
    389 
    390 	/* Channel 38 index in the FW is channel number 120 in the RS */
    391 	RADIO_CHANNEL_INDEX_38_E = FIRST_5_G_THIRD_SUB_BAND_RADIO_CHANNEL_INDEX_E,	/* 38 */
    392 
    393 	/* Channel 39 index in the FW is channel number 124 in the RS */
    394 	RADIO_CHANNEL_INDEX_39_E,	/* 39 */
    395 
    396 	/* Channel 40 index in the FW in the FW is channel number 128 in the RS */
    397 	RADIO_CHANNEL_INDEX_40_E,	/* 40 */
    398 
    399 	/* Channel 41 index in the FW is channel number 132 in the RS */
    400 	RADIO_CHANNEL_INDEX_41_E,	/* 41 */
    401 
    402 	/* Channel 42 index in the FW is channel number 136 in the RS */
    403 	RADIO_CHANNEL_INDEX_42_E,	/* 42 */
    404 
    405 	/* Channel 43 index in the FW is channel number 140 in the RS */
    406 	RADIO_CHANNEL_INDEX_43_E,	/* 43 */
    407 	LAST_5_G_THIRD_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_43_E,	/* 43 */
    408 
    409 	/*---------------------------------*/
    410 	/* _5_G_FOURTH_SUB_BAND_TYPE_E     */
    411 	/*---------------------------------*/
    412 	FIRST_5_G_FOURTH_SUB_BAND_RADIO_CHANNEL_INDEX_E,	/* 44 */
    413 
    414 	/* Channel 44 index in the FW is channel number 149 in the RS */
    415     RADIO_CHANNEL_INDEX_44_E = FIRST_5_G_FOURTH_SUB_BAND_RADIO_CHANNEL_INDEX_E,	/* 44 */
    416 
    417 	/* Channel 45 index in the FW is channel number 153 in the RS */
    418 	RADIO_CHANNEL_INDEX_45_E,	/* 45 */
    419 
    420 	/* Channel 46 index in the FW is channel number 157 in the RS */
    421 	RADIO_CHANNEL_INDEX_46_E,	/* 46 */
    422 
    423 	/* Channel 47 index in the FW is channel number 161 in the RS */
    424 	RADIO_CHANNEL_INDEX_47_E,	/* 47 */
    425 
    426 	/* Channel 48 index in the FW is channel number 165 in the RS */
    427 	RADIO_CHANNEL_INDEX_48_E,	/* 48 */
    428 	LAST_5_G_FOURTH_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_48_E,	/* 48 */
    429 	LAST_5_G_BAND_RADIO_CHANNEL_INDEX_E = LAST_5_G_FOURTH_SUB_BAND_RADIO_CHANNEL_INDEX_E,	/* 48 */
    430 /*_______________________________________________*/
    431 
    432     UNUSED_RADIO_CHANNEL_INDEX_E,               /* 49 */
    433 	NUMBER_OF_RADIO_CHANNEL_INDEXS_E = UNUSED_RADIO_CHANNEL_INDEX_E,	/* 49 */
    434 	LAST_RADIO_CHANNEL_INDEX_E = (NUMBER_OF_RADIO_CHANNEL_INDEXS_E - 1)	/* 48 */
    435 
    436 }RADIO_CHANNEL_INDEX_ENM;
    437 
    438 #define NUMBER_OF_2_4_G_CHANNELS    	(NUMBER_OF_2_4_G_CHANNEL_INDICES_E + 1)
    439 #define NUMBER_OF_5G_CHANNELS       	(NUMBER_OF_RADIO_CHANNEL_INDEXS_E - NUMBER_OF_2_4_G_CHANNELS)
    440 #define HALF_NUMBER_OF_2_4_G_CHANNELS 	(NUMBER_OF_2_4_G_CHANNELS / 2)
    441 #define HALF_NUMBER_OF_5G_CHANNELS  	((NUMBER_OF_5G_CHANNELS + 1) / 2)
    442 
    443 typedef enum RADIO_RATE_GROUPS_ENMT
    444 {
    445 	FIRST_RATE_GROUP_E,
    446 /*______________________________________*/
    447 
    448 	MCS7_RATE_GROUP_E = FIRST_RATE_GROUP_E,
    449 	_54_48_RATE_GROUP_E,                /* band 4.9Ghz (Japan) low sub-band (J1-J4) */
    450 	_36_24_RATE_GROUP_E,                /* band 4.9Ghz (Japan) mid sub-band(J8,J12,J16) */
    451 	_18_12_RATE_GROUP_E,                /* band 4.9Ghz (Japan) high sub-band(J34,36,J38,40, J42, 44, J46,48) */
    452 	_9_6_RATE_GROUP_E,                  /* band 5GHz 1st sub-band(52->64 in steps of 4) */
    453 	_11b_RATE_GROUP_E,                  /* band 5GHz 2nd sub-band(100->116 in steps of 4) */
    454 /*_______________________________________________*/
    455     UNUSED_RATE_GROUPS_E,
    456 	NUMBER_OF_RATE_GROUPS_E = UNUSED_RATE_GROUPS_E,
    457 	LAST_RATE_GROUP_E = (NUMBER_OF_RATE_GROUPS_E - 1)
    458 
    459 }RADIO_RATE_GROUPS_ENM;
    460 
    461 
    462 typedef enum
    463 {
    464     RADIO_BAND_2_4_GHZ                  = 0,
    465     RADIO_BAND_5_0_GHZ                  = 1,
    466     RADIO_BAND_DUAL                     = 2,
    467     RADIO_BAND_NUM_OF_BANDS             = 2
    468 
    469 } ERadioBand;
    470 
    471 
    472 /******************************************************************************
    473  TTestCmdRunCalibration - Calibration manager message
    474 
    475  Note:
    476 ******************************************************************************/
    477 
    478 typedef enum CALIBRATION_COMMANDS_ENMT
    479 {
    480 	/* RX */
    481 	CM_space1_e,
    482 	CM_RX_IQ_MM_calibration_e,
    483 	CM_RX_IQ_MM_correction_upon_channel_change_e,
    484 	CM_RX_IQ_MM_correction_upon_temperature_change_e,
    485 	CM_RX_IQ_MM_duplicate_VGA_e,
    486 	CM_space2_e,
    487 
    488 	CM_RX_analog_DC_Correction_calibration_e,
    489 	CM_RX_DC_AUX_cal_mode_e,
    490 	CM_RX_DC_AUX_normal_mode_e,
    491 	CM_space3_e,
    492 
    493 	CM_RX_BIP_enter_mode_e,
    494 	CM_RX_BIP_perform_e,
    495 	CM_RX_BIP_exit_mode_e,
    496 	CM_space4_e,
    497 
    498 	/* TX */
    499 	CM_TX_power_detector_calibration_e,
    500 	CM_TX_power_detector_buffer_calibration_e,
    501 	CM_space5_e,
    502 
    503 	CM_TX_LO_Leakage_calibration_e,
    504 	CM_TX_PPA_Steps_calibration_e,
    505 	CM_TX_CLPC_calibration_e,
    506 	CM_TX_IQ_MM_calibration_e,
    507 	CM_TX_BIP_calibration_e,
    508     /* DRPw */
    509 	CM_RX_TANK_TUNE_calibration_e,
    510 /*    CM_PD_BUFF_TUNE_calibration_e,*/
    511     CM_RX_DAC_TUNE_calibration_e,
    512     CM_RX_IQMM_TUNE_calibration_e,
    513     CM_RX_LPF_TUNE_calibration_e,
    514     CM_TX_LPF_TUNE_calibration_e,
    515     CM_TA_TUNE_calibration_e,
    516     CM_TX_MIXERFREQ_calibration_e,
    517     CM_RX_IF2GAIN_calibration_e,
    518     CM_RTRIM_calibration_e,
    519     CM_RX_LNAGAIN_calibration_e,
    520 
    521 	CM_SMART_REFLEX_calibration_e,
    522 	CM_CHANNEL_RESPONSE_calibration_e
    523 
    524 }CALIBRATION_COMMANDS_ENM;
    525 
    526 
    527 typedef enum CALIBRATIONS_ENMT
    528 {
    529 	FIRST_CALIBRATION_TYPE_E,
    530 /*----------------------------------------------------------*/
    531 	/**** GENERAL ****/
    532 	DRPW_RFCALIBFXN_RXTXLPF_TYPE_E = FIRST_CALIBRATION_TYPE_E,
    533 	DRPW_TUNE_TYPE_E,	/* TUNE will perform DCO_freq, AB/TB, KDCO, TDC_inverter */
    534 	DRPW_RFCALIBFXN_RTRIM_TYPE_E,
    535 	/**** TX ****/
    536 	CM_TX_LO_LEAKAGE_CALIBRATION_TYPE_E,
    537     CM_TX_IQ_MM_CALIBRATION_TYPE_E,
    538 	DRPW_RFCALIBFXN_TXMIXERFREQ_TYPE_E,
    539 	/**** RX ****/
    540 	DRPW_RFCALIBFXN_TA_TYPE_E,
    541 	DRPW_RFCALIBFXN_RXLNAGAIN_TYPE_E,
    542 	DRPW_RFCALIBFXN_RXIF2GAIN_TYPE_E,
    543 	DRPW_RFCALIBFXN_RXDAC_TYPE_E,
    544 	DRPW_RFCALIBFXN_LNATANK_TYPE_E,
    545 	RX_ANALOG_DC_CORRECTION_CALIBRATION_TYPE_E,
    546 	CM_RX_IQ_MM_CORRECTION_CALIBRATION_TYPE_E,
    547     SMART_REFLEX_CALIBRATION_TYPE_E,
    548     CHANNEL_RESPONSE_CALIBRATION_TYPE_E,
    549 	/* ... */
    550 /*----------------------------------------------------------*/
    551 	NUMBER_OF_CALIBRATIONS_E,
    552 	LAST_CALIBRATION_TYPE_E = (NUMBER_OF_CALIBRATIONS_E - 1)
    553 } CALIBRATIONS_ENMT;
    554 
    555 /******************************************************************************
    556 
    557     Name:	ACX_CAL_ASSESSMENT
    558 	Type:	Configuration
    559 	Access:	Write Only
    560 	Length: 4
    561 	Note:	OBSOLETE !!! (DO_CALIBRATION_IN_DRIVER is not defined)
    562 
    563 ******************************************************************************/
    564 typedef enum
    565 {
    566     RUNTIME_CALIBRATION_NOT_NEEDED = 1,
    567     RUNTIME_CALIBRATION_NEEDED = 2,
    568     RFPLL_CALIBRATION_NEEDED = 3,
    569     MAX_RUNTIME_CALIBRATION_OPTIONS = 0x7FFFFFFF /* force this enum to be uint32 */
    570 } RadioRuntimeCalState_enum;
    571 
    572 
    573 #ifdef HOST_COMPILE
    574 typedef uint32 RadioRuntimeCalState_e;
    575 #else
    576 typedef RadioRuntimeCalState_enum RadioRuntimeCalState_e;
    577 #endif
    578 
    579 /************************************************************************/
    580 /*																		*/
    581 /*							Commands section                            */
    582 /*																		*/
    583 /************************************************************************/
    584 typedef struct PltGainGet_t
    585 {
    586             uint8 TxGain;            /*Total TX chain gain according to the current setting*/
    587             uint8 TxUpperBound;      /*the max gain setting allowed*/
    588             uint8 TxLowerBound;      /*the min gain setting allowed*/
    589             uint8 padding;           /* padding to 32 bit */
    590 }PltGainGet_t;
    591 
    592 typedef struct
    593 {
    594     uint8 refTxPower;
    595     uint8 band;
    596     uint8 channel;
    597     uint8 padding;
    598 }RadioPltTxCalibrationRequest_t;
    599 
    600 
    601 /******************************************************************************
    602 
    603 Name:	PowerLevelTable_t
    604 Desc:   Retrieve Maximum Dbm per power level and sub-band.
    605 Type:	Configuration
    606 Access:	Read Only
    607 Length: 20
    608 
    609 ******************************************************************************/
    610 typedef struct
    611 {
    612 	uint8 txPowerTable[NUMBER_OF_SUB_BANDS_E][NUM_OF_POWER_LEVEL]; /* Maximun Dbm in Dbm/10 units */
    613 } PowerLevelTable_t;
    614 
    615 /* DORONS [4/27/2008] testing the 2nd auxiliary function */
    616 typedef struct
    617 {
    618     int8 desiredTone;
    619     int8 desiredGain;
    620     uint8 mode;
    621     uint8 padding;
    622 } TestToneParams_t;
    623 
    624 typedef enum
    625 {
    626 	ePM_AWAKE,
    627 	ePM_LISTEN_ENTER,
    628 	ePM_LISTEN_EXIT,
    629 	ePM_POWER_DOWN_ENTER,
    630 	ePM_POWER_DOWN_EXIT,
    631 	ePM_ELP_ENTER,
    632 	ePM_ELP_EXIT,
    633 	ePM_CORTEX_GATE_ENTER,
    634 	ePM_CORTEX_GATE_EXIT
    635 }PowerMode;
    636 
    637 typedef struct
    638 
    639 {
    640 	uint8	iPowerMode;		/* Awake					- 0 */
    641 							/* Enter Listen Mode		- 1 */
    642 							/* Exit Listen Mode			- 2 */
    643 							/* Enter Power Down Mode	- 3 */
    644 							/* Exit Power Down Mode		- 4 */
    645 							/* ELP Mode					- 5 */
    646 							/* Enter Cortex Gate Mode	- 6 */
    647 							/* Exit Cortex Gate Mode	- 7 */
    648 	uint8	  padding[3];
    649 }TTestCmdPowerMode;
    650 
    651 /************************************************************************
    652                 PLT  DBS
    653 				To modify these DBs Latter - according to Architecture Document,
    654 				and move it to public_commands.h
    655 ************************************************************************/
    656 
    657 /******************************************************************************
    658 
    659       ID:     CMD_TEST
    660     Desc:   The TEST command can be issued immediately after the firmware has
    661           been downloaded, with no further configuration of the WiLink required.
    662           Full initialization of the WiLink is not required to invoke the TEST
    663           command and perform the radio test function.
    664           After testing, the system must be reset.
    665           Test parameters can be modified while a test is executing.
    666           For instance, the host program can change the channel without resetting
    667           the system.
    668 
    669       Params:     TestCmdID_enum - see below.
    670           The returned values are copied to the cmd/sts MB replacing  the command
    671           (similar to the interrogate mechanism).
    672 
    673 ******************************************************************************/
    674 /* Efil -	when adding parameter here fill the switch case sentence in function
    675 			"cmdBld_CmdIeTest" in module "TWD\Ctrl\CmdBldCmdIE.c" */
    676 typedef enum
    677 {
    678 /*	0x01	*/  TEST_CMD_PD_BUFFER_CAL = 0x1,	/* TX PLT */
    679 /*	0x02	*/  TEST_CMD_P2G_CAL,				/* TX BiP */
    680 /*	0x03	*/  TEST_CMD_RX_PLT_ENTER,
    681 /*	0x04	*/  TEST_CMD_RX_PLT_CAL,			/* RSSI Cal */
    682 /*	0x05	*/  TEST_CMD_RX_PLT_EXIT,
    683 /*	0x06	*/  TEST_CMD_RX_PLT_GET,
    684 /*	0x07	*/  TEST_CMD_FCC,					/* Continuous TX */
    685 /*	0x08	*/  TEST_CMD_TELEC,					/* Carrier wave in a specific channel and band */
    686 /*	0x09	*/  TEST_CMD_STOP_TX,				/* Stop FCC or TELEC */
    687 /*	0x0A	*/  TEST_CMD_PLT_TEMPLATE,			/* define Template for TX */
    688 /*	0x0B	*/  TEST_CMD_PLT_GAIN_ADJUST,
    689 /*	0x0C	*/  TEST_CMD_PLT_GAIN_GET,
    690 /*	0x0D	*/	TEST_CMD_CHANNEL_TUNE,
    691 /*	0x0E	*/	TEST_CMD_FREE_RUN_RSSI,         /* Free running RSSI measurement */
    692 /*	0x0F	*/  TEST_CMD_DEBUG,					/* test command for debug using the struct: */
    693 /*	0x10	*/  TEST_CMD_CLPC_COMMANDS,
    694 /*	0x11	*/  RESERVED_4,
    695 /*	0x12	*/  TEST_CMD_RX_STAT_STOP,
    696 /*	0x13	*/  TEST_CMD_RX_STAT_START,
    697 /*	0x14	*/  TEST_CMD_RX_STAT_RESET,
    698 /*	0x15	*/  TEST_CMD_RX_STAT_GET,
    699 /*	0x16	*/	TEST_CMD_LOOPBACK_START,		/* for FW Test Debug */
    700 /*	0x17	*/  TEST_CMD_LOOPBACK_STOP,			/* for FW Test Debug */
    701 /*	0x18	*/	TEST_CMD_GET_FW_VERSIONS,
    702 /*  0x19    */  TEST_CMD_INI_FILE_RADIO_PARAM,
    703 /*  0x1A	*/  TEST_CMD_RUN_CALIBRATION_TYPE,
    704 /*  0x1B    */	TEST_CMD_TX_GAIN_ADJUST,
    705 /*	0x1C	*/	TEST_CMD_UPDATE_PD_BUFFER_ERRORS,
    706 /*	0x1D	*/	TEST_CMD_UPDATE_PD_REFERENCE_POINT,
    707 /*  0x1E    */	TEST_CMD_INI_FILE_GENERAL_PARAM,
    708 /*	0x1F	*/	TEST_CMD_SET_EFUSE,
    709 /*	0x20	*/	TEST_CMD_GET_EFUSE,
    710 /* DORONS [4/27/2008] testing the 2nd auxiliary function */
    711 /*0x21 */   TEST_CMD_TEST_TONE,
    712 /*	0x22	*/	TEST_CMD_POWER_MODE,
    713 /*	0x23	*/	TEST_CMD_SMART_REFLEX,
    714 /*	0x24	*/	TEST_CMD_CHANNEL_RESPONSE,
    715 /*	0x25	*/	TEST_CMD_DCO_ITRIM_FEATURE,
    716 /*	0x26	*/	TEST_CMD_INI_FILE_RF_EXTENDED_PARAM,
    717 
    718     MAX_TEST_CMD_ID = 0xFF	/* Dummy - must be last!!! (make sure that Enum variables are type of int) */
    719 
    720 } TestCmdID_enum;
    721 
    722 /************************************************************************/
    723 /* radio test result information struct									*/
    724 /************************************************************************/
    725 #define DEFAULT_MULTIPLE_ACTIVATION_TIME		5
    726 
    727 #define MULTIPLE_ACTIVATION_TIME				1000000
    728 
    729 #define DEFAULT_RSMODE_CALIBRATION_INTERVAL		(DEFAULT_MULTIPLE_ACTIVATION_TIME * MULTIPLE_ACTIVATION_TIME)	/* RadioScope calibration interval - 5 sec */
    730 
    731 typedef enum
    732 {
    733 	eCMD_GET_CALIBRAIONS_INFO,
    734 	eCMD_GET_CLPC_VBAT_TEMPERATURE_INFO
    735 }TTestCmdDeubug_enum;
    736 
    737 /* struct of calibration status, indication if RM performed calibration */
    738 typedef struct
    739 {
    740 	uint8		operateCalibration;									/* RM performed calibration */
    741 	int8		calibrationsResult[NUMBER_OF_CALIBRATIONS_E];		/* Calibrations status	*/
    742 }CalibrationInfo;
    743 
    744 /* struct of CLPC output, temperature, battery voltage */
    745 typedef struct
    746 {
    747 	int					ClpcOffset[NUMBER_OF_RATE_GROUPS_E];		 /* CLPC */
    748 	int8				CurrentTemperature;							 /* current temperature in Celsius */
    749 	uint16				CurrentVbat;								 /* VBat	*/
    750 
    751 }CLPCTempratureVbatStruct;
    752 
    753 typedef struct
    754 {
    755 	int16			oRadioStatus;
    756 	uint8			iCommand; /* command to check */
    757 
    758 	CalibrationInfo				calibInfo;			/* for eCMD_GET_CALIBRAIONS_INFO */
    759 	CLPCTempratureVbatStruct	CLPCTempVbatInfo;	/* for eCMD_GET_CLPC_VBAT_TEMPERATURE_INFO */
    760 
    761 	uint8			padding[3];
    762 
    763 }TTestCmdDebug;
    764 
    765 /************************************************************************/
    766 /* end radio test result information struct								*/
    767 /************************************************************************/
    768 
    769 
    770 #ifdef HOST_COMPILE
    771 typedef uint8 TestCmdID_e;
    772 #else
    773 typedef TestCmdID_enum TestCmdID_e;
    774 #endif
    775 
    776 /******************************************************************************/
    777 typedef enum
    778 {
    779     TEST_MODE_HOST_ORIGINATED_DATA      = 0x00,
    780     TEST_MODE_FIXED_SEQ_NUMBER          = 0x00,
    781     TEST_MODE_FW_ORIGINATED_DATA     	= 0x01,
    782     TEST_MODE_RANDOM_DATA               = 0x05,
    783     TEST_MODE_ZOZO_DATA                 = 0x09,
    784     TEST_MODE_FILLING_PATERN_MASK       = 0x0F,
    785     TEST_MODE_DELAY_REQUIRED            = 0x10,
    786     TEST_MODE_DISABLE_SRCRAMBLING_FLAG  = 0x20
    787 }TestModeCtrlTypes_e;
    788 
    789 #ifdef HOST_COMPILE
    790 typedef uint8 FccTestType_e;
    791 #else
    792 typedef TestModeCtrlTypes_e FccTestType_e;
    793 #endif
    794 
    795 /******************************************************************************/
    796 #define     TEST_SEQ_NUM_MODE_FIXED             (0)
    797 #define     TEST_SEQ_NUM_MODE_INCREMENTED       (1)
    798 
    799 /******************************************************************************/
    800 /* DORONS [4/23/2008] RX Tone activation for DRPw cals */
    801 #define     ACTIVE_TONE_CAL_MODE                (0)
    802 #define     ACTIVE_TONE_NORM_MODE               (1)
    803 /******************************************************************************
    804 
    805   TestCmdId :   TEST_CMD_FCC - Tx continuous test
    806 
    807   Description:  Continuous transmit series of numbers with a valid MAC header
    808                 as was received from driver.
    809                 However there is no 802.11 air access compliance.
    810 
    811   Params:       PERTxCfg_t fcc - see below.
    812 
    813 ******************************************************************************/
    814 #define NUM_OF_MAC_ADDR_ELEMENTS 6
    815 typedef struct PERTxCfg_t
    816 {
    817             /*input parameters*/
    818             uint32 numFrames;       				/* number of frams to transmit, 0 = endless*/
    819             uint32 interFrameGap;   				/* time gap in uSec */
    820             uint32 seqNumMode;      				/* Fixed / Incremented */
    821             uint32 frameBodySize;    				/* length of Mac Payload */
    822             uint8 channel;          				/*channel number*/
    823             uint8 dataRate;         				/* MBps 1,2,11,22,... 54           */
    824             uint8 modPreamble;      				/* CTL_PREAMBLE 0x01 */
    825             uint8 band;             				/* {BAND_SELECT_24GHZ 0x00 | BAND_SELECT_5GHZ 0x01} */
    826             uint8 modulation;       				/* {PBCC_MODULATION_MASK |OFDM_MODULATION_MASK }*/
    827             FccTestType_e testModeCtrl;
    828             uint8 dest[NUM_OF_MAC_ADDR_ELEMENTS];  	/* set to hard codded default {0,0,0xde,0xad,0xbe,0xef}; */
    829 } PERTxCfg_t;
    830 
    831 /******************************************************************************
    832 
    833   TestCmdId :   TEST_CMD_SET_EFUSE, TEST_CMD_GET_EFUSE
    834 
    835   Description:  Get and set the eFuse parameters
    836 
    837 ******************************************************************************/
    838 typedef enum EFUSE_PARAMETER_TYPE_ENMT
    839 {
    840 	EFUSE_FIRST_PARAMETER_E,
    841 /*_______________________________________________*/
    842 
    843 	/* RX PARAMETERS */
    844     EFUSE_FIRST_RX_PARAMETER_E = EFUSE_FIRST_PARAMETER_E,
    845 	RX_BIP_MAX_GAIN_ERROR_BAND_B_E = EFUSE_FIRST_RX_PARAMETER_E,		/* MaxGainErrBandB */
    846 
    847 	RX_BIP_MAX_GAIN_ERROR_J_LOW_MID_E,									/* MaxGainErrJLowMid */
    848 	RX_BIP_MAX_GAIN_ERROR_J_HIGH_E,										/* MaxGainErrJHigh  */
    849 
    850 	RX_BIP_MAX_GAIN_ERROR_5G_1ST_E,										/* MaxGainErr5G1st  */
    851 	RX_BIP_MAX_GAIN_ERROR_5G_2ND_E,										/* MaxGainErr5G2nd  */
    852 	RX_BIP_MAX_GAIN_ERROR_5G_3RD_E,										/* MaxGainErr5G3rd  */
    853 	RX_BIP_MAX_GAIN_ERROR_5G_4TH_E,										/* MaxGainErr5G4th  */
    854 
    855 	RX_BIP_LNA_STEP_CORR_BAND_B_4TO3_E,									/* LnaStepCorrBandB (Step 4To3) */
    856 	RX_BIP_LNA_STEP_CORR_BAND_B_3TO2_E,									/* LnaStepCorrBandB (Step 3To2) */
    857 	RX_BIP_LNA_STEP_CORR_BAND_B_2TO1_E,									/* LnaStepCorrBandB (Step 2To1) */
    858 	RX_BIP_LNA_STEP_CORR_BAND_B_1TO0_E,									/* LnaStepCorrBandB (Step 1To0) */
    859 
    860 	RX_BIP_LNA_STEP_CORR_BAND_A_4TO3_E,									/* LnaStepCorrBandA (Step 4To3) */
    861 	RX_BIP_LNA_STEP_CORR_BAND_A_3TO2_E,									/* LnaStepCorrBandA (Step 3To2) */
    862 	RX_BIP_LNA_STEP_CORR_BAND_A_2TO1_E,									/* LnaStepCorrBandA (Step 2To1) */
    863 	RX_BIP_LNA_STEP_CORR_BAND_A_1TO0_E,									/* LnaStepCorrBandA (Step 1To0) */
    864 
    865 	RX_BIP_TA_STEP_CORR_BAND_B_2TO1_E,									/* TaStepCorrBandB (Step 2To1) */
    866 	RX_BIP_TA_STEP_CORR_BAND_B_1TO0_E,									/* TaStepCorrBandB (Step 1To0) */
    867 
    868 	RX_BIP_TA_STEP_CORR_BAND_A_2TO1_E,									/* TaStepCorrBandA (Step 2To1) */
    869 	RX_BIP_TA_STEP_CORR_BAND_A_1TO0_E,									/* TaStepCorrBandA (Step 1To0) */
    870 
    871 	NUMBER_OF_RX_BIP_EFUSE_PARAMETERS_E,								/* Number of RX parameters */
    872 
    873 	/* TX PARAMETERS */
    874 	TX_BIP_PD_BUFFER_GAIN_ERROR_E = NUMBER_OF_RX_BIP_EFUSE_PARAMETERS_E,/* PD_Buffer_Gain_error */
    875 	TX_BIP_PD_BUFFER_VBIAS_ERROR_E,										/* PD_Buffer_Vbias_error */
    876 
    877 /*_______________________________________________*/
    878 	EFUSE_NUMBER_OF_PARAMETERS_E,
    879     EFUSE_LAST_PARAMETER_E = (EFUSE_NUMBER_OF_PARAMETERS_E - 1)
    880 
    881 }EFUSE_PARAMETER_TYPE_ENM;
    882 
    883 typedef struct
    884 {
    885 	int8	EfuseParameters[EFUSE_NUMBER_OF_PARAMETERS_E];
    886 
    887 	int16	oRadioStatus;
    888     int8	padding[3];     /* Align to 32bit */
    889 
    890 } EfuseParameters_t;
    891 
    892 /******************************************************************************/
    893 
    894 /******************************************************************************
    895 
    896   TestCmdId :       TEST_CMD_PLT_GAIN_GET
    897 
    898     Description: Retrieves the TX chain gain settings.
    899 
    900   Params:           PltGainGet_t       gainGet - see public_radio.h
    901 
    902 
    903 ******************************************************************************/
    904 
    905 /******************************************************************************
    906 
    907     TestCmdId:  TEST_CMD_PLT_GET_NVS_UPDATE_BUFFER
    908 
    909     Description: This PLT function provides the all information required by
    910                     the upper driver in order to update the NVS image.
    911                     It received a parameter defining the type of update
    912                     information required and provides an array of elements
    913                     defining the data bytes to be written to the NVS image
    914                     and the byte offset in which they should be written.
    915  Params:     PltNvsResultsBuffer_t nvsUpdateBuffer  - see public_radio.h
    916 
    917 
    918 *****************************************************************************/
    919 
    920 
    921 /******************************************************************************
    922 
    923   TestCmdId :   TEST_CMD_PLT_GAIN_ADJUST
    924 
    925     Description: retrieves the TX chain gain settings.
    926 
    927     Params:     int32                txGainAdjust
    928 
    929 *****************************************************************************/
    930 
    931 /******************************************************************************
    932 
    933   TestCmdId :   TEST_CMD_PLT_RX_CALIBRATION
    934 
    935     Description: Used as part of the  RX calibration procedure, call this
    936             function for every calibration channel.
    937             The response for that function indicates only that command had been received by th FW,
    938             and not that the calibration procedure had been finished.
    939             The upper layer need to wait amount of ((numOfSamples*intervalBetweenSamplesUsec).
    940             To make sure that the RX  calibration  completed. before calling to the next command.
    941 
    942     Params:     PltRxCalibrationRequest_t    rxCalibration
    943 
    944   ******************************************************************************/
    945 
    946 typedef struct
    947 {
    948 	uint8 iBand;
    949 	uint8 iChannel;
    950 	int16 oRadioStatus;
    951 } TTestCmdChannel;
    952 
    953 typedef struct TTestCmdPdBufferCalStruct
    954 {
    955 	uint8   iGain;
    956 	uint8   iVBias;
    957 	int16	oAdcCodeword;
    958 	int16	oRadioStatus;
    959 	uint8	Padding[2];
    960 } TTestCmdPdBufferCal;
    961 
    962 typedef struct
    963 {
    964 	int8	vBIASerror;
    965 	int8	gainError;
    966 	uint8	padding[2];
    967 }TTestCmdPdBufferErrors;
    968 
    969 typedef struct
    970 {
    971 	int32     iReferencePointPower;
    972 	int32     iReferencePointDetectorValue;
    973 	uint8     isubBand;
    974 	uint8     padding[3];
    975 }TTestCmdUpdateReferncePoint;
    976 
    977 typedef struct
    978 {
    979 	int16 oRadioStatus;
    980 	uint8 iCalibratonType;
    981 	uint8 Padding;
    982 
    983 } TTestCmdRunCalibration;
    984 
    985 typedef struct
    986 {
    987     uint8   DCOItrimONOff;
    988 	uint8	padding[3];
    989 }TTestCmdDCOItrimOnOff;
    990 
    991 typedef enum
    992 {
    993 	eDISABLE_LIMIT_POWER,
    994 	eENABLE_LIMIT_POWER
    995 }UseIniFileLimitPower;
    996 
    997 typedef struct
    998 {
    999 	int32	iTxGainValue;
   1000 	int16	oRadioStatus;
   1001 	uint8	iUseinifilelimitPower;
   1002 	uint8	padding;
   1003 } TTxGainAdjust;
   1004 
   1005 /* TXPWR_CFG0__VGA_STEP_GAIN_E */
   1006 typedef enum TXPWR_CFG0__VGA_STEP_ENMT
   1007 {
   1008 	TXPWR_CFG0__VGA_STEP__FIRST_E,
   1009 /*_______________________________________________*/
   1010 	TXPWR_CFG0__VGA_STEP__MINIMUM_E = TXPWR_CFG0__VGA_STEP__FIRST_E,
   1011 	TXPWR_CFG0__VGA_STEP__0_E = TXPWR_CFG0__VGA_STEP__MINIMUM_E,
   1012 	TXPWR_CFG0__VGA_STEP__1_E,
   1013 	TXPWR_CFG0__VGA_STEP__2_E,
   1014 	TXPWR_CFG0__VGA_STEP__3_E,
   1015 	TXPWR_CFG0__VGA_STEP__4_E,
   1016 	TXPWR_CFG0__VGA_STEP__MAXIMUM_E = TXPWR_CFG0__VGA_STEP__4_E,
   1017 /*_______________________________________________*/
   1018 	TXPWR_CFG0__VGA_STEP__NUMBER_OF_STEPS_E,
   1019 	TXPWR_CFG0__VGA_STEP__LAST_E = (TXPWR_CFG0__VGA_STEP__NUMBER_OF_STEPS_E - 1)
   1020 
   1021 } TXPWR_CFG0__VGA_STEP_ENM;
   1022 
   1023 
   1024 /******************************************************************************
   1025 
   1026 	Name:	ACX_PLT_NVS_BUFFER_UPDATE
   1027 	TestCmdId:	TEST_CMD_PLT_GET_NVS_UPDATE_BUFFER
   1028 	Description: This PLT function provides the all information required by
   1029 					the upper driver in order to update the NVS image.
   1030 					It received a parameter defining the type of update
   1031 					information required and provides an array of elements defining
   1032 					the data bytes to be written to the NVS image and the byte
   1033 					offset in which they should be written.
   1034 	Type:	PLT
   1035 	Access:	Read Only
   1036 	Length: 420
   1037 
   1038 ******************************************************************************/
   1039 
   1040 /* default efuse value */
   1041 #define DEFAULT_EFUSE_VALUE				0
   1042 
   1043 /* Default hard-coded power to gain offsets (these values will be overridden by NVS) */
   1044 #define DB_FACTOR						1000			/* factor because we can't use float */
   1045 
   1046 /* TX BIP default parameters */
   1047 #define CALIBRATION_STEP_SIZE			1000
   1048 #define CALIBRATION_POWER_HIGHER_RANGE	22000
   1049 #define CALIBRATION_POWER_LOWER_RANGE	(-3000)
   1050 
   1051 #define FIRST_PD_CURVE_TO_SET_2_OCTET	(10 * CALIBRATION_STEP_SIZE)/* dBm */
   1052 
   1053 #define SIZE_OF_POWER_DETECTOR_TABLE	((((CALIBRATION_POWER_HIGHER_RANGE) - (CALIBRATION_POWER_LOWER_RANGE))\
   1054 	                                      / (CALIBRATION_STEP_SIZE)) + 1)
   1055 
   1056 /* default PPA steps value */
   1057 #define DEFAULT_PPA_STEP_VALUE			(-6000)
   1058 
   1059 #define P2G_TABLE_TO_NVS				(-1) * 8 / DB_FACTOR
   1060 
   1061 #define DEF_2_4_G_SUB_BAND_P2G_OFFSET           (-25000)
   1062 #define DEF_LOW_JAPAN_4_9_G_SUB_BAND_P2G_OFFSET (-25*DB_FACTOR)
   1063 #define DEF_MID_JAPAN_4_9_G_SUB_BAND_OFFSET     (-25*DB_FACTOR)
   1064 #define DEF_HIGH_JAPAN_4_9_G_SUB_BAND_OFFSET    (-25*DB_FACTOR)
   1065 #define DEF_5_G_FIRST_SUB_BAND_P2G_OFFSET       (-25*DB_FACTOR)
   1066 #define DEF_5_G_SECOND_SUB_BAND_P2G_OFFSET      (-25*DB_FACTOR)
   1067 #define DEF_5_G_THIRD_SUB_BAND_P2G_OFFSET       (-25*DB_FACTOR)
   1068 #define DEF_5_G_FOURTH_SUB_BAND_P2G_OFFSET      (-25*DB_FACTOR)
   1069 
   1070 
   1071 /* NVS definition start here */
   1072 
   1073 #define	NVS_TX_TYPE_INDEX		0
   1074 #define        NVS_TX_LENGTH_INDEX                             ((NVS_TX_TYPE_INDEX) + 1) /* 1 (26) */
   1075 #define        NVS_TX_PARAM_INDEX                              ((NVS_TX_LENGTH_INDEX) + 2) /* 3  (28) */
   1076 
   1077 #define START_TYPE_INDEX_IN_TLV	0
   1078 #define TLV_TYPE_LENGTH			1
   1079 #define START_LENGTH_INDEX		(START_TYPE_INDEX_IN_TLV + TLV_TYPE_LENGTH) /* 1 */
   1080 #define TLV_LENGTH_LENGTH		2
   1081 #define START_PARAM_INDEX		(START_LENGTH_INDEX + TLV_LENGTH_LENGTH) /* 3 */
   1082 
   1083 #define	NVS_VERSION_1			1
   1084 #define	NVS_VERSION_2			2
   1085 
   1086 #define	NVS_MAC_FIRST_LENGTH_INDEX			0
   1087 #define	NVS_MAC_FIRST_LENGHT_VALUE			1
   1088 
   1089 #define NVS_MAC_L_ADDRESS_INDEX				((NVS_MAC_FIRST_LENGTH_INDEX) + 1) /* 1*/
   1090 #define NVS_MAC_L_ADDRESS_LENGTH			2
   1091 
   1092 #define NVS_MAC_L_VALUE_INDEX				((NVS_MAC_L_ADDRESS_INDEX) + (NVS_MAC_L_ADDRESS_LENGTH)) /* 3 */
   1093 #define NVS_MAC_L_VALUE_LENGTH				4
   1094 
   1095 #define	NVS_MAC_SECONDE_LENGTH_INDEX		((NVS_MAC_L_VALUE_INDEX) + 4) /* 7 */
   1096 #define	NVS_MAC_SECONDE_LENGHT_VALUE		1
   1097 
   1098 #define NVS_MAC_H_ADDRESS_INDEX				((NVS_MAC_SECONDE_LENGTH_INDEX) + 1) /* 8*/
   1099 #define NVS_MAC_H_ADDRESS_LENGTH			2
   1100 
   1101 #define NVS_MAC_H_VALUE_INDEX				((NVS_MAC_H_ADDRESS_INDEX) + (NVS_MAC_H_ADDRESS_LENGTH)) /* 10 */
   1102 #define NVS_MAC_H_VALUE_LENGTH				4
   1103 
   1104 #define NVS_END_BURST_TRANSACTION_INDEX		((NVS_MAC_H_VALUE_INDEX) + (NVS_MAC_H_VALUE_LENGTH))	/* 14 */
   1105 #define NVS_END_BURST_TRANSACTION_VALUE		0
   1106 #define NVS_END_BURST_TRANSACTION_LENGTH	7
   1107 
   1108 #define NVS_ALING_TLV_START_ADDRESS_INDEX	((NVS_END_BURST_TRANSACTION_INDEX) + (NVS_END_BURST_TRANSACTION_LENGTH))	/* 21 */
   1109 #define NVS_ALING_TLV_START_ADDRESS_VALUE	0
   1110 #define NVS_ALING_TLV_START_ADDRESS_LENGTH	3
   1111 
   1112 
   1113 /* NVS pre TLV length */
   1114 #define NVS_PRE_PARAMETERS_LENGTH			((NVS_ALING_TLV_START_ADDRESS_INDEX) + (NVS_ALING_TLV_START_ADDRESS_LENGTH)) /* 24 */
   1115 
   1116 /* NVS P2G table */
   1117 #define NVS_TX_P2G_TABLE_LENGTH			((NUMBER_OF_SUB_BANDS_E) * 1 /* byte */) /* 8 */
   1118 
   1119 /* NVS PPA table */
   1120 #define NVS_TX_PPA_STEPS_TABLE_LENGTH	((NUMBER_OF_SUB_BANDS_E) * \
   1121                                          ((TXPWR_CFG0__VGA_STEP__NUMBER_OF_STEPS_E) \
   1122                                           - 1) * 1 /* byte */) 	/* 32 */
   1123 
   1124 /* NVS version 1 TX PD curve table length */
   1125 #define NVS_TX_PD_TABLE_LENGTH_NVS_V1	(1 /* byte to set size of table */ + \
   1126                                          ((NUMBER_OF_SUB_BANDS_E) * (2 /* 1 byte offset, 1 byte low range */ + \
   1127                                           2 /* first index in table */ + (((SIZE_OF_POWER_DETECTOR_TABLE) - 1) * 1 /* 1 byte */)))) /* 233 */
   1128 
   1129 /* NVS version 2 TX PD curve table length */
   1130 #define NVS_TX_PD_TABLE_LENGTH_NVS_V2	((NUMBER_OF_SUB_BANDS_E) * (12 /* 12index of one byte -2 dBm - 9dBm */ +\
   1131                                         28 /* 14 indexes of 2 byte -3dBm, 10dBm - 22 dBm */)) /* 320 */
   1132 
   1133 /* NVS version 1 TX parameters Length */
   1134 #define	NVS_TX_PARAM_LENGTH_NVS_V1		((NVS_TX_P2G_TABLE_LENGTH) + (NVS_TX_PPA_STEPS_TABLE_LENGTH) +\
   1135                                          (NVS_TX_PD_TABLE_LENGTH_NVS_V1)) /* 273 */
   1136 
   1137 /* NVS version 2 TX parameters Length */
   1138 #define NVS_TX_PARAM_LENGTH_NVS_V2		((NVS_TX_P2G_TABLE_LENGTH) + (NVS_TX_PPA_STEPS_TABLE_LENGTH) +\
   1139                                          (NVS_TX_PD_TABLE_LENGTH_NVS_V2) +\
   1140                                          (NUMBER_OF_RADIO_CHANNEL_INDEXS_E /* for Per Channel power Gain Offset table */)) /* 409 */
   1141 
   1142 /* NVS TX version */
   1143 #define NVS_TX_PARAM_LENGTH				NVS_TX_PARAM_LENGTH_NVS_V2
   1144 
   1145 /* NVS RX version */
   1146 #define        NVS_RX_TYPE_INDEX                               ((NVS_TX_PARAM_INDEX) + (NVS_TX_PARAM_LENGTH)) /* 316 (341) */
   1147 #define        NVS_RX_LENGTH_INDEX                             ((NVS_RX_TYPE_INDEX) + 1) /* 317 (342) */
   1148 #define        NVS_RX_PARAM_INDEX                              ((NVS_RX_LENGTH_INDEX) + 2) /* 319 (344) */
   1149 #define	NVS_RX_PARAM_LENGTH				NUMBER_OF_RX_BIP_EFUSE_PARAMETERS_E				/* 19		 */
   1150 
   1151 /* NVS version parameter length */
   1152 #define NVS_VERSION_TYPE_INDEX                 ((NVS_RX_PARAM_INDEX) + (NVS_RX_PARAM_LENGTH)) /* 338 (363) */
   1153 #define NVS_VERSION_LENGTH_INDEX               ((NVS_VERSION_TYPE_INDEX) + 1) /* 339 (364) */
   1154 #define NVS_VERSION_PARAMETER_INDEX            ((NVS_VERSION_LENGTH_INDEX) + 2) /* 340 (365) */
   1155 #define NVS_VERSION_PARAMETER_LENGTH	3
   1156 
   1157 /* NVS max length */
   1158 #define NVS_TOTAL_LENGTH				500 /* original ((NVS_TOTAL_LENGTH) + 4 - ((NVS_TOTAL_LENGTH) % 4)) */
   1159 
   1160 /* TLV max length */
   1161 #define  MAX_TLV_LENGTH 				NVS_TOTAL_LENGTH
   1162 
   1163 #define	 MAX_NVS_VERSION_LENGTH			12
   1164 
   1165 /* type to set in the NVS for each mode of work */
   1166 typedef enum
   1167 {
   1168 	eNVS_VERSION = 0xaa,
   1169 	eNVS_RADIO_TX_PARAMETERS = 1,
   1170 	eNVS_RADIO_RX_PARAMETERS = 2,
   1171 
   1172 	eNVS_RADIO_INI = 16,
   1173 
   1174 
   1175 	eNVS_NON_FILE = 0xFE,
   1176 
   1177 	/* last TLV type */
   1178 	eTLV_LAST = 0xFF
   1179 }NVSType;
   1180 
   1181 /* type to set parameter type buffers for each mode of work */
   1182 typedef enum
   1183 {
   1184 	eFIRST_RADIO_TYPE_PARAMETERS_INFO,											/* 0 */
   1185 	eNVS_RADIO_TX_TYPE_PARAMETERS_INFO = eFIRST_RADIO_TYPE_PARAMETERS_INFO,		/* 0 */
   1186 	eNVS_RADIO_RX_TYPE_PARAMETERS_INFO,											/* 1 */
   1187 	eLAST_RADIO_TYPE_PARAMETERS_INFO = eNVS_RADIO_RX_TYPE_PARAMETERS_INFO,		/* 1 */
   1188 	UNUSED_RADIO_TYPE_PARAMETERS_INFO,											/* 2 */
   1189 	eNUMBER_RADIO_TYPE_PARAMETERS_INFO = UNUSED_RADIO_TYPE_PARAMETERS_INFO,		/* 2 */
   1190 	LAST_RADIO_TYPE_PARAMETERS_INFO = (eNUMBER_RADIO_TYPE_PARAMETERS_INFO - 1)	/* 1 */
   1191 }NVSTypeInfo;
   1192 
   1193 /* NVS definition end here */
   1194 
   1195 
   1196 typedef enum
   1197 {
   1198 	eCURRENT_SUB_BAND,
   1199 	eALL_SUB_BANDS
   1200 }TxBipCurrentAllSubBand;
   1201 
   1202 typedef struct
   1203 {
   1204 	uint16 	Length;			       	/* TLV length in bytes */
   1205 	uint8 	Buffer[MAX_TLV_LENGTH]; /* TLV buffer content to be burned */
   1206     uint8   Type;                   /* TLV Type Index */
   1207 	uint8   padding;
   1208 }TNvsStruct;
   1209 
   1210 typedef struct
   1211 {
   1212 	uint32		oNVSVersion;
   1213 	TNvsStruct	oNvsStruct; 	/* output (P2G array) */
   1214 	int16		oRadioStatus;
   1215     uint8             iSubBandMask;             /* 7 sub-band bit mask (asserted bit - calibration required) */
   1216     uint8             Padding;
   1217 } TTestCmdP2GCal;
   1218 
   1219 typedef struct
   1220 {
   1221 	int16			oRadioStatus;
   1222 	uint16			Pad;
   1223 	uint32			iDelay;			/* between packets (usec) */
   1224 	uint32	     	iRate; 			/* 1MBPS	= 0x00000001,
   1225 										2MBPS   = 0x00000002,
   1226 										5.5MBPS	= 0x00000004,
   1227 										6MBPS   = 0x00000008,
   1228 										9MBPS   = 0x00000010,
   1229 										11MBPS  = 0x00000020,
   1230 										12MBPS  = 0x00000040,
   1231 										18MBPS  = 0x00000080,
   1232 										24MBPS  = 0x00000200,
   1233 										36MBPS  = 0x00000400,
   1234 										48MBPS  = 0x00000800,
   1235 										54MBPS  = 0x00001000,
   1236 										MCS_0  	= 0x00002000,
   1237 										MCS_1  	= 0x00004000,
   1238 										MCS_2  	= 0x00008000,
   1239 										MCS_3  	= 0x00010000,
   1240 										MCS_4  	= 0x00020000,
   1241 										MCS_5  	= 0x00040000,
   1242 										MCS_6  	= 0x00080000,
   1243 										MCS_7  	= 0x00100000 */
   1244 	uint16	     	iSize; 			/* size of packet (bytes) */
   1245 	uint16			iAmount; 		/* in case of multiple (# of packets) */
   1246 	int32			iPower;			/* upper power limit (dBm) */
   1247 	uint16			iSeed;
   1248 	uint8			iPacketMode; 	/* single, multiple, InfiniteLength, Continuous, FCC */
   1249 	uint8	     	iDcfOnOff; 		/* use DCF access (1) */
   1250 	uint8	     	iGI;			/* Guard Interval: long:800ns (0), short:400ns (1) */
   1251 	uint8	     	iPreamble;		/* long (0), short (1),  OFDM (4), GF (7), Mixed (6) */
   1252 	uint8	     	iType;			/* Data (0), Ack (1), Probe-request(2), Random (3), User-defined (4), PER (5) */
   1253 	uint8	     	iScrambler;		/* Off (0), On (1) */
   1254 	uint8	     	iEnableCLPC; 	/* range 0-100. 0 - disable calibration										/
   1255 									   range 1-99 - enable Cal asses periodic time, every step is 200msecond
   1256 	                                   periodic of cal assess for example: 1.2 second put the value 6.
   1257 									   if the value is out of range it will be change to 25 represent
   1258 	                                   5 second of cal assess periodical */
   1259 	uint8 	     	iSeqNumMode; 	/* Fixed sequence number (0), incremental (1) - used for PER test only */
   1260 	TMacAddr	 	iSrcMacAddr; 	/* Source address (BSSID) - used for PER test only */
   1261 	TMacAddr	    iDstMacAddr; 	/* Destination address - used for PER test only */
   1262 
   1263 } TPacketParam;
   1264 
   1265 typedef struct
   1266 {
   1267 	int16			 oRadioStatus;
   1268 	uint16			 Pad;
   1269 	int32		     iPower;
   1270 	uint8	    	 iToneType;
   1271 	uint8		     iPpaStep;
   1272 	uint8		     iToneNumberSingleTones;
   1273 	uint8 	    	 iToneNumberTwoTones;
   1274 	uint8		     iUseDigitalDC;
   1275 	uint8 		     iInvert;
   1276 	uint8	    	 iElevenNSpan;
   1277 	uint8		     iDigitalDC;
   1278 	uint8		     iAnalogDCFine;
   1279 	uint8	    	 iAnalogDCCoarse;
   1280 } TToneParam;
   1281 
   1282 typedef  struct
   1283 {
   1284 	uint16 	bufferOffset;
   1285 	uint16 	bufferLength;
   1286 	int16	oRadioStatus;
   1287 	int8 	buffer[TX_TEMPLATE_MAX_BUF_LEN];
   1288 	uint8	padding[2];
   1289 } TTxTemplate;
   1290 
   1291 typedef enum
   1292 {
   1293 	eDISABLE_CLPC,
   1294 	eENABLE_CLPC,
   1295 	eRESET_CLPC_TABLES,
   1296 	eINIDCATE_CLPC_ACTIVATION_TIME
   1297 }CLPCCommands;
   1298 
   1299 typedef struct
   1300 {
   1301 	int16	oStatus;
   1302 	uint8	iCLPCActivationTime; /* range 0-100. 0 - disable calibration										/
   1303 									range 1-99 - enable Cal asses periodic time, every step is 200msecond
   1304 	                                periodic of cal assess for example: 1.2 second put the value 6.
   1305 									if the value is out of range it will be change to 25 represent
   1306 	                                5 second of cal assess periodical */
   1307 	uint8	iCLPCCommands;
   1308 }TTestCmdCLPCCommands;
   1309 
   1310 
   1311 /************************************************************************
   1312                 PLT  DBS
   1313 				Theses DBs were moved from the TWDExternalIf.h because of
   1314 				redundency.
   1315 ************************************************************************/
   1316 typedef struct
   1317 {
   1318 	uint8   oAbsoluteGain; 	/* Per Sub-Band (output) */
   1319 	uint8   oLNASteps[RX_PLT_LNA_STEPS_BUF_LEN]; 	/* 4 steps per Band (output) */
   1320 	uint8   oTASteps[RX_PLT_TA_STEPS_BUF_LEN]; 	/* 2 steps per Band (output) */
   1321 	uint8   Padding;
   1322 } TTestCmdRxPlt;
   1323 
   1324 typedef struct
   1325 {
   1326 	uint32  ReceivedValidPacketsNumber;
   1327     uint32  ReceivedFcsErrorPacketsNumber;
   1328     uint32  ReceivedPlcpErrorPacketsNumber;
   1329     uint32 	SeqNumMissCount; /* For PER calculation */
   1330     int16   AverageSnr;
   1331     int16   AverageRssi;
   1332     int16  AverageEvm;
   1333     uint8   Padding[2];
   1334 } RxPathStatistics_t;
   1335 
   1336 typedef struct
   1337 {
   1338 	uint16  Length;
   1339     uint16  EVM;
   1340     uint16  RSSI;
   1341     uint16  FrequencyDelta;
   1342     uint16  Flags;
   1343     int8	Type;
   1344     uint8   Rate;
   1345     uint8   Noise;
   1346     uint8   AgcGain;
   1347     uint8   Padding[2];
   1348 } RxPacketStatistics_t;
   1349 
   1350 #define RX_STAT_PACKETS_PER_MESSAGE           (20)
   1351 typedef struct
   1352 {
   1353 	RxPathStatistics_t		oRxPathStatistics;
   1354     uint32           		oBasePacketId;
   1355     uint32           		ioNumberOfPackets; 			/* input/output: number of following packets */
   1356 	uint32					oNumberOfMissedPackets;		/* number of following packet statistic entries that were dropped */
   1357     /*RxPacketStatistics_t    RxPacketStatistics[RX_STAT_PACKETS_PER_MESSAGE];*/
   1358 	int16					oRadioStatus;
   1359 } RadioRxStatistics;
   1360 
   1361 /* RX RF gain values */
   1362 typedef enum PHY_RADIO_RX_GAIN_VALUES_ENMT
   1363 {
   1364 	FIRST_RX_GAIN_VALUE_E,
   1365 /*_______________________________________________*/
   1366 	RX_GAIN_VALUE_0_E = FIRST_RX_GAIN_VALUE_E,
   1367 	RX_GAIN_VALUE_1_E,
   1368 	RX_GAIN_VALUE_2_E,
   1369 	RX_GAIN_VALUE_3_E,
   1370 	RX_GAIN_VALUE_4_E,
   1371 	RX_GAIN_VALUE_5_E,
   1372 	RX_GAIN_VALUE_6_E,
   1373 	RX_GAIN_VALUE_7_E,
   1374 /*_______________________________________________*/
   1375 	NUMBER_OF_RX_GAIN_VALUES_E,
   1376 	LAST_RX_GAIN_VALUE_E = (NUMBER_OF_RX_GAIN_VALUES_E - 1)
   1377 
   1378 }PHY_RADIO_RX_GAIN_VALUES_ENM;
   1379 
   1380 /* RX BIP */
   1381 typedef struct
   1382 {
   1383 	uint32		oNVSVersion;
   1384 	int32		iExternalSignalPowerLevel;
   1385 	int32		oLnaTaCompensationValues[NUMBER_OF_RX_GAIN_VALUES_E-1];
   1386 	TNvsStruct	oNvsStruct;
   1387 	int16		oRadioStatus;
   1388 	int8		padding[2];
   1389 }RadioRxPltCal;
   1390 
   1391 
   1392 typedef enum
   1393 {
   1394 	eSINGLE_BAND_INI_FILE,
   1395 	eDUAL_BAND_INI_FILE
   1396 }IniFileSingleDualBand;
   1397 
   1398 #define SMART_REFLEX_LENGTH_INDEX				0
   1399 #define SMART_REFLEX_UPPER_LIMIT_INDEX			1
   1400 #define SMART_REFLEX_START_ERROR_VALUE_INDEX	2
   1401 
   1402 #define MAX_SMART_REFLEX_FUB_VALUES		14
   1403 /* 1. first index is the number of param	*/
   1404 /* 2. second is the higher value			*/
   1405 /* 3. 14 parameter of the correction		*/
   1406 #define MAX_SMART_REFLEX_PARAM					(MAX_SMART_REFLEX_FUB_VALUES + SMART_REFLEX_START_ERROR_VALUE_INDEX)
   1407 
   1408 
   1409 
   1410 typedef struct
   1411 {
   1412 	uint8	RefClk;
   1413 	uint8	SettlingTime;
   1414 	uint8	ClockValidOnWakeup;
   1415 	uint8	DC2DCMode;
   1416 	uint8	Single_Dual_Band_Solution;
   1417 	uint8	TXBiPFEMAutoDetect;
   1418 	uint8	TXBiPFEMManufacturer;
   1419 /*	GeneralSettingsByte	Settings; */
   1420     uint8   GeneralSettings;
   1421 
   1422 
   1423     /* smart reflex state*/
   1424     uint8 SRState;
   1425     /* FUB parameters */
   1426     int8	SRF1[MAX_SMART_REFLEX_PARAM];
   1427     int8	SRF2[MAX_SMART_REFLEX_PARAM];
   1428     int8	SRF3[MAX_SMART_REFLEX_PARAM];
   1429 
   1430 
   1431     /* FUB debug parameters */
   1432     int8	SR_Debug_Table[MAX_SMART_REFLEX_PARAM];
   1433     uint8	SR_SEN_N_P;
   1434     uint8	SR_SEN_N_P_Gain;
   1435     uint8	SR_SEN_NRN;
   1436     uint8	SR_SEN_PRN;
   1437     uint8	padding[3];
   1438 
   1439 }IniFileGeneralParam;
   1440 
   1441 typedef enum
   1442 {
   1443 	FEM_MANUAL_DETECT_MODE_E,
   1444 	FEM_AUTO_DETECT_MODE_E
   1445 
   1446 }FEM_DETECT_MODE_ENM;
   1447 
   1448 typedef enum
   1449 {
   1450 	FEM_RFMD_TYPE_E,
   1451 	FEM_TRIQUINT_TYPE_E,
   1452 	NUMBER_OF_FEM_TYPES_E
   1453 
   1454 }FEM_TYPE_ENM;
   1455 
   1456 typedef enum
   1457 {
   1458 	eREF_CLK_19_2_E,
   1459 	eREF_CLK_26_E,
   1460 	eREF_CLK_38_4_E,
   1461 	eREF_CLK_52_E
   1462 
   1463 }REF_CLK_ENM;
   1464 
   1465 typedef enum
   1466 {
   1467 	REF_CLK_NOT_VALID_E,
   1468 	REF_CLK_VALID_AND_STABLE_E
   1469 
   1470 }CLK_VALID_ON_WAKEUP_ENM;
   1471 
   1472 typedef enum
   1473 {
   1474 	BT_SPI_IS_NOT_USED_E,
   1475 	MUX_DC2DC_TO_BT_FUNC2_E
   1476 
   1477 }DC2DC_MODE_ENM;
   1478 
   1479 typedef enum
   1480 {
   1481 	SINGLE_BAND_SOLUTION_E,
   1482 	DUAL_BAND_SOLUTION_E
   1483 
   1484 }SINGLE_DUAL_BAND_SOLUTION_ENM;
   1485 
   1486 /* General settings byte */
   1487 typedef enum
   1488 {
   1489 	TELEC_CHAN_14_OFF_E,
   1490 	TELEC_CHAN_14_ON_E
   1491 
   1492 }TELEC_CHAN_14_ENM;
   1493 
   1494 typedef enum
   1495 {
   1496 	NBI_OFF_E,
   1497 	NBI_ON_E
   1498 
   1499 }NBI_ENM;
   1500 
   1501 #define RSSI_AND_PROCESS_COMPENSATION_TABLE_SIZE   (15)
   1502 
   1503 typedef struct
   1504 {
   1505 	/* SECTION 1: 2.4G parameters */
   1506 	uint8 RxTraceInsertionLoss_2_4G;
   1507 	uint8 TXTraceLoss_2_4G;
   1508 	int8  RxRssiAndProcessCompensation_2_4G[RSSI_AND_PROCESS_COMPENSATION_TABLE_SIZE];
   1509 
   1510 	/* SECTION 2: 5G parameters */
   1511 	uint8 RxTraceInsertionLoss_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E];
   1512 	uint8 TXTraceLoss_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E];
   1513 	int8  RxRssiAndProcessCompensation_5G[RSSI_AND_PROCESS_COMPENSATION_TABLE_SIZE];
   1514 
   1515 }TStatRadioParams;
   1516 
   1517 typedef struct
   1518 {
   1519 	/* SECTION 1: 2.4G parameters */
   1520 	uint16  TXBiPReferencePDvoltage_2_4G;
   1521 	uint8   TxBiPReferencePower_2_4G;
   1522 	int8  	TxBiPOffsetdB_2_4G;
   1523 	int8  	TxPerRatePowerLimits_2_4G_Normal[NUMBER_OF_RATE_GROUPS_E];
   1524 	int8  	TxPerRatePowerLimits_2_4G_Degraded[NUMBER_OF_RATE_GROUPS_E];
   1525 	int8    TxPerRatePowerLimits_2_4G_Extreme[NUMBER_OF_RATE_GROUPS_E];
   1526 	int8  	TxPerChannelPowerLimits_2_4G_11b[NUMBER_OF_2_4_G_CHANNELS];
   1527 	int8    TxPerChannelPowerLimits_2_4G_OFDM[NUMBER_OF_2_4_G_CHANNELS];
   1528 	int8    TxPDVsRateOffsets_2_4G[NUMBER_OF_RATE_GROUPS_E];
   1529 	uint8   TxIbiasTable_2_4G[NUMBER_OF_RATE_GROUPS_E];
   1530 	uint8   RxFemInsertionLoss_2_4G;
   1531         uint8 	DegradedLowToNormalThr_2_4G;
   1532         uint8 	NormalToDegradedHighThr_2_4G;
   1533 
   1534 	/* SECTION 2: 5G parameters */
   1535 	uint16 	TXBiPReferencePDvoltage_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E];
   1536 	uint8  	TxBiPReferencePower_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E];
   1537 	int8   	TxBiPOffsetdB_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E];
   1538 	int8   	TxPerRatePowerLimits_5G_Normal[NUMBER_OF_RATE_GROUPS_E];
   1539 	int8   	TxPerRatePowerLimits_5G_Degraded[NUMBER_OF_RATE_GROUPS_E];
   1540     int8   	TxPerRatePowerLimits_5G_Extreme[NUMBER_OF_RATE_GROUPS_E];
   1541 	int8   	TxPerChannelPowerLimits_5G_OFDM[NUMBER_OF_5G_CHANNELS];
   1542 	int8   	TxPDVsRateOffsets_5G[NUMBER_OF_RATE_GROUPS_E];
   1543 	int8   	TxIbiasTable_5G[NUMBER_OF_RATE_GROUPS_E];
   1544 	uint8  	RxFemInsertionLoss_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E];
   1545     uint8  	DegradedLowToNormalThr_5G;
   1546     uint8   NormalToDegradedHighThr_5G;
   1547 
   1548 }TDynRadioParams;
   1549 
   1550 typedef struct
   1551 {
   1552 	TStatRadioParams	tStatRadioParams;
   1553 	TDynRadioParams		tDynRadioParams;
   1554     uint8                   Padding[2];
   1555 
   1556 }IniFileRadioParam;
   1557 
   1558 typedef struct
   1559 {
   1560 	int8  TxPerChannelPowerCompensation_2_4G[HALF_NUMBER_OF_2_4_G_CHANNELS]; /* 7 */
   1561 	int8  TxPerChannelPowerCompensation_5G_OFDM[HALF_NUMBER_OF_5G_CHANNELS]; /* 18 */
   1562 	uint8 Padding[3];
   1563 
   1564 }IniFileExtendedRadioParam;
   1565 
   1566 /*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
   1567 
   1568 /* Describes a reference design supported by the HDK Module */
   1569 typedef struct HDKReferenceDesign_t
   1570 {
   1571     uint16  referenceDesignId;          /* Reference design Id supported */
   1572     uint8   nvsMajorVersion;            /* First EEPROM version supported */
   1573     uint8   nvsMinorVersion;
   1574     uint8   nvsMinorMinorVersion;
   1575 } THDKReferenceDesign;
   1576 
   1577 typedef struct HDKModuleVersion_t
   1578 {
   1579     uint8               ProductName;				/* '6' for WiLink6, '4' for WiLink4 */
   1580     uint8               PgNumber;                   /* Hardware tag */
   1581     uint8               SoftwareVersionLevel;       /* SW level number (Major SW change) */
   1582     uint8               SoftwareVersionDelivery;    /* Delivery number inside any (Inside any level) */
   1583 
   1584     uint8					radioModuleType;                    /* The radio that is currently supported by the HDK module */
   1585     uint8					numberOfReferenceDesignsSupported;  /* The number of reference designs supported by the HDK module */
   1586     THDKReferenceDesign*   referenceDesignsSupported;			/* Array of reference_design supported */
   1587 
   1588 } THDKModuleVersion;
   1589 
   1590 #define FW_VERSION_LENGTH 5
   1591 
   1592 typedef struct
   1593 {
   1594 	THDKModuleVersion	hdkVersion;
   1595 	uint8				FWVersion[FW_VERSION_LENGTH];
   1596     uint32               drpwVersion;
   1597 	int16				oRadioStatus;
   1598 	uint8				padding[3];
   1599 }TFWVerisons;
   1600 
   1601 typedef struct
   1602 {
   1603     int16       RSSIVal;      /* free running RSSI value, 1dB resolution */
   1604     int16		oRadioStatus;
   1605 }TTestCmdFreeRSSI;
   1606 
   1607 typedef struct
   1608 {
   1609     TestCmdID_e     testCmdId;
   1610 	int8            padding[3];
   1611 
   1612 	/* Efil -	when adding parameter here fill the switch case sentence in function
   1613 			"cmdBld_CmdIeTest" in module "TWD\Ctrl\CmdBldCmdIE.c" */
   1614     union
   1615     {
   1616 		TTestCmdChannel 				Channel;
   1617 		RadioRxPltCal 					RxPlt;
   1618 		TTestCmdPdBufferCal 			PdBufferCal;
   1619 		TTestCmdP2GCal 					P2GCal;
   1620 		TTestCmdPdBufferErrors			PdBufferErrors;
   1621 		TTestCmdUpdateReferncePoint		PdBufferCalReferencePoint;
   1622 		TPacketParam 					TxPacketParams;
   1623 		TToneParam 						TxToneParams;
   1624 		TTxTemplate						TxTemplateParams;
   1625 		/*uint32               			txGainAdjust; */
   1626 		TTxGainAdjust					txGainAdjust;
   1627 		RadioRxStatistics				Statistics;
   1628 		TFWVerisons						fwVersions;
   1629 		TTestCmdRunCalibration			RunCalibration;
   1630         IniFileRadioParam				IniFileRadioParams;
   1631 		IniFileExtendedRadioParam		IniFileExtendedRadioParams;
   1632 		IniFileGeneralParam				IniFileGeneralParams;
   1633 		EfuseParameters_t				EfuseParams;
   1634 		TestToneParams_t				TestToneParams;
   1635 		TTestCmdPowerMode				powerMode;
   1636         TTestCmdFreeRSSI                freeRSSI;
   1637 		TTestCmdCLPCCommands			clpcCommands;
   1638 		TTestCmdDCOItrimOnOff           DCOitrimFeatureOnOff;
   1639 
   1640 		TTestCmdDebug					testDebug;
   1641     }testCmd_u;
   1642 }TTestCmd;
   1643 
   1644 
   1645 #ifndef HOST_IF_ENUMS_DISABLED
   1646 typedef enum RadioParamType_e
   1647 {
   1648     RADIO_PARAM_POWER_TABLE = 1,
   1649     RADIO_PARAM_POWER_LIMIT_TABLE,
   1650     RADIO_PARAM_POWER_ADJ_TABLE,
   1651     RADIO_PARAM_POWER_ENABLES,
   1652     RADIO_PABIAS_TABLE,
   1653     RADIO_PARAM_POWER_LEVELS,
   1654 
   1655     MAX_RADIO_PARAM_TYPE = 0x7FFFFFFF /* force this enum to be uint32 */
   1656 
   1657 } RadioParamType_e;
   1658 #else
   1659 typedef uint32 RadioParamType_e;
   1660 #endif
   1661 
   1662 typedef struct RadioParam_t
   1663 {
   1664     RadioParamType_e parameterType;
   1665     int8  parameter[MAX_RADIO_PARAM_LEN];
   1666 } RadioParam_t;
   1667 
   1668 typedef enum RadioState_e
   1669 {
   1670     RADIO_STATE_INIT = 1,           /* Completed radio initialization */
   1671     RADIO_STATE_TUNE = 2,           /* Completed channel tuning */
   1672     RADIO_STATE_DC_CAL = 3,         /* Completed radio DC calibration */
   1673     RADIO_STATE_AFE_DC_CAL =4,      /* Completed AFE DC calibration */
   1674     RADIO_STATE_TX_MM = 5,          /* Completed transmit IQ mismatch calibration */
   1675     RADIO_STATE_TX_EQUAL = 6,       /* Completed transmit equalization  calibration */
   1676     RADIO_STATE_CARR_SUPP = 7,      /* Completed carrier suppression calibration */
   1677     RADIO_STATE_TX_PWR_CTRL = 8     /* Completed transmit power control calibration (only for bg and abg radios) */
   1678 
   1679 } RadioState_e;
   1680 
   1681 typedef enum
   1682 {
   1683     PS_MODE_ENTER_ELP = 0x0,
   1684     PS_MODE_ENTER_PD = 0x1,
   1685     PS_MODE_EXIT_FROM_ELP = 0x2,
   1686     PS_MODE_EXIT_FROM_PD = 0x4,
   1687     PS_MODE_ENTER_ELP_SG_EN = 0x10,
   1688     PS_MODE_ENTER_PD_SG_EN = 0x11,
   1689     PS_MODE_EXIT_FROM_ELP_SG_EN = 0x12,
   1690     PS_MODE_EXIT_FROM_PD_SG_EN = 0x14,
   1691     PS_MODE_INVALID = 0xFF
   1692 
   1693 }PowerSaveMode_e;
   1694 
   1695 typedef struct RadioTune_t
   1696 {
   1697     Channel_e   channel;
   1698     RadioBand_e band;
   1699 } RadioTune_t;
   1700 
   1701 typedef struct RadioRSSIAndSNR_t
   1702 {
   1703     int16   rssi;
   1704     int16   snr;
   1705 }RadioRSSIAndSNR_t;
   1706 
   1707 /* VBIAS values (in mili-volts) */
   1708 typedef enum PHY_RADIO_VBIAS_MV_ENMT
   1709 {
   1710 	FIRST_VBIAS_VALUE_E = -1,
   1711 
   1712 	VBIAS_0MV_E = FIRST_VBIAS_VALUE_E,
   1713 	VBIAS_100MV_E = 0,
   1714 	VBIAS_200MV_E = 1,
   1715 	VBIAS_300MV_E = 2,
   1716 	VBIAS_400MV_E = 3,
   1717 	VBIAS_500MV_E = 4,
   1718 	VBIAS_600MV_E = 5,
   1719 	VBIAS_700MV_E = 6,
   1720 	VBIAS_800MV_E = 7,
   1721 
   1722 	NUMBER_OF_VBIAS_VALUES_E = 9,
   1723     LAST_VBIAS_VALUE_E = (NUMBER_OF_VBIAS_VALUES_E - 1)
   1724 
   1725 }PHY_RADIO_VBIAS_MV_ENM;
   1726 
   1727 /* Gain monitor values */
   1728 typedef enum PHY_RADIO_GAIN_MONITOR_TYPES_ENMT
   1729 {
   1730 	FIRST_GAIN_MONITOR_TYPE_E,
   1731 	GAIN_MONITOR_DISABLE = 0,
   1732 	GAIN_MONITOR_RESERVED = 1,
   1733 /*_______________________________________________*/
   1734 	GAIN_MONITOR_X0_5_E = 2,
   1735 	GAIN_MONITOR_X1_E = 3,
   1736 	GAIN_MONITOR_X2_E = 4,
   1737 	GAIN_MONITOR_X4_E = 5,
   1738 	GAIN_MONITOR_X8_E = 6,
   1739 	GAIN_MONITOR_X16_E = 7,
   1740 /*_______________________________________________*/
   1741 	NUMBER_OF_GAIN_MONITOR_TYPES_E = GAIN_MONITOR_X16_E,
   1742 	LAST_GAIN_MONITOR_TYPE_E = (NUMBER_OF_GAIN_MONITOR_TYPES_E - 1)
   1743 
   1744 }PHY_RADIO_GAIN_MONITOR_TYPES_ENM;
   1745 
   1746 
   1747 /* TX Packet Mode; */
   1748 typedef enum
   1749 {
   1750 	eTX_MODE_SINGLE_PACKET,              /* 0 */
   1751 	eTX_MODE_MULTIPLE_PACKET,            /* 1 */
   1752 	eTX_MODE_INFINITE_LENGTH_PACKET,     /* 2 */
   1753 	eTX_MODE_CONTINUES_PACKET,           /* 3 */
   1754 	eTX_MODE_FCC_PACKET,                 /* 4 */
   1755 	eTX_MODE_SENARIO_PACKET,	     /* 5 */
   1756 
   1757 	eMAX_PACKET_MODE_PACKET
   1758 }PacketTypeMode;
   1759 
   1760 /* TX tone mode */
   1761 typedef enum
   1762 {
   1763 	eSILENCE_TONE_MODE,
   1764 	eCARRIER_FEED_THROUGH_MODE,
   1765 	eSINGLE_TONE_MODE,
   1766 	eTWO_TONE_MODE,
   1767 	eMULTI_TONE_MODE,
   1768 
   1769 	eMax_TONE_MODE
   1770 }ToneTypeMode;
   1771 
   1772 
   1773 /**********************************************************************/
   1774 /*		For RSSI Calculation - Save Parameters						  */
   1775 /**********************************************************************/
   1776 
   1777 typedef struct
   1778 {
   1779 	uint16 linerEvmVal;
   1780 	uint16 ccaEcalcMonReg;
   1781 	uint16 ccaEcalcRssi;
   1782 	uint16 linerEvmPilVal;
   1783 	uint8 lanTableIndex;
   1784 	uint8 taTableIndex;
   1785 	uint8 lnaTableIndex;
   1786 	RADIO_SUB_BAND_TYPE_ENM currSubBand;
   1787 	RADIO_BAND_TYPE_ENM		currBand;
   1788 }rssiParamSave_t;
   1789 
   1790 
   1791 
   1792 #endif	/* #ifndef PUBLIC_RADIO */
   1793