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

src/{condat,cs,gpf,nucleus}: import from Selenite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:23:26 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4e78acac3d88
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 was originally taken from the MV100
15 * source; it perfectly matched Openmoko's binary object prior to our own
16 * FC modification. We have made one change to it: the low_agc field in the
17 * T_AGC structure was originally set to 6 in TI's code, which is clearly an
18 * overlooked remnant from Clara RF, as Rita AGC cannot go below 14 dB. We
19 * have changed this number to 14 to reflect our current hardware reality.
20 */
21
22 T_RF rf =
23 {
24 RF_RITA_10, //RF revision
25 RF_HW_BAND_SUPPORT, // radio_band_support E-GSM/DCS + PCS
26
27 { //RX structure
28 { //AGC structure
29 140, // low_agc_noise_thr;
30 110, // high_agc_sat_thr;
31 14, // low_agc;
32 34, // high_agc;
33 //IL2AGC tables
34 { // below is: il2agc_pwr[121];
35 // il2agc_max[121];
36 // il2agc_av[121];
37 // il2agc_pwr
38 // Note this is shared between PCN and EGSM.
39 14, /* EGSM_MAX IL=0 */
40 14, /* EGSM_MAX IL=-1 */
41 14, /* EGSM_MAX IL=-2 */
42 14, /* EGSM_MAX IL=-3 */
43 14, /* EGSM_MAX IL=-4 */
44 14, /* EGSM_MAX IL=-5 */
45 14, /* EGSM_MAX IL=-6 */
46 14, /* EGSM_MAX IL=-7 */
47 14, /* EGSM_MAX IL=-8 */
48 14, /* EGSM_MAX IL=-9 */
49 14, /* EGSM_MAX IL=-10 */
50 14, /* EGSM_MAX IL=-11 */
51 14, /* EGSM_MAX IL=-12 */
52 14, /* EGSM_MAX IL=-13 */
53 14, /* EGSM_MAX IL=-14 */
54 14, /* EGSM_MAX IL=-15 */
55 14, /* EGSM_MAX IL=-16 */
56 14, /* EGSM_MAX IL=-17 */
57 14, /* EGSM_MAX IL=-18 */
58 14, /* EGSM_MAX IL=-19 */
59 14, /* EGSM_MAX IL=-20 */
60 14, /* EGSM_MAX IL=-21 */
61 14, /* EGSM_MAX IL=-22 */
62 14, /* EGSM_MAX IL=-23 */
63 14, /* EGSM_MAX IL=-24 */
64 14, /* EGSM_MAX IL=-25 */
65 14, /* EGSM_MAX IL=-26 */
66 14, /* EGSM_MAX IL=-27 */
67 14, /* EGSM_MAX IL=-28 */
68 14, /* EGSM_MAX IL=-29 */
69 14, /* EGSM_MAX IL=-30 */
70 14, /* EGSM_MAX IL=-31 */
71 14, /* EGSM_MAX IL=-32 */
72 14, /* EGSM_MAX IL=-33 */
73 14, /* EGSM_MAX IL=-34 */
74 14, /* EGSM_MAX IL=-35 */
75 14, /* EGSM_MAX IL=-36 */
76 14, /* EGSM_MAX IL=-37 */
77 14, /* EGSM_MAX IL=-38 */
78 14, /* EGSM_MAX IL=-39 */
79 14, /* EGSM_MAX IL=-40 */
80 14, /* EGSM_MAX IL=-41 */
81 14, /* EGSM_MAX IL=-42 */
82 14, /* EGSM_MAX IL=-43 */
83 14, /* EGSM_MAX IL=-44 */
84 14, /* EGSM_MAX IL=-45 */
85 14, /* EGSM_MAX IL=-46 */
86 14, /* EGSM_MAX IL=-47 */
87 14, /* EGSM_MAX IL=-48 */
88 14, /* EGSM_MAX IL=-49 */
89 14, /* EGSM_MAX IL=-50 */
90 14, /* EGSM_MAX IL=-51 */
91 14, /* EGSM_MAX IL=-52 */
92 14, /* EGSM_MAX IL=-53 */
93 14, /* EGSM_MAX IL=-54 */
94 16, /* EGSM_MAX IL=-55 */
95 16, /* EGSM_MAX IL=-56 */
96 18, /* EGSM_MAX IL=-57 */
97 18, /* EGSM_MAX IL=-58 */
98 20, /* EGSM_MAX IL=-59 */
99 20, /* EGSM_MAX IL=-60 */
100 22, /* EGSM_MAX IL=-61 */
101 22, /* EGSM_MAX IL=-62 */
102 24, /* EGSM_MAX IL=-63 */
103 24, /* EGSM_MAX IL=-64 */
104 26, /* EGSM_MAX IL=-65 */
105 26, /* EGSM_MAX IL=-66 */
106 28, /* EGSM_MAX IL=-67 */
107 28, /* EGSM_MAX IL=-68 */
108 30, /* EGSM_MAX IL=-69 */
109 30, /* EGSM_MAX IL=-70 */
110 32, /* EGSM_MAX IL=-71 */
111 32, /* EGSM_MAX IL=-72 */
112 34, /* EGSM_MAX IL=-73 */
113 34, /* EGSM_MAX IL=-74 */
114 36, /* EGSM_MAX IL=-75 */
115 36, /* EGSM_MAX IL=-76 */
116 38, /* EGSM_MAX IL=-77 */
117 38, /* EGSM_MAX IL=-78 */
118 40, /* EGSM_MAX IL=-79 */
119 40, /* EGSM_MAX IL=-80 */
120 40, /* EGSM_MAX IL=-81 */
121 40, /* EGSM_MAX IL=-82 */
122 40, /* EGSM_MAX IL=-83 */
123 40, /* EGSM_MAX IL=-84 */
124 40, /* EGSM_MAX IL=-85 */
125 40, /* EGSM_MAX IL=-86 */
126 40, /* EGSM_MAX IL=-87 */
127 40, /* EGSM_MAX IL=-88 */
128 40, /* EGSM_MAX IL=-89 */
129 40, /* EGSM_MAX IL=-90 */
130 40, /* EGSM_MAX IL=-91 */
131 40, /* EGSM_MAX IL=-92 */
132 40, /* EGSM_MAX IL=-93 */
133 40, /* EGSM_MAX IL=-94 */
134 40, /* EGSM_MAX IL=-95 */
135 40, /* EGSM_MAX IL=-96 */
136 40, /* EGSM_MAX IL=-97 */
137 40, /* EGSM_MAX IL=-98 */
138 40, /* EGSM_MAX IL=-99 */
139 40, /* EGSM_MAX IL=-100 */
140 40, /* EGSM_MAX IL=-101 */
141 40, /* EGSM_MAX IL=-102 */
142 40, /* EGSM_MAX IL=-103 */
143 40, /* EGSM_MAX IL=-104 */
144 40, /* EGSM_MAX IL=-105 */
145 40, /* EGSM_MAX IL=-106 */
146 40, /* EGSM_MAX IL=-107 */
147 40, /* EGSM_MAX IL=-108 */
148 40, /* EGSM_MAX IL=-109 */
149 40, /* EGSM_MAX IL=-110 */
150 40, /* EGSM_MAX IL=-111 */
151 40, /* EGSM_MAX IL=-112 */
152 40, /* EGSM_MAX IL=-113 */
153 40, /* EGSM_MAX IL=-114 */
154 40, /* EGSM_MAX IL=-115 */
155 40, /* EGSM_MAX IL=-116 */
156 40, /* EGSM_MAX IL=-117 */
157 40, /* EGSM_MAX IL=-118 */
158 40, /* EGSM_MAX IL=-119 */
159 40 /* EGSM_MAX IL=-120 */
160 },
161 { // il2agc_max
162 // Note this is shared between PCN and EGSM.
163 14, /* EGSM_MAX IL=0 */
164 14, /* EGSM_MAX IL=-1 */
165 14, /* EGSM_MAX IL=-2 */
166 14, /* EGSM_MAX IL=-3 */
167 14, /* EGSM_MAX IL=-4 */
168 14, /* EGSM_MAX IL=-5 */
169 14, /* EGSM_MAX IL=-6 */
170 14, /* EGSM_MAX IL=-7 */
171 14, /* EGSM_MAX IL=-8 */
172 14, /* EGSM_MAX IL=-9 */
173 14, /* EGSM_MAX IL=-10 */
174 14, /* EGSM_MAX IL=-11 */
175 14, /* EGSM_MAX IL=-12 */
176 14, /* EGSM_MAX IL=-13 */
177 14, /* EGSM_MAX IL=-14 */
178 14, /* EGSM_MAX IL=-15 */
179 14, /* EGSM_MAX IL=-16 */
180 14, /* EGSM_MAX IL=-17 */
181 14, /* EGSM_MAX IL=-18 */
182 14, /* EGSM_MAX IL=-19 */
183 14, /* EGSM_MAX IL=-20 */
184 14, /* EGSM_MAX IL=-21 */
185 14, /* EGSM_MAX IL=-22 */
186 14, /* EGSM_MAX IL=-23 */
187 14, /* EGSM_MAX IL=-24 */
188 14, /* EGSM_MAX IL=-25 */
189 14, /* EGSM_MAX IL=-26 */
190 14, /* EGSM_MAX IL=-27 */
191 14, /* EGSM_MAX IL=-28 */
192 14, /* EGSM_MAX IL=-29 */
193 14, /* EGSM_MAX IL=-30 */
194 14, /* EGSM_MAX IL=-31 */
195 14, /* EGSM_MAX IL=-32 */
196 14, /* EGSM_MAX IL=-33 */
197 14, /* EGSM_MAX IL=-34 */
198 14, /* EGSM_MAX IL=-35 */
199 14, /* EGSM_MAX IL=-36 */
200 14, /* EGSM_MAX IL=-37 */
201 14, /* EGSM_MAX IL=-38 */
202 14, /* EGSM_MAX IL=-39 */
203 14, /* EGSM_MAX IL=-40 */
204 14, /* EGSM_MAX IL=-41 */
205 14, /* EGSM_MAX IL=-42 */
206 14, /* EGSM_MAX IL=-43 */
207 14, /* EGSM_MAX IL=-44 */
208 14, /* EGSM_MAX IL=-45 */
209 14, /* EGSM_MAX IL=-46 */
210 14, /* EGSM_MAX IL=-47 */
211 14, /* EGSM_MAX IL=-48 */
212 14, /* EGSM_MAX IL=-49 */
213 14, /* EGSM_MAX IL=-50 */
214 14, /* EGSM_MAX IL=-51 */
215 14, /* EGSM_MAX IL=-52 */
216 14, /* EGSM_MAX IL=-53 */
217 14, /* EGSM_MAX IL=-54 */
218 16, /* EGSM_MAX IL=-55 */
219 16, /* EGSM_MAX IL=-56 */
220 18, /* EGSM_MAX IL=-57 */
221 18, /* EGSM_MAX IL=-58 */
222 20, /* EGSM_MAX IL=-59 */
223 20, /* EGSM_MAX IL=-60 */
224 22, /* EGSM_MAX IL=-61 */
225 22, /* EGSM_MAX IL=-62 */
226 24, /* EGSM_MAX IL=-63 */
227 24, /* EGSM_MAX IL=-64 */
228 26, /* EGSM_MAX IL=-65 */
229 26, /* EGSM_MAX IL=-66 */
230 28, /* EGSM_MAX IL=-67 */
231 28, /* EGSM_MAX IL=-68 */
232 30, /* EGSM_MAX IL=-69 */
233 30, /* EGSM_MAX IL=-70 */
234 32, /* EGSM_MAX IL=-71 */
235 32, /* EGSM_MAX IL=-72 */
236 34, /* EGSM_MAX IL=-73 */
237 34, /* EGSM_MAX IL=-74 */
238 36, /* EGSM_MAX IL=-75 */
239 36, /* EGSM_MAX IL=-76 */
240 38, /* EGSM_MAX IL=-77 */
241 38, /* EGSM_MAX IL=-78 */
242 40, /* EGSM_MAX IL=-79 */
243 40, /* EGSM_MAX IL=-80 */
244 40, /* EGSM_MAX IL=-81 */
245 40, /* EGSM_MAX IL=-82 */
246 40, /* EGSM_MAX IL=-83 */
247 40, /* EGSM_MAX IL=-84 */
248 40, /* EGSM_MAX IL=-85 */
249 40, /* EGSM_MAX IL=-86 */
250 40, /* EGSM_MAX IL=-87 */
251 40, /* EGSM_MAX IL=-88 */
252 40, /* EGSM_MAX IL=-89 */
253 40, /* EGSM_MAX IL=-90 */
254 40, /* EGSM_MAX IL=-91 */
255 40, /* EGSM_MAX IL=-92 */
256 40, /* EGSM_MAX IL=-93 */
257 40, /* EGSM_MAX IL=-94 */
258 40, /* EGSM_MAX IL=-95 */
259 40, /* EGSM_MAX IL=-96 */
260 40, /* EGSM_MAX IL=-97 */
261 40, /* EGSM_MAX IL=-98 */
262 40, /* EGSM_MAX IL=-99 */
263 40, /* EGSM_MAX IL=-100 */
264 40, /* EGSM_MAX IL=-101 */
265 40, /* EGSM_MAX IL=-102 */
266 40, /* EGSM_MAX IL=-103 */
267 40, /* EGSM_MAX IL=-104 */
268 40, /* EGSM_MAX IL=-105 */
269 40, /* EGSM_MAX IL=-106 */
270 40, /* EGSM_MAX IL=-107 */
271 40, /* EGSM_MAX IL=-108 */
272 40, /* EGSM_MAX IL=-109 */
273 40, /* EGSM_MAX IL=-110 */
274 40, /* EGSM_MAX IL=-111 */
275 40, /* EGSM_MAX IL=-112 */
276 40, /* EGSM_MAX IL=-113 */
277 40, /* EGSM_MAX IL=-114 */
278 40, /* EGSM_MAX IL=-115 */
279 40, /* EGSM_MAX IL=-116 */
280 40, /* EGSM_MAX IL=-117 */
281 40, /* EGSM_MAX IL=-118 */
282 40, /* EGSM_MAX IL=-119 */
283 40 /* EGSM_MAX IL=-120 */
284 },
285 { // il2agc_av
286 // Note this is shared between PCN and EGSM.
287 14, /* EGSM_MAX IL=0 */
288 14, /* EGSM_MAX IL=-1 */
289 14, /* EGSM_MAX IL=-2 */
290 14, /* EGSM_MAX IL=-3 */
291 14, /* EGSM_MAX IL=-4 */
292 14, /* EGSM_MAX IL=-5 */
293 14, /* EGSM_MAX IL=-6 */
294 14, /* EGSM_MAX IL=-7 */
295 14, /* EGSM_MAX IL=-8 */
296 14, /* EGSM_MAX IL=-9 */
297 14, /* EGSM_MAX IL=-10 */
298 14, /* EGSM_MAX IL=-11 */
299 14, /* EGSM_MAX IL=-12 */
300 14, /* EGSM_MAX IL=-13 */
301 14, /* EGSM_MAX IL=-14 */
302 14, /* EGSM_MAX IL=-15 */
303 14, /* EGSM_MAX IL=-16 */
304 14, /* EGSM_MAX IL=-17 */
305 14, /* EGSM_MAX IL=-18 */
306 14, /* EGSM_MAX IL=-19 */
307 14, /* EGSM_MAX IL=-20 */
308 14, /* EGSM_MAX IL=-21 */
309 14, /* EGSM_MAX IL=-22 */
310 14, /* EGSM_MAX IL=-23 */
311 14, /* EGSM_MAX IL=-24 */
312 14, /* EGSM_MAX IL=-25 */
313 14, /* EGSM_MAX IL=-26 */
314 14, /* EGSM_MAX IL=-27 */
315 14, /* EGSM_MAX IL=-28 */
316 14, /* EGSM_MAX IL=-29 */
317 14, /* EGSM_MAX IL=-30 */
318 14, /* EGSM_MAX IL=-31 */
319 14, /* EGSM_MAX IL=-32 */
320 14, /* EGSM_MAX IL=-33 */
321 14, /* EGSM_MAX IL=-34 */
322 14, /* EGSM_MAX IL=-35 */
323 14, /* EGSM_MAX IL=-36 */
324 14, /* EGSM_MAX IL=-37 */
325 14, /* EGSM_MAX IL=-38 */
326 14, /* EGSM_MAX IL=-39 */
327 14, /* EGSM_MAX IL=-40 */
328 14, /* EGSM_MAX IL=-41 */
329 14, /* EGSM_MAX IL=-42 */
330 14, /* EGSM_MAX IL=-43 */
331 14, /* EGSM_MAX IL=-44 */
332 14, /* EGSM_MAX IL=-45 */
333 14, /* EGSM_MAX IL=-46 */
334 14, /* EGSM_MAX IL=-47 */
335 14, /* EGSM_MAX IL=-48 */
336 14, /* EGSM_MAX IL=-49 */
337 14, /* EGSM_MAX IL=-50 */
338 14, /* EGSM_MAX IL=-51 */
339 14, /* EGSM_MAX IL=-52 */
340 14, /* EGSM_MAX IL=-53 */
341 14, /* EGSM_MAX IL=-54 */
342 16, /* EGSM_MAX IL=-55 */
343 16, /* EGSM_MAX IL=-56 */
344 18, /* EGSM_MAX IL=-57 */
345 18, /* EGSM_MAX IL=-58 */
346 20, /* EGSM_MAX IL=-59 */
347 20, /* EGSM_MAX IL=-60 */
348 22, /* EGSM_MAX IL=-61 */
349 22, /* EGSM_MAX IL=-62 */
350 24, /* EGSM_MAX IL=-63 */
351 24, /* EGSM_MAX IL=-64 */
352 26, /* EGSM_MAX IL=-65 */
353 26, /* EGSM_MAX IL=-66 */
354 28, /* EGSM_MAX IL=-67 */
355 28, /* EGSM_MAX IL=-68 */
356 30, /* EGSM_MAX IL=-69 */
357 30, /* EGSM_MAX IL=-70 */
358 32, /* EGSM_MAX IL=-71 */
359 32, /* EGSM_MAX IL=-72 */
360 34, /* EGSM_MAX IL=-73 */
361 34, /* EGSM_MAX IL=-74 */
362 36, /* EGSM_MAX IL=-75 */
363 36, /* EGSM_MAX IL=-76 */
364 38, /* EGSM_MAX IL=-77 */
365 38, /* EGSM_MAX IL=-78 */
366 40, /* EGSM_MAX IL=-79 */
367 40, /* EGSM_MAX IL=-80 */
368 40, /* EGSM_MAX IL=-81 */
369 40, /* EGSM_MAX IL=-82 */
370 40, /* EGSM_MAX IL=-83 */
371 40, /* EGSM_MAX IL=-84 */
372 40, /* EGSM_MAX IL=-85 */
373 40, /* EGSM_MAX IL=-86 */
374 40, /* EGSM_MAX IL=-87 */
375 40, /* EGSM_MAX IL=-88 */
376 40, /* EGSM_MAX IL=-89 */
377 40, /* EGSM_MAX IL=-90 */
378 40, /* EGSM_MAX IL=-91 */
379 40, /* EGSM_MAX IL=-92 */
380 40, /* EGSM_MAX IL=-93 */
381 40, /* EGSM_MAX IL=-94 */
382 40, /* EGSM_MAX IL=-95 */
383 40, /* EGSM_MAX IL=-96 */
384 40, /* EGSM_MAX IL=-97 */
385 40, /* EGSM_MAX IL=-98 */
386 40, /* EGSM_MAX IL=-99 */
387 40, /* EGSM_MAX IL=-100 */
388 40, /* EGSM_MAX IL=-101 */
389 40, /* EGSM_MAX IL=-102 */
390 40, /* EGSM_MAX IL=-103 */
391 40, /* EGSM_MAX IL=-104 */
392 40, /* EGSM_MAX IL=-105 */
393 40, /* EGSM_MAX IL=-106 */
394 40, /* EGSM_MAX IL=-107 */
395 40, /* EGSM_MAX IL=-108 */
396 40, /* EGSM_MAX IL=-109 */
397 40, /* EGSM_MAX IL=-110 */
398 40, /* EGSM_MAX IL=-111 */
399 40, /* EGSM_MAX IL=-112 */
400 40, /* EGSM_MAX IL=-113 */
401 40, /* EGSM_MAX IL=-114 */
402 40, /* EGSM_MAX IL=-115 */
403 40, /* EGSM_MAX IL=-116 */
404 40, /* EGSM_MAX IL=-117 */
405 40, /* EGSM_MAX IL=-118 */
406 40, /* EGSM_MAX IL=-119 */
407 40 /* EGSM_MAX IL=-120 */
408 }
409 },
410 },
411 {
412 {0, 0}, // ramp up and down delays
413 GUARD_BITS, // number of guard bits needed for ramp up
414 PRG_TX // propagation delay PRG_TX
415 },
416 { //AFC parameters
417 EEPROM_AFC,
418 C_Psi_sta_inv, // (1/C_Psi_sta)
419 C_Psi_st, // C_Psi_sta * 0.8 F0.16
420 C_Psi_st_32, // F0.32
421 C_Psi_st_inv // (1/C_Psi_st)
422
423 #if (VCXO_ALGO==1)
424 ,C_AFC_DAC_CENTER, // VCXO startup parameter - best guess
425 C_AFC_DAC_MIN, // VCXO startup parameter - 15ppm
426 C_AFC_DAC_MAX, // VCXO startup parameter + 15ppm
427 C_AFC_SNR_THR // snr - Default threshold value
428 #endif
429 }
430 };
431
432 T_RF_BAND rf_band[GSM_BANDS]; //uninitialised rf struct for bands
433
434 /*
435 * The const T_RF_BAND rf_{900,1800,850,1900} structures that follow
436 * provide compiled-in defaults for each frequency band. The present
437 * FreeCalypso versions of these structs began life as verbatim extracts
438 * from Openmoko's l1_cust.obj blob made with our calextract utility,
439 * providing undisrupted continuity from previous built-from-blobs
440 * firmwares, but have since been modified as follows:
441 *
442 * - The uncalibrated default g_magic values for all bands have been
443 * set to 200, which is the approximately correct number on FC/OM hw.
444 * The numbers in TI's l1_cust.obj blob delivery were quite obviously
445 * unchanged from Clara RF, and probably weren't even correct for the
446 * original Leonardo, let alone OM.
447 *
448 * - The uncalibrated default Rx and Tx channel calibration tables
449 * have been cleaned up. The only sensible default is to set all
450 * channel corrections to neutral (0 for Rx and 128 for Tx), which the
451 * original blob versions already did, but many of those copy-n-pasted
452 * tables had ARFCNs that are invalid for the band they are supposed
453 * to apply to. The latter bug has been fixed.
454 *
455 * - For the Tx ramps tables we now select between 4 different versions
456 * at compile time: the original version from OM is used for our own
457 * OM-based FC hardware, whereas Compal-targeting builds use one of 3
458 * different Compal versions: one version for C11x/12x and C155/156
459 * (SKY77324 RF PA), a different version for C139/140 (SKY77325 RF PA),
460 * and yet another version for SE J100 (SKY77328 RF PA).
461 *
462 * NONE of these compiled-in tables matter if you are running the fw
463 * on an Openmoko, Pirelli or FreeCalypso device that has already been
464 * fully calibrated at the respective factory: in all of these cases
465 * all of these compiled-in tables are fully overridden by the factory-
466 * calibrated ones read from FFS, or in the Pirelli DP-L10 case,
467 * read from Pirelli's factory data block and written into FreeCalypso FFS
468 * by the pirelli-magnetite-init command you are supposed to issue
469 * in fc-fsio when you set up FC on this target. Instead these
470 * compiled-in tables matter in the following two use cases:
471 *
472 * - When FC fw is run on a Mot C1xx or SE J100 phone, our c1xx-calextr tool
473 * generates Rx agcparams, Rx channel calibration and Tx levels tables
474 * from Compal's factory bits, but for the Tx ramp templates the tables
475 * compiled into our fw are used - hence these tables need to be correct
476 * for the target in question, which is why we have extracted and included
477 * the tables from 3 different Compal official fw versions. We also
478 * weren't able to grok Compal's way of doing Tx channel corrections, hence
479 * we run without those - thus we rely on the compiled-in channel calibration
480 * tables providing a neutral set of correction values.
481 *
482 * - Firmware images that are programmed into newly made FreeCalypso hw
483 * devices in the factory production environment prior to RF calibration
484 * need to have correct Tx ramp template tables in them, as well as
485 * indices in the Tx levels tables pointing to these ramps, plus the
486 * other 3 values in the T_RX_CAL_PARAMS structure besides g_magic:
487 * while all other table bits are generated from scratch by our
488 * fc-rfcal-rxband and fc-rfcal-txband programs without regard to
489 * any previous compiled-in values, the just-listed tables and fields
490 * are unchanged by the calibration procedure and must already be
491 * correct prior to it.
492 *
493 * The compiled-in default Tx levels tables have been kept unchanged
494 * from the original extracts from OM's l1_cust.obj blob. There is
495 * no point in changing these tables because they are nothing but dummy
496 * placeholders in reality: these tables absolutely MUST be calibrated
497 * for the individual device unit before that device can be used safely
498 * on public land mobile networks (if you are not doing your own RF
499 * calibration, you need to extract and apply the original manufacturer's
500 * calibration records, like our c1xx-calextr and pirelli-magnetite-init
501 * tools do), and if the compiled-in tables are nothing but placeholders,
502 * it would be rather moot to argue whether set of numbers A or set of
503 * numbers B would make a better placeholder.
504 *
505 * All of our Tx ramp templates (the ones used on our own FCDEV3B and all 3
506 * of our Compal versions) have been verified with our CMU200 RF tester and
507 * found to produce correct in-tolerance ramps on all tested targets (FCDEV3B,
508 * EU-band Mot C118, US-band Mot C139, EU-band Mot C140, US-band Mot C155 and
509 * EU-band SE J100i) for each power control level in all supported bands.
510 */
511
512 const T_RF_BAND rf_900 = {
513 { /* Rx structure */
514 { /* T_RX_CAL_PARAMS */
515 200,
516 40,
517 40,
518 44,
519 },
520 { /* T_RF_AGC_BANDs */
521 { 10, 0},
522 { 30, 0},
523 { 51, 0},
524 { 71, 0},
525 { 90, 0},
526 { 112, 0},
527 { 124, 0},
528 { 991, 0},
529 { 1009, 0},
530 { 1023, 0},
531 },
532 { /* Rx temperature compensation */
533 { -15, 0},
534 { -5, 0},
535 { 6, 0},
536 { 16, 0},
537 { 25, 0},
538 { 35, 0},
539 { 45, 0},
540 { 56, 0},
541 { 66, 0},
542 { 75, 0},
543 { 100, 0},
544 },
545 },
546 { /* Tx structure */
547 { /* levels */
548 { 465, 0, 0}, /* 0 */
549 { 465, 0, 0}, /* 1 */
550 { 465, 0, 0}, /* 2 */
551 { 465, 0, 0}, /* 3 */
552 { 465, 0, 0}, /* 4 */
553 { 465, 0, 0}, /* 5 */
554 { 387, 1, 0}, /* 6 */
555 { 324, 2, 0}, /* 7 */
556 { 260, 3, 0}, /* 8 */
557 { 210, 4, 0}, /* 9 */
558 { 170, 5, 0}, /* 10 */
559 { 138, 6, 0}, /* 11 */
560 { 113, 7, 0}, /* 12 */
561 { 92, 8, 0}, /* 13 */
562 { 76, 9, 0}, /* 14 */
563 { 62, 10, 0}, /* 15 */
564 { 51, 11, 0}, /* 16 */
565 { 42, 12, 0}, /* 17 */
566 { 34, 13, 0}, /* 18 */
567 { 27, 14, 0}, /* 19 */
568 { 27, 14, 0}, /* 20 */
569 { 27, 14, 0}, /* 21 */
570 { 27, 14, 0}, /* 22 */
571 { 27, 14, 0}, /* 23 */
572 { 27, 14, 0}, /* 24 */
573 { 27, 14, 0}, /* 25 */
574 { 27, 14, 0}, /* 26 */
575 { 27, 14, 0}, /* 27 */
576 { 27, 14, 0}, /* 28 */
577 { 27, 14, 0}, /* 29 */
578 { 27, 14, 0}, /* 30 */
579 { 27, 14, 0}, /* 31 */
580 },
581 { /* channel calibration tables */
582 { /* calibration table 0 */
583 { 40, 128},
584 { 80, 128},
585 { 124, 128},
586 { 586, 128},
587 { 661, 128},
588 { 736, 128},
589 { 885, 128},
590 { 1023, 128},
591 },
592 { /* calibration table 1 */
593 { 40, 128},
594 { 80, 128},
595 { 124, 128},
596 { 586, 128},
597 { 661, 128},
598 { 736, 128},
599 { 885, 128},
600 { 1023, 128},
601 },
602 { /* calibration table 2 */
603 { 40, 128},
604 { 80, 128},
605 { 124, 128},
606 { 586, 128},
607 { 661, 128},
608 { 736, 128},
609 { 885, 128},
610 { 1023, 128},
611 },
612 { /* calibration table 3 */
613 { 40, 128},
614 { 80, 128},
615 { 124, 128},
616 { 586, 128},
617 { 661, 128},
618 { 736, 128},
619 { 885, 128},
620 { 1023, 128},
621 },
622 },
623 { /* ramps */
624 #if defined(CONFIG_TARGET_C11X) || defined(CONFIG_TARGET_C155)
625 /* from Motorola R87.2.1.03.m0 fw for the C11x family */
626 { /* profile 0 */
627 /* ramp-up */
628 { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 31, 5, 0},
629 /* ramp-down */
630 { 31, 31, 28, 15, 2, 0, 19, 2, 0, 0, 0, 0, 0, 0, 0, 0},
631 },
632 { /* profile 1 */
633 /* ramp-up */
634 { 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 26, 29, 8, 0},
635 /* ramp-down */
636 { 31, 31, 29, 14, 2, 1, 15, 2, 3, 0, 0, 0, 0, 0, 0, 0},
637 },
638 { /* profile 2 */
639 /* ramp-up */
640 { 31, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 27, 24, 1, 0},
641 /* ramp-down */
642 { 30, 31, 25, 14, 2, 2, 15, 7, 2, 0, 0, 0, 0, 0, 0, 0},
643 },
644 { /* profile 3 */
645 /* ramp-up */
646 { 31, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 14, 29, 1, 0},
647 /* ramp-down */
648 { 31, 29, 31, 13, 2, 2, 15, 2, 3, 0, 0, 0, 0, 0, 0, 0},
649 },
650 { /* profile 4 */
651 /* ramp-up */
652 { 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 17, 19, 0, 0},
653 /* ramp-down */
654 { 31, 30, 30, 15, 1, 2, 17, 2, 0, 0, 0, 0, 0, 0, 0, 0},
655 },
656 { /* profile 5 */
657 /* ramp-up */
658 { 31, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 31, 19, 7, 2, 0},
659 /* ramp-down */
660 { 29, 31, 29, 16, 4, 0, 14, 2, 1, 2, 0, 0, 0, 0, 0, 0},
661 },
662 { /* profile 6 */
663 /* ramp-up */
664 { 31, 31, 16, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 20, 0, 0},
665 /* ramp-down */
666 { 19, 26, 26, 28, 10, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0},
667 },
668 { /* profile 7 */
669 /* ramp-up */
670 { 31, 31, 25, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 8, 2, 0},
671 /* ramp-down */
672 { 19, 28, 31, 24, 4, 0, 19, 3, 0, 0, 0, 0, 0, 0, 0, 0},
673 },
674 { /* profile 8 */
675 /* ramp-up */
676 { 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, 0},
677 /* ramp-down */
678 { 19, 28, 31, 24, 4, 0, 17, 5, 0, 0, 0, 0, 0, 0, 0, 0},
679 },
680 { /* profile 9 */
681 /* ramp-up */
682 { 31, 31, 31, 9, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0},
683 /* ramp-down */
684 { 18, 25, 28, 31, 2, 2, 19, 3, 0, 0, 0, 0, 0, 0, 0, 0},
685 },
686 { /* profile 10 */
687 /* ramp-up */
688 { 31, 31, 31, 16, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0},
689 /* ramp-down */
690 { 14, 21, 24, 29, 6, 2, 23, 5, 4, 0, 0, 0, 0, 0, 0, 0},
691 },
692 { /* profile 11 */
693 /* ramp-up */
694 { 31, 31, 31, 22, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 1, 0},
695 /* ramp-down */
696 { 8, 26, 26, 28, 12, 12, 5, 5, 0, 6, 0, 0, 0, 0, 0, 0},
697 },
698 { /* profile 12 */
699 /* ramp-up */
700 { 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0},
701 /* ramp-down */
702 { 8, 14, 27, 30, 20, 19, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0},
703 },
704 { /* profile 13 */
705 /* ramp-up */
706 { 31, 31, 31, 31, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0},
707 /* ramp-down */
708 { 9, 10, 15, 26, 25, 10, 17, 13, 3, 0, 0, 0, 0, 0, 0, 0},
709 },
710 { /* profile 14 */
711 /* ramp-up */
712 { 31, 31, 30, 30, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
713 /* ramp-down */
714 { 0, 4, 15, 21, 21, 21, 21, 15, 10, 0, 0, 0, 0, 0, 0, 0},
715 },
716 { /* profile 15 */
717 /* ramp-up */
718 { 31, 31, 30, 30, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
719 /* ramp-down */
720 { 0, 4, 15, 21, 21, 21, 21, 15, 10, 0, 0, 0, 0, 0, 0, 0},
721 },
722 #elif defined(CONFIG_TARGET_C139)
723 /* from Mot C139 official fw */
724 { /* profile 0 */
725 /* ramp-up */
726 { 0, 0, 2, 0, 0, 0, 0, 0, 13, 24, 24, 25, 26, 14, 0, 0},
727 /* ramp-down */
728 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
729 },
730 { /* profile 1 */
731 /* ramp-up */
732 { 0, 0, 3, 0, 0, 0, 0, 0, 16, 24, 24, 30, 31, 0, 0, 0},
733 /* ramp-down */
734 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
735 },
736 { /* profile 2 */
737 /* ramp-up */
738 { 0, 0, 3, 0, 0, 0, 0, 0, 16, 24, 24, 30, 31, 0, 0, 0},
739 /* ramp-down */
740 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
741 },
742 { /* profile 3 */
743 /* ramp-up */
744 { 0, 0, 0, 4, 0, 0, 0, 0, 0, 31, 31, 30, 30, 2, 0, 0},
745 /* ramp-down */
746 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
747 },
748 { /* profile 4 */
749 /* ramp-up */
750 { 0, 0, 0, 4, 0, 0, 0, 0, 0, 31, 31, 30, 30, 2, 0, 0},
751 /* ramp-down */
752 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
753 },
754 { /* profile 5 */
755 /* ramp-up */
756 { 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 31, 31, 31, 20, 0, 0},
757 /* ramp-down */
758 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
759 },
760 { /* profile 6 */
761 /* ramp-up */
762 { 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 31, 31, 31, 20, 0, 0},
763 /* ramp-down */
764 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
765 },
766 { /* profile 7 */
767 /* ramp-up */
768 { 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 31, 31, 31, 20, 0, 0},
769 /* ramp-down */
770 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
771 },
772 { /* profile 8 */
773 /* ramp-up */
774 { 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 31, 31, 31, 20, 0, 0},
775 /* ramp-down */
776 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
777 },
778 { /* profile 9 */
779 /* ramp-up */
780 { 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 31, 31, 31, 17, 0, 0},
781 /* ramp-down */
782 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
783 },
784 { /* profile 10 */
785 /* ramp-up */
786 { 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 31, 31, 31, 15, 0, 0},
787 /* ramp-down */
788 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
789 },
790 { /* profile 11 */
791 /* ramp-up */
792 { 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 31, 31, 31, 10, 0, 0},
793 /* ramp-down */
794 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
795 },
796 { /* profile 12 */
797 /* ramp-up */
798 { 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 31, 31, 31, 10, 0, 0},
799 /* ramp-down */
800 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
801 },
802 { /* profile 13 */
803 /* ramp-up */
804 { 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 31, 31, 31, 10, 0, 0},
805 /* ramp-down */
806 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
807 },
808 { /* profile 14 */
809 /* ramp-up */
810 { 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 31, 31, 31, 5, 0, 0},
811 /* ramp-down */
812 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
813 },
814 { /* profile 15 */
815 /* ramp-up */
816 { 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 31, 31, 31, 5, 0, 0},
817 /* ramp-down */
818 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
819 },
820 #elif defined(CONFIG_TARGET_J100)
821 /* from SE J100 fw version R1C004 */
822 { /* profile 0 */
823 /* ramp-up */
824 { 1, 0, 0, 0, 0, 0, 0, 0, 19, 31, 31, 31, 15, 0, 0, 0},
825 /* ramp-down */
826 { 25, 25, 31, 16, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
827 },
828 { /* profile 1 */
829 /* ramp-up */
830 { 1, 0, 0, 0, 0, 0, 0, 0, 14, 31, 31, 31, 20, 0, 0, 0},
831 /* ramp-down */
832 { 27, 31, 31, 8, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
833 },
834 { /* profile 2 */
835 /* ramp-up */
836 { 1, 0, 0, 0, 0, 0, 0, 0, 14, 31, 31, 31, 20, 0, 0, 0},
837 /* ramp-down */
838 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
839 },
840 { /* profile 3 */
841 /* ramp-up */
842 { 1, 0, 0, 0, 0, 0, 0, 0, 9, 31, 31, 31, 25, 0, 0, 0},
843 /* ramp-down */
844 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
845 },
846 { /* profile 4 */
847 /* ramp-up */
848 { 1, 0, 0, 0, 0, 0, 0, 0, 3, 31, 31, 31, 31, 0, 0, 0},
849 /* ramp-down */
850 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
851 },
852 { /* profile 5 */
853 /* ramp-up */
854 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 31, 31, 31, 5, 0, 0},
855 /* ramp-down */
856 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
857 },
858 { /* profile 6 */
859 /* ramp-up */
860 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 31, 31, 31, 5, 0, 0},
861 /* ramp-down */
862 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
863 },
864 { /* profile 7 */
865 /* ramp-up */
866 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 31, 31, 31, 5, 0, 0},
867 /* ramp-down */
868 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
869 },
870 { /* profile 8 */
871 /* ramp-up */
872 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 31, 31, 31, 5, 0, 0},
873 /* ramp-down */
874 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
875 },
876 { /* profile 9 */
877 /* ramp-up */
878 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 31, 31, 31, 5, 0, 0},
879 /* ramp-down */
880 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
881 },
882 { /* profile 10 */
883 /* ramp-up */
884 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 24, 31, 31, 31, 10, 0, 0},
885 /* ramp-down */
886 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
887 },
888 { /* profile 11 */
889 /* ramp-up */
890 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 24, 31, 31, 31, 10, 0, 0},
891 /* ramp-down */
892 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
893 },
894 { /* profile 12 */
895 /* ramp-up */
896 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 24, 31, 31, 31, 10, 0, 0},
897 /* ramp-down */
898 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
899 },
900 { /* profile 13 */
901 /* ramp-up */
902 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 19, 31, 31, 31, 15, 0, 0},
903 /* ramp-down */
904 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
905 },
906 { /* profile 14 */
907 /* ramp-up */
908 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 19, 31, 31, 31, 15, 0, 0},
909 /* ramp-down */
910 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
911 },
912 { /* profile 15 */
913 /* ramp-up */
914 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
915 /* ramp-down */
916 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
917 },
918 #else
919 /* TI/Openmoko version */
920 { /* profile 0 */
921 /* ramp-up */
922 { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0},
923 /* ramp-down */
924 { 0, 11, 31, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
925 },
926 { /* profile 1 */
927 /* ramp-up */
928 { 0, 0, 0, 0, 0, 0, 1, 1, 7, 16, 28, 31, 31, 13, 0, 0},
929 /* ramp-down */
930 { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
931 },
932 { /* profile 2 */
933 /* ramp-up */
934 { 0, 0, 0, 0, 0, 0, 1, 1, 8, 16, 29, 31, 31, 11, 0, 0},
935 /* ramp-down */
936 { 0, 8, 28, 31, 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
937 },
938 { /* profile 3 */
939 /* ramp-up */
940 { 0, 0, 0, 0, 0, 0, 2, 0, 6, 18, 28, 31, 31, 12, 0, 0},
941 /* ramp-down */
942 { 0, 9, 24, 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0},
943 },
944 { /* profile 4 */
945 /* ramp-up */
946 { 0, 0, 0, 0, 0, 0, 3, 0, 5, 19, 31, 31, 31, 8, 0, 0},
947 /* ramp-down */
948 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
949 },
950 { /* profile 5 */
951 /* ramp-up */
952 { 0, 0, 0, 0, 0, 0, 2, 0, 7, 18, 31, 31, 31, 8, 0, 0},
953 /* ramp-down */
954 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
955 },
956 { /* profile 6 */
957 /* ramp-up */
958 { 0, 0, 0, 0, 0, 0, 3, 0, 5, 20, 31, 31, 31, 7, 0, 0},
959 /* ramp-down */
960 { 0, 10, 21, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
961 },
962 { /* profile 7 */
963 /* ramp-up */
964 { 0, 0, 0, 0, 0, 0, 4, 0, 9, 23, 22, 31, 31, 8, 0, 0},
965 /* ramp-down */
966 { 0, 9, 24, 30, 31, 30, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
967 },
968 { /* profile 8 */
969 /* ramp-up */
970 { 0, 0, 0, 0, 0, 0, 5, 0, 8, 21, 24, 31, 31, 8, 0, 0},
971 /* ramp-down */
972 { 0, 8, 23, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
973 },
974 { /* profile 9 */
975 /* ramp-up */
976 { 0, 0, 0, 0, 0, 5, 0, 3, 1, 27, 22, 31, 31, 8, 0, 0},
977 /* ramp-down */
978 { 0, 8, 27, 25, 26, 31, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0},
979 },
980 { /* profile 10 */
981 /* ramp-up */
982 { 0, 0, 0, 0, 5, 0, 0, 2, 7, 22, 23, 31, 31, 7, 0, 0},
983 /* ramp-down */
984 { 0, 7, 25, 30, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
985 },
986 { /* profile 11 */
987 /* ramp-up */
988 { 0, 0, 0, 0, 0, 5, 0, 4, 8, 21, 21, 31, 31, 7, 0, 0},
989 /* ramp-down */
990 { 0, 8, 21, 31, 31, 31, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0},
991 },
992 { /* profile 12 */
993 /* ramp-up */
994 { 0, 0, 0, 0, 0, 7, 0, 0, 12, 22, 25, 31, 27, 4, 0, 0},
995 /* ramp-down */
996 { 0, 9, 12, 21, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0},
997 },
998 { /* profile 13 */
999 /* ramp-up */
1000 { 0, 0, 0, 0, 0, 0, 7, 0, 8, 15, 31, 31, 31, 5, 0, 0},
1001 /* ramp-down */
1002 { 0, 6, 14, 23, 31, 31, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1003 },
1004 { /* profile 14 */
1005 /* ramp-up */
1006 { 0, 0, 0, 0, 0, 20, 0, 0, 8, 15, 14, 31, 31, 9, 0, 0},
1007 /* ramp-down */
1008 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1009 },
1010 { /* profile 15 */
1011 /* ramp-up */
1012 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1013 /* ramp-down */
1014 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1015 },
1016 #endif
1017 },
1018 { /* Tx temperature compensation */
1019 #if (ORDER2_TX_TEMP_CAL==1)
1020 { -11, 0, 0, 0 },
1021 { +9, 0, 0, 0 },
1022 { +39, 0, 0, 0 },
1023 { +59, 0, 0, 0 },
1024 { 127, 0, 0, 0 }
1025 #else
1026 { -11, 0 },
1027 { +9, 0 },
1028 { +39, 0 },
1029 { +59, 0 },
1030 { 127, 0 }
1031 #endif
1032 },
1033 },
1034 //IQ swap
1035 SWAP_IQ_GSM,
1036 };
1037
1038 const T_RF_BAND rf_1800 = {
1039 { /* Rx structure */
1040 { /* T_RX_CAL_PARAMS */
1041 200,
1042 40,
1043 40,
1044 44,
1045 },
1046 { /* T_RF_AGC_BANDs */
1047 { 548, 0},
1048 { 622, 0},
1049 { 680, 0},
1050 { 745, 0},
1051 { 812, 0},
1052 { 860, 0},
1053 { 885, 0},
1054 { 0, 0},
1055 { 0, 0},
1056 { 0, 0},
1057 },
1058 { /* Rx temperature compensation */
1059 { -15, 0},
1060 { -5, 0},
1061 { 6, 0},
1062 { 16, 0},
1063 { 25, 0},
1064 { 35, 0},
1065 { 45, 0},
1066 { 56, 0},
1067 { 66, 0},
1068 { 75, 0},
1069 { 100, 0},
1070 },
1071 },
1072 { /* Tx structure */
1073 { /* levels */
1074 { 436, 0, 0}, /* 0 */
1075 { 363, 1, 0}, /* 1 */
1076 { 310, 2, 0}, /* 2 */
1077 { 253, 3, 0}, /* 3 */
1078 { 205, 4, 0}, /* 4 */
1079 { 168, 5, 0}, /* 5 */
1080 { 138, 6, 0}, /* 6 */
1081 { 113, 7, 0}, /* 7 */
1082 { 93, 8, 0}, /* 8 */
1083 { 76, 9, 0}, /* 9 */
1084 { 61, 10, 0}, /* 10 */
1085 { 50, 11, 0}, /* 11 */
1086 { 40, 12, 0}, /* 12 */
1087 { 32, 13, 0}, /* 13 */
1088 { 26, 14, 0}, /* 14 */
1089 { 20, 15, 0}, /* 15 */
1090 { 20, 15, 0}, /* 16 */
1091 { 20, 15, 0}, /* 17 */
1092 { 20, 15, 0}, /* 18 */
1093 { 20, 15, 0}, /* 19 */
1094 { 20, 15, 0}, /* 20 */
1095 { 20, 15, 0}, /* 21 */
1096 { 20, 15, 0}, /* 22 */
1097 { 20, 15, 0}, /* 23 */
1098 { 20, 15, 0}, /* 24 */
1099 { 20, 15, 0}, /* 25 */
1100 { 20, 15, 0}, /* 26 */
1101 { 20, 15, 0}, /* 27 */
1102 { 20, 15, 0}, /* 28 */
1103 { 20, 0, 0}, /* 29 */
1104 { 20, 0, 0}, /* 30 */
1105 { 20, 0, 0}, /* 31 */
1106 },
1107 { /* channel calibration tables */
1108 { /* calibration table 0 */
1109 { 554, 128},
1110 { 722, 128},
1111 { 746, 128},
1112 { 774, 128},
1113 { 808, 128},
1114 { 851, 128},
1115 { 870, 128},
1116 { 885, 128},
1117 },
1118 { /* calibration table 1 */
1119 { 554, 128},
1120 { 722, 128},
1121 { 746, 128},
1122 { 774, 128},
1123 { 808, 128},
1124 { 851, 128},
1125 { 870, 128},
1126 { 885, 128},
1127 },
1128 { /* calibration table 2 */
1129 { 554, 128},
1130 { 722, 128},
1131 { 746, 128},
1132 { 774, 128},
1133 { 808, 128},
1134 { 851, 128},
1135 { 870, 128},
1136 { 885, 128},
1137 },
1138 { /* calibration table 3 */
1139 { 554, 128},
1140 { 722, 128},
1141 { 746, 128},
1142 { 774, 128},
1143 { 808, 128},
1144 { 851, 128},
1145 { 870, 128},
1146 { 885, 128},
1147 },
1148 },
1149 { /* ramps */
1150 #if defined(CONFIG_TARGET_C11X) || defined(CONFIG_TARGET_C155)
1151 /* from Motorola R87.2.1.03.m0 fw for the C11x family */
1152 { /* profile 0 */
1153 /* ramp-up */
1154 { 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 27, 4, 0},
1155 /* ramp-down */
1156 { 28, 31, 18, 8, 8, 13, 9, 13, 0, 0, 0, 0, 0, 0, 0, 0},
1157 },
1158 { /* profile 1 */
1159 /* ramp-up */
1160 { 31, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 24, 0, 0},
1161 /* ramp-down */
1162 { 10, 30, 30, 20, 8, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1163 },
1164 { /* profile 2 */
1165 /* ramp-up */
1166 { 31, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 16, 0, 0},
1167 /* ramp-down */
1168 { 10, 30, 31, 24, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1169 },
1170 { /* profile 3 */
1171 /* ramp-up */
1172 { 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 23, 19, 0, 0},
1173 /* ramp-down */
1174 { 31, 14, 31, 5, 24, 13, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1175 },
1176 { /* profile 4 */
1177 /* ramp-up */
1178 { 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 10, 21, 31, 0, 0},
1179 /* ramp-down */
1180 { 20, 22, 31, 10, 22, 13, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1181 },
1182 { /* profile 5 */
1183 /* ramp-up */
1184 { 31, 31, 13, 0, 0, 0, 0, 0, 0, 0, 0, 31, 22, 0, 0, 0},
1185 /* ramp-down */
1186 { 22, 14, 26, 22, 22, 17, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1187 },
1188 { /* profile 6 */
1189 /* ramp-up */
1190 { 31, 31, 21, 0, 0, 0, 0, 0, 0, 0, 0, 24, 21, 0, 0, 0},
1191 /* ramp-down */
1192 { 10, 31, 31, 25, 17, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1193 },
1194 { /* profile 7 */
1195 /* ramp-up */
1196 { 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 28, 10, 0, 0, 0},
1197 /* ramp-down */
1198 { 17, 24, 28, 21, 24, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1199 },
1200 { /* profile 8 */
1201 /* ramp-up */
1202 { 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 27, 4, 0, 0, 0},
1203 /* ramp-down */
1204 { 9, 23, 31, 24, 24, 13, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1205 },
1206 { /* profile 9 */
1207 /* ramp-up */
1208 { 31, 31, 31, 12, 0, 0, 0, 0, 0, 0, 0, 0, 13, 10, 0, 0},
1209 /* ramp-down */
1210 { 9, 23, 31, 24, 24, 13, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1211 },
1212 { /* profile 10 */
1213 /* ramp-up */
1214 { 31, 31, 31, 17, 0, 0, 0, 0, 0, 0, 0, 0, 12, 6, 0, 0},
1215 /* ramp-down */
1216 { 10, 10, 31, 31, 24, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1217 },
1218 { /* profile 11 */
1219 /* ramp-up */
1220 { 31, 31, 31, 21, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0},
1221 /* ramp-down */
1222 { 4, 14, 31, 31, 26, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1223 },
1224 { /* profile 12 */
1225 /* ramp-up */
1226 { 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0},
1227 /* ramp-down */
1228 { 2, 14, 31, 31, 28, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1229 },
1230 { /* profile 13 */
1231 /* ramp-up */
1232 { 31, 31, 31, 29, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0},
1233 /* ramp-down */
1234 { 0, 6, 14, 31, 31, 24, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0},
1235 },
1236 { /* profile 14 */
1237 /* ramp-up */
1238 { 31, 31, 31, 31, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0},
1239 /* ramp-down */
1240 { 2, 4, 4, 18, 31, 31, 24, 5, 5, 4, 0, 0, 0, 0, 0, 0},
1241 },
1242 { /* profile 15 */
1243 /* ramp-up */
1244 { 31, 31, 31, 31, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1245 /* ramp-down */
1246 { 3, 2, 2, 22, 22, 21, 21, 21, 9, 5, 0, 0, 0, 0, 0, 0},
1247 },
1248 #elif defined(CONFIG_TARGET_C139)
1249 /* from Mot C139 official fw */
1250 { /* profile 0 */
1251 /* ramp-up */
1252 { 6, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 30, 30, 10, 0, 0},
1253 /* ramp-down */
1254 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1255 },
1256 { /* profile 1 */
1257 /* ramp-up */
1258 { 6, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 30, 30, 10, 0, 0},
1259 /* ramp-down */
1260 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1261 },
1262 { /* profile 2 */
1263 /* ramp-up */
1264 { 6, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 30, 30, 10, 0, 0},
1265 /* ramp-down */
1266 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1267 },
1268 { /* profile 3 */
1269 /* ramp-up */
1270 { 6, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 30, 2, 0, 0},
1271 /* ramp-down */
1272 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1273 },
1274 { /* profile 4 */
1275 /* ramp-up */
1276 { 6, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 30, 2, 0, 0},
1277 /* ramp-down */
1278 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1279 },
1280 { /* profile 5 */
1281 /* ramp-up */
1282 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
1283 /* ramp-down */
1284 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1285 },
1286 { /* profile 6 */
1287 /* ramp-up */
1288 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
1289 /* ramp-down */
1290 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1291 },
1292 { /* profile 7 */
1293 /* ramp-up */
1294 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
1295 /* ramp-down */
1296 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1297 },
1298 { /* profile 8 */
1299 /* ramp-up */
1300 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
1301 /* ramp-down */
1302 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1303 },
1304 { /* profile 9 */
1305 /* ramp-up */
1306 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
1307 /* ramp-down */
1308 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1309 },
1310 { /* profile 10 */
1311 /* ramp-up */
1312 { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 18, 0, 0},
1313 /* ramp-down */
1314 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1315 },
1316 { /* profile 11 */
1317 /* ramp-up */
1318 { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 18, 0, 0},
1319 /* ramp-down */
1320 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1321 },
1322 { /* profile 12 */
1323 /* ramp-up */
1324 { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 15, 0, 0},
1325 /* ramp-down */
1326 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1327 },
1328 { /* profile 13 */
1329 /* ramp-up */
1330 { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 10, 0, 0},
1331 /* ramp-down */
1332 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1333 },
1334 { /* profile 14 */
1335 /* ramp-up */
1336 { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 7, 0, 0},
1337 /* ramp-down */
1338 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1339 },
1340 { /* profile 15 */
1341 /* ramp-up */
1342 { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 7, 0, 0},
1343 /* ramp-down */
1344 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1345 },
1346 #elif defined(CONFIG_TARGET_J100)
1347 /* from SE J100 fw version R1C004 */
1348 { /* profile 0 */
1349 /* ramp-up */
1350 { 1, 0, 0, 0, 0, 0, 0, 0, 19, 31, 31, 31, 15, 0, 0, 0},
1351 /* ramp-down */
1352 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1353 },
1354 { /* profile 1 */
1355 /* ramp-up */
1356 { 1, 0, 0, 0, 0, 0, 0, 0, 19, 31, 31, 31, 15, 0, 0, 0},
1357 /* ramp-down */
1358 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1359 },
1360 { /* profile 2 */
1361 /* ramp-up */
1362 { 1, 0, 0, 0, 0, 0, 0, 0, 14, 31, 31, 31, 20, 0, 0, 0},
1363 /* ramp-down */
1364 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1365 },
1366 { /* profile 3 */
1367 /* ramp-up */
1368 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 31, 31, 4, 0, 0},
1369 /* ramp-down */
1370 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1371 },
1372 { /* profile 4 */
1373 /* ramp-up */
1374 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 31, 31, 4, 0, 0},
1375 /* ramp-down */
1376 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1377 },
1378 { /* profile 5 */
1379 /* ramp-up */
1380 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 31, 31, 31, 5, 0, 0},
1381 /* ramp-down */
1382 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1383 },
1384 { /* profile 6 */
1385 /* ramp-up */
1386 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 24, 31, 31, 31, 10, 0, 0},
1387 /* ramp-down */
1388 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1389 },
1390 { /* profile 7 */
1391 /* ramp-up */
1392 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 24, 31, 31, 31, 10, 0, 0},
1393 /* ramp-down */
1394 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1395 },
1396 { /* profile 8 */
1397 /* ramp-up */
1398 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 24, 31, 31, 31, 10, 0, 0},
1399 /* ramp-down */
1400 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1401 },
1402 { /* profile 9 */
1403 /* ramp-up */
1404 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 19, 31, 31, 31, 15, 0, 0},
1405 /* ramp-down */
1406 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1407 },
1408 { /* profile 10 */
1409 /* ramp-up */
1410 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 19, 31, 31, 31, 15, 0, 0},
1411 /* ramp-down */
1412 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1413 },
1414 { /* profile 11 */
1415 /* ramp-up */
1416 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 19, 31, 31, 31, 15, 0, 0},
1417 /* ramp-down */
1418 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1419 },
1420 { /* profile 12 */
1421 /* ramp-up */
1422 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 31, 31, 31, 25, 0, 0},
1423 /* ramp-down */
1424 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1425 },
1426 { /* profile 13 */
1427 /* ramp-up */
1428 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 31, 31, 31, 25, 0, 0},
1429 /* ramp-down */
1430 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1431 },
1432 { /* profile 14 */
1433 /* ramp-up */
1434 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 31, 31, 31, 31, 0, 0},
1435 /* ramp-down */
1436 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1437 },
1438 { /* profile 15 */
1439 /* ramp-up */
1440 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 31, 31, 31, 31, 0, 0},
1441 /* ramp-down */
1442 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1443 },
1444 #else
1445 /* TI/Openmoko version */
1446 { /* profile 0 */
1447 /* ramp-up */
1448 { 0, 0, 0, 0, 0, 0, 2, 3, 5, 16, 31, 31, 31, 9, 0, 0},
1449 /* ramp-down */
1450 { 0, 11, 31, 31, 31, 10, 11, 3, 0, 0, 0, 0, 0, 0, 0, 0},
1451 },
1452 { /* profile 1 */
1453 /* ramp-up */
1454 { 0, 0, 0, 0, 0, 0, 2, 3, 4, 17, 30, 31, 31, 10, 0, 0},
1455 /* ramp-down */
1456 { 0, 10, 31, 31, 31, 13, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0},
1457 },
1458 { /* profile 2 */
1459 /* ramp-up */
1460 { 0, 0, 0, 0, 0, 0, 4, 2, 2, 18, 31, 31, 31, 9, 0, 0},
1461 /* ramp-down */
1462 { 0, 10, 26, 31, 31, 16, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1463 },
1464 { /* profile 3 */
1465 /* ramp-up */
1466 { 0, 0, 0, 0, 0, 0, 3, 4, 4, 15, 31, 31, 31, 9, 0, 0},
1467 /* ramp-down */
1468 { 0, 9, 31, 31, 31, 13, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0},
1469 },
1470 { /* profile 4 */
1471 /* ramp-up */
1472 { 0, 0, 0, 0, 0, 0, 4, 3, 7, 11, 31, 31, 31, 10, 0, 0},
1473 /* ramp-down */
1474 { 0, 8, 31, 31, 31, 11, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0},
1475 },
1476 { /* profile 5 */
1477 /* ramp-up */
1478 { 0, 0, 0, 0, 0, 4, 3, 2, 7, 14, 25, 31, 31, 11, 0, 0},
1479 /* ramp-down */
1480 { 0, 14, 31, 31, 31, 9, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1481 },
1482 { /* profile 6 */
1483 /* ramp-up */
1484 { 0, 0, 0, 0, 0, 7, 1, 3, 10, 12, 25, 31, 31, 8, 0, 0},
1485 /* ramp-down */
1486 { 0, 7, 30, 31, 31, 14, 4, 6, 5, 0, 0, 0, 0, 0, 0, 0},
1487 },
1488 { /* profile 7 */
1489 /* ramp-up */
1490 { 0, 0, 0, 0, 3, 5, 0, 5, 8, 12, 26, 31, 31, 7, 0, 0},
1491 /* ramp-down */
1492 { 0, 7, 31, 31, 31, 15, 0, 8, 5, 0, 0, 0, 0, 0, 0, 0},
1493 },
1494 { /* profile 8 */
1495 /* ramp-up */
1496 { 0, 0, 0, 0, 0, 9, 0, 3, 10, 16, 21, 31, 31, 7, 0, 0},
1497 /* ramp-down */
1498 { 0, 11, 28, 31, 27, 10, 11, 0, 10, 0, 0, 0, 0, 0, 0, 0},
1499 },
1500 { /* profile 9 */
1501 /* ramp-up */
1502 { 0, 0, 0, 0, 0, 10, 0, 6, 9, 15, 22, 29, 31, 6, 0, 0},
1503 /* ramp-down */
1504 { 0, 9, 22, 31, 31, 12, 5, 0, 18, 0, 0, 0, 0, 0, 0, 0},
1505 },
1506 { /* profile 10 */
1507 /* ramp-up */
1508 { 0, 0, 0, 0, 14, 0, 0, 8, 6, 20, 21, 29, 24, 6, 0, 0},
1509 /* ramp-down */
1510 { 0, 8, 28, 29, 26, 14, 6, 0, 17, 0, 0, 0, 0, 0, 0, 0},
1511 },
1512 { /* profile 11 */
1513 /* ramp-up */
1514 { 0, 0, 0, 0, 16, 0, 3, 5, 8, 16, 31, 28, 18, 3, 0, 0},
1515 /* ramp-down */
1516 { 0, 6, 18, 26, 31, 16, 9, 7, 0, 15, 0, 0, 0, 0, 0, 0},
1517 },
1518 { /* profile 12 */
1519 /* ramp-up */
1520 { 0, 0, 0, 0, 19, 0, 3, 6, 8, 21, 24, 31, 14, 2, 0, 0},
1521 /* ramp-down */
1522 { 0, 0, 12, 31, 31, 27, 4, 0, 23, 0, 0, 0, 0, 0, 0, 0},
1523 },
1524 { /* profile 13 */
1525 /* ramp-up */
1526 { 0, 0, 0, 0, 0, 14, 14, 0, 0, 24, 31, 31, 14, 0, 0, 0},
1527 /* ramp-down */
1528 { 0, 0, 11, 31, 31, 22, 11, 3, 19, 0, 0, 0, 0, 0, 0, 0},
1529 },
1530 { /* profile 14 */
1531 /* ramp-up */
1532 { 0, 0, 0, 0, 0, 30, 1, 4, 8, 18, 31, 31, 5, 0, 0, 0},
1533 /* ramp-down */
1534 { 0, 0, 8, 31, 31, 22, 5, 0, 31, 0, 0, 0, 0, 0, 0, 0},
1535 },
1536 { /* profile 15 */
1537 /* ramp-up */
1538 { 0, 0, 0, 0, 0, 31, 13, 0, 0, 14, 31, 31, 8, 0, 0, 0},
1539 /* ramp-down */
1540 { 0, 0, 4, 31, 31, 25, 5, 0, 5, 26, 1, 0, 0, 0, 0, 0},
1541 },
1542 #endif
1543 },
1544 { /* Tx temperature compensation */
1545 #if (ORDER2_TX_TEMP_CAL==1)
1546 { -11, 0, 0, 0 },
1547 { +9, 0, 0, 0 },
1548 { +39, 0, 0, 0 },
1549 { +59, 0, 0, 0 },
1550 { 127, 0, 0, 0 }
1551 #else
1552 { -11, 0 },
1553 { +9, 0 },
1554 { +39, 0 },
1555 { +59, 0 },
1556 { 127, 0 }
1557 #endif
1558 },
1559 },
1560 //IQ swap
1561 SWAP_IQ_DCS
1562 };
1563
1564 const T_RF_BAND rf_850 = {
1565 { /* Rx structure */
1566 { /* T_RX_CAL_PARAMS */
1567 200,
1568 40,
1569 40,
1570 44,
1571 },
1572 { /* T_RF_AGC_BANDs */
1573 { 138, 0},
1574 { 157, 0},
1575 { 178, 0},
1576 { 199, 0},
1577 { 217, 0},
1578 { 239, 0},
1579 { 251, 0},
1580 { 0, 0},
1581 { 0, 0},
1582 { 0, 0},
1583 },
1584 { /* Rx temperature compensation */
1585 { -15, 0},
1586 { -5, 0},
1587 { 6, 0},
1588 { 16, 0},
1589 { 25, 0},
1590 { 35, 0},
1591 { 45, 0},
1592 { 56, 0},
1593 { 66, 0},
1594 { 75, 0},
1595 { 100, 0},
1596 },
1597 },
1598 { /* Tx structure */
1599 { /* levels */
1600 { 507, 0, 0}, /* 0 */
1601 { 507, 0, 0}, /* 1 */
1602 { 507, 0, 0}, /* 2 */
1603 { 507, 0, 0}, /* 3 */
1604 { 507, 0, 0}, /* 4 */
1605 { 507, 0, 0}, /* 5 */
1606 { 417, 1, 0}, /* 6 */
1607 { 350, 2, 0}, /* 7 */
1608 { 282, 3, 0}, /* 8 */
1609 { 226, 4, 0}, /* 9 */
1610 { 183, 5, 0}, /* 10 */
1611 { 148, 6, 0}, /* 11 */
1612 { 121, 7, 0}, /* 12 */
1613 { 98, 8, 0}, /* 13 */
1614 { 80, 9, 0}, /* 14 */
1615 { 66, 10, 0}, /* 15 */
1616 { 54, 11, 0}, /* 16 */
1617 { 44, 12, 0}, /* 17 */
1618 { 36, 13, 0}, /* 18 */
1619 { 29, 14, 0}, /* 19 */
1620 { 29, 14, 0}, /* 20 */
1621 { 29, 14, 0}, /* 21 */
1622 { 29, 14, 0}, /* 22 */
1623 { 29, 14, 0}, /* 23 */
1624 { 29, 14, 0}, /* 24 */
1625 { 29, 14, 0}, /* 25 */
1626 { 29, 14, 0}, /* 26 */
1627 { 29, 14, 0}, /* 27 */
1628 { 29, 14, 0}, /* 28 */
1629 { 29, 14, 0}, /* 29 */
1630 { 29, 14, 0}, /* 30 */
1631 { 29, 14, 0}, /* 31 */
1632 },
1633 { /* channel calibration tables */
1634 { /* calibration table 0 */
1635 { 134, 128},
1636 { 150, 128},
1637 { 166, 128},
1638 { 182, 128},
1639 { 197, 128},
1640 { 213, 128},
1641 { 229, 128},
1642 { 251, 128},
1643 },
1644 { /* calibration table 1 */
1645 { 134, 128},
1646 { 150, 128},
1647 { 166, 128},
1648 { 182, 128},
1649 { 197, 128},
1650 { 213, 128},
1651 { 229, 128},
1652 { 251, 128},
1653 },
1654 { /* calibration table 2 */
1655 { 134, 128},
1656 { 150, 128},
1657 { 166, 128},
1658 { 182, 128},
1659 { 197, 128},
1660 { 213, 128},
1661 { 229, 128},
1662 { 251, 128},
1663 },
1664 { /* calibration table 3 */
1665 { 134, 128},
1666 { 150, 128},
1667 { 166, 128},
1668 { 182, 128},
1669 { 197, 128},
1670 { 213, 128},
1671 { 229, 128},
1672 { 251, 128},
1673 },
1674 },
1675 { /* ramps */
1676 #if defined(CONFIG_TARGET_C11X) || defined(CONFIG_TARGET_C155)
1677 /* from Motorola R87.2.1.03.m0 fw for the C11x family */
1678 { /* profile 0 */
1679 /* ramp-up */
1680 { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 31, 31, 31, 3, 0},
1681 /* ramp-down */
1682 { 31, 31, 18, 22, 6, 10, 2, 1, 1, 3, 3, 0, 0, 0, 0, 0},
1683 },
1684 { /* profile 1 */
1685 /* ramp-up */
1686 { 31, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 31, 31, 31, 0, 0},
1687 /* ramp-down */
1688 { 31, 31, 31, 6, 8, 8, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1689 },
1690 { /* profile 2 */
1691 /* ramp-up */
1692 { 31, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 29, 0, 0},
1693 /* ramp-down */
1694 { 31, 25, 21, 20, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1695 },
1696 { /* profile 3 */
1697 /* ramp-up */
1698 { 31, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 22, 0, 0},
1699 /* ramp-down */
1700 { 27, 28, 23, 19, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1701 },
1702 { /* profile 4 */
1703 /* ramp-up */
1704 { 31, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 14, 0, 0},
1705 /* ramp-down */
1706 { 31, 21, 31, 2, 31, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1707 },
1708 { /* profile 5 */
1709 /* ramp-up */
1710 { 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 5, 0, 0},
1711 /* ramp-down */
1712 { 21, 31, 31, 2, 31, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1713 },
1714 { /* profile 6 */
1715 /* ramp-up */
1716 { 31, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 31, 28, 0, 0, 0},
1717 /* ramp-down */
1718 { 31, 31, 28, 14, 3, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1719 },
1720 { /* profile 7 */
1721 /* ramp-up */
1722 { 31, 31, 16, 0, 0, 0, 0, 0, 0, 0, 0, 31, 19, 0, 0, 0},
1723 /* ramp-down */
1724 { 20, 30, 30, 10, 28, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1725 },
1726 { /* profile 8 */
1727 /* ramp-up */
1728 { 31, 31, 26, 0, 0, 0, 0, 0, 0, 0, 0, 31, 9, 0, 0, 0},
1729 /* ramp-down */
1730 { 20, 26, 26, 18, 18, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1731 },
1732 { /* profile 9 */
1733 /* ramp-up */
1734 { 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, 0},
1735 /* ramp-down */
1736 { 16, 16, 26, 26, 26, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0},
1737 },
1738 { /* profile 10 */
1739 /* ramp-up */
1740 { 31, 31, 31, 11, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0},
1741 /* ramp-down */
1742 { 10, 12, 31, 26, 29, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1743 },
1744 { /* profile 11 */
1745 /* ramp-up */
1746 { 31, 31, 31, 18, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0},
1747 /* ramp-down */
1748 { 2, 20, 31, 26, 31, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0},
1749 },
1750 { /* profile 12 */
1751 /* ramp-up */
1752 { 31, 31, 31, 25, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0},
1753 /* ramp-down */
1754 { 2, 20, 31, 26, 31, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0},
1755 },
1756 { /* profile 13 */
1757 /* ramp-up */
1758 { 31, 31, 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0},
1759 /* ramp-down */
1760 { 1, 16, 31, 31, 31, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1761 },
1762 { /* profile 14 */
1763 /* ramp-up */
1764 { 31, 31, 31, 31, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0},
1765 /* ramp-down */
1766 { 4, 8, 10, 20, 31, 31, 20, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1767 },
1768 { /* profile 15 */
1769 /* ramp-up */
1770 { 31, 31, 31, 31, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0},
1771 /* ramp-down */
1772 { 4, 8, 10, 20, 31, 31, 20, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1773 },
1774 #elif defined(CONFIG_TARGET_C139)
1775 /* from Mot C139 official fw */
1776 { /* profile 0 */
1777 /* ramp-up */
1778 { 0, 0, 3, 0, 0, 0, 0, 0, 2, 31, 30, 31, 31, 0, 0, 0},
1779 /* ramp-down */
1780 { 20, 21, 31, 26, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1781 },
1782 { /* profile 1 */
1783 /* ramp-up */
1784 { 0, 0, 5, 0, 0, 0, 0, 0, 0, 31, 30, 31, 31, 0, 0, 0},
1785 /* ramp-down */
1786 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1787 },
1788 { /* profile 2 */
1789 /* ramp-up */
1790 { 0, 0, 5, 0, 0, 0, 0, 0, 0, 31, 30, 31, 31, 0, 0, 0},
1791 /* ramp-down */
1792 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1793 },
1794 { /* profile 3 */
1795 /* ramp-up */
1796 { 0, 0, 0, 5, 0, 0, 0, 0, 0, 31, 30, 31, 31, 0, 0, 0},
1797 /* ramp-down */
1798 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1799 },
1800 { /* profile 4 */
1801 /* ramp-up */
1802 { 0, 0, 0, 5, 0, 0, 0, 0, 0, 31, 30, 31, 31, 0, 0, 0},
1803 /* ramp-down */
1804 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1805 },
1806 { /* profile 5 */
1807 /* ramp-up */
1808 { 0, 0, 0, 8, 0, 0, 0, 0, 0, 28, 30, 31, 31, 0, 0, 0},
1809 /* ramp-down */
1810 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1811 },
1812 { /* profile 6 */
1813 /* ramp-up */
1814 { 0, 0, 0, 8, 0, 0, 0, 0, 0, 28, 30, 31, 31, 0, 0, 0},
1815 /* ramp-down */
1816 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1817 },
1818 { /* profile 7 */
1819 /* ramp-up */
1820 { 0, 0, 0, 12, 0, 0, 0, 0, 0, 20, 30, 31, 31, 4, 0, 0},
1821 /* ramp-down */
1822 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1823 },
1824 { /* profile 8 */
1825 /* ramp-up */
1826 { 0, 0, 0, 12, 0, 0, 0, 0, 0, 20, 30, 31, 31, 4, 0, 0},
1827 /* ramp-down */
1828 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1829 },
1830 { /* profile 9 */
1831 /* ramp-up */
1832 { 0, 0, 0, 17, 0, 0, 0, 0, 0, 25, 24, 31, 31, 0, 0, 0},
1833 /* ramp-down */
1834 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1835 },
1836 { /* profile 10 */
1837 /* ramp-up */
1838 { 0, 0, 0, 17, 0, 0, 0, 0, 0, 25, 24, 31, 31, 0, 0, 0},
1839 /* ramp-down */
1840 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1841 },
1842 { /* profile 11 */
1843 /* ramp-up */
1844 { 0, 0, 0, 17, 0, 0, 0, 0, 0, 14, 30, 31, 31, 5, 0, 0},
1845 /* ramp-down */
1846 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1847 },
1848 { /* profile 12 */
1849 /* ramp-up */
1850 { 0, 0, 0, 17, 0, 0, 0, 0, 0, 14, 30, 31, 31, 5, 0, 0},
1851 /* ramp-down */
1852 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1853 },
1854 { /* profile 13 */
1855 /* ramp-up */
1856 { 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 31, 31, 31, 7, 0, 0},
1857 /* ramp-down */
1858 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1859 },
1860 { /* profile 14 */
1861 /* ramp-up */
1862 { 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 31, 31, 31, 7, 0, 0},
1863 /* ramp-down */
1864 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1865 },
1866 { /* profile 15 */
1867 /* ramp-up */
1868 { 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 31, 31, 31, 7, 0, 0},
1869 /* ramp-down */
1870 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1871 },
1872 #elif defined(CONFIG_TARGET_J100)
1873 /* from SE J100 fw version R1C004 */
1874 { /* profile 0 */
1875 /* ramp-up */
1876 { 1, 0, 0, 0, 0, 0, 0, 0, 19, 31, 31, 31, 15, 0, 0, 0},
1877 /* ramp-down */
1878 { 15, 31, 31, 20, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1879 },
1880 { /* profile 1 */
1881 /* ramp-up */
1882 { 1, 0, 0, 0, 0, 0, 0, 0, 14, 31, 31, 31, 20, 0, 0, 0},
1883 /* ramp-down */
1884 { 20, 31, 31, 15, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1885 },
1886 { /* profile 2 */
1887 /* ramp-up */
1888 { 1, 0, 0, 0, 0, 0, 0, 0, 14, 31, 31, 31, 20, 0, 0, 0},
1889 /* ramp-down */
1890 { 25, 31, 31, 10, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1891 },
1892 { /* profile 3 */
1893 /* ramp-up */
1894 { 1, 0, 0, 0, 0, 0, 0, 0, 9, 31, 31, 31, 25, 0, 0, 0},
1895 /* ramp-down */
1896 { 29, 31, 31, 31, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1897 },
1898 { /* profile 4 */
1899 /* ramp-up */
1900 { 1, 0, 0, 0, 0, 0, 0, 0, 9, 31, 31, 31, 25, 0, 0, 0},
1901 /* ramp-down */
1902 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1903 },
1904 { /* profile 5 */
1905 /* ramp-up */
1906 { 1, 0, 0, 0, 0, 0, 0, 0, 3, 31, 31, 31, 31, 0, 0, 0},
1907 /* ramp-down */
1908 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1909 },
1910 { /* profile 6 */
1911 /* ramp-up */
1912 { 1, 0, 0, 0, 0, 0, 0, 0, 3, 31, 31, 31, 31, 0, 0, 0},
1913 /* ramp-down */
1914 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1915 },
1916 { /* profile 7 */
1917 /* ramp-up */
1918 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 31, 31, 31, 5, 0, 0},
1919 /* ramp-down */
1920 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1921 },
1922 { /* profile 8 */
1923 /* ramp-up */
1924 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 31, 31, 31, 5, 0, 0},
1925 /* ramp-down */
1926 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1927 },
1928 { /* profile 9 */
1929 /* ramp-up */
1930 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 24, 31, 31, 31, 10, 0, 0},
1931 /* ramp-down */
1932 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1933 },
1934 { /* profile 10 */
1935 /* ramp-up */
1936 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 24, 31, 31, 31, 10, 0, 0},
1937 /* ramp-down */
1938 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1939 },
1940 { /* profile 11 */
1941 /* ramp-up */
1942 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 24, 31, 31, 31, 10, 0, 0},
1943 /* ramp-down */
1944 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1945 },
1946 { /* profile 12 */
1947 /* ramp-up */
1948 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 19, 31, 31, 31, 15, 0, 0},
1949 /* ramp-down */
1950 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1951 },
1952 { /* profile 13 */
1953 /* ramp-up */
1954 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 19, 31, 31, 31, 15, 0, 0},
1955 /* ramp-down */
1956 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1957 },
1958 { /* profile 14 */
1959 /* ramp-up */
1960 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 19, 31, 31, 31, 15, 0, 0},
1961 /* ramp-down */
1962 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1963 },
1964 { /* profile 15 */
1965 /* ramp-up */
1966 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1967 /* ramp-down */
1968 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1969 },
1970 #else
1971 /* TI/Openmoko version */
1972 { /* profile 0 */
1973 /* ramp-up */
1974 { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0},
1975 /* ramp-down */
1976 { 0, 11, 31, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1977 },
1978 { /* profile 1 */
1979 /* ramp-up */
1980 { 0, 0, 0, 0, 0, 0, 1, 1, 7, 16, 28, 31, 31, 13, 0, 0},
1981 /* ramp-down */
1982 { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1983 },
1984 { /* profile 2 */
1985 /* ramp-up */
1986 { 0, 0, 0, 0, 0, 0, 1, 1, 8, 16, 29, 31, 31, 11, 0, 0},
1987 /* ramp-down */
1988 { 0, 8, 28, 31, 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1989 },
1990 { /* profile 3 */
1991 /* ramp-up */
1992 { 0, 0, 0, 0, 0, 0, 2, 0, 6, 18, 28, 31, 31, 12, 0, 0},
1993 /* ramp-down */
1994 { 0, 9, 24, 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1995 },
1996 { /* profile 4 */
1997 /* ramp-up */
1998 { 0, 0, 0, 0, 0, 0, 3, 0, 5, 19, 31, 31, 31, 8, 0, 0},
1999 /* ramp-down */
2000 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2001 },
2002 { /* profile 5 */
2003 /* ramp-up */
2004 { 0, 0, 0, 0, 0, 0, 2, 0, 7, 18, 31, 31, 31, 8, 0, 0},
2005 /* ramp-down */
2006 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2007 },
2008 { /* profile 6 */
2009 /* ramp-up */
2010 { 0, 0, 0, 0, 0, 0, 3, 0, 5, 20, 31, 31, 31, 7, 0, 0},
2011 /* ramp-down */
2012 { 0, 10, 21, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2013 },
2014 { /* profile 7 */
2015 /* ramp-up */
2016 { 0, 0, 0, 0, 0, 0, 4, 0, 9, 23, 22, 31, 31, 8, 0, 0},
2017 /* ramp-down */
2018 { 0, 9, 24, 30, 31, 30, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2019 },
2020 { /* profile 8 */
2021 /* ramp-up */
2022 { 0, 0, 0, 0, 0, 0, 5, 0, 8, 21, 24, 31, 31, 8, 0, 0},
2023 /* ramp-down */
2024 { 0, 8, 23, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2025 },
2026 { /* profile 9 */
2027 /* ramp-up */
2028 { 0, 0, 0, 0, 0, 5, 0, 3, 1, 27, 22, 31, 31, 8, 0, 0},
2029 /* ramp-down */
2030 { 0, 8, 27, 25, 26, 31, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2031 },
2032 { /* profile 10 */
2033 /* ramp-up */
2034 { 0, 0, 0, 0, 5, 0, 0, 2, 7, 22, 23, 31, 31, 7, 0, 0},
2035 /* ramp-down */
2036 { 0, 7, 25, 30, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2037 },
2038 { /* profile 11 */
2039 /* ramp-up */
2040 { 0, 0, 0, 0, 0, 5, 0, 4, 8, 21, 21, 31, 31, 7, 0, 0},
2041 /* ramp-down */
2042 { 0, 8, 21, 31, 31, 31, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2043 },
2044 { /* profile 12 */
2045 /* ramp-up */
2046 { 0, 0, 0, 0, 0, 7, 0, 0, 12, 22, 25, 31, 27, 4, 0, 0},
2047 /* ramp-down */
2048 { 0, 9, 12, 21, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2049 },
2050 { /* profile 13 */
2051 /* ramp-up */
2052 { 0, 0, 0, 0, 0, 0, 7, 0, 8, 15, 31, 31, 31, 5, 0, 0},
2053 /* ramp-down */
2054 { 0, 6, 14, 23, 31, 31, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2055 },
2056 { /* profile 14 */
2057 /* ramp-up */
2058 { 0, 0, 0, 0, 0, 20, 0, 0, 8, 15, 14, 31, 31, 9, 0, 0},
2059 /* ramp-down */
2060 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2061 },
2062 { /* profile 15 */
2063 /* ramp-up */
2064 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2065 /* ramp-down */
2066 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2067 },
2068 #endif
2069 },
2070 { /* Tx temperature compensation */
2071 #if (ORDER2_TX_TEMP_CAL==1)
2072 { -11, 0, 0, 0 },
2073 { +9, 0, 0, 0 },
2074 { +39, 0, 0, 0 },
2075 { +59, 0, 0, 0 },
2076 { 127, 0, 0, 0 }
2077 #else
2078 { -11, 0 },
2079 { +9, 0 },
2080 { +39, 0 },
2081 { +59, 0 },
2082 { 127, 0 }
2083 #endif
2084 },
2085 },
2086 //IQ swap
2087 SWAP_IQ_GSM850,
2088 };
2089
2090 const T_RF_BAND rf_1900 = {
2091 { /* Rx structure */
2092 { /* T_RX_CAL_PARAMS */
2093 200,
2094 40,
2095 40,
2096 44,
2097 },
2098 { /* T_RF_AGC_BANDs */
2099 { 548, 0},
2100 { 622, 0},
2101 { 680, 0},
2102 { 745, 0},
2103 { 795, 0},
2104 { 810, 0},
2105 { 0, 0},
2106 { 0, 0},
2107 { 0, 0},
2108 { 0, 0},
2109 },
2110 { /* Rx temperature compensation */
2111 { -15, 0},
2112 { -5, 0},
2113 { 6, 0},
2114 { 16, 0},
2115 { 25, 0},
2116 { 35, 0},
2117 { 45, 0},
2118 { 56, 0},
2119 { 66, 0},
2120 { 75, 0},
2121 { 100, 0},
2122 },
2123 },
2124 { /* Tx structure */
2125 { /* levels */
2126 { 429, 0, 0}, /* 0 */
2127 { 353, 1, 0}, /* 1 */
2128 { 302, 2, 0}, /* 2 */
2129 { 246, 3, 0}, /* 3 */
2130 { 200, 4, 0}, /* 4 */
2131 { 164, 5, 0}, /* 5 */
2132 { 135, 6, 0}, /* 6 */
2133 { 111, 7, 0}, /* 7 */
2134 { 91, 8, 0}, /* 8 */
2135 { 75, 9, 0}, /* 9 */
2136 { 60, 10, 0}, /* 10 */
2137 { 49, 11, 0}, /* 11 */
2138 { 40, 12, 0}, /* 12 */
2139 { 33, 13, 0}, /* 13 */
2140 { 26, 14, 0}, /* 14 */
2141 { 26, 15, 0}, /* 15 */
2142 { 26, 15, 0}, /* 16 */
2143 { 26, 15, 0}, /* 17 */
2144 { 26, 15, 0}, /* 18 */
2145 { 26, 15, 0}, /* 19 */
2146 { 26, 15, 0}, /* 20 */
2147 { 26, 15, 0}, /* 21 */
2148 { 26, 15, 0}, /* 22 */
2149 { 26, 15, 0}, /* 23 */
2150 { 26, 15, 0}, /* 24 */
2151 { 26, 15, 0}, /* 25 */
2152 { 26, 15, 0}, /* 26 */
2153 { 26, 15, 0}, /* 27 */
2154 { 26, 15, 0}, /* 28 */
2155 { 26, 0, 0}, /* 29 */
2156 { 26, 0, 0}, /* 30 */
2157 { 26, 0, 0}, /* 31 */
2158 },
2159 { /* channel calibration tables */
2160 { /* calibration table 0 */
2161 { 554, 128},
2162 { 722, 128},
2163 { 746, 128},
2164 { 774, 128},
2165 { 808, 128},
2166 { 810, 128},
2167 { 810, 128},
2168 { 810, 128},
2169 },
2170 { /* calibration table 1 */
2171 { 554, 128},
2172 { 722, 128},
2173 { 746, 128},
2174 { 774, 128},
2175 { 808, 128},
2176 { 810, 128},
2177 { 810, 128},
2178 { 810, 128},
2179 },
2180 { /* calibration table 2 */
2181 { 554, 128},
2182 { 722, 128},
2183 { 746, 128},
2184 { 774, 128},
2185 { 808, 128},
2186 { 810, 128},
2187 { 810, 128},
2188 { 810, 128},
2189 },
2190 { /* calibration table 3 */
2191 { 554, 128},
2192 { 722, 128},
2193 { 746, 128},
2194 { 774, 128},
2195 { 808, 128},
2196 { 810, 128},
2197 { 810, 128},
2198 { 810, 128},
2199 },
2200 },
2201 { /* ramps */
2202 #if defined(CONFIG_TARGET_C11X) || defined(CONFIG_TARGET_C155)
2203 /* from Motorola R87.2.1.03.m0 fw for the C11x family */
2204 { /* profile 0 */
2205 /* ramp-up */
2206 { 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 14, 31, 31, 17, 0, 0},
2207 /* ramp-down */
2208 { 31, 31, 15, 25, 8, 10, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0},
2209 },
2210 { /* profile 1 */
2211 /* ramp-up */
2212 { 31, 8, 0, 0, 0, 0, 0, 0, 0, 0, 5, 31, 31, 22, 0, 0},
2213 /* ramp-down */
2214 { 31, 21, 31, 20, 4, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2215 },
2216 { /* profile 2 */
2217 /* ramp-up */
2218 { 31, 16, 0, 0, 0, 0, 0, 0, 0, 0, 6, 31, 31, 13, 0, 0},
2219 /* ramp-down */
2220 { 30, 31, 24, 31, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2221 },
2222 { /* profile 3 */
2223 /* ramp-up */
2224 { 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 3, 31, 31, 8, 0, 0},
2225 /* ramp-down */
2226 { 31, 31, 19, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2227 },
2228 { /* profile 4 */
2229 /* ramp-up */
2230 { 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 6, 31, 22, 5, 0, 0},
2231 /* ramp-down */
2232 { 31, 31, 14, 24, 5, 13, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2233 },
2234 { /* profile 5 */
2235 /* ramp-up */
2236 { 31, 31, 10, 0, 0, 0, 0, 0, 0, 0, 0, 31, 25, 0, 0, 0},
2237 /* ramp-down */
2238 { 31, 19, 20, 8, 24, 17, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0},
2239 },
2240 { /* profile 6 */
2241 /* ramp-up */
2242 { 31, 30, 19, 0, 0, 0, 0, 0, 0, 0, 0, 31, 17, 0, 0, 0},
2243 /* ramp-down */
2244 { 2, 31, 31, 25, 17, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2245 },
2246 { /* profile 7 */
2247 /* ramp-up */
2248 { 31, 31, 26, 0, 0, 0, 0, 0, 0, 0, 0, 31, 9, 0, 0, 0},
2249 /* ramp-down */
2250 { 14, 24, 25, 30, 24, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2251 },
2252 { /* profile 8 */
2253 /* ramp-up */
2254 { 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, 0},
2255 /* ramp-down */
2256 { 12, 17, 27, 31, 24, 13, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2257 },
2258 { /* profile 9 */
2259 /* ramp-up */
2260 { 31, 31, 30, 10, 0, 0, 0, 0, 0, 0, 0, 25, 1, 0, 0, 0},
2261 /* ramp-down */
2262 { 21, 31, 31, 26, 13, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2263 },
2264 { /* profile 10 */
2265 /* ramp-up */
2266 { 31, 31, 31, 11, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0},
2267 /* ramp-down */
2268 { 14, 31, 31, 28, 13, 5, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0},
2269 },
2270 { /* profile 11 */
2271 /* ramp-up */
2272 { 31, 31, 31, 19, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0},
2273 /* ramp-down */
2274 { 6, 14, 31, 31, 24, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0},
2275 },
2276 { /* profile 12 */
2277 /* ramp-up */
2278 { 31, 31, 31, 25, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0},
2279 /* ramp-down */
2280 { 6, 14, 31, 31, 24, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0},
2281 },
2282 { /* profile 13 */
2283 /* ramp-up */
2284 { 31, 31, 31, 29, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0},
2285 /* ramp-down */
2286 { 6, 14, 31, 31, 24, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0},
2287 },
2288 { /* profile 14 */
2289 /* ramp-up */
2290 { 31, 31, 31, 31, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0},
2291 /* ramp-down */
2292 { 3, 16, 31, 31, 24, 14, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0},
2293 },
2294 { /* profile 15 */
2295 /* ramp-up */
2296 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2297 /* ramp-down */
2298 { 4, 6, 21, 21, 21, 21, 15, 15, 4, 0, 0, 0, 0, 0, 0, 0},
2299 },
2300 #elif defined(CONFIG_TARGET_C139)
2301 /* from Mot C139 official fw */
2302 { /* profile 0 */
2303 /* ramp-up */
2304 { 10, 0, 0, 0, 0, 0, 0, 0, 6, 15, 31, 31, 23, 12, 0, 0},
2305 /* ramp-down */
2306 { 31, 31, 27, 27, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2307 },
2308 { /* profile 1 */
2309 /* ramp-up */
2310 { 10, 0, 0, 0, 0, 0, 0, 0, 6, 15, 31, 31, 23, 12, 0, 0},
2311 /* ramp-down */
2312 { 31, 31, 27, 27, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2313 },
2314 { /* profile 2 */
2315 /* ramp-up */
2316 { 10, 0, 0, 0, 0, 0, 0, 0, 6, 15, 31, 31, 23, 12, 0, 0},
2317 /* ramp-down */
2318 { 31, 31, 27, 27, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2319 },
2320 { /* profile 3 */
2321 /* ramp-up */
2322 { 10, 0, 0, 0, 0, 0, 0, 0, 6, 15, 31, 31, 23, 12, 0, 0},
2323 /* ramp-down */
2324 { 31, 31, 27, 27, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2325 },
2326 { /* profile 4 */
2327 /* ramp-up */
2328 { 10, 0, 0, 0, 0, 0, 0, 0, 6, 15, 31, 31, 23, 12, 0, 0},
2329 /* ramp-down */
2330 { 31, 31, 27, 27, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2331 },
2332 { /* profile 5 */
2333 /* ramp-up */
2334 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
2335 /* ramp-down */
2336 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2337 },
2338 { /* profile 6 */
2339 /* ramp-up */
2340 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
2341 /* ramp-down */
2342 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2343 },
2344 { /* profile 7 */
2345 /* ramp-up */
2346 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
2347 /* ramp-down */
2348 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2349 },
2350 { /* profile 8 */
2351 /* ramp-up */
2352 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
2353 /* ramp-down */
2354 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2355 },
2356 { /* profile 9 */
2357 /* ramp-up */
2358 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
2359 /* ramp-down */
2360 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2361 },
2362 { /* profile 10 */
2363 /* ramp-up */
2364 { 11, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 26, 31, 10, 0, 0},
2365 /* ramp-down */
2366 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2367 },
2368 { /* profile 11 */
2369 /* ramp-up */
2370 { 16, 0, 0, 0, 0, 0, 0, 0, 0, 10, 30, 31, 31, 10, 0, 0},
2371 /* ramp-down */
2372 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2373 },
2374 { /* profile 12 */
2375 /* ramp-up */
2376 { 16, 0, 0, 0, 0, 0, 0, 0, 0, 10, 30, 31, 31, 10, 0, 0},
2377 /* ramp-down */
2378 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2379 },
2380 { /* profile 13 */
2381 /* ramp-up */
2382 { 19, 0, 0, 0, 0, 0, 0, 0, 0, 9, 31, 31, 31, 7, 0, 0},
2383 /* ramp-down */
2384 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2385 },
2386 { /* profile 14 */
2387 /* ramp-up */
2388 { 23, 0, 0, 0, 0, 0, 0, 0, 0, 25, 31, 31, 31, 7, 0, 0},
2389 /* ramp-down */
2390 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2391 },
2392 { /* profile 15 */
2393 /* ramp-up */
2394 { 23, 0, 0, 0, 0, 0, 0, 0, 0, 25, 31, 31, 31, 7, 0, 0},
2395 /* ramp-down */
2396 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2397 },
2398 #elif defined(CONFIG_TARGET_J100)
2399 /* from SE J100 fw version R1C004 */
2400 { /* profile 0 */
2401 /* ramp-up */
2402 { 1, 0, 0, 0, 0, 0, 0, 0, 24, 31, 31, 31, 10, 0, 0, 0},
2403 /* ramp-down */
2404 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2405 },
2406 { /* profile 1 */
2407 /* ramp-up */
2408 { 1, 0, 0, 0, 0, 0, 0, 0, 24, 31, 31, 31, 10, 0, 0, 0},
2409 /* ramp-down */
2410 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2411 },
2412 { /* profile 2 */
2413 /* ramp-up */
2414 { 1, 0, 0, 0, 0, 0, 0, 0, 19, 31, 31, 31, 15, 0, 0, 0},
2415 /* ramp-down */
2416 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2417 },
2418 { /* profile 3 */
2419 /* ramp-up */
2420 { 1, 0, 0, 0, 0, 0, 0, 0, 14, 31, 31, 31, 20, 0, 0, 0},
2421 /* ramp-down */
2422 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2423 },
2424 { /* profile 4 */
2425 /* ramp-up */
2426 { 1, 0, 0, 0, 0, 0, 0, 0, 14, 31, 31, 31, 20, 0, 0, 0},
2427 /* ramp-down */
2428 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2429 },
2430 { /* profile 5 */
2431 /* ramp-up */
2432 { 1, 0, 0, 0, 0, 0, 0, 0, 3, 31, 31, 31, 31, 0, 0, 0},
2433 /* ramp-down */
2434 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2435 },
2436 { /* profile 6 */
2437 /* ramp-up */
2438 { 1, 0, 0, 0, 0, 0, 0, 0, 3, 31, 31, 31, 31, 0, 0, 0},
2439 /* ramp-down */
2440 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2441 },
2442 { /* profile 7 */
2443 /* ramp-up */
2444 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 31, 31, 31, 5, 0, 0},
2445 /* ramp-down */
2446 { 31, 31, 31, 4, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2447 },
2448 { /* profile 8 */
2449 /* ramp-up */
2450 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 31, 31, 31, 5, 0, 0},
2451 /* ramp-down */
2452 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2453 },
2454 { /* profile 9 */
2455 /* ramp-up */
2456 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 24, 31, 31, 31, 10, 0, 0},
2457 /* ramp-down */
2458 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2459 },
2460 { /* profile 10 */
2461 /* ramp-up */
2462 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 24, 31, 31, 31, 10, 0, 0},
2463 /* ramp-down */
2464 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2465 },
2466 { /* profile 11 */
2467 /* ramp-up */
2468 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 19, 31, 31, 31, 15, 0, 0},
2469 /* ramp-down */
2470 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2471 },
2472 { /* profile 12 */
2473 /* ramp-up */
2474 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 31, 31, 31, 25, 0, 0},
2475 /* ramp-down */
2476 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2477 },
2478 { /* profile 13 */
2479 /* ramp-up */
2480 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 31, 31, 31, 25, 0, 0},
2481 /* ramp-down */
2482 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2483 },
2484 { /* profile 14 */
2485 /* ramp-up */
2486 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 31, 31, 31, 0, 0},
2487 /* ramp-down */
2488 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2489 },
2490 { /* profile 15 */
2491 /* ramp-up */
2492 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 31, 31, 31, 0, 0},
2493 /* ramp-down */
2494 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2495 },
2496 #else
2497 /* TI/Openmoko version */
2498 { /* profile 0 */
2499 /* ramp-up */
2500 { 0, 0, 0, 0, 0, 0, 7, 0, 0, 16, 31, 31, 31, 12, 0, 0},
2501 /* ramp-down */
2502 { 0, 13, 31, 31, 31, 18, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0},
2503 },
2504 { /* profile 1 */
2505 /* ramp-up */
2506 { 0, 0, 0, 0, 0, 0, 2, 3, 4, 17, 30, 31, 31, 10, 0, 0},
2507 /* ramp-down */
2508 { 0, 10, 31, 31, 31, 13, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0},
2509 },
2510 { /* profile 2 */
2511 /* ramp-up */
2512 { 0, 0, 0, 0, 0, 0, 4, 2, 2, 18, 31, 31, 31, 9, 0, 0},
2513 /* ramp-down */
2514 { 0, 10, 26, 31, 31, 16, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0},
2515 },
2516 { /* profile 3 */
2517 /* ramp-up */
2518 { 0, 0, 0, 0, 0, 0, 3, 4, 4, 15, 31, 31, 31, 9, 0, 0},
2519 /* ramp-down */
2520 { 0, 9, 31, 31, 31, 13, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0},
2521 },
2522 { /* profile 4 */
2523 /* ramp-up */
2524 { 0, 0, 0, 0, 0, 0, 4, 3, 0, 18, 31, 31, 31, 10, 0, 0},
2525 /* ramp-down */
2526 { 0, 8, 31, 31, 31, 11, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0},
2527 },
2528 { /* profile 5 */
2529 /* ramp-up */
2530 { 0, 0, 0, 0, 0, 4, 3, 2, 7, 14, 25, 31, 31, 11, 0, 0},
2531 /* ramp-down */
2532 { 0, 14, 31, 31, 31, 9, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0},
2533 },
2534 { /* profile 6 */
2535 /* ramp-up */
2536 { 0, 0, 0, 0, 0, 7, 1, 3, 10, 12, 25, 31, 31, 8, 0, 0},
2537 /* ramp-down */
2538 { 0, 7, 30, 31, 31, 14, 4, 6, 5, 0, 0, 0, 0, 0, 0, 0},
2539 },
2540 { /* profile 7 */
2541 /* ramp-up */
2542 { 0, 0, 0, 0, 3, 5, 0, 5, 8, 12, 26, 31, 31, 7, 0, 0},
2543 /* ramp-down */
2544 { 0, 7, 31, 31, 31, 15, 0, 8, 5, 0, 0, 0, 0, 0, 0, 0},
2545 },
2546 { /* profile 8 */
2547 /* ramp-up */
2548 { 0, 0, 0, 0, 0, 9, 0, 3, 10, 16, 21, 31, 31, 7, 0, 0},
2549 /* ramp-down */
2550 { 0, 11, 28, 31, 27, 10, 11, 0, 10, 0, 0, 0, 0, 0, 0, 0},
2551 },
2552 { /* profile 9 */
2553 /* ramp-up */
2554 { 0, 0, 0, 0, 0, 10, 0, 6, 9, 15, 22, 29, 31, 6, 0, 0},
2555 /* ramp-down */
2556 { 0, 9, 22, 31, 31, 12, 5, 0, 18, 0, 0, 0, 0, 0, 0, 0},
2557 },
2558 { /* profile 10 */
2559 /* ramp-up */
2560 { 0, 0, 0, 0, 14, 0, 0, 4, 10, 20, 21, 29, 24, 6, 0, 0},
2561 /* ramp-down */
2562 { 0, 8, 28, 29, 26, 14, 6, 0, 17, 0, 0, 0, 0, 0, 0, 0},
2563 },
2564 { /* profile 11 */
2565 /* ramp-up */
2566 { 0, 0, 0, 0, 16, 0, 3, 5, 8, 16, 31, 28, 18, 3, 0, 0},
2567 /* ramp-down */
2568 { 0, 6, 18, 26, 31, 16, 9, 7, 0, 15, 0, 0, 0, 0, 0, 0},
2569 },
2570 { /* profile 12 */
2571 /* ramp-up */
2572 { 0, 0, 0, 0, 19, 0, 3, 6, 8, 21, 24, 31, 14, 2, 0, 0},
2573 /* ramp-down */
2574 { 0, 0, 12, 31, 31, 27, 4, 0, 23, 0, 0, 0, 0, 0, 0, 0},
2575 },
2576 { /* profile 13 */
2577 /* ramp-up */
2578 { 0, 0, 0, 0, 0, 14, 14, 0, 0, 24, 31, 31, 14, 0, 0, 0},
2579 /* ramp-down */
2580 { 0, 0, 11, 31, 31, 22, 11, 3, 19, 0, 0, 0, 0, 0, 0, 0},
2581 },
2582 { /* profile 14 */
2583 /* ramp-up */
2584 { 0, 0, 0, 0, 0, 30, 1, 4, 8, 18, 31, 31, 5, 0, 0, 0},
2585 /* ramp-down */
2586 { 0, 0, 8, 31, 31, 22, 5, 0, 31, 0, 0, 0, 0, 0, 0, 0},
2587 },
2588 { /* profile 15 */
2589 /* ramp-up */
2590 { 0, 0, 0, 0, 0, 30, 1, 4, 8, 18, 31, 31, 5, 0, 0, 0},
2591 /* ramp-down */
2592 { 0, 0, 8, 31, 31, 22, 5, 0, 31, 0, 0, 0, 0, 0, 0, 0},
2593 },
2594 #endif
2595 },
2596 { /* Tx temperature compensation */
2597 #if (ORDER2_TX_TEMP_CAL==1)
2598 { -11, 0, 0, 0 },
2599 { +9, 0, 0, 0 },
2600 { +39, 0, 0, 0 },
2601 { +59, 0, 0, 0 },
2602 { 127, 0, 0, 0 }
2603 #else
2604 { -11, 0 },
2605 { +9, 0 },
2606 { +39, 0 },
2607 { +59, 0 },
2608 { 127, 0 }
2609 #endif
2610 },
2611 },
2612 //IQ swap
2613 SWAP_IQ_PCS
2614 };
2615
2616 /*------------------------------------------*/
2617 /* ABB Initialization words
2618 /*------------------------------------------*/
2619 #if (ANLG_FAM == 1)
2620 UWORD16 abb[ABB_TABLE_SIZE] =
2621 {
2622 C_AFCCTLADD, // Value at reset
2623 C_VBUCTRL, // Uplink gain amp 0dB, Sidetone gain to mute
2624 C_VBDCTRL, // Downlink gain amp 0dB, Volume control 0 dB
2625 C_BBCTRL, // value at reset
2626 C_APCOFF, // value at reset
2627 C_BULIOFF, // value at reset
2628 C_BULQOFF, // value at reset
2629 C_DAI_ON_OFF, // value at reset
2630 C_AUXDAC, // value at reset
2631 C_VBCTRL, // VULSWITCH=0, VDLAUX=1, VDLEAR=1
2632 C_APCDEL1 // value at reset
2633 };
2634 #elif (ANLG_FAM == 2)
2635 UWORD16 abb[ABB_TABLE_SIZE] =
2636 {
2637 C_AFCCTLADD,
2638 C_VBUCTRL,
2639 C_VBDCTRL,
2640 C_BBCTRL,
2641 C_BULGCAL,
2642 C_APCOFF,
2643 C_BULIOFF,
2644 C_BULQOFF,
2645 C_DAI_ON_OFF,
2646 C_AUXDAC,
2647 C_VBCTRL1,
2648 C_VBCTRL2,
2649 C_APCDEL1,
2650 C_APCDEL2
2651 };
2652
2653 #elif (ANLG_FAM == 3)
2654 UWORD16 abb[ABB_TABLE_SIZE] =
2655 {
2656 C_AFCCTLADD,
2657 C_VBUCTRL,
2658 C_VBDCTRL,
2659 C_BBCTRL,
2660 C_BULGCAL,
2661 C_APCOFF,
2662 C_BULIOFF,
2663 C_BULQOFF,
2664 C_DAI_ON_OFF,
2665 C_AUXDAC,
2666 C_VBCTRL1,
2667 C_VBCTRL2,
2668 C_APCDEL1,
2669 C_APCDEL2,
2670 C_VBPOP,
2671 C_VAUDINITD,
2672 C_VAUDCR,
2673 C_VAUOCR,
2674 C_VAUSCR,
2675 C_VAUDPLL
2676 };
2677
2678 #endif
2679
2680 /*------------------------------------------*/
2681 /* Gain table */
2682 /* specified in the TRF6053 spec */
2683 /* 2 dB steps - LNA always ON */
2684 /*------------------------------------------*/
2685 UWORD16 AGC_TABLE[AGC_TABLE_SIZE] =
2686 {
2687 0x00, //reserved
2688 0x01, //reserved
2689 0x02, //reserved
2690 0x03, //reserved
2691 0x04, //reserved
2692 0x05, //reserved
2693 0x06, //14 dB
2694 0x07, //16
2695 0x08, //18
2696 0x09, //20
2697 0x0a, //22
2698 0x0b, //24
2699 0x0c, //26
2700 0x0d, //28
2701 0x0e, //30
2702 0x0f, //32
2703 0x10, //34
2704 0x11, //36
2705 0x12, //38
2706 0x13, //40
2707 /*
2708 0x14, //reserved
2709 0x15, //reserved
2710 0x16, //reserved
2711 0x17, //reserved
2712 0x18, //reserved
2713 0x19, //reserved
2714 0x1a, //reserved
2715 0x1b, //reserved
2716 0x1c, //reserved
2717 0x1d, //reserved
2718 0x1e, //reserved
2719 0x1f, //reserved
2720 */
2721 };
2722
2723 // structure for ADC conversion (4 Internal channel + 5 Ext channels max.)
2724 T_ADC adc;
2725
2726 // MADC calibration structure
2727 T_ADCCAL adc_cal=
2728 { // a: 0,..,8
2729 // b, 0,..,8
2730 // cal_a = 4*1750 is the Typical value 1.75 V ref voltage , divide by 4
2731 7000, 8750, 7000, 7000, 7000, 7000, 7000, 256, 7000,
2732 0, 0, 0, 0, 0, 0, 0, 0, 0
2733 };
2734
2735 #if (BOARD == 41)
2736 // table which converts ADC value into RF temperature
2737 T_TEMP temperature[TEMP_TABLE_SIZE] =
2738 {
2739 // Temperature compensation for EVARITA - S.Glock, J.Demay 04/23/2003
2740 582, -40,
2741 640, -10,
2742 698, 25,
2743 756, 60,
2744 815, 90
2745 };
2746 #else
2747 // table which converts ADC value into RF temperature
2748 T_TEMP temperature[TEMP_TABLE_SIZE] =
2749 {
2750 7, -35,
2751 7, -34,
2752 8, -33,
2753 8, -32,
2754 9, -31,
2755 9, -30,
2756 10, -29,
2757 11, -28,
2758 11, -27,
2759 12, -26,
2760 13, -25,
2761 14, -24,
2762 14, -23,
2763 15, -22,
2764 16, -21,
2765 17, -20,
2766 18, -19,
2767 19, -18,
2768 21, -17,
2769 22, -16,
2770 23, -15,
2771 24, -14,
2772 26, -13,
2773 27, -12,
2774 29, -11,
2775 30, -10,
2776 32, -9,
2777 34, -8,
2778 36, -7,
2779 37, -6,
2780 39, -5,
2781 41, -4,
2782 44, -3,
2783 46, -2,
2784 48, -1,
2785 51, 0,
2786 53, 1,
2787 56, 2,
2788 59, 3,
2789 61, 4,
2790 64, 5,
2791 68, 6,
2792 71, 7,
2793 74, 8,
2794 78, 9,
2795 81, 10,
2796 85, 11,
2797 89, 12,
2798 93, 13,
2799 97, 14,
2800 101, 15,
2801 105, 16,
2802 110, 17,
2803 115, 18,
2804 119, 19,
2805 124, 20,
2806 130, 21,
2807 135, 22,
2808 140, 23,
2809 146, 24,
2810 152, 25,
2811 158, 26,
2812 164, 27,
2813 170, 28,
2814 176, 29,
2815 183, 30,
2816 190, 31,
2817 197, 32,
2818 204, 33,
2819 211, 34,
2820 219, 35,
2821 226, 36,
2822 234, 37,
2823 242, 38,
2824 250, 39,
2825 259, 40,
2826 267, 41,
2827 276, 42,
2828 285, 43,
2829 294, 44,
2830 303, 45,
2831 312, 46,
2832 322, 47,
2833 331, 48,
2834 341, 49,
2835 351, 50,
2836 361, 51,
2837 371, 52,
2838 382, 53,
2839 392, 54,
2840 403, 55,
2841 413, 56,
2842 424, 57,
2843 435, 58,
2844 446, 59,
2845 458, 60,
2846 469, 61,
2847 480, 62,
2848 492, 63,
2849 503, 64,
2850 515, 65,
2851 527, 66,
2852 539, 67,
2853 550, 68,
2854 562, 69,
2855 574, 70,
2856 586, 71,
2857 598, 72,
2858 611, 73,
2859 623, 74,
2860 635, 75,
2861 647, 76,
2862 659, 77,
2863 671, 78,
2864 683, 79,
2865 696, 80,
2866 708, 81,
2867 720, 82,
2868 732, 83,
2869 744, 84,
2870 756, 85,
2871 768, 86,
2872 780, 87,
2873 792, 88,
2874 804, 89,
2875 816, 90,
2876 827, 91,
2877 839, 92,
2878 851, 93,
2879 862, 94,
2880 873, 95
2881 };
2882 #endif