comparison src/cs/layer1/cust0/l1_rf12.c @ 0:b6a5e36de839

src/cs: initial import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 15 Jul 2018 04:39:26 +0000
parents
children a312d83bb20c
comparison
equal deleted inserted replaced
-1:000000000000 0:b6a5e36de839
1 #if (OP_L1_STANDALONE == 1)
2 // Define the correct enumeration of PA. Consult tpudrv12.h for the enumeration.
3 #if ((BOARD == 40) || (BOARD == 41) || (BOARD == 45)) // EvaRita + D-sample or EvaConso
4 #define RF_PA 3
5 #else
6 #define RF_PA 0
7 #endif
8 #else
9 #include "rf.cfg"
10 //#define RF_PA 3 // Hitachi
11 #endif
12
13 /*
14 * FreeCalypso: the following T_RF table perfectly matches
15 * between the MV100 source and the Leonardo binary object.
16 */
17
18 T_RF rf =
19 {
20 RF_RITA_10, //RF revision
21 RF_HW_BAND_SUPPORT, // radio_band_support E-GSM/DCS + PCS
22
23 { //RX structure
24 { //AGC structure
25 140, // low_agc_noise_thr;
26 110, // high_agc_sat_thr;
27 6, // low_agc;
28 34, // high_agc;
29 //IL2AGC tables
30 { // below is: il2agc_pwr[121];
31 // il2agc_max[121];
32 // il2agc_av[121];
33 // il2agc_pwr
34 // Note this is shared between PCN and EGSM.
35 14, /* EGSM_MAX IL=0 */
36 14, /* EGSM_MAX IL=-1 */
37 14, /* EGSM_MAX IL=-2 */
38 14, /* EGSM_MAX IL=-3 */
39 14, /* EGSM_MAX IL=-4 */
40 14, /* EGSM_MAX IL=-5 */
41 14, /* EGSM_MAX IL=-6 */
42 14, /* EGSM_MAX IL=-7 */
43 14, /* EGSM_MAX IL=-8 */
44 14, /* EGSM_MAX IL=-9 */
45 14, /* EGSM_MAX IL=-10 */
46 14, /* EGSM_MAX IL=-11 */
47 14, /* EGSM_MAX IL=-12 */
48 14, /* EGSM_MAX IL=-13 */
49 14, /* EGSM_MAX IL=-14 */
50 14, /* EGSM_MAX IL=-15 */
51 14, /* EGSM_MAX IL=-16 */
52 14, /* EGSM_MAX IL=-17 */
53 14, /* EGSM_MAX IL=-18 */
54 14, /* EGSM_MAX IL=-19 */
55 14, /* EGSM_MAX IL=-20 */
56 14, /* EGSM_MAX IL=-21 */
57 14, /* EGSM_MAX IL=-22 */
58 14, /* EGSM_MAX IL=-23 */
59 14, /* EGSM_MAX IL=-24 */
60 14, /* EGSM_MAX IL=-25 */
61 14, /* EGSM_MAX IL=-26 */
62 14, /* EGSM_MAX IL=-27 */
63 14, /* EGSM_MAX IL=-28 */
64 14, /* EGSM_MAX IL=-29 */
65 14, /* EGSM_MAX IL=-30 */
66 14, /* EGSM_MAX IL=-31 */
67 14, /* EGSM_MAX IL=-32 */
68 14, /* EGSM_MAX IL=-33 */
69 14, /* EGSM_MAX IL=-34 */
70 14, /* EGSM_MAX IL=-35 */
71 14, /* EGSM_MAX IL=-36 */
72 14, /* EGSM_MAX IL=-37 */
73 14, /* EGSM_MAX IL=-38 */
74 14, /* EGSM_MAX IL=-39 */
75 14, /* EGSM_MAX IL=-40 */
76 14, /* EGSM_MAX IL=-41 */
77 14, /* EGSM_MAX IL=-42 */
78 14, /* EGSM_MAX IL=-43 */
79 14, /* EGSM_MAX IL=-44 */
80 14, /* EGSM_MAX IL=-45 */
81 14, /* EGSM_MAX IL=-46 */
82 14, /* EGSM_MAX IL=-47 */
83 14, /* EGSM_MAX IL=-48 */
84 14, /* EGSM_MAX IL=-49 */
85 14, /* EGSM_MAX IL=-50 */
86 14, /* EGSM_MAX IL=-51 */
87 14, /* EGSM_MAX IL=-52 */
88 14, /* EGSM_MAX IL=-53 */
89 14, /* EGSM_MAX IL=-54 */
90 16, /* EGSM_MAX IL=-55 */
91 16, /* EGSM_MAX IL=-56 */
92 18, /* EGSM_MAX IL=-57 */
93 18, /* EGSM_MAX IL=-58 */
94 20, /* EGSM_MAX IL=-59 */
95 20, /* EGSM_MAX IL=-60 */
96 22, /* EGSM_MAX IL=-61 */
97 22, /* EGSM_MAX IL=-62 */
98 24, /* EGSM_MAX IL=-63 */
99 24, /* EGSM_MAX IL=-64 */
100 26, /* EGSM_MAX IL=-65 */
101 26, /* EGSM_MAX IL=-66 */
102 28, /* EGSM_MAX IL=-67 */
103 28, /* EGSM_MAX IL=-68 */
104 30, /* EGSM_MAX IL=-69 */
105 30, /* EGSM_MAX IL=-70 */
106 32, /* EGSM_MAX IL=-71 */
107 32, /* EGSM_MAX IL=-72 */
108 34, /* EGSM_MAX IL=-73 */
109 34, /* EGSM_MAX IL=-74 */
110 36, /* EGSM_MAX IL=-75 */
111 36, /* EGSM_MAX IL=-76 */
112 38, /* EGSM_MAX IL=-77 */
113 38, /* EGSM_MAX IL=-78 */
114 40, /* EGSM_MAX IL=-79 */
115 40, /* EGSM_MAX IL=-80 */
116 40, /* EGSM_MAX IL=-81 */
117 40, /* EGSM_MAX IL=-82 */
118 40, /* EGSM_MAX IL=-83 */
119 40, /* EGSM_MAX IL=-84 */
120 40, /* EGSM_MAX IL=-85 */
121 40, /* EGSM_MAX IL=-86 */
122 40, /* EGSM_MAX IL=-87 */
123 40, /* EGSM_MAX IL=-88 */
124 40, /* EGSM_MAX IL=-89 */
125 40, /* EGSM_MAX IL=-90 */
126 40, /* EGSM_MAX IL=-91 */
127 40, /* EGSM_MAX IL=-92 */
128 40, /* EGSM_MAX IL=-93 */
129 40, /* EGSM_MAX IL=-94 */
130 40, /* EGSM_MAX IL=-95 */
131 40, /* EGSM_MAX IL=-96 */
132 40, /* EGSM_MAX IL=-97 */
133 40, /* EGSM_MAX IL=-98 */
134 40, /* EGSM_MAX IL=-99 */
135 40, /* EGSM_MAX IL=-100 */
136 40, /* EGSM_MAX IL=-101 */
137 40, /* EGSM_MAX IL=-102 */
138 40, /* EGSM_MAX IL=-103 */
139 40, /* EGSM_MAX IL=-104 */
140 40, /* EGSM_MAX IL=-105 */
141 40, /* EGSM_MAX IL=-106 */
142 40, /* EGSM_MAX IL=-107 */
143 40, /* EGSM_MAX IL=-108 */
144 40, /* EGSM_MAX IL=-109 */
145 40, /* EGSM_MAX IL=-110 */
146 40, /* EGSM_MAX IL=-111 */
147 40, /* EGSM_MAX IL=-112 */
148 40, /* EGSM_MAX IL=-113 */
149 40, /* EGSM_MAX IL=-114 */
150 40, /* EGSM_MAX IL=-115 */
151 40, /* EGSM_MAX IL=-116 */
152 40, /* EGSM_MAX IL=-117 */
153 40, /* EGSM_MAX IL=-118 */
154 40, /* EGSM_MAX IL=-119 */
155 40 /* EGSM_MAX IL=-120 */
156 },
157 { // il2agc_max
158 // Note this is shared between PCN and EGSM.
159 14, /* EGSM_MAX IL=0 */
160 14, /* EGSM_MAX IL=-1 */
161 14, /* EGSM_MAX IL=-2 */
162 14, /* EGSM_MAX IL=-3 */
163 14, /* EGSM_MAX IL=-4 */
164 14, /* EGSM_MAX IL=-5 */
165 14, /* EGSM_MAX IL=-6 */
166 14, /* EGSM_MAX IL=-7 */
167 14, /* EGSM_MAX IL=-8 */
168 14, /* EGSM_MAX IL=-9 */
169 14, /* EGSM_MAX IL=-10 */
170 14, /* EGSM_MAX IL=-11 */
171 14, /* EGSM_MAX IL=-12 */
172 14, /* EGSM_MAX IL=-13 */
173 14, /* EGSM_MAX IL=-14 */
174 14, /* EGSM_MAX IL=-15 */
175 14, /* EGSM_MAX IL=-16 */
176 14, /* EGSM_MAX IL=-17 */
177 14, /* EGSM_MAX IL=-18 */
178 14, /* EGSM_MAX IL=-19 */
179 14, /* EGSM_MAX IL=-20 */
180 14, /* EGSM_MAX IL=-21 */
181 14, /* EGSM_MAX IL=-22 */
182 14, /* EGSM_MAX IL=-23 */
183 14, /* EGSM_MAX IL=-24 */
184 14, /* EGSM_MAX IL=-25 */
185 14, /* EGSM_MAX IL=-26 */
186 14, /* EGSM_MAX IL=-27 */
187 14, /* EGSM_MAX IL=-28 */
188 14, /* EGSM_MAX IL=-29 */
189 14, /* EGSM_MAX IL=-30 */
190 14, /* EGSM_MAX IL=-31 */
191 14, /* EGSM_MAX IL=-32 */
192 14, /* EGSM_MAX IL=-33 */
193 14, /* EGSM_MAX IL=-34 */
194 14, /* EGSM_MAX IL=-35 */
195 14, /* EGSM_MAX IL=-36 */
196 14, /* EGSM_MAX IL=-37 */
197 14, /* EGSM_MAX IL=-38 */
198 14, /* EGSM_MAX IL=-39 */
199 14, /* EGSM_MAX IL=-40 */
200 14, /* EGSM_MAX IL=-41 */
201 14, /* EGSM_MAX IL=-42 */
202 14, /* EGSM_MAX IL=-43 */
203 14, /* EGSM_MAX IL=-44 */
204 14, /* EGSM_MAX IL=-45 */
205 14, /* EGSM_MAX IL=-46 */
206 14, /* EGSM_MAX IL=-47 */
207 14, /* EGSM_MAX IL=-48 */
208 14, /* EGSM_MAX IL=-49 */
209 14, /* EGSM_MAX IL=-50 */
210 14, /* EGSM_MAX IL=-51 */
211 14, /* EGSM_MAX IL=-52 */
212 14, /* EGSM_MAX IL=-53 */
213 14, /* EGSM_MAX IL=-54 */
214 16, /* EGSM_MAX IL=-55 */
215 16, /* EGSM_MAX IL=-56 */
216 18, /* EGSM_MAX IL=-57 */
217 18, /* EGSM_MAX IL=-58 */
218 20, /* EGSM_MAX IL=-59 */
219 20, /* EGSM_MAX IL=-60 */
220 22, /* EGSM_MAX IL=-61 */
221 22, /* EGSM_MAX IL=-62 */
222 24, /* EGSM_MAX IL=-63 */
223 24, /* EGSM_MAX IL=-64 */
224 26, /* EGSM_MAX IL=-65 */
225 26, /* EGSM_MAX IL=-66 */
226 28, /* EGSM_MAX IL=-67 */
227 28, /* EGSM_MAX IL=-68 */
228 30, /* EGSM_MAX IL=-69 */
229 30, /* EGSM_MAX IL=-70 */
230 32, /* EGSM_MAX IL=-71 */
231 32, /* EGSM_MAX IL=-72 */
232 34, /* EGSM_MAX IL=-73 */
233 34, /* EGSM_MAX IL=-74 */
234 36, /* EGSM_MAX IL=-75 */
235 36, /* EGSM_MAX IL=-76 */
236 38, /* EGSM_MAX IL=-77 */
237 38, /* EGSM_MAX IL=-78 */
238 40, /* EGSM_MAX IL=-79 */
239 40, /* EGSM_MAX IL=-80 */
240 40, /* EGSM_MAX IL=-81 */
241 40, /* EGSM_MAX IL=-82 */
242 40, /* EGSM_MAX IL=-83 */
243 40, /* EGSM_MAX IL=-84 */
244 40, /* EGSM_MAX IL=-85 */
245 40, /* EGSM_MAX IL=-86 */
246 40, /* EGSM_MAX IL=-87 */
247 40, /* EGSM_MAX IL=-88 */
248 40, /* EGSM_MAX IL=-89 */
249 40, /* EGSM_MAX IL=-90 */
250 40, /* EGSM_MAX IL=-91 */
251 40, /* EGSM_MAX IL=-92 */
252 40, /* EGSM_MAX IL=-93 */
253 40, /* EGSM_MAX IL=-94 */
254 40, /* EGSM_MAX IL=-95 */
255 40, /* EGSM_MAX IL=-96 */
256 40, /* EGSM_MAX IL=-97 */
257 40, /* EGSM_MAX IL=-98 */
258 40, /* EGSM_MAX IL=-99 */
259 40, /* EGSM_MAX IL=-100 */
260 40, /* EGSM_MAX IL=-101 */
261 40, /* EGSM_MAX IL=-102 */
262 40, /* EGSM_MAX IL=-103 */
263 40, /* EGSM_MAX IL=-104 */
264 40, /* EGSM_MAX IL=-105 */
265 40, /* EGSM_MAX IL=-106 */
266 40, /* EGSM_MAX IL=-107 */
267 40, /* EGSM_MAX IL=-108 */
268 40, /* EGSM_MAX IL=-109 */
269 40, /* EGSM_MAX IL=-110 */
270 40, /* EGSM_MAX IL=-111 */
271 40, /* EGSM_MAX IL=-112 */
272 40, /* EGSM_MAX IL=-113 */
273 40, /* EGSM_MAX IL=-114 */
274 40, /* EGSM_MAX IL=-115 */
275 40, /* EGSM_MAX IL=-116 */
276 40, /* EGSM_MAX IL=-117 */
277 40, /* EGSM_MAX IL=-118 */
278 40, /* EGSM_MAX IL=-119 */
279 40 /* EGSM_MAX IL=-120 */
280 },
281 { // il2agc_av
282 // Note this is shared between PCN and EGSM.
283 14, /* EGSM_MAX IL=0 */
284 14, /* EGSM_MAX IL=-1 */
285 14, /* EGSM_MAX IL=-2 */
286 14, /* EGSM_MAX IL=-3 */
287 14, /* EGSM_MAX IL=-4 */
288 14, /* EGSM_MAX IL=-5 */
289 14, /* EGSM_MAX IL=-6 */
290 14, /* EGSM_MAX IL=-7 */
291 14, /* EGSM_MAX IL=-8 */
292 14, /* EGSM_MAX IL=-9 */
293 14, /* EGSM_MAX IL=-10 */
294 14, /* EGSM_MAX IL=-11 */
295 14, /* EGSM_MAX IL=-12 */
296 14, /* EGSM_MAX IL=-13 */
297 14, /* EGSM_MAX IL=-14 */
298 14, /* EGSM_MAX IL=-15 */
299 14, /* EGSM_MAX IL=-16 */
300 14, /* EGSM_MAX IL=-17 */
301 14, /* EGSM_MAX IL=-18 */
302 14, /* EGSM_MAX IL=-19 */
303 14, /* EGSM_MAX IL=-20 */
304 14, /* EGSM_MAX IL=-21 */
305 14, /* EGSM_MAX IL=-22 */
306 14, /* EGSM_MAX IL=-23 */
307 14, /* EGSM_MAX IL=-24 */
308 14, /* EGSM_MAX IL=-25 */
309 14, /* EGSM_MAX IL=-26 */
310 14, /* EGSM_MAX IL=-27 */
311 14, /* EGSM_MAX IL=-28 */
312 14, /* EGSM_MAX IL=-29 */
313 14, /* EGSM_MAX IL=-30 */
314 14, /* EGSM_MAX IL=-31 */
315 14, /* EGSM_MAX IL=-32 */
316 14, /* EGSM_MAX IL=-33 */
317 14, /* EGSM_MAX IL=-34 */
318 14, /* EGSM_MAX IL=-35 */
319 14, /* EGSM_MAX IL=-36 */
320 14, /* EGSM_MAX IL=-37 */
321 14, /* EGSM_MAX IL=-38 */
322 14, /* EGSM_MAX IL=-39 */
323 14, /* EGSM_MAX IL=-40 */
324 14, /* EGSM_MAX IL=-41 */
325 14, /* EGSM_MAX IL=-42 */
326 14, /* EGSM_MAX IL=-43 */
327 14, /* EGSM_MAX IL=-44 */
328 14, /* EGSM_MAX IL=-45 */
329 14, /* EGSM_MAX IL=-46 */
330 14, /* EGSM_MAX IL=-47 */
331 14, /* EGSM_MAX IL=-48 */
332 14, /* EGSM_MAX IL=-49 */
333 14, /* EGSM_MAX IL=-50 */
334 14, /* EGSM_MAX IL=-51 */
335 14, /* EGSM_MAX IL=-52 */
336 14, /* EGSM_MAX IL=-53 */
337 14, /* EGSM_MAX IL=-54 */
338 16, /* EGSM_MAX IL=-55 */
339 16, /* EGSM_MAX IL=-56 */
340 18, /* EGSM_MAX IL=-57 */
341 18, /* EGSM_MAX IL=-58 */
342 20, /* EGSM_MAX IL=-59 */
343 20, /* EGSM_MAX IL=-60 */
344 22, /* EGSM_MAX IL=-61 */
345 22, /* EGSM_MAX IL=-62 */
346 24, /* EGSM_MAX IL=-63 */
347 24, /* EGSM_MAX IL=-64 */
348 26, /* EGSM_MAX IL=-65 */
349 26, /* EGSM_MAX IL=-66 */
350 28, /* EGSM_MAX IL=-67 */
351 28, /* EGSM_MAX IL=-68 */
352 30, /* EGSM_MAX IL=-69 */
353 30, /* EGSM_MAX IL=-70 */
354 32, /* EGSM_MAX IL=-71 */
355 32, /* EGSM_MAX IL=-72 */
356 34, /* EGSM_MAX IL=-73 */
357 34, /* EGSM_MAX IL=-74 */
358 36, /* EGSM_MAX IL=-75 */
359 36, /* EGSM_MAX IL=-76 */
360 38, /* EGSM_MAX IL=-77 */
361 38, /* EGSM_MAX IL=-78 */
362 40, /* EGSM_MAX IL=-79 */
363 40, /* EGSM_MAX IL=-80 */
364 40, /* EGSM_MAX IL=-81 */
365 40, /* EGSM_MAX IL=-82 */
366 40, /* EGSM_MAX IL=-83 */
367 40, /* EGSM_MAX IL=-84 */
368 40, /* EGSM_MAX IL=-85 */
369 40, /* EGSM_MAX IL=-86 */
370 40, /* EGSM_MAX IL=-87 */
371 40, /* EGSM_MAX IL=-88 */
372 40, /* EGSM_MAX IL=-89 */
373 40, /* EGSM_MAX IL=-90 */
374 40, /* EGSM_MAX IL=-91 */
375 40, /* EGSM_MAX IL=-92 */
376 40, /* EGSM_MAX IL=-93 */
377 40, /* EGSM_MAX IL=-94 */
378 40, /* EGSM_MAX IL=-95 */
379 40, /* EGSM_MAX IL=-96 */
380 40, /* EGSM_MAX IL=-97 */
381 40, /* EGSM_MAX IL=-98 */
382 40, /* EGSM_MAX IL=-99 */
383 40, /* EGSM_MAX IL=-100 */
384 40, /* EGSM_MAX IL=-101 */
385 40, /* EGSM_MAX IL=-102 */
386 40, /* EGSM_MAX IL=-103 */
387 40, /* EGSM_MAX IL=-104 */
388 40, /* EGSM_MAX IL=-105 */
389 40, /* EGSM_MAX IL=-106 */
390 40, /* EGSM_MAX IL=-107 */
391 40, /* EGSM_MAX IL=-108 */
392 40, /* EGSM_MAX IL=-109 */
393 40, /* EGSM_MAX IL=-110 */
394 40, /* EGSM_MAX IL=-111 */
395 40, /* EGSM_MAX IL=-112 */
396 40, /* EGSM_MAX IL=-113 */
397 40, /* EGSM_MAX IL=-114 */
398 40, /* EGSM_MAX IL=-115 */
399 40, /* EGSM_MAX IL=-116 */
400 40, /* EGSM_MAX IL=-117 */
401 40, /* EGSM_MAX IL=-118 */
402 40, /* EGSM_MAX IL=-119 */
403 40 /* EGSM_MAX IL=-120 */
404 }
405 },
406 },
407 {
408 {0, 0}, // ramp up and down delays
409 GUARD_BITS, // number of guard bits needed for ramp up
410 PRG_TX // propagation delay PRG_TX
411 },
412 { //AFC parameters
413 EEPROM_AFC,
414 C_Psi_sta_inv, // (1/C_Psi_sta)
415 C_Psi_st, // C_Psi_sta * 0.8 F0.16
416 C_Psi_st_32, // F0.32
417 C_Psi_st_inv // (1/C_Psi_st)
418
419 #if (VCXO_ALGO==1)
420 ,C_AFC_DAC_CENTER, // VCXO startup parameter - best guess
421 C_AFC_DAC_MIN, // VCXO startup parameter - 15ppm
422 C_AFC_DAC_MAX, // VCXO startup parameter + 15ppm
423 C_AFC_SNR_THR // snr - Default threshold value
424 #endif
425 }
426 };
427
428 T_RF_BAND rf_band[GSM_BANDS]; //uninitialised rf struct for bands
429
430 /*
431 * The const T_RF_BAND rf_{900,1800,850,1900} structures that follow
432 * are the versions that appear in the .const section of l1_cust.obj
433 * in the l1_custom_int.lib Leonardo blob, used successfully in leo2moko.
434 * As revealed with objgrep, this .const section with these uncalibrated
435 * defaults in it also appears in the moko11 binary - I'm guessing that
436 * Openmoko probably had no source for this part either, and used TI's
437 * standard Leonardo binary lib. The pretty C formatting presented here
438 * is courtesy of the calextract utility.
439 *
440 * Late 2017 addition: when building the fw for Compal targets, we use the
441 * ramps tables extracted from C139 firmware, so we run with Tx ramp
442 * templates that are supposed to be correct for the hw we are running on.
443 *
444 * When we build the fw for FreeCalypso targets (not Compal), we use the
445 * original ramps tables from TI which are presumed to be correct for
446 * Openmoko's RF3166 PA: these compiled-in ramps tables end up
447 * in the FFS of our shipping products when our production calibration
448 * station (or more precisely, fc-rfcal-txband) issues the me 104 command.
449 *
450 * For the Pirelli target the compiled-in ramps tables do not matter
451 * as we use the ramps tables from Pirelli's factory data block on this
452 * target, courtesy of the fc-fsio pirelli-magnetite-init command.
453 */
454
455 #if (ORDER2_TX_TEMP_CAL != 1)
456 #error "Hard-coded T_RF_BAND structs expect ORDER2_TX_TEMP_CAL to be 1"
457 #endif
458
459 const T_RF_BAND rf_900 = {
460 { /* Rx structure */
461 { /* T_RX_CAL_PARAMS */
462 193,
463 40,
464 40,
465 44,
466 },
467 { /* T_RF_AGC_BANDs */
468 { 10, 0},
469 { 30, 0},
470 { 51, 0},
471 { 71, 0},
472 { 90, 0},
473 { 112, 0},
474 { 124, 0},
475 { 991, 0},
476 { 992, 0},
477 { 1023, 0},
478 },
479 { /* Rx temperature compensation */
480 { -15, 0},
481 { -5, 0},
482 { 6, 0},
483 { 16, 0},
484 { 25, 0},
485 { 35, 0},
486 { 45, 0},
487 { 56, 0},
488 { 66, 0},
489 { 75, 0},
490 { 100, 0},
491 },
492 },
493 { /* Tx structure */
494 { /* levels */
495 { 465, 0, 0}, /* 0 */
496 { 465, 0, 0}, /* 1 */
497 { 465, 0, 0}, /* 2 */
498 { 465, 0, 0}, /* 3 */
499 { 465, 0, 0}, /* 4 */
500 { 465, 0, 0}, /* 5 */
501 { 387, 1, 0}, /* 6 */
502 { 324, 2, 0}, /* 7 */
503 { 260, 3, 0}, /* 8 */
504 { 210, 4, 0}, /* 9 */
505 { 170, 5, 0}, /* 10 */
506 { 138, 6, 0}, /* 11 */
507 { 113, 7, 0}, /* 12 */
508 { 92, 8, 0}, /* 13 */
509 { 76, 9, 0}, /* 14 */
510 { 62, 10, 0}, /* 15 */
511 { 51, 11, 0}, /* 16 */
512 { 42, 12, 0}, /* 17 */
513 { 34, 13, 0}, /* 18 */
514 { 27, 14, 0}, /* 19 */
515 { 27, 14, 0}, /* 20 */
516 { 27, 14, 0}, /* 21 */
517 { 27, 14, 0}, /* 22 */
518 { 27, 14, 0}, /* 23 */
519 { 27, 14, 0}, /* 24 */
520 { 27, 14, 0}, /* 25 */
521 { 27, 14, 0}, /* 26 */
522 { 27, 14, 0}, /* 27 */
523 { 27, 14, 0}, /* 28 */
524 { 27, 14, 0}, /* 29 */
525 { 27, 14, 0}, /* 30 */
526 { 27, 14, 0}, /* 31 */
527 },
528 { /* channel calibration tables */
529 { /* calibration table 0 */
530 { 40, 128},
531 { 80, 128},
532 { 124, 128},
533 { 586, 128},
534 { 661, 128},
535 { 736, 128},
536 { 885, 128},
537 { 1023, 128},
538 },
539 { /* calibration table 1 */
540 { 40, 128},
541 { 80, 128},
542 { 124, 128},
543 { 586, 128},
544 { 661, 128},
545 { 736, 128},
546 { 885, 128},
547 { 1023, 128},
548 },
549 { /* calibration table 2 */
550 { 40, 128},
551 { 80, 128},
552 { 124, 128},
553 { 586, 128},
554 { 661, 128},
555 { 736, 128},
556 { 885, 128},
557 { 1023, 128},
558 },
559 { /* calibration table 3 */
560 { 40, 128},
561 { 80, 128},
562 { 124, 128},
563 { 586, 128},
564 { 661, 128},
565 { 736, 128},
566 { 885, 128},
567 { 1023, 128},
568 },
569 },
570 { /* ramps */
571 #ifdef CONFIG_TARGET_COMPAL
572 { /* profile 0 */
573 /* ramp-up */
574 { 0, 0, 2, 0, 0, 0, 0, 0, 13, 24, 24, 25, 26, 14, 0, 0},
575 /* ramp-down */
576 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
577 },
578 { /* profile 1 */
579 /* ramp-up */
580 { 0, 0, 3, 0, 0, 0, 0, 0, 16, 24, 24, 30, 31, 0, 0, 0},
581 /* ramp-down */
582 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
583 },
584 { /* profile 2 */
585 /* ramp-up */
586 { 0, 0, 3, 0, 0, 0, 0, 0, 16, 24, 24, 30, 31, 0, 0, 0},
587 /* ramp-down */
588 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
589 },
590 { /* profile 3 */
591 /* ramp-up */
592 { 0, 0, 0, 4, 0, 0, 0, 0, 0, 31, 31, 30, 30, 2, 0, 0},
593 /* ramp-down */
594 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
595 },
596 { /* profile 4 */
597 /* ramp-up */
598 { 0, 0, 0, 4, 0, 0, 0, 0, 0, 31, 31, 30, 30, 2, 0, 0},
599 /* ramp-down */
600 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
601 },
602 { /* profile 5 */
603 /* ramp-up */
604 { 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 31, 31, 31, 20, 0, 0},
605 /* ramp-down */
606 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
607 },
608 { /* profile 6 */
609 /* ramp-up */
610 { 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 31, 31, 31, 20, 0, 0},
611 /* ramp-down */
612 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
613 },
614 { /* profile 7 */
615 /* ramp-up */
616 { 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 31, 31, 31, 20, 0, 0},
617 /* ramp-down */
618 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
619 },
620 { /* profile 8 */
621 /* ramp-up */
622 { 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 31, 31, 31, 20, 0, 0},
623 /* ramp-down */
624 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
625 },
626 { /* profile 9 */
627 /* ramp-up */
628 { 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 31, 31, 31, 17, 0, 0},
629 /* ramp-down */
630 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
631 },
632 { /* profile 10 */
633 /* ramp-up */
634 { 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 31, 31, 31, 15, 0, 0},
635 /* ramp-down */
636 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
637 },
638 { /* profile 11 */
639 /* ramp-up */
640 { 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 31, 31, 31, 10, 0, 0},
641 /* ramp-down */
642 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
643 },
644 { /* profile 12 */
645 /* ramp-up */
646 { 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 31, 31, 31, 10, 0, 0},
647 /* ramp-down */
648 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
649 },
650 { /* profile 13 */
651 /* ramp-up */
652 { 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 31, 31, 31, 10, 0, 0},
653 /* ramp-down */
654 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
655 },
656 { /* profile 14 */
657 /* ramp-up */
658 { 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 31, 31, 31, 5, 0, 0},
659 /* ramp-down */
660 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
661 },
662 { /* profile 15 */
663 /* ramp-up */
664 { 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 31, 31, 31, 5, 0, 0},
665 /* ramp-down */
666 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
667 },
668 #else
669 { /* profile 0 */
670 /* ramp-up */
671 { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0},
672 /* ramp-down */
673 { 0, 11, 31, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
674 },
675 { /* profile 1 */
676 /* ramp-up */
677 { 0, 0, 0, 0, 0, 0, 1, 1, 7, 16, 28, 31, 31, 13, 0, 0},
678 /* ramp-down */
679 { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
680 },
681 { /* profile 2 */
682 /* ramp-up */
683 { 0, 0, 0, 0, 0, 0, 1, 1, 8, 16, 29, 31, 31, 11, 0, 0},
684 /* ramp-down */
685 { 0, 8, 28, 31, 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
686 },
687 { /* profile 3 */
688 /* ramp-up */
689 { 0, 0, 0, 0, 0, 0, 2, 0, 6, 18, 28, 31, 31, 12, 0, 0},
690 /* ramp-down */
691 { 0, 9, 24, 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0},
692 },
693 { /* profile 4 */
694 /* ramp-up */
695 { 0, 0, 0, 0, 0, 0, 3, 0, 5, 19, 31, 31, 31, 8, 0, 0},
696 /* ramp-down */
697 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
698 },
699 { /* profile 5 */
700 /* ramp-up */
701 { 0, 0, 0, 0, 0, 0, 2, 0, 7, 18, 31, 31, 31, 8, 0, 0},
702 /* ramp-down */
703 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
704 },
705 { /* profile 6 */
706 /* ramp-up */
707 { 0, 0, 0, 0, 0, 0, 3, 0, 5, 20, 31, 31, 31, 7, 0, 0},
708 /* ramp-down */
709 { 0, 10, 21, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
710 },
711 { /* profile 7 */
712 /* ramp-up */
713 { 0, 0, 0, 0, 0, 0, 4, 0, 9, 23, 22, 31, 31, 8, 0, 0},
714 /* ramp-down */
715 { 0, 9, 24, 30, 31, 30, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
716 },
717 { /* profile 8 */
718 /* ramp-up */
719 { 0, 0, 0, 0, 0, 0, 5, 0, 8, 21, 24, 31, 31, 8, 0, 0},
720 /* ramp-down */
721 { 0, 8, 23, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
722 },
723 { /* profile 9 */
724 /* ramp-up */
725 { 0, 0, 0, 0, 0, 5, 0, 3, 1, 27, 22, 31, 31, 8, 0, 0},
726 /* ramp-down */
727 { 0, 8, 27, 25, 26, 31, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0},
728 },
729 { /* profile 10 */
730 /* ramp-up */
731 { 0, 0, 0, 0, 5, 0, 0, 2, 7, 22, 23, 31, 31, 7, 0, 0},
732 /* ramp-down */
733 { 0, 7, 25, 30, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
734 },
735 { /* profile 11 */
736 /* ramp-up */
737 { 0, 0, 0, 0, 0, 5, 0, 4, 8, 21, 21, 31, 31, 7, 0, 0},
738 /* ramp-down */
739 { 0, 8, 21, 31, 31, 31, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0},
740 },
741 { /* profile 12 */
742 /* ramp-up */
743 { 0, 0, 0, 0, 0, 7, 0, 0, 12, 22, 25, 31, 27, 4, 0, 0},
744 /* ramp-down */
745 { 0, 9, 12, 21, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0},
746 },
747 { /* profile 13 */
748 /* ramp-up */
749 { 0, 0, 0, 0, 0, 0, 7, 0, 8, 15, 31, 31, 31, 5, 0, 0},
750 /* ramp-down */
751 { 0, 6, 14, 23, 31, 31, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0},
752 },
753 { /* profile 14 */
754 /* ramp-up */
755 { 0, 0, 0, 0, 0, 20, 0, 0, 8, 15, 14, 31, 31, 9, 0, 0},
756 /* ramp-down */
757 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
758 },
759 { /* profile 15 */
760 /* ramp-up */
761 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
762 /* ramp-down */
763 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
764 },
765 #endif
766 },
767 { /* Tx temperature compensation */
768 { -11, 0, 0, 0},
769 { 9, 0, 0, 0},
770 { 39, 0, 0, 0},
771 { 59, 0, 0, 0},
772 { 127, 0, 0, 0},
773 },
774 },
775 //IQ swap
776 SWAP_IQ_GSM,
777 };
778
779 const T_RF_BAND rf_1800 = {
780 { /* Rx structure */
781 { /* T_RX_CAL_PARAMS */
782 188,
783 40,
784 40,
785 44,
786 },
787 { /* T_RF_AGC_BANDs */
788 { 548, 0},
789 { 622, 0},
790 { 680, 0},
791 { 745, 0},
792 { 812, 0},
793 { 860, 0},
794 { 885, 0},
795 { 991, 0},
796 { 992, 0},
797 { 1023, 0},
798 },
799 { /* Rx temperature compensation */
800 { -15, 0},
801 { -5, 0},
802 { 6, 0},
803 { 16, 0},
804 { 25, 0},
805 { 35, 0},
806 { 45, 0},
807 { 56, 0},
808 { 66, 0},
809 { 75, 0},
810 { 100, 0},
811 },
812 },
813 { /* Tx structure */
814 { /* levels */
815 { 436, 0, 0}, /* 0 */
816 { 363, 1, 0}, /* 1 */
817 { 310, 2, 0}, /* 2 */
818 { 253, 3, 0}, /* 3 */
819 { 205, 4, 0}, /* 4 */
820 { 168, 5, 0}, /* 5 */
821 { 138, 6, 0}, /* 6 */
822 { 113, 7, 0}, /* 7 */
823 { 93, 8, 0}, /* 8 */
824 { 76, 9, 0}, /* 9 */
825 { 61, 10, 0}, /* 10 */
826 { 50, 11, 0}, /* 11 */
827 { 40, 12, 0}, /* 12 */
828 { 32, 13, 0}, /* 13 */
829 { 26, 14, 0}, /* 14 */
830 { 20, 15, 0}, /* 15 */
831 { 20, 15, 0}, /* 16 */
832 { 20, 15, 0}, /* 17 */
833 { 20, 15, 0}, /* 18 */
834 { 20, 15, 0}, /* 19 */
835 { 20, 15, 0}, /* 20 */
836 { 20, 15, 0}, /* 21 */
837 { 20, 15, 0}, /* 22 */
838 { 20, 15, 0}, /* 23 */
839 { 20, 15, 0}, /* 24 */
840 { 20, 15, 0}, /* 25 */
841 { 20, 15, 0}, /* 26 */
842 { 20, 15, 0}, /* 27 */
843 { 20, 15, 0}, /* 28 */
844 { 20, 0, 0}, /* 29 */
845 { 20, 0, 0}, /* 30 */
846 { 20, 0, 0}, /* 31 */
847 },
848 { /* channel calibration tables */
849 { /* calibration table 0 */
850 { 554, 128},
851 { 722, 128},
852 { 746, 128},
853 { 774, 128},
854 { 808, 128},
855 { 851, 128},
856 { 870, 128},
857 { 885, 128},
858 },
859 { /* calibration table 1 */
860 { 554, 128},
861 { 722, 128},
862 { 746, 128},
863 { 774, 128},
864 { 808, 128},
865 { 851, 128},
866 { 870, 128},
867 { 885, 128},
868 },
869 { /* calibration table 2 */
870 { 554, 128},
871 { 722, 128},
872 { 746, 128},
873 { 774, 128},
874 { 808, 128},
875 { 851, 128},
876 { 870, 128},
877 { 885, 128},
878 },
879 { /* calibration table 3 */
880 { 554, 128},
881 { 722, 128},
882 { 746, 128},
883 { 774, 128},
884 { 808, 128},
885 { 851, 128},
886 { 870, 128},
887 { 885, 128},
888 },
889 },
890 { /* ramps */
891 #ifdef CONFIG_TARGET_COMPAL
892 { /* profile 0 */
893 /* ramp-up */
894 { 6, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 30, 30, 10, 0, 0},
895 /* ramp-down */
896 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
897 },
898 { /* profile 1 */
899 /* ramp-up */
900 { 6, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 30, 30, 10, 0, 0},
901 /* ramp-down */
902 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
903 },
904 { /* profile 2 */
905 /* ramp-up */
906 { 6, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 30, 30, 10, 0, 0},
907 /* ramp-down */
908 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
909 },
910 { /* profile 3 */
911 /* ramp-up */
912 { 6, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 30, 2, 0, 0},
913 /* ramp-down */
914 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
915 },
916 { /* profile 4 */
917 /* ramp-up */
918 { 6, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 30, 2, 0, 0},
919 /* ramp-down */
920 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
921 },
922 { /* profile 5 */
923 /* ramp-up */
924 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
925 /* ramp-down */
926 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
927 },
928 { /* profile 6 */
929 /* ramp-up */
930 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
931 /* ramp-down */
932 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
933 },
934 { /* profile 7 */
935 /* ramp-up */
936 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
937 /* ramp-down */
938 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
939 },
940 { /* profile 8 */
941 /* ramp-up */
942 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
943 /* ramp-down */
944 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
945 },
946 { /* profile 9 */
947 /* ramp-up */
948 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
949 /* ramp-down */
950 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
951 },
952 { /* profile 10 */
953 /* ramp-up */
954 { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 18, 0, 0},
955 /* ramp-down */
956 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
957 },
958 { /* profile 11 */
959 /* ramp-up */
960 { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 18, 0, 0},
961 /* ramp-down */
962 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
963 },
964 { /* profile 12 */
965 /* ramp-up */
966 { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 15, 0, 0},
967 /* ramp-down */
968 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
969 },
970 { /* profile 13 */
971 /* ramp-up */
972 { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 10, 0, 0},
973 /* ramp-down */
974 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
975 },
976 { /* profile 14 */
977 /* ramp-up */
978 { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 7, 0, 0},
979 /* ramp-down */
980 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
981 },
982 { /* profile 15 */
983 /* ramp-up */
984 { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 7, 0, 0},
985 /* ramp-down */
986 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
987 },
988 #else
989 { /* profile 0 */
990 /* ramp-up */
991 { 0, 0, 0, 0, 0, 0, 2, 3, 5, 16, 31, 31, 31, 9, 0, 0},
992 /* ramp-down */
993 { 0, 11, 31, 31, 31, 10, 11, 3, 0, 0, 0, 0, 0, 0, 0, 0},
994 },
995 { /* profile 1 */
996 /* ramp-up */
997 { 0, 0, 0, 0, 0, 0, 2, 3, 4, 17, 30, 31, 31, 10, 0, 0},
998 /* ramp-down */
999 { 0, 10, 31, 31, 31, 13, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0},
1000 },
1001 { /* profile 2 */
1002 /* ramp-up */
1003 { 0, 0, 0, 0, 0, 0, 4, 2, 2, 18, 31, 31, 31, 9, 0, 0},
1004 /* ramp-down */
1005 { 0, 10, 26, 31, 31, 16, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1006 },
1007 { /* profile 3 */
1008 /* ramp-up */
1009 { 0, 0, 0, 0, 0, 0, 3, 4, 4, 15, 31, 31, 31, 9, 0, 0},
1010 /* ramp-down */
1011 { 0, 9, 31, 31, 31, 13, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0},
1012 },
1013 { /* profile 4 */
1014 /* ramp-up */
1015 { 0, 0, 0, 0, 0, 0, 4, 3, 7, 11, 31, 31, 31, 10, 0, 0},
1016 /* ramp-down */
1017 { 0, 8, 31, 31, 31, 11, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0},
1018 },
1019 { /* profile 5 */
1020 /* ramp-up */
1021 { 0, 0, 0, 0, 0, 4, 3, 2, 7, 14, 25, 31, 31, 11, 0, 0},
1022 /* ramp-down */
1023 { 0, 14, 31, 31, 31, 9, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1024 },
1025 { /* profile 6 */
1026 /* ramp-up */
1027 { 0, 0, 0, 0, 0, 7, 1, 3, 10, 12, 25, 31, 31, 8, 0, 0},
1028 /* ramp-down */
1029 { 0, 7, 30, 31, 31, 14, 4, 6, 5, 0, 0, 0, 0, 0, 0, 0},
1030 },
1031 { /* profile 7 */
1032 /* ramp-up */
1033 { 0, 0, 0, 0, 3, 5, 0, 5, 8, 12, 26, 31, 31, 7, 0, 0},
1034 /* ramp-down */
1035 { 0, 7, 31, 31, 31, 15, 0, 8, 5, 0, 0, 0, 0, 0, 0, 0},
1036 },
1037 { /* profile 8 */
1038 /* ramp-up */
1039 { 0, 0, 0, 0, 0, 9, 0, 3, 10, 16, 21, 31, 31, 7, 0, 0},
1040 /* ramp-down */
1041 { 0, 11, 28, 31, 27, 10, 11, 0, 10, 0, 0, 0, 0, 0, 0, 0},
1042 },
1043 { /* profile 9 */
1044 /* ramp-up */
1045 { 0, 0, 0, 0, 0, 10, 0, 6, 9, 15, 22, 29, 31, 6, 0, 0},
1046 /* ramp-down */
1047 { 0, 9, 22, 31, 31, 12, 5, 0, 18, 0, 0, 0, 0, 0, 0, 0},
1048 },
1049 { /* profile 10 */
1050 /* ramp-up */
1051 { 0, 0, 0, 0, 14, 0, 0, 8, 6, 20, 21, 29, 24, 6, 0, 0},
1052 /* ramp-down */
1053 { 0, 8, 28, 29, 26, 14, 6, 0, 17, 0, 0, 0, 0, 0, 0, 0},
1054 },
1055 { /* profile 11 */
1056 /* ramp-up */
1057 { 0, 0, 0, 0, 16, 0, 3, 5, 8, 16, 31, 28, 18, 3, 0, 0},
1058 /* ramp-down */
1059 { 0, 6, 18, 26, 31, 16, 9, 7, 0, 15, 0, 0, 0, 0, 0, 0},
1060 },
1061 { /* profile 12 */
1062 /* ramp-up */
1063 { 0, 0, 0, 0, 19, 0, 3, 6, 8, 21, 24, 31, 14, 2, 0, 0},
1064 /* ramp-down */
1065 { 0, 0, 12, 31, 31, 27, 4, 0, 23, 0, 0, 0, 0, 0, 0, 0},
1066 },
1067 { /* profile 13 */
1068 /* ramp-up */
1069 { 0, 0, 0, 0, 0, 14, 14, 0, 0, 24, 31, 31, 14, 0, 0, 0},
1070 /* ramp-down */
1071 { 0, 0, 11, 31, 31, 22, 11, 3, 19, 0, 0, 0, 0, 0, 0, 0},
1072 },
1073 { /* profile 14 */
1074 /* ramp-up */
1075 { 0, 0, 0, 0, 0, 30, 1, 4, 8, 18, 31, 31, 5, 0, 0, 0},
1076 /* ramp-down */
1077 { 0, 0, 8, 31, 31, 22, 5, 0, 31, 0, 0, 0, 0, 0, 0, 0},
1078 },
1079 { /* profile 15 */
1080 /* ramp-up */
1081 { 0, 0, 0, 0, 0, 31, 13, 0, 0, 14, 31, 31, 8, 0, 0, 0},
1082 /* ramp-down */
1083 { 0, 0, 4, 31, 31, 25, 5, 0, 5, 26, 1, 0, 0, 0, 0, 0},
1084 },
1085 #endif
1086 },
1087 { /* Tx temperature compensation */
1088 { -11, 0, 0, 0},
1089 { 9, 0, 0, 0},
1090 { 39, 0, 0, 0},
1091 { 59, 0, 0, 0},
1092 { 127, 0, 0, 0},
1093 },
1094 },
1095 //IQ swap
1096 SWAP_IQ_DCS
1097 };
1098
1099 const T_RF_BAND rf_850 = {
1100 { /* Rx structure */
1101 { /* T_RX_CAL_PARAMS */
1102 181,
1103 40,
1104 40,
1105 44,
1106 },
1107 { /* T_RF_AGC_BANDs */
1108 { 10, 0},
1109 { 30, 0},
1110 { 51, 0},
1111 { 71, 0},
1112 { 90, 0},
1113 { 112, 0},
1114 { 124, 0},
1115 { 991, 0},
1116 { 992, 0},
1117 { 1023, 0},
1118 },
1119 { /* Rx temperature compensation */
1120 { -15, 0},
1121 { -5, 0},
1122 { 6, 0},
1123 { 16, 0},
1124 { 25, 0},
1125 { 35, 0},
1126 { 45, 0},
1127 { 56, 0},
1128 { 66, 0},
1129 { 75, 0},
1130 { 100, 0},
1131 },
1132 },
1133 { /* Tx structure */
1134 { /* levels */
1135 { 507, 0, 0}, /* 0 */
1136 { 507, 0, 0}, /* 1 */
1137 { 507, 0, 0}, /* 2 */
1138 { 507, 0, 0}, /* 3 */
1139 { 507, 0, 0}, /* 4 */
1140 { 507, 0, 0}, /* 5 */
1141 { 417, 1, 0}, /* 6 */
1142 { 350, 2, 0}, /* 7 */
1143 { 282, 3, 0}, /* 8 */
1144 { 226, 4, 0}, /* 9 */
1145 { 183, 5, 0}, /* 10 */
1146 { 148, 6, 0}, /* 11 */
1147 { 121, 7, 0}, /* 12 */
1148 { 98, 8, 0}, /* 13 */
1149 { 80, 9, 0}, /* 14 */
1150 { 66, 10, 0}, /* 15 */
1151 { 54, 11, 0}, /* 16 */
1152 { 44, 12, 0}, /* 17 */
1153 { 36, 13, 0}, /* 18 */
1154 { 29, 14, 0}, /* 19 */
1155 { 29, 14, 0}, /* 20 */
1156 { 29, 14, 0}, /* 21 */
1157 { 29, 14, 0}, /* 22 */
1158 { 29, 14, 0}, /* 23 */
1159 { 29, 14, 0}, /* 24 */
1160 { 29, 14, 0}, /* 25 */
1161 { 29, 14, 0}, /* 26 */
1162 { 29, 14, 0}, /* 27 */
1163 { 29, 14, 0}, /* 28 */
1164 { 29, 14, 0}, /* 29 */
1165 { 29, 14, 0}, /* 30 */
1166 { 29, 14, 0}, /* 31 */
1167 },
1168 { /* channel calibration tables */
1169 { /* calibration table 0 */
1170 { 40, 128},
1171 { 80, 128},
1172 { 124, 128},
1173 { 586, 128},
1174 { 661, 128},
1175 { 736, 128},
1176 { 885, 128},
1177 { 1023, 128},
1178 },
1179 { /* calibration table 1 */
1180 #if 0
1181 /*
1182 * This bogon appears in the l1_custom_int.lib Leonardo blob
1183 * and in Openmoko's official firmwares, from which it has
1184 * propagated into the /gsm/rf/tx/calchan.850 file programmed
1185 * into every produced GTA02 unit, or at least the units
1186 * without the 850 MHz band. It also appears in the MV100 version
1187 * of l1_rf12.c and in the "dead" rf_850 table in Pirelli's fw
1188 * binary. Whew!
1189 */
1190 { 554, 130},
1191 { 722, 128},
1192 { 746, 129},
1193 { 774, 131},
1194 { 808, 132},
1195 { 851, 134},
1196 { 870, 138},
1197 { 885, 140},
1198 #else
1199 /* make it the same as the others */
1200 { 40, 128},
1201 { 80, 128},
1202 { 124, 128},
1203 { 586, 128},
1204 { 661, 128},
1205 { 736, 128},
1206 { 885, 128},
1207 { 1023, 128},
1208 #endif
1209 },
1210 { /* calibration table 2 */
1211 { 40, 128},
1212 { 80, 128},
1213 { 124, 128},
1214 { 586, 128},
1215 { 661, 128},
1216 { 736, 128},
1217 { 885, 128},
1218 { 1023, 128},
1219 },
1220 { /* calibration table 3 */
1221 { 40, 128},
1222 { 80, 128},
1223 { 124, 128},
1224 { 586, 128},
1225 { 661, 128},
1226 { 736, 128},
1227 { 885, 128},
1228 { 1023, 128},
1229 },
1230 },
1231 { /* ramps */
1232 #ifdef CONFIG_TARGET_COMPAL
1233 { /* profile 0 */
1234 /* ramp-up */
1235 { 0, 0, 3, 0, 0, 0, 0, 0, 2, 31, 30, 31, 31, 0, 0, 0},
1236 /* ramp-down */
1237 { 20, 21, 31, 26, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1238 },
1239 { /* profile 1 */
1240 /* ramp-up */
1241 { 0, 0, 5, 0, 0, 0, 0, 0, 0, 31, 30, 31, 31, 0, 0, 0},
1242 /* ramp-down */
1243 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1244 },
1245 { /* profile 2 */
1246 /* ramp-up */
1247 { 0, 0, 5, 0, 0, 0, 0, 0, 0, 31, 30, 31, 31, 0, 0, 0},
1248 /* ramp-down */
1249 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1250 },
1251 { /* profile 3 */
1252 /* ramp-up */
1253 { 0, 0, 0, 5, 0, 0, 0, 0, 0, 31, 30, 31, 31, 0, 0, 0},
1254 /* ramp-down */
1255 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1256 },
1257 { /* profile 4 */
1258 /* ramp-up */
1259 { 0, 0, 0, 5, 0, 0, 0, 0, 0, 31, 30, 31, 31, 0, 0, 0},
1260 /* ramp-down */
1261 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1262 },
1263 { /* profile 5 */
1264 /* ramp-up */
1265 { 0, 0, 0, 8, 0, 0, 0, 0, 0, 28, 30, 31, 31, 0, 0, 0},
1266 /* ramp-down */
1267 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1268 },
1269 { /* profile 6 */
1270 /* ramp-up */
1271 { 0, 0, 0, 8, 0, 0, 0, 0, 0, 28, 30, 31, 31, 0, 0, 0},
1272 /* ramp-down */
1273 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1274 },
1275 { /* profile 7 */
1276 /* ramp-up */
1277 { 0, 0, 0, 12, 0, 0, 0, 0, 0, 20, 30, 31, 31, 4, 0, 0},
1278 /* ramp-down */
1279 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1280 },
1281 { /* profile 8 */
1282 /* ramp-up */
1283 { 0, 0, 0, 12, 0, 0, 0, 0, 0, 20, 30, 31, 31, 4, 0, 0},
1284 /* ramp-down */
1285 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1286 },
1287 { /* profile 9 */
1288 /* ramp-up */
1289 { 0, 0, 0, 17, 0, 0, 0, 0, 0, 25, 24, 31, 31, 0, 0, 0},
1290 /* ramp-down */
1291 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1292 },
1293 { /* profile 10 */
1294 /* ramp-up */
1295 { 0, 0, 0, 17, 0, 0, 0, 0, 0, 25, 24, 31, 31, 0, 0, 0},
1296 /* ramp-down */
1297 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1298 },
1299 { /* profile 11 */
1300 /* ramp-up */
1301 { 0, 0, 0, 17, 0, 0, 0, 0, 0, 14, 30, 31, 31, 5, 0, 0},
1302 /* ramp-down */
1303 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1304 },
1305 { /* profile 12 */
1306 /* ramp-up */
1307 { 0, 0, 0, 17, 0, 0, 0, 0, 0, 14, 30, 31, 31, 5, 0, 0},
1308 /* ramp-down */
1309 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1310 },
1311 { /* profile 13 */
1312 /* ramp-up */
1313 { 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 31, 31, 31, 7, 0, 0},
1314 /* ramp-down */
1315 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1316 },
1317 { /* profile 14 */
1318 /* ramp-up */
1319 { 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 31, 31, 31, 7, 0, 0},
1320 /* ramp-down */
1321 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1322 },
1323 { /* profile 15 */
1324 /* ramp-up */
1325 { 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 31, 31, 31, 7, 0, 0},
1326 /* ramp-down */
1327 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1328 },
1329 #else
1330 { /* profile 0 */
1331 /* ramp-up */
1332 { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0},
1333 /* ramp-down */
1334 { 0, 11, 31, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1335 },
1336 { /* profile 1 */
1337 /* ramp-up */
1338 { 0, 0, 0, 0, 0, 0, 1, 1, 7, 16, 28, 31, 31, 13, 0, 0},
1339 /* ramp-down */
1340 { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1341 },
1342 { /* profile 2 */
1343 /* ramp-up */
1344 { 0, 0, 0, 0, 0, 0, 1, 1, 8, 16, 29, 31, 31, 11, 0, 0},
1345 /* ramp-down */
1346 { 0, 8, 28, 31, 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1347 },
1348 { /* profile 3 */
1349 /* ramp-up */
1350 { 0, 0, 0, 0, 0, 0, 2, 0, 6, 18, 28, 31, 31, 12, 0, 0},
1351 /* ramp-down */
1352 { 0, 9, 24, 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1353 },
1354 { /* profile 4 */
1355 /* ramp-up */
1356 { 0, 0, 0, 0, 0, 0, 3, 0, 5, 19, 31, 31, 31, 8, 0, 0},
1357 /* ramp-down */
1358 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1359 },
1360 { /* profile 5 */
1361 /* ramp-up */
1362 { 0, 0, 0, 0, 0, 0, 2, 0, 7, 18, 31, 31, 31, 8, 0, 0},
1363 /* ramp-down */
1364 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1365 },
1366 { /* profile 6 */
1367 /* ramp-up */
1368 { 0, 0, 0, 0, 0, 0, 3, 0, 5, 20, 31, 31, 31, 7, 0, 0},
1369 /* ramp-down */
1370 { 0, 10, 21, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1371 },
1372 { /* profile 7 */
1373 /* ramp-up */
1374 { 0, 0, 0, 0, 0, 0, 4, 0, 9, 23, 22, 31, 31, 8, 0, 0},
1375 /* ramp-down */
1376 { 0, 9, 24, 30, 31, 30, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1377 },
1378 { /* profile 8 */
1379 /* ramp-up */
1380 { 0, 0, 0, 0, 0, 0, 5, 0, 8, 21, 24, 31, 31, 8, 0, 0},
1381 /* ramp-down */
1382 { 0, 8, 23, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1383 },
1384 { /* profile 9 */
1385 /* ramp-up */
1386 { 0, 0, 0, 0, 0, 5, 0, 3, 1, 27, 22, 31, 31, 8, 0, 0},
1387 /* ramp-down */
1388 { 0, 8, 27, 25, 26, 31, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1389 },
1390 { /* profile 10 */
1391 /* ramp-up */
1392 { 0, 0, 0, 0, 5, 0, 0, 2, 7, 22, 23, 31, 31, 7, 0, 0},
1393 /* ramp-down */
1394 { 0, 7, 25, 30, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1395 },
1396 { /* profile 11 */
1397 /* ramp-up */
1398 { 0, 0, 0, 0, 0, 5, 0, 4, 8, 21, 21, 31, 31, 7, 0, 0},
1399 /* ramp-down */
1400 { 0, 8, 21, 31, 31, 31, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1401 },
1402 { /* profile 12 */
1403 /* ramp-up */
1404 { 0, 0, 0, 0, 0, 7, 0, 0, 12, 22, 25, 31, 27, 4, 0, 0},
1405 /* ramp-down */
1406 { 0, 9, 12, 21, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1407 },
1408 { /* profile 13 */
1409 /* ramp-up */
1410 { 0, 0, 0, 0, 0, 0, 7, 0, 8, 15, 31, 31, 31, 5, 0, 0},
1411 /* ramp-down */
1412 { 0, 6, 14, 23, 31, 31, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1413 },
1414 { /* profile 14 */
1415 /* ramp-up */
1416 { 0, 0, 0, 0, 0, 20, 0, 0, 8, 15, 14, 31, 31, 9, 0, 0},
1417 /* ramp-down */
1418 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1419 },
1420 { /* profile 15 */
1421 /* ramp-up */
1422 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1423 /* ramp-down */
1424 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1425 },
1426 #endif
1427 },
1428 { /* Tx temperature compensation */
1429 { -11, 0, 0, 0},
1430 { 9, 0, 0, 0},
1431 { 39, 0, 0, 0},
1432 { 59, 0, 0, 0},
1433 { 127, 0, 0, 0},
1434 },
1435 },
1436 //IQ swap
1437 SWAP_IQ_GSM850,
1438 };
1439
1440 const T_RF_BAND rf_1900 = {
1441 { /* Rx structure */
1442 { /* T_RX_CAL_PARAMS */
1443 188,
1444 40,
1445 40,
1446 44,
1447 },
1448 { /* T_RF_AGC_BANDs */
1449 { 548, 0},
1450 { 622, 0},
1451 { 680, 0},
1452 { 745, 0},
1453 { 812, 0},
1454 { 860, 0},
1455 { 885, 0},
1456 { 991, 0},
1457 { 992, 0},
1458 { 1023, 0},
1459 },
1460 { /* Rx temperature compensation */
1461 { -15, 0},
1462 { -5, 0},
1463 { 6, 0},
1464 { 16, 0},
1465 { 25, 0},
1466 { 35, 0},
1467 { 45, 0},
1468 { 56, 0},
1469 { 66, 0},
1470 { 75, 0},
1471 { 100, 0},
1472 },
1473 },
1474 { /* Tx structure */
1475 { /* levels */
1476 { 429, 0, 0}, /* 0 */
1477 { 353, 1, 0}, /* 1 */
1478 { 302, 2, 0}, /* 2 */
1479 { 246, 3, 0}, /* 3 */
1480 { 200, 4, 0}, /* 4 */
1481 { 164, 5, 0}, /* 5 */
1482 { 135, 6, 0}, /* 6 */
1483 { 111, 7, 0}, /* 7 */
1484 { 91, 8, 0}, /* 8 */
1485 { 75, 9, 0}, /* 9 */
1486 { 60, 10, 0}, /* 10 */
1487 { 49, 11, 0}, /* 11 */
1488 { 40, 12, 0}, /* 12 */
1489 { 33, 13, 0}, /* 13 */
1490 { 26, 14, 0}, /* 14 */
1491 { 26, 15, 0}, /* 15 */
1492 { 26, 15, 0}, /* 16 */
1493 { 26, 15, 0}, /* 17 */
1494 { 26, 15, 0}, /* 18 */
1495 { 26, 15, 0}, /* 19 */
1496 { 26, 15, 0}, /* 20 */
1497 { 26, 15, 0}, /* 21 */
1498 { 26, 15, 0}, /* 22 */
1499 { 26, 15, 0}, /* 23 */
1500 { 26, 15, 0}, /* 24 */
1501 { 26, 15, 0}, /* 25 */
1502 { 26, 15, 0}, /* 26 */
1503 { 26, 15, 0}, /* 27 */
1504 { 26, 15, 0}, /* 28 */
1505 { 26, 0, 0}, /* 29 */
1506 { 26, 0, 0}, /* 30 */
1507 { 26, 0, 0}, /* 31 */
1508 },
1509 { /* channel calibration tables */
1510 { /* calibration table 0 */
1511 { 554, 128},
1512 { 722, 128},
1513 { 746, 128},
1514 { 774, 128},
1515 { 808, 128},
1516 { 810, 128},
1517 { 810, 128},
1518 { 810, 128},
1519 },
1520 { /* calibration table 1 */
1521 { 554, 128},
1522 { 722, 128},
1523 { 746, 128},
1524 { 774, 128},
1525 { 808, 128},
1526 { 810, 128},
1527 { 810, 128},
1528 { 810, 128},
1529 },
1530 { /* calibration table 2 */
1531 { 554, 128},
1532 { 722, 128},
1533 { 746, 128},
1534 { 774, 128},
1535 { 808, 128},
1536 { 810, 128},
1537 { 810, 128},
1538 { 810, 128},
1539 },
1540 { /* calibration table 3 */
1541 { 554, 128},
1542 { 722, 128},
1543 { 746, 128},
1544 { 774, 128},
1545 { 808, 128},
1546 { 810, 128},
1547 { 810, 128},
1548 { 810, 128},
1549 },
1550 },
1551 { /* ramps */
1552 #ifdef CONFIG_TARGET_COMPAL
1553 { /* profile 0 */
1554 /* ramp-up */
1555 { 10, 0, 0, 0, 0, 0, 0, 0, 6, 15, 31, 31, 23, 12, 0, 0},
1556 /* ramp-down */
1557 { 31, 31, 27, 27, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1558 },
1559 { /* profile 1 */
1560 /* ramp-up */
1561 { 10, 0, 0, 0, 0, 0, 0, 0, 6, 15, 31, 31, 23, 12, 0, 0},
1562 /* ramp-down */
1563 { 31, 31, 27, 27, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1564 },
1565 { /* profile 2 */
1566 /* ramp-up */
1567 { 10, 0, 0, 0, 0, 0, 0, 0, 6, 15, 31, 31, 23, 12, 0, 0},
1568 /* ramp-down */
1569 { 31, 31, 27, 27, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1570 },
1571 { /* profile 3 */
1572 /* ramp-up */
1573 { 10, 0, 0, 0, 0, 0, 0, 0, 6, 15, 31, 31, 23, 12, 0, 0},
1574 /* ramp-down */
1575 { 31, 31, 27, 27, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1576 },
1577 { /* profile 4 */
1578 /* ramp-up */
1579 { 10, 0, 0, 0, 0, 0, 0, 0, 6, 15, 31, 31, 23, 12, 0, 0},
1580 /* ramp-down */
1581 { 31, 31, 27, 27, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1582 },
1583 { /* profile 5 */
1584 /* ramp-up */
1585 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
1586 /* ramp-down */
1587 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1588 },
1589 { /* profile 6 */
1590 /* ramp-up */
1591 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
1592 /* ramp-down */
1593 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1594 },
1595 { /* profile 7 */
1596 /* ramp-up */
1597 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
1598 /* ramp-down */
1599 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1600 },
1601 { /* profile 8 */
1602 /* ramp-up */
1603 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
1604 /* ramp-down */
1605 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1606 },
1607 { /* profile 9 */
1608 /* ramp-up */
1609 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
1610 /* ramp-down */
1611 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1612 },
1613 { /* profile 10 */
1614 /* ramp-up */
1615 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
1616 /* ramp-down */
1617 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1618 },
1619 { /* profile 11 */
1620 /* ramp-up */
1621 { 16, 0, 0, 0, 0, 0, 0, 0, 0, 10, 30, 31, 31, 10, 0, 0},
1622 /* ramp-down */
1623 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1624 },
1625 { /* profile 12 */
1626 /* ramp-up */
1627 { 16, 0, 0, 0, 0, 0, 0, 0, 0, 10, 30, 31, 31, 10, 0, 0},
1628 /* ramp-down */
1629 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1630 },
1631 { /* profile 13 */
1632 /* ramp-up */
1633 { 19, 0, 0, 0, 0, 0, 0, 0, 0, 9, 31, 31, 31, 7, 0, 0},
1634 /* ramp-down */
1635 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1636 },
1637 { /* profile 14 */
1638 /* ramp-up */
1639 { 23, 0, 0, 0, 0, 0, 0, 0, 0, 25, 31, 31, 31, 7, 0, 0},
1640 /* ramp-down */
1641 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1642 },
1643 { /* profile 15 */
1644 /* ramp-up */
1645 { 23, 0, 0, 0, 0, 0, 0, 0, 0, 25, 31, 31, 31, 7, 0, 0},
1646 /* ramp-down */
1647 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1648 },
1649 #else
1650 { /* profile 0 */
1651 /* ramp-up */
1652 { 0, 0, 0, 0, 0, 0, 7, 0, 0, 16, 31, 31, 31, 12, 0, 0},
1653 /* ramp-down */
1654 { 0, 13, 31, 31, 31, 18, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1655 },
1656 { /* profile 1 */
1657 /* ramp-up */
1658 { 0, 0, 0, 0, 0, 0, 2, 3, 4, 17, 30, 31, 31, 10, 0, 0},
1659 /* ramp-down */
1660 { 0, 10, 31, 31, 31, 13, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0},
1661 },
1662 { /* profile 2 */
1663 /* ramp-up */
1664 { 0, 0, 0, 0, 0, 0, 4, 2, 2, 18, 31, 31, 31, 9, 0, 0},
1665 /* ramp-down */
1666 { 0, 10, 26, 31, 31, 16, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1667 },
1668 { /* profile 3 */
1669 /* ramp-up */
1670 { 0, 0, 0, 0, 0, 0, 3, 4, 4, 15, 31, 31, 31, 9, 0, 0},
1671 /* ramp-down */
1672 { 0, 9, 31, 31, 31, 13, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0},
1673 },
1674 { /* profile 4 */
1675 /* ramp-up */
1676 { 0, 0, 0, 0, 0, 0, 4, 3, 0, 18, 31, 31, 31, 10, 0, 0},
1677 /* ramp-down */
1678 { 0, 8, 31, 31, 31, 11, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0},
1679 },
1680 { /* profile 5 */
1681 /* ramp-up */
1682 { 0, 0, 0, 0, 0, 4, 3, 2, 7, 14, 25, 31, 31, 11, 0, 0},
1683 /* ramp-down */
1684 { 0, 14, 31, 31, 31, 9, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1685 },
1686 { /* profile 6 */
1687 /* ramp-up */
1688 { 0, 0, 0, 0, 0, 7, 1, 3, 10, 12, 25, 31, 31, 8, 0, 0},
1689 /* ramp-down */
1690 { 0, 7, 30, 31, 31, 14, 4, 6, 5, 0, 0, 0, 0, 0, 0, 0},
1691 },
1692 { /* profile 7 */
1693 /* ramp-up */
1694 { 0, 0, 0, 0, 3, 5, 0, 5, 8, 12, 26, 31, 31, 7, 0, 0},
1695 /* ramp-down */
1696 { 0, 7, 31, 31, 31, 15, 0, 8, 5, 0, 0, 0, 0, 0, 0, 0},
1697 },
1698 { /* profile 8 */
1699 /* ramp-up */
1700 { 0, 0, 0, 0, 0, 9, 0, 3, 10, 16, 21, 31, 31, 7, 0, 0},
1701 /* ramp-down */
1702 { 0, 11, 28, 31, 27, 10, 11, 0, 10, 0, 0, 0, 0, 0, 0, 0},
1703 },
1704 { /* profile 9 */
1705 /* ramp-up */
1706 { 0, 0, 0, 0, 0, 10, 0, 6, 9, 15, 22, 29, 31, 6, 0, 0},
1707 /* ramp-down */
1708 { 0, 9, 22, 31, 31, 12, 5, 0, 18, 0, 0, 0, 0, 0, 0, 0},
1709 },
1710 { /* profile 10 */
1711 /* ramp-up */
1712 { 0, 0, 0, 0, 14, 0, 0, 4, 10, 20, 21, 29, 24, 6, 0, 0},
1713 /* ramp-down */
1714 { 0, 8, 28, 29, 26, 14, 6, 0, 17, 0, 0, 0, 0, 0, 0, 0},
1715 },
1716 { /* profile 11 */
1717 /* ramp-up */
1718 { 0, 0, 0, 0, 16, 0, 3, 5, 8, 16, 31, 28, 18, 3, 0, 0},
1719 /* ramp-down */
1720 { 0, 6, 18, 26, 31, 16, 9, 7, 0, 15, 0, 0, 0, 0, 0, 0},
1721 },
1722 { /* profile 12 */
1723 /* ramp-up */
1724 { 0, 0, 0, 0, 19, 0, 3, 6, 8, 21, 24, 31, 14, 2, 0, 0},
1725 /* ramp-down */
1726 { 0, 0, 12, 31, 31, 27, 4, 0, 23, 0, 0, 0, 0, 0, 0, 0},
1727 },
1728 { /* profile 13 */
1729 /* ramp-up */
1730 { 0, 0, 0, 0, 0, 14, 14, 0, 0, 24, 31, 31, 14, 0, 0, 0},
1731 /* ramp-down */
1732 { 0, 0, 11, 31, 31, 22, 11, 3, 19, 0, 0, 0, 0, 0, 0, 0},
1733 },
1734 { /* profile 14 */
1735 /* ramp-up */
1736 { 0, 0, 0, 0, 0, 30, 1, 4, 8, 18, 31, 31, 5, 0, 0, 0},
1737 /* ramp-down */
1738 { 0, 0, 8, 31, 31, 22, 5, 0, 31, 0, 0, 0, 0, 0, 0, 0},
1739 },
1740 { /* profile 15 */
1741 /* ramp-up */
1742 { 0, 0, 0, 0, 0, 30, 1, 4, 8, 18, 31, 31, 5, 0, 0, 0},
1743 /* ramp-down */
1744 { 0, 0, 8, 31, 31, 22, 5, 0, 31, 0, 0, 0, 0, 0, 0, 0},
1745 },
1746 #endif
1747 },
1748 { /* Tx temperature compensation */
1749 { -11, 0, 0, 0},
1750 { 9, 0, 0, 0},
1751 { 39, 0, 0, 0},
1752 { 59, 0, 0, 0},
1753 { 127, 0, 0, 0},
1754 },
1755 },
1756 //IQ swap
1757 SWAP_IQ_PCS
1758 };
1759
1760 /*------------------------------------------*/
1761 /* ABB Initialization words
1762 /*------------------------------------------*/
1763 #if (ANLG_FAM == 1)
1764 UWORD16 abb[ABB_TABLE_SIZE] =
1765 {
1766 C_AFCCTLADD, // Value at reset
1767 C_VBUCTRL, // Uplink gain amp 0dB, Sidetone gain to mute
1768 C_VBDCTRL, // Downlink gain amp 0dB, Volume control 0 dB
1769 C_BBCTRL, // value at reset
1770 C_APCOFF, // value at reset
1771 C_BULIOFF, // value at reset
1772 C_BULQOFF, // value at reset
1773 C_DAI_ON_OFF, // value at reset
1774 C_AUXDAC, // value at reset
1775 C_VBCTRL, // VULSWITCH=0, VDLAUX=1, VDLEAR=1
1776 C_APCDEL1 // value at reset
1777 };
1778 #elif (ANLG_FAM == 2)
1779 UWORD16 abb[ABB_TABLE_SIZE] =
1780 {
1781 C_AFCCTLADD,
1782 C_VBUCTRL,
1783 C_VBDCTRL,
1784 C_BBCTRL,
1785 C_BULGCAL,
1786 C_APCOFF,
1787 C_BULIOFF,
1788 C_BULQOFF,
1789 C_DAI_ON_OFF,
1790 C_AUXDAC,
1791 C_VBCTRL1,
1792 C_VBCTRL2,
1793 C_APCDEL1,
1794 C_APCDEL2
1795 };
1796
1797 #elif (ANLG_FAM == 3)
1798 UWORD16 abb[ABB_TABLE_SIZE] =
1799 {
1800 C_AFCCTLADD,
1801 C_VBUCTRL,
1802 C_VBDCTRL,
1803 C_BBCTRL,
1804 C_BULGCAL,
1805 C_APCOFF,
1806 C_BULIOFF,
1807 C_BULQOFF,
1808 C_DAI_ON_OFF,
1809 C_AUXDAC,
1810 C_VBCTRL1,
1811 C_VBCTRL2,
1812 C_APCDEL1,
1813 C_APCDEL2,
1814 C_VBPOP,
1815 C_VAUDINITD,
1816 C_VAUDCR,
1817 C_VAUOCR,
1818 C_VAUSCR,
1819 C_VAUDPLL
1820 };
1821
1822 #endif
1823
1824 /*------------------------------------------*/
1825 /* Gain table */
1826 /* specified in the TRF6053 spec */
1827 /* 2 dB steps - LNA always ON */
1828 /*------------------------------------------*/
1829 UWORD16 AGC_TABLE[AGC_TABLE_SIZE] =
1830 {
1831 0x00, //reserved
1832 0x01, //reserved
1833 0x02, //reserved
1834 0x03, //reserved
1835 0x04, //reserved
1836 0x05, //reserved
1837 0x06, //14 dB
1838 0x07, //16
1839 0x08, //18
1840 0x09, //20
1841 0x0a, //22
1842 0x0b, //24
1843 0x0c, //26
1844 0x0d, //28
1845 0x0e, //30
1846 0x0f, //32
1847 0x10, //34
1848 0x11, //36
1849 0x12, //38
1850 0x13, //40
1851 /*
1852 0x14, //reserved
1853 0x15, //reserved
1854 0x16, //reserved
1855 0x17, //reserved
1856 0x18, //reserved
1857 0x19, //reserved
1858 0x1a, //reserved
1859 0x1b, //reserved
1860 0x1c, //reserved
1861 0x1d, //reserved
1862 0x1e, //reserved
1863 0x1f, //reserved
1864 */
1865 };
1866
1867 // structure for ADC conversion (4 Internal channel + 5 Ext channels max.)
1868 T_ADC adc;
1869
1870 // MADC calibration structure
1871 T_ADCCAL adc_cal=
1872 { // a: 0,..,8
1873 // b, 0,..,8
1874 // cal_a = 4*1750 is the Typical value 1.75 V ref voltage , divide by 4
1875 7000, 8750, 7000, 7000, 7000, 7000, 7000, 256, 7000,
1876 0, 0, 0, 0, 0, 0, 0, 0, 0
1877 };
1878
1879 #if (BOARD == 41)
1880 // table which converts ADC value into RF temperature
1881 T_TEMP temperature[TEMP_TABLE_SIZE] =
1882 {
1883 // Temperature compensation for EVARITA - S.Glock, J.Demay 04/23/2003
1884 582, -40,
1885 640, -10,
1886 698, 25,
1887 756, 60,
1888 815, 90
1889 };
1890 #else
1891 // table which converts ADC value into RF temperature
1892 T_TEMP temperature[TEMP_TABLE_SIZE] =
1893 {
1894 7, -35,
1895 7, -34,
1896 8, -33,
1897 8, -32,
1898 9, -31,
1899 9, -30,
1900 10, -29,
1901 11, -28,
1902 11, -27,
1903 12, -26,
1904 13, -25,
1905 14, -24,
1906 14, -23,
1907 15, -22,
1908 16, -21,
1909 17, -20,
1910 18, -19,
1911 19, -18,
1912 21, -17,
1913 22, -16,
1914 23, -15,
1915 24, -14,
1916 26, -13,
1917 27, -12,
1918 29, -11,
1919 30, -10,
1920 32, -9,
1921 34, -8,
1922 36, -7,
1923 37, -6,
1924 39, -5,
1925 41, -4,
1926 44, -3,
1927 46, -2,
1928 48, -1,
1929 51, 0,
1930 53, 1,
1931 56, 2,
1932 59, 3,
1933 61, 4,
1934 64, 5,
1935 68, 6,
1936 71, 7,
1937 74, 8,
1938 78, 9,
1939 81, 10,
1940 85, 11,
1941 89, 12,
1942 93, 13,
1943 97, 14,
1944 101, 15,
1945 105, 16,
1946 110, 17,
1947 115, 18,
1948 119, 19,
1949 124, 20,
1950 130, 21,
1951 135, 22,
1952 140, 23,
1953 146, 24,
1954 152, 25,
1955 158, 26,
1956 164, 27,
1957 170, 28,
1958 176, 29,
1959 183, 30,
1960 190, 31,
1961 197, 32,
1962 204, 33,
1963 211, 34,
1964 219, 35,
1965 226, 36,
1966 234, 37,
1967 242, 38,
1968 250, 39,
1969 259, 40,
1970 267, 41,
1971 276, 42,
1972 285, 43,
1973 294, 44,
1974 303, 45,
1975 312, 46,
1976 322, 47,
1977 331, 48,
1978 341, 49,
1979 351, 50,
1980 361, 51,
1981 371, 52,
1982 382, 53,
1983 392, 54,
1984 403, 55,
1985 413, 56,
1986 424, 57,
1987 435, 58,
1988 446, 59,
1989 458, 60,
1990 469, 61,
1991 480, 62,
1992 492, 63,
1993 503, 64,
1994 515, 65,
1995 527, 66,
1996 539, 67,
1997 550, 68,
1998 562, 69,
1999 574, 70,
2000 586, 71,
2001 598, 72,
2002 611, 73,
2003 623, 74,
2004 635, 75,
2005 647, 76,
2006 659, 77,
2007 671, 78,
2008 683, 79,
2009 696, 80,
2010 708, 81,
2011 720, 82,
2012 732, 83,
2013 744, 84,
2014 756, 85,
2015 768, 86,
2016 780, 87,
2017 792, 88,
2018 804, 89,
2019 816, 90,
2020 827, 91,
2021 839, 92,
2022 851, 93,
2023 862, 94,
2024 873, 95
2025 };
2026 #endif