public_radio.h revision 3bb9a92880f8cda8c242707ad02077f13b009632
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 */
96typedef 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. */
112typedef 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. */
140typedef 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
164typedef struct
165{
166	uint8					uDbm[NUMBER_OF_SUB_BANDS_E][NUM_OF_POWER_LEVEL];
167} TpowerLevelTable_t;
168
169/* Channel number */
170typedef 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 */
258typedef 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
443typedef 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
462typedef 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
478typedef 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
527typedef 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******************************************************************************/
564typedef 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
574typedef uint32 RadioRuntimeCalState_e;
575#else
576typedef RadioRuntimeCalState_enum RadioRuntimeCalState_e;
577#endif
578
579/************************************************************************/
580/*																		*/
581/*							Commands section                            */
582/*																		*/
583/************************************************************************/
584typedef 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
592typedef struct
593{
594    uint8 refTxPower;
595    uint8 band;
596    uint8 channel;
597    uint8 padding;
598}RadioPltTxCalibrationRequest_t;
599
600
601/******************************************************************************
602
603Name:	PowerLevelTable_t
604Desc:   Retrieve Maximum Dbm per power level and sub-band.
605Type:	Configuration
606Access:	Read Only
607Length: 20
608
609******************************************************************************/
610typedef 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 */
616typedef struct
617{
618    int8 desiredTone;
619    int8 desiredGain;
620    uint8 mode;
621    uint8 padding;
622} TestToneParams_t;
623
624typedef 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
637typedef 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" */
676typedef 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
731typedef 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 */
738typedef 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 */
745typedef 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
753typedef 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
771typedef uint8 TestCmdID_e;
772#else
773typedef TestCmdID_enum TestCmdID_e;
774#endif
775
776/******************************************************************************/
777typedef 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
790typedef uint8 FccTestType_e;
791#else
792typedef 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
815typedef 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******************************************************************************/
838typedef 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
883typedef 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
946typedef struct
947{
948	uint8 iBand;
949	uint8 iChannel;
950	int16 oRadioStatus;
951} TTestCmdChannel;
952
953typedef struct TTestCmdPdBufferCalStruct
954{
955	uint8   iGain;
956	uint8   iVBias;
957	int16	oAdcCodeword;
958	int16	oRadioStatus;
959	uint8	Padding[2];
960} TTestCmdPdBufferCal;
961
962typedef struct
963{
964	int8	vBIASerror;
965	int8	gainError;
966	uint8	padding[2];
967}TTestCmdPdBufferErrors;
968
969typedef struct
970{
971	int32     iReferencePointPower;
972	int32     iReferencePointDetectorValue;
973	uint8     isubBand;
974	uint8     padding[3];
975}TTestCmdUpdateReferncePoint;
976
977typedef struct
978{
979	int16 oRadioStatus;
980	uint8 iCalibratonType;
981	uint8 Padding;
982
983} TTestCmdRunCalibration;
984
985typedef struct
986{
987    uint8   DCOItrimONOff;
988	uint8	padding[3];
989}TTestCmdDCOItrimOnOff;
990
991typedef enum
992{
993	eDISABLE_LIMIT_POWER,
994	eENABLE_LIMIT_POWER
995}UseIniFileLimitPower;
996
997typedef struct
998{
999	int32	iTxGainValue;
1000	int16	oRadioStatus;
1001	uint8	iUseinifilelimitPower;
1002	uint8	padding;
1003} TTxGainAdjust;
1004
1005/* TXPWR_CFG0__VGA_STEP_GAIN_E */
1006typedef 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 */
1166typedef 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 */
1182typedef 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
1196typedef enum
1197{
1198	eCURRENT_SUB_BAND,
1199	eALL_SUB_BANDS
1200}TxBipCurrentAllSubBand;
1201
1202typedef 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
1210typedef 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
1219typedef 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
1265typedef 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
1282typedef  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
1291typedef enum
1292{
1293	eDISABLE_CLPC,
1294	eENABLE_CLPC,
1295	eRESET_CLPC_TABLES,
1296	eINIDCATE_CLPC_ACTIVATION_TIME
1297}CLPCCommands;
1298
1299typedef 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************************************************************************/
1316typedef 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
1324typedef 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
1336typedef 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)
1351typedef 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 */
1362typedef 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 */
1381typedef 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
1392typedef 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
1410typedef 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
1441typedef enum
1442{
1443	FEM_MANUAL_DETECT_MODE_E,
1444	FEM_AUTO_DETECT_MODE_E
1445
1446}FEM_DETECT_MODE_ENM;
1447
1448typedef enum
1449{
1450	FEM_RFMD_TYPE_E,
1451	FEM_TRIQUINT_TYPE_E,
1452	NUMBER_OF_FEM_TYPES_E
1453
1454}FEM_TYPE_ENM;
1455
1456typedef 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
1465typedef enum
1466{
1467	REF_CLK_NOT_VALID_E,
1468	REF_CLK_VALID_AND_STABLE_E
1469
1470}CLK_VALID_ON_WAKEUP_ENM;
1471
1472typedef enum
1473{
1474	BT_SPI_IS_NOT_USED_E,
1475	MUX_DC2DC_TO_BT_FUNC2_E
1476
1477}DC2DC_MODE_ENM;
1478
1479typedef enum
1480{
1481	SINGLE_BAND_SOLUTION_E,
1482	DUAL_BAND_SOLUTION_E
1483
1484}SINGLE_DUAL_BAND_SOLUTION_ENM;
1485
1486/* General settings byte */
1487typedef enum
1488{
1489	TELEC_CHAN_14_OFF_E,
1490	TELEC_CHAN_14_ON_E
1491
1492}TELEC_CHAN_14_ENM;
1493
1494typedef 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
1503typedef 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
1517typedef 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
1550typedef struct
1551{
1552	TStatRadioParams	tStatRadioParams;
1553	TDynRadioParams		tDynRadioParams;
1554    uint8                   Padding[2];
1555
1556}IniFileRadioParam;
1557
1558typedef 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 */
1569typedef 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
1577typedef 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
1592typedef struct
1593{
1594	THDKModuleVersion	hdkVersion;
1595	uint8				FWVersion[FW_VERSION_LENGTH];
1596    uint32               drpwVersion;
1597	int16				oRadioStatus;
1598	uint8				padding[3];
1599}TFWVerisons;
1600
1601typedef struct
1602{
1603    int16       RSSIVal;      /* free running RSSI value, 1dB resolution */
1604    int16		oRadioStatus;
1605}TTestCmdFreeRSSI;
1606
1607typedef 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
1646typedef 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
1659typedef uint32 RadioParamType_e;
1660#endif
1661
1662typedef struct RadioParam_t
1663{
1664    RadioParamType_e parameterType;
1665    int8  parameter[MAX_RADIO_PARAM_LEN];
1666} RadioParam_t;
1667
1668typedef 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
1681typedef 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
1695typedef struct RadioTune_t
1696{
1697    Channel_e   channel;
1698    RadioBand_e band;
1699} RadioTune_t;
1700
1701typedef struct RadioRSSIAndSNR_t
1702{
1703    int16   rssi;
1704    int16   snr;
1705}RadioRSSIAndSNR_t;
1706
1707/* VBIAS values (in mili-volts) */
1708typedef 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 */
1728typedef 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; */
1748typedef 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 */
1761typedef 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
1777typedef 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