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