1/*
2 * Copyright (c) 2013 Qualcomm Atheros, Inc.
3 *
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10 * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13 * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14 * PERFORMANCE OF THIS SOFTWARE.
15 */
16
17/*
18 * READ THIS NOTICE!
19 *
20 * Values defined in this file may only be changed under exceptional circumstances.
21 *
22 * Please ask Fiona Cain before making any changes.
23 */
24
25#ifndef __ar9300template_cus157_h__
26#define __ar9300template_cus157_h__
27
28static ar9300_eeprom_t Ar9300Template_cus157=
29{
30
31	2, //  eepromVersion;
32
33    ar9300_eeprom_template_cus157, //  templateVersion;
34
35	{0x00,0x03,0x7f,0x0,0x0,0x0}, //macAddr[6];
36
37    //static  A_UINT8   custData[OSPREY_CUSTOMER_DATA_SIZE]=
38
39	{"cus157-030-f0000"},
40//	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
41
42    //static OSPREY_BASE_EEP_HEADER baseEepHeader=
43
44	{
45		    {0,0x1f},	//   regDmn[2]; //Does this need to be outside of this structure, if it gets written after calibration
46		    0x77,	//   txrxMask;  //4 bits tx and 4 bits rx
47		    {AR9300_OPFLAGS_11G | AR9300_OPFLAGS_11A, 0},	//   opCapFlags;
48		    0,		//   rfSilent;
49		    0,		//   blueToothOptions;
50		    0,		//   deviceCap;
51		    5,		//   deviceType; // takes lower byte in eeprom location
52		    OSPREY_PWR_TABLE_OFFSET,	//    pwrTableOffset; // offset in dB to be added to beginning of pdadc table in calibration
53			{0,0},	//   params_for_tuning_caps[2];  //placeholder, get more details from Don
54            0x0d,     //featureEnable; //bit0 - enable tx temp comp
55                             //bit1 - enable tx volt comp
56                             //bit2 - enable fastClock - default to 1
57                             //bit3 - enable doubling - default to 1
58 							 //bit4 - enable internal regulator - default to 0
59							 //bit5 - enable paprd -- default to 0
60    		0,       //miscConfiguration: bit0 - turn down drivestrength
61			6,		// eepromWriteEnableGpio
62			0,		// wlanDisableGpio
63			8,		// wlanLedGpio
64			0xff,		// rxBandSelectGpio
65			0x10,			// txrxgain
66            0,		//   swreg
67	},
68
69
70	//static OSPREY_MODAL_EEP_HEADER modalHeader2G=
71	{
72
73		    0x110,			//  antCtrlCommon;                         // 4   idle, t1, t2, b (4 bits per setting)
74		    0x44444,		//  antCtrlCommon2;                        // 4    ra1l1, ra2l1, ra1l2, ra2l2, ra12
75		    {0x150,0x150,0x150},	//  antCtrlChain[OSPREY_MAX_CHAINS];       // 6   idle, t, r, rx1, rx12, b (2 bits each)
76		    {0,0,0},			//   xatten1DB[OSPREY_MAX_CHAINS];           // 3  //xatten1_db for merlin (0xa20c/b20c 5:0)
77		    {0,0,0},			//   xatten1Margin[OSPREY_MAX_CHAINS];          // 3  //xatten1_margin for merlin (0xa20c/b20c 16:12
78			25,				//    tempSlope;
79			0,				//    voltSlope;
80		    {FREQ2FBIN(2464, 1),0,0,0,0}, // spurChans[OSPREY_EEPROM_MODAL_SPURS];  // spur channels in usual fbin coding format
81		    {-1,0,0},			//    noiseFloorThreshCh[OSPREY_MAX_CHAINS]; // 3    //Check if the register is per chain
82			{0, 0, 0, 0, 0, 0,0,0,0,0,0},				// reserved
83			0,											// quick drop
84		    0,				//   xpaBiasLvl;                            // 1
85		    0x0e,			//   txFrameToDataStart;                    // 1
86		    0x0e,			//   txFrameToPaOn;                         // 1
87		    3,				//   txClip;                                     // 4 bits tx_clip, 4 bits dac_scale_cck
88		    0,				//    antennaGain;                           // 1
89		    0x2c,			//   switchSettling;                        // 1
90		    -30,			//    adcDesiredSize;                        // 1
91		    0,				//   txEndToXpaOff;                         // 1
92		    0x2,			//   txEndToRxOn;                           // 1
93		    0xe,			//   txFrameToXpaOn;                        // 1
94		    28,				//   thresh62;                              // 1
95			0x80C080,		//	 paprdRateMaskHt20						// 4
96  			0x80C080,		//	 paprdRateMaskHt40
97			0,              //   ant_div_control
98			{0,0,0,0,0,0,0,0,0}    //futureModal[9];
99	},
100
101	{{0,0,0,0,0,0,0,0,0,0,0,0,0,0}},						// base_ext1
102
103	//static A_UINT8 calFreqPier2G[OSPREY_NUM_2G_CAL_PIERS]=
104	{
105		FREQ2FBIN(2412, 1),
106		FREQ2FBIN(2437, 1),
107		FREQ2FBIN(2462, 1)
108	},
109
110	//static OSP_CAL_DATA_PER_FREQ_OP_LOOP calPierData2G[OSPREY_MAX_CHAINS][OSPREY_NUM_2G_CAL_PIERS]=
111
112	{	{{0,0,0,0,0,0},  {0,0,0,0,0,0},  {0,0,0,0,0,0}},
113		{{0,0,0,0,0,0},  {0,0,0,0,0,0},  {0,0,0,0,0,0}},
114		{{0,0,0,0,0,0},  {0,0,0,0,0,0},  {0,0,0,0,0,0}},
115	},
116
117	//A_UINT8 calTarget_freqbin_Cck[OSPREY_NUM_2G_CCK_TARGET_POWERS];
118
119	{
120		FREQ2FBIN(2412, 1),
121		FREQ2FBIN(2472, 1)
122	},
123
124	//static CAL_TARGET_POWER_LEG calTarget_freqbin_2G[OSPREY_NUM_2G_20_TARGET_POWERS]
125	{
126		FREQ2FBIN(2412, 1),
127		FREQ2FBIN(2437, 1),
128		FREQ2FBIN(2472, 1)
129	},
130
131	//static   OSP_CAL_TARGET_POWER_HT  calTarget_freqbin_2GHT20[OSPREY_NUM_2G_20_TARGET_POWERS]
132	{
133		FREQ2FBIN(2412, 1),
134		FREQ2FBIN(2437, 1),
135		FREQ2FBIN(2472, 1)
136	},
137
138	//static   OSP_CAL_TARGET_POWER_HT  calTarget_freqbin_2GHT40[OSPREY_NUM_2G_40_TARGET_POWERS]
139	{
140		FREQ2FBIN(2412, 1),
141		FREQ2FBIN(2437, 1),
142		FREQ2FBIN(2472, 1)
143	},
144
145	//static CAL_TARGET_POWER_LEG calTargetPowerCck[OSPREY_NUM_2G_CCK_TARGET_POWERS]=
146	{
147		//1L-5L,5S,11L,11S
148        {{34,34,34,34}},
149	 	{{34,34,34,34}}
150	 },
151
152	//static CAL_TARGET_POWER_LEG calTargetPower2G[OSPREY_NUM_2G_20_TARGET_POWERS]=
153	{
154        //6-24,36,48,54
155		{{34,34,34,30}},
156		{{34,34,34,30}},
157		{{34,34,34,30}},
158	},
159
160	//static   OSP_CAL_TARGET_POWER_HT  calTargetPower2GHT20[OSPREY_NUM_2G_20_TARGET_POWERS]=
161	{
162        //0_8_16,1-3_9-11_17-19,
163        //      4,5,6,7,12,13,14,15,20,21,22,23
164		{{32,32,32,32,30,30,32,32,30,30,32,32,30,30}},
165		{{32,32,32,32,30,30,32,32,30,30,32,32,30,30}},
166		{{32,32,32,32,30,30,32,32,30,30,32,32,30,30}},
167	},
168
169	//static    OSP_CAL_TARGET_POWER_HT  calTargetPower2GHT40[OSPREY_NUM_2G_40_TARGET_POWERS]=
170	{
171        //0_8_16,1-3_9-11_17-19,
172        //      4,5,6,7,12,13,14,15,20,21,22,23
173		{{30,30,30,30,30,28,30,30,28,28,30,30,28,26}},
174		{{30,30,30,30,30,28,30,30,28,28,30,30,28,26}},
175		{{30,30,30,30,30,28,30,30,28,28,30,30,28,26}},
176	},
177
178//static    A_UINT8            ctlIndex_2G[OSPREY_NUM_CTLS_2G]=
179
180	{
181
182		    0x11,
183    		0x12,
184    		0x15,
185    		0x17,
186    		0x41,
187    		0x42,
188   			0x45,
189    		0x47,
190   			0x31,
191    		0x32,
192    		0x35,
193    		0x37
194
195    },
196
197//A_UINT8   ctl_freqbin_2G[OSPREY_NUM_CTLS_2G][OSPREY_NUM_BAND_EDGES_2G];
198
199	{
200		{FREQ2FBIN(2412, 1),
201		 FREQ2FBIN(2417, 1),
202		 FREQ2FBIN(2457, 1),
203		 FREQ2FBIN(2462, 1)},
204
205		{FREQ2FBIN(2412, 1),
206		 FREQ2FBIN(2417, 1),
207		 FREQ2FBIN(2462, 1),
208		 0xFF},
209
210		{FREQ2FBIN(2412, 1),
211		 FREQ2FBIN(2417, 1),
212		 FREQ2FBIN(2462, 1),
213		 0xFF},
214
215		{FREQ2FBIN(2422, 1),
216		 FREQ2FBIN(2427, 1),
217		 FREQ2FBIN(2447, 1),
218		 FREQ2FBIN(2452, 1)},
219
220		{/*Data[4].ctlEdges[0].bChannel*/FREQ2FBIN(2412, 1),
221		/*Data[4].ctlEdges[1].bChannel*/FREQ2FBIN(2417, 1),
222		/*Data[4].ctlEdges[2].bChannel*/FREQ2FBIN(2472, 1),
223		/*Data[4].ctlEdges[3].bChannel*/FREQ2FBIN(2484, 1)},
224
225		{/*Data[5].ctlEdges[0].bChannel*/FREQ2FBIN(2412, 1),
226		 /*Data[5].ctlEdges[1].bChannel*/FREQ2FBIN(2417, 1),
227		 /*Data[5].ctlEdges[2].bChannel*/FREQ2FBIN(2472, 1),
228		 0},
229
230		{/*Data[6].ctlEdges[0].bChannel*/FREQ2FBIN(2412, 1),
231		 /*Data[6].ctlEdges[1].bChannel*/FREQ2FBIN(2417, 1),
232		 FREQ2FBIN(2472, 1),
233		 0},
234
235		{/*Data[7].ctlEdges[0].bChannel*/FREQ2FBIN(2422, 1),
236		 /*Data[7].ctlEdges[1].bChannel*/FREQ2FBIN(2427, 1),
237		 /*Data[7].ctlEdges[2].bChannel*/FREQ2FBIN(2447, 1),
238		 /*Data[7].ctlEdges[3].bChannel*/FREQ2FBIN(2462, 1)},
239
240		{/*Data[8].ctlEdges[0].bChannel*/FREQ2FBIN(2412, 1),
241		 /*Data[8].ctlEdges[1].bChannel*/FREQ2FBIN(2417, 1),
242		 /*Data[8].ctlEdges[2].bChannel*/FREQ2FBIN(2472, 1),
243		 0},
244
245		{/*Data[9].ctlEdges[0].bChannel*/FREQ2FBIN(2412, 1),
246		 /*Data[9].ctlEdges[1].bChannel*/FREQ2FBIN(2417, 1),
247		 /*Data[9].ctlEdges[2].bChannel*/FREQ2FBIN(2472, 1),
248		 0},
249
250		{/*Data[10].ctlEdges[0].bChannel*/FREQ2FBIN(2412, 1),
251		 /*Data[10].ctlEdges[1].bChannel*/FREQ2FBIN(2417, 1),
252		 /*Data[10].ctlEdges[2].bChannel*/FREQ2FBIN(2472, 1),
253		 0},
254
255		{/*Data[11].ctlEdges[0].bChannel*/FREQ2FBIN(2422, 1),
256		 /*Data[11].ctlEdges[1].bChannel*/FREQ2FBIN(2427, 1),
257		 /*Data[11].ctlEdges[2].bChannel*/FREQ2FBIN(2447, 1),
258		 /*Data[11].ctlEdges[3].bChannel*/FREQ2FBIN(2462, 1)}
259	},
260
261
262//OSP_CAL_CTL_DATA_2G   ctlPowerData_2G[OSPREY_NUM_CTLS_2G];
263
264#if AH_BYTE_ORDER == AH_BIG_ENDIAN
265    {
266
267	    {{{0, 60}, {1, 60}, {0, 60}, {0, 60}}},
268	    {{{0, 60}, {1, 60}, {0, 60}, {0, 60}}},
269	    {{{1, 60}, {0, 60}, {0, 60}, {1, 60}}},
270
271	    {{{1, 60}, {0, 60}, {0, 60}, {0, 60}}},
272	    {{{0, 60}, {1, 60}, {0, 60}, {0, 60}}},
273	    {{{0, 60}, {1, 60}, {0, 60}, {0, 60}}},
274
275	    {{{0, 60}, {1, 60}, {1, 60}, {0, 60}}},
276	    {{{0, 60}, {1, 60}, {0, 60}, {0, 60}}},
277	    {{{0, 60}, {1, 60}, {0, 60}, {0, 60}}},
278
279	    {{{0, 60}, {1, 60}, {0, 60}, {0, 60}}},
280	    {{{0, 60}, {1, 60}, {1, 60}, {1, 60}}},
281	    {{{0, 60}, {1, 60}, {1, 60}, {1, 60}}},
282
283    },
284#else
285	{
286	    {{{60, 0}, {60, 1}, {60, 0}, {60, 0}}},
287	    {{{60, 0}, {60, 1}, {60, 0}, {60, 0}}},
288	    {{{60, 1}, {60, 0}, {60, 0}, {60, 1}}},
289
290	    {{{60, 1}, {60, 0}, {60, 0}, {60, 0}}},
291	    {{{60, 0}, {60, 1}, {60, 0}, {60, 0}}},
292	    {{{60, 0}, {60, 1}, {60, 0}, {60, 0}}},
293
294	    {{{60, 0}, {60, 1}, {60, 1}, {60, 0}}},
295	    {{{60, 0}, {60, 1}, {60, 0}, {60, 0}}},
296	    {{{60, 0}, {60, 1}, {60, 0}, {60, 0}}},
297
298	    {{{60, 0}, {60, 1}, {60, 0}, {60, 0}}},
299	    {{{60, 0}, {60, 1}, {60, 1}, {60, 1}}},
300	    {{{60, 0}, {60, 1}, {60, 1}, {60, 1}}},
301	},
302#endif
303
304//static    OSPREY_MODAL_EEP_HEADER   modalHeader5G=
305
306	{
307
308		    0x220,			//  antCtrlCommon;                         // 4   idle, t1, t2, b (4 bits per setting)
309		    0x44444,		//  antCtrlCommon2;                        // 4    ra1l1, ra2l1, ra1l2, ra2l2, ra12
310		    {0x150,0x150,0x150},	//  antCtrlChain[OSPREY_MAX_CHAINS];       // 6   idle, t, r, rx1, rx12, b (2 bits each)
311		    {0,0,0},			//   xatten1DB[OSPREY_MAX_CHAINS];           // 3  //xatten1_db for merlin (0xa20c/b20c 5:0)
312		    {0,0,0},			//   xatten1Margin[OSPREY_MAX_CHAINS];          // 3  //xatten1_margin for merlin (0xa20c/b20c 16:12
313			45,				//    tempSlope;
314			0,				//    voltSlope;
315		    {0,0,0,0,0}, // spurChans[OSPREY_EEPROM_MODAL_SPURS];  // spur channels in usual fbin coding format
316		    {-1,0,0},			//    noiseFloorThreshCh[OSPREY_MAX_CHAINS]; // 3    //Check if the register is per chain
317			{0, 0, 0, 0, 0, 0,0,0,0,0,0},				// reserved
318			0,											// quick drop
319		    0,				//   xpaBiasLvl;                            // 1
320		    0x0e,			//   txFrameToDataStart;                    // 1
321		    0x0e,			//   txFrameToPaOn;                         // 1
322		    3,				//   txClip;                                     // 4 bits tx_clip, 4 bits dac_scale_cck
323		    0,				//    antennaGain;                           // 1
324		    0x2d,			//   switchSettling;                        // 1
325		    -30,			//    adcDesiredSize;                        // 1
326		    0,				//   txEndToXpaOff;                         // 1
327		    0x2,			//   txEndToRxOn;                           // 1
328		    0xe,			//   txFrameToXpaOn;                        // 1
329		    28,				//   thresh62;                              // 1
330  			0xf0e0e0,		//	 paprdRateMaskHt20						// 4
331  			0xf0e0e0,		//	 paprdRateMaskHt40						// 4
332   		{0,0,0,0,0,0,0,0,0,0}    //futureModal[10];
333	},
334
335	{				// base_ext2
336		40,				// tempSlopeLow
337		50,				// tempSlopeHigh
338		{0,0,0},
339		{0,0,0},
340		{0,0,0},
341		{0,0,0}
342	},
343
344//static    A_UINT8            calFreqPier5G[OSPREY_NUM_5G_CAL_PIERS]=
345	{
346		    //pPiers[0] =
347		    FREQ2FBIN(5180, 0),
348		    //pPiers[1] =
349		    FREQ2FBIN(5220, 0),
350		    //pPiers[2] =
351		    FREQ2FBIN(5320, 0),
352		    //pPiers[3] =
353		    FREQ2FBIN(5400, 0),
354		    //pPiers[4] =
355		    FREQ2FBIN(5500, 0),
356		    //pPiers[5] =
357		    FREQ2FBIN(5600, 0),
358		    //pPiers[6] =
359		    FREQ2FBIN(5700, 0),
360    		//pPiers[7] =
361		    FREQ2FBIN(5785, 0),
362	},
363
364//static    OSP_CAL_DATA_PER_FREQ_OP_LOOP calPierData5G[OSPREY_MAX_CHAINS][OSPREY_NUM_5G_CAL_PIERS]=
365
366	{
367		{{0,0,0,0,0,0},  {0,0,0,0,0,0},  {0,0,0,0,0,0},  {0,0,0,0,0,0},  {0,0,0,0,0,0},  {0,0,0,0,0,0},    {0,0,0,0,0,0},  {0,0,0,0,0,0}},
368		{{0,0,0,0,0,0},  {0,0,0,0,0,0},  {0,0,0,0,0,0},  {0,0,0,0,0,0},  {0,0,0,0,0,0},  {0,0,0,0,0,0},    {0,0,0,0,0,0},  {0,0,0,0,0,0}},
369		{{0,0,0,0,0,0},  {0,0,0,0,0,0},  {0,0,0,0,0,0},  {0,0,0,0,0,0},  {0,0,0,0,0,0},  {0,0,0,0,0,0},    {0,0,0,0,0,0},  {0,0,0,0,0,0}},
370
371	},
372
373//static    CAL_TARGET_POWER_LEG calTarget_freqbin_5G[OSPREY_NUM_5G_20_TARGET_POWERS]=
374
375	{
376			FREQ2FBIN(5180, 0),
377			FREQ2FBIN(5240, 0),
378			FREQ2FBIN(5320, 0),
379			FREQ2FBIN(5400, 0),
380			FREQ2FBIN(5500, 0),
381			FREQ2FBIN(5600, 0),
382			FREQ2FBIN(5700, 0),
383			FREQ2FBIN(5825, 0)
384	},
385
386//static    OSP_CAL_TARGET_POWER_HT  calTargetPower5GHT20[OSPREY_NUM_5G_20_TARGET_POWERS]=
387
388	{
389			FREQ2FBIN(5180, 0),
390			FREQ2FBIN(5240, 0),
391			FREQ2FBIN(5320, 0),
392			FREQ2FBIN(5400, 0),
393			FREQ2FBIN(5500, 0),
394			FREQ2FBIN(5700, 0),
395			FREQ2FBIN(5745, 0),
396			FREQ2FBIN(5825, 0)
397	},
398
399//static    OSP_CAL_TARGET_POWER_HT  calTargetPower5GHT40[OSPREY_NUM_5G_40_TARGET_POWERS]=
400
401	{
402			FREQ2FBIN(5180, 0),
403			FREQ2FBIN(5240, 0),
404			FREQ2FBIN(5320, 0),
405			FREQ2FBIN(5400, 0),
406			FREQ2FBIN(5500, 0),
407			FREQ2FBIN(5700, 0),
408			FREQ2FBIN(5745, 0),
409			FREQ2FBIN(5825, 0)
410	},
411
412
413//static    CAL_TARGET_POWER_LEG calTargetPower5G[OSPREY_NUM_5G_20_TARGET_POWERS]=
414
415
416	{
417        //6-24,36,48,54
418	    {{30,30,26,22}},
419	    {{30,30,26,22}},
420	    {{30,30,30,24}},
421	    {{30,30,30,24}},
422	    {{30,30,26,22}},
423	    {{30,24,20,18}},
424	    {{30,24,20,18}},
425	    {{30,24,20,18}},
426	},
427
428//static    OSP_CAL_TARGET_POWER_HT  calTargetPower5GHT20[OSPREY_NUM_5G_20_TARGET_POWERS]=
429
430	{
431        //0_8_16,1-3_9-11_17-19,
432        //      4,5,6,7,12,13,14,15,20,21,22,23
433	    {{30,30,30,28,24,20,30,28,24,18,30,26,22,16}},
434	    {{30,30,30,28,24,20,30,28,24,18,30,26,22,16}},
435	    {{30,30,30,26,22,18,30,26,22,16,30,24,20,14}},
436	    {{30,30,30,26,22,18,30,26,22,16,30,24,20,14}},
437	    {{30,30,30,24,20,16,30,24,20,14,30,22,18,12}},
438	    {{30,30,30,24,20,16,30,24,20,14,30,22,18,12}},
439	    {{28,28,28,22,18,14,28,22,18,12,28,20,16,10}},
440	    {{28,28,28,22,18,14,28,22,18,12,28,20,16,10}},
441	},
442
443//static    OSP_CAL_TARGET_POWER_HT  calTargetPower5GHT40[OSPREY_NUM_5G_40_TARGET_POWERS]=
444	{
445        //0_8_16,1-3_9-11_17-19,
446        //      4,5,6,7,12,13,14,15,20,21,22,23
447	    {{28,28,28,26,22,18,28,24,20,16,20,16,16,16}},
448	    {{28,28,28,26,22,18,28,24,20,16,20,16,16,16}},
449	    {{28,28,28,28,24,20,28,28,24,20,22,20,20,20}},
450	    {{28,28,28,28,24,20,28,28,24,20,22,20,20,20}},
451	    {{28,28,28,24,20,16,28,24,20,16,18,16,16,16}},
452	    {{28,28,28,22,18,14,22,20,16,12,14,12,12,10}},
453	    {{28,28,28,22,18,14,22,20,16,12,14,12,12,10}},
454	    {{28,28,28,22,18,14,22,20,16,12,14,12,12,10}},
455	},
456
457//static    A_UINT8            ctlIndex_5G[OSPREY_NUM_CTLS_5G]=
458
459	{
460		    //pCtlIndex[0] =
461		    0x10,
462		    //pCtlIndex[1] =
463		    0x16,
464		    //pCtlIndex[2] =
465		    0x18,
466		    //pCtlIndex[3] =
467		    0x40,
468		    //pCtlIndex[4] =
469		    0x46,
470		    //pCtlIndex[5] =
471		    0x48,
472		    //pCtlIndex[6] =
473		    0x30,
474		    //pCtlIndex[7] =
475		    0x36,
476    		//pCtlIndex[8] =
477    		0x38
478	},
479
480//    A_UINT8   ctl_freqbin_5G[OSPREY_NUM_CTLS_5G][OSPREY_NUM_BAND_EDGES_5G];
481
482	{
483	    {/* Data[0].ctlEdges[0].bChannel*/FREQ2FBIN(5180, 0),
484	    /* Data[0].ctlEdges[1].bChannel*/FREQ2FBIN(5260, 0),
485	    /* Data[0].ctlEdges[2].bChannel*/FREQ2FBIN(5280, 0),
486	    /* Data[0].ctlEdges[3].bChannel*/FREQ2FBIN(5500, 0),
487	    /* Data[0].ctlEdges[4].bChannel*/FREQ2FBIN(5600, 0),
488	    /* Data[0].ctlEdges[5].bChannel*/FREQ2FBIN(5700, 0),
489	    /* Data[0].ctlEdges[6].bChannel*/FREQ2FBIN(5745, 0),
490	    /* Data[0].ctlEdges[7].bChannel*/FREQ2FBIN(5825, 0)},
491
492	    {/* Data[1].ctlEdges[0].bChannel*/FREQ2FBIN(5180, 0),
493	    /* Data[1].ctlEdges[1].bChannel*/FREQ2FBIN(5260, 0),
494	    /* Data[1].ctlEdges[2].bChannel*/FREQ2FBIN(5280, 0),
495	    /* Data[1].ctlEdges[3].bChannel*/FREQ2FBIN(5500, 0),
496	    /* Data[1].ctlEdges[4].bChannel*/FREQ2FBIN(5520, 0),
497	    /* Data[1].ctlEdges[5].bChannel*/FREQ2FBIN(5700, 0),
498	    /* Data[1].ctlEdges[6].bChannel*/FREQ2FBIN(5745, 0),
499	    /* Data[1].ctlEdges[7].bChannel*/FREQ2FBIN(5825, 0)},
500
501	    {/* Data[2].ctlEdges[0].bChannel*/FREQ2FBIN(5190, 0),
502	    /* Data[2].ctlEdges[1].bChannel*/FREQ2FBIN(5230, 0),
503	    /* Data[2].ctlEdges[2].bChannel*/FREQ2FBIN(5270, 0),
504	    /* Data[2].ctlEdges[3].bChannel*/FREQ2FBIN(5310, 0),
505	    /* Data[2].ctlEdges[4].bChannel*/FREQ2FBIN(5510, 0),
506	    /* Data[2].ctlEdges[5].bChannel*/FREQ2FBIN(5550, 0),
507	    /* Data[2].ctlEdges[6].bChannel*/FREQ2FBIN(5670, 0),
508	    /* Data[2].ctlEdges[7].bChannel*/FREQ2FBIN(5755, 0)},
509
510	    {/* Data[3].ctlEdges[0].bChannel*/FREQ2FBIN(5180, 0),
511	    /* Data[3].ctlEdges[1].bChannel*/FREQ2FBIN(5200, 0),
512	    /* Data[3].ctlEdges[2].bChannel*/FREQ2FBIN(5260, 0),
513	    /* Data[3].ctlEdges[3].bChannel*/FREQ2FBIN(5320, 0),
514	    /* Data[3].ctlEdges[4].bChannel*/FREQ2FBIN(5500, 0),
515	    /* Data[3].ctlEdges[5].bChannel*/FREQ2FBIN(5700, 0),
516	    /* Data[3].ctlEdges[6].bChannel*/0xFF,
517	    /* Data[3].ctlEdges[7].bChannel*/0xFF},
518
519	    {/* Data[4].ctlEdges[0].bChannel*/FREQ2FBIN(5180, 0),
520	    /* Data[4].ctlEdges[1].bChannel*/FREQ2FBIN(5260, 0),
521	    /* Data[4].ctlEdges[2].bChannel*/FREQ2FBIN(5500, 0),
522	    /* Data[4].ctlEdges[3].bChannel*/FREQ2FBIN(5700, 0),
523	    /* Data[4].ctlEdges[4].bChannel*/0xFF,
524	    /* Data[4].ctlEdges[5].bChannel*/0xFF,
525	    /* Data[4].ctlEdges[6].bChannel*/0xFF,
526	    /* Data[4].ctlEdges[7].bChannel*/0xFF},
527
528	    {/* Data[5].ctlEdges[0].bChannel*/FREQ2FBIN(5190, 0),
529	    /* Data[5].ctlEdges[1].bChannel*/FREQ2FBIN(5270, 0),
530	    /* Data[5].ctlEdges[2].bChannel*/FREQ2FBIN(5310, 0),
531	    /* Data[5].ctlEdges[3].bChannel*/FREQ2FBIN(5510, 0),
532	    /* Data[5].ctlEdges[4].bChannel*/FREQ2FBIN(5590, 0),
533	    /* Data[5].ctlEdges[5].bChannel*/FREQ2FBIN(5670, 0),
534	    /* Data[5].ctlEdges[6].bChannel*/0xFF,
535	    /* Data[5].ctlEdges[7].bChannel*/0xFF},
536
537	    {/* Data[6].ctlEdges[0].bChannel*/FREQ2FBIN(5180, 0),
538	    /* Data[6].ctlEdges[1].bChannel*/FREQ2FBIN(5200, 0),
539	    /* Data[6].ctlEdges[2].bChannel*/FREQ2FBIN(5220, 0),
540	    /* Data[6].ctlEdges[3].bChannel*/FREQ2FBIN(5260, 0),
541	    /* Data[6].ctlEdges[4].bChannel*/FREQ2FBIN(5500, 0),
542	    /* Data[6].ctlEdges[5].bChannel*/FREQ2FBIN(5600, 0),
543	    /* Data[6].ctlEdges[6].bChannel*/FREQ2FBIN(5700, 0),
544	    /* Data[6].ctlEdges[7].bChannel*/FREQ2FBIN(5745, 0)},
545
546	    {/* Data[7].ctlEdges[0].bChannel*/FREQ2FBIN(5180, 0),
547	    /* Data[7].ctlEdges[1].bChannel*/FREQ2FBIN(5260, 0),
548	    /* Data[7].ctlEdges[2].bChannel*/FREQ2FBIN(5320, 0),
549	    /* Data[7].ctlEdges[3].bChannel*/FREQ2FBIN(5500, 0),
550	    /* Data[7].ctlEdges[4].bChannel*/FREQ2FBIN(5560, 0),
551	    /* Data[7].ctlEdges[5].bChannel*/FREQ2FBIN(5700, 0),
552	    /* Data[7].ctlEdges[6].bChannel*/FREQ2FBIN(5745, 0),
553	    /* Data[7].ctlEdges[7].bChannel*/FREQ2FBIN(5825, 0)},
554
555	    {/* Data[8].ctlEdges[0].bChannel*/FREQ2FBIN(5190, 0),
556	    /* Data[8].ctlEdges[1].bChannel*/FREQ2FBIN(5230, 0),
557	    /* Data[8].ctlEdges[2].bChannel*/FREQ2FBIN(5270, 0),
558	    /* Data[8].ctlEdges[3].bChannel*/FREQ2FBIN(5510, 0),
559	    /* Data[8].ctlEdges[4].bChannel*/FREQ2FBIN(5550, 0),
560	    /* Data[8].ctlEdges[5].bChannel*/FREQ2FBIN(5670, 0),
561	    /* Data[8].ctlEdges[6].bChannel*/FREQ2FBIN(5755, 0),
562	    /* Data[8].ctlEdges[7].bChannel*/FREQ2FBIN(5795, 0)}
563	},
564
565//static    OSP_CAL_CTL_DATA_5G   ctlData_5G[OSPREY_NUM_CTLS_5G]=
566
567#if AH_BYTE_ORDER == AH_BIG_ENDIAN
568	{
569	    {{{1, 60},
570	      {1, 60},
571	      {1, 60},
572	      {1, 60},
573	      {1, 60},
574	      {1, 60},
575	      {1, 60},
576	      {0, 60}}},
577
578	    {{{1, 60},
579	      {1, 60},
580	      {1, 60},
581	      {1, 60},
582	      {1, 60},
583	      {1, 60},
584	      {1, 60},
585	      {0, 60}}},
586
587	    {{{0, 60},
588	      {1, 60},
589	      {0, 60},
590	      {1, 60},
591	      {1, 60},
592	      {1, 60},
593	      {1, 60},
594	      {1, 60}}},
595
596	    {{{0, 60},
597	      {1, 60},
598	      {1, 60},
599	      {0, 60},
600	      {1, 60},
601	      {0, 60},
602	      {0, 60},
603	      {0, 60}}},
604
605	    {{{1, 60},
606	      {1, 60},
607	      {1, 60},
608	      {0, 60},
609	      {0, 60},
610	      {0, 60},
611	      {0, 60},
612	      {0, 60}}},
613
614	    {{{1, 60},
615	      {1, 60},
616	      {1, 60},
617	      {1, 60},
618	      {1, 60},
619	      {0, 60},
620	      {0, 60},
621	      {0, 60}}},
622
623	    {{{1, 60},
624	      {1, 60},
625	      {1, 60},
626	      {1, 60},
627	      {1, 60},
628	      {1, 60},
629	      {1, 60},
630	      {1, 60}}},
631
632	    {{{1, 60},
633	      {1, 60},
634	      {0, 60},
635	      {1, 60},
636	      {1, 60},
637	      {1, 60},
638	      {1, 60},
639	      {0, 60}}},
640
641	    {{{1, 60},
642	      {0, 60},
643	      {1, 60},
644	      {1, 60},
645	      {1, 60},
646	      {1, 60},
647	      {0, 60},
648	      {1, 60}}},
649	}
650#else
651	{
652	    {{{60, 1},
653	      {60, 1},
654	      {60, 1},
655	      {60, 1},
656	      {60, 1},
657	      {60, 1},
658	      {60, 1},
659	      {60, 0}}},
660
661	    {{{60, 1},
662	      {60, 1},
663	      {60, 1},
664	      {60, 1},
665	      {60, 1},
666	      {60, 1},
667	      {60, 1},
668	      {60, 0}}},
669
670	    {{{60, 0},
671	      {60, 1},
672	      {60, 0},
673	      {60, 1},
674	      {60, 1},
675	      {60, 1},
676	      {60, 1},
677	      {60, 1}}},
678
679	    {{{60, 0},
680	      {60, 1},
681	      {60, 1},
682	      {60, 0},
683	      {60, 1},
684	      {60, 0},
685	      {60, 0},
686	      {60, 0}}},
687
688	    {{{60, 1},
689	      {60, 1},
690	      {60, 1},
691	      {60, 0},
692	      {60, 0},
693	      {60, 0},
694	      {60, 0},
695	      {60, 0}}},
696
697	    {{{60, 1},
698	      {60, 1},
699	      {60, 1},
700	      {60, 1},
701	      {60, 1},
702	      {60, 0},
703	      {60, 0},
704	      {60, 0}}},
705
706	    {{{60, 1},
707	      {60, 1},
708	      {60, 1},
709	      {60, 1},
710	      {60, 1},
711	      {60, 1},
712	      {60, 1},
713	      {60, 1}}},
714
715	    {{{60, 1},
716	      {60, 1},
717	      {60, 0},
718	      {60, 1},
719	      {60, 1},
720	      {60, 1},
721	      {60, 1},
722	      {60, 0}}},
723
724	    {{{60, 1},
725	      {60, 0},
726	      {60, 1},
727	      {60, 1},
728	      {60, 1},
729	      {60, 1},
730	      {60, 0},
731	      {60, 1}}},
732	}
733#endif
734};
735
736#endif
737
738