FreeCalypso > hg > freecalypso-sw
comparison gsm-fw/L1/cust0/l1_rf12.c @ 522:2c9c2b95ddec
FC version of l1_rf12.c compiles
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Sun, 13 Jul 2014 07:48:14 +0000 |
parents | gsm-fw/L1/cust0/mv100/l1_rf12.c@eafadfee35b2 |
children | a6ff7b513bcf |
comparison
equal
deleted
inserted
replaced
521:e1dd4a240199 | 522:2c9c2b95ddec |
---|---|
1 /* | |
2 * In TI's original code these l1_rfXX.c files were not compilation units | |
3 * in themselves, but were #included into l1_cust.c instead. I dislike | |
4 * that approach, so I decided to make this FreeCalypso version of l1_rf12.c | |
5 * into its own compilation unit. | |
6 * | |
7 * This FreeCalypso version of l1_rf12.c is based on MV100, Leonardo and | |
8 * Openmoko versions as explained in the comments for each struct. | |
9 */ | |
10 | |
11 #include "../../include/config.h" | |
12 #include "../include/l1_confg.h" | |
13 #include "../include/l1_const.h" | |
14 #include "../include/l1_types.h" | |
15 #include "../../bsp/abb+spi/abb.h" | |
16 #include "l1_rf12.h" | |
17 | |
18 /* | |
19 * The following definition of T_RF rf comes from mv100/l1_rf12.c. | |
20 * The elaborate initialization of the structure has been compared against | |
21 * the object blob in the Leonardo version and found to match. | |
22 */ | |
23 T_RF rf = | |
24 { | |
25 RF_RITA_10, //RF revision | |
26 RF_HW_BAND_SUPPORT, // radio_band_support E-GSM/DCS + PCS | |
27 | |
28 { //RX structure | |
29 { //AGC structure | |
30 140, // low_agc_noise_thr; | |
31 110, // high_agc_sat_thr; | |
32 6, // low_agc; | |
33 34, // high_agc; | |
34 //IL2AGC tables | |
35 { // below is: il2agc_pwr[121]; | |
36 // il2agc_max[121]; | |
37 // il2agc_av[121]; | |
38 // il2agc_pwr | |
39 // Note this is shared between PCN and EGSM. | |
40 14, /* EGSM_MAX IL=0 */ | |
41 14, /* EGSM_MAX IL=-1 */ | |
42 14, /* EGSM_MAX IL=-2 */ | |
43 14, /* EGSM_MAX IL=-3 */ | |
44 14, /* EGSM_MAX IL=-4 */ | |
45 14, /* EGSM_MAX IL=-5 */ | |
46 14, /* EGSM_MAX IL=-6 */ | |
47 14, /* EGSM_MAX IL=-7 */ | |
48 14, /* EGSM_MAX IL=-8 */ | |
49 14, /* EGSM_MAX IL=-9 */ | |
50 14, /* EGSM_MAX IL=-10 */ | |
51 14, /* EGSM_MAX IL=-11 */ | |
52 14, /* EGSM_MAX IL=-12 */ | |
53 14, /* EGSM_MAX IL=-13 */ | |
54 14, /* EGSM_MAX IL=-14 */ | |
55 14, /* EGSM_MAX IL=-15 */ | |
56 14, /* EGSM_MAX IL=-16 */ | |
57 14, /* EGSM_MAX IL=-17 */ | |
58 14, /* EGSM_MAX IL=-18 */ | |
59 14, /* EGSM_MAX IL=-19 */ | |
60 14, /* EGSM_MAX IL=-20 */ | |
61 14, /* EGSM_MAX IL=-21 */ | |
62 14, /* EGSM_MAX IL=-22 */ | |
63 14, /* EGSM_MAX IL=-23 */ | |
64 14, /* EGSM_MAX IL=-24 */ | |
65 14, /* EGSM_MAX IL=-25 */ | |
66 14, /* EGSM_MAX IL=-26 */ | |
67 14, /* EGSM_MAX IL=-27 */ | |
68 14, /* EGSM_MAX IL=-28 */ | |
69 14, /* EGSM_MAX IL=-29 */ | |
70 14, /* EGSM_MAX IL=-30 */ | |
71 14, /* EGSM_MAX IL=-31 */ | |
72 14, /* EGSM_MAX IL=-32 */ | |
73 14, /* EGSM_MAX IL=-33 */ | |
74 14, /* EGSM_MAX IL=-34 */ | |
75 14, /* EGSM_MAX IL=-35 */ | |
76 14, /* EGSM_MAX IL=-36 */ | |
77 14, /* EGSM_MAX IL=-37 */ | |
78 14, /* EGSM_MAX IL=-38 */ | |
79 14, /* EGSM_MAX IL=-39 */ | |
80 14, /* EGSM_MAX IL=-40 */ | |
81 14, /* EGSM_MAX IL=-41 */ | |
82 14, /* EGSM_MAX IL=-42 */ | |
83 14, /* EGSM_MAX IL=-43 */ | |
84 14, /* EGSM_MAX IL=-44 */ | |
85 14, /* EGSM_MAX IL=-45 */ | |
86 14, /* EGSM_MAX IL=-46 */ | |
87 14, /* EGSM_MAX IL=-47 */ | |
88 14, /* EGSM_MAX IL=-48 */ | |
89 14, /* EGSM_MAX IL=-49 */ | |
90 14, /* EGSM_MAX IL=-50 */ | |
91 14, /* EGSM_MAX IL=-51 */ | |
92 14, /* EGSM_MAX IL=-52 */ | |
93 14, /* EGSM_MAX IL=-53 */ | |
94 14, /* EGSM_MAX IL=-54 */ | |
95 16, /* EGSM_MAX IL=-55 */ | |
96 16, /* EGSM_MAX IL=-56 */ | |
97 18, /* EGSM_MAX IL=-57 */ | |
98 18, /* EGSM_MAX IL=-58 */ | |
99 20, /* EGSM_MAX IL=-59 */ | |
100 20, /* EGSM_MAX IL=-60 */ | |
101 22, /* EGSM_MAX IL=-61 */ | |
102 22, /* EGSM_MAX IL=-62 */ | |
103 24, /* EGSM_MAX IL=-63 */ | |
104 24, /* EGSM_MAX IL=-64 */ | |
105 26, /* EGSM_MAX IL=-65 */ | |
106 26, /* EGSM_MAX IL=-66 */ | |
107 28, /* EGSM_MAX IL=-67 */ | |
108 28, /* EGSM_MAX IL=-68 */ | |
109 30, /* EGSM_MAX IL=-69 */ | |
110 30, /* EGSM_MAX IL=-70 */ | |
111 32, /* EGSM_MAX IL=-71 */ | |
112 32, /* EGSM_MAX IL=-72 */ | |
113 34, /* EGSM_MAX IL=-73 */ | |
114 34, /* EGSM_MAX IL=-74 */ | |
115 36, /* EGSM_MAX IL=-75 */ | |
116 36, /* EGSM_MAX IL=-76 */ | |
117 38, /* EGSM_MAX IL=-77 */ | |
118 38, /* EGSM_MAX IL=-78 */ | |
119 40, /* EGSM_MAX IL=-79 */ | |
120 40, /* EGSM_MAX IL=-80 */ | |
121 40, /* EGSM_MAX IL=-81 */ | |
122 40, /* EGSM_MAX IL=-82 */ | |
123 40, /* EGSM_MAX IL=-83 */ | |
124 40, /* EGSM_MAX IL=-84 */ | |
125 40, /* EGSM_MAX IL=-85 */ | |
126 40, /* EGSM_MAX IL=-86 */ | |
127 40, /* EGSM_MAX IL=-87 */ | |
128 40, /* EGSM_MAX IL=-88 */ | |
129 40, /* EGSM_MAX IL=-89 */ | |
130 40, /* EGSM_MAX IL=-90 */ | |
131 40, /* EGSM_MAX IL=-91 */ | |
132 40, /* EGSM_MAX IL=-92 */ | |
133 40, /* EGSM_MAX IL=-93 */ | |
134 40, /* EGSM_MAX IL=-94 */ | |
135 40, /* EGSM_MAX IL=-95 */ | |
136 40, /* EGSM_MAX IL=-96 */ | |
137 40, /* EGSM_MAX IL=-97 */ | |
138 40, /* EGSM_MAX IL=-98 */ | |
139 40, /* EGSM_MAX IL=-99 */ | |
140 40, /* EGSM_MAX IL=-100 */ | |
141 40, /* EGSM_MAX IL=-101 */ | |
142 40, /* EGSM_MAX IL=-102 */ | |
143 40, /* EGSM_MAX IL=-103 */ | |
144 40, /* EGSM_MAX IL=-104 */ | |
145 40, /* EGSM_MAX IL=-105 */ | |
146 40, /* EGSM_MAX IL=-106 */ | |
147 40, /* EGSM_MAX IL=-107 */ | |
148 40, /* EGSM_MAX IL=-108 */ | |
149 40, /* EGSM_MAX IL=-109 */ | |
150 40, /* EGSM_MAX IL=-110 */ | |
151 40, /* EGSM_MAX IL=-111 */ | |
152 40, /* EGSM_MAX IL=-112 */ | |
153 40, /* EGSM_MAX IL=-113 */ | |
154 40, /* EGSM_MAX IL=-114 */ | |
155 40, /* EGSM_MAX IL=-115 */ | |
156 40, /* EGSM_MAX IL=-116 */ | |
157 40, /* EGSM_MAX IL=-117 */ | |
158 40, /* EGSM_MAX IL=-118 */ | |
159 40, /* EGSM_MAX IL=-119 */ | |
160 40 /* EGSM_MAX IL=-120 */ | |
161 }, | |
162 { // il2agc_max | |
163 // Note this is shared between PCN and EGSM. | |
164 14, /* EGSM_MAX IL=0 */ | |
165 14, /* EGSM_MAX IL=-1 */ | |
166 14, /* EGSM_MAX IL=-2 */ | |
167 14, /* EGSM_MAX IL=-3 */ | |
168 14, /* EGSM_MAX IL=-4 */ | |
169 14, /* EGSM_MAX IL=-5 */ | |
170 14, /* EGSM_MAX IL=-6 */ | |
171 14, /* EGSM_MAX IL=-7 */ | |
172 14, /* EGSM_MAX IL=-8 */ | |
173 14, /* EGSM_MAX IL=-9 */ | |
174 14, /* EGSM_MAX IL=-10 */ | |
175 14, /* EGSM_MAX IL=-11 */ | |
176 14, /* EGSM_MAX IL=-12 */ | |
177 14, /* EGSM_MAX IL=-13 */ | |
178 14, /* EGSM_MAX IL=-14 */ | |
179 14, /* EGSM_MAX IL=-15 */ | |
180 14, /* EGSM_MAX IL=-16 */ | |
181 14, /* EGSM_MAX IL=-17 */ | |
182 14, /* EGSM_MAX IL=-18 */ | |
183 14, /* EGSM_MAX IL=-19 */ | |
184 14, /* EGSM_MAX IL=-20 */ | |
185 14, /* EGSM_MAX IL=-21 */ | |
186 14, /* EGSM_MAX IL=-22 */ | |
187 14, /* EGSM_MAX IL=-23 */ | |
188 14, /* EGSM_MAX IL=-24 */ | |
189 14, /* EGSM_MAX IL=-25 */ | |
190 14, /* EGSM_MAX IL=-26 */ | |
191 14, /* EGSM_MAX IL=-27 */ | |
192 14, /* EGSM_MAX IL=-28 */ | |
193 14, /* EGSM_MAX IL=-29 */ | |
194 14, /* EGSM_MAX IL=-30 */ | |
195 14, /* EGSM_MAX IL=-31 */ | |
196 14, /* EGSM_MAX IL=-32 */ | |
197 14, /* EGSM_MAX IL=-33 */ | |
198 14, /* EGSM_MAX IL=-34 */ | |
199 14, /* EGSM_MAX IL=-35 */ | |
200 14, /* EGSM_MAX IL=-36 */ | |
201 14, /* EGSM_MAX IL=-37 */ | |
202 14, /* EGSM_MAX IL=-38 */ | |
203 14, /* EGSM_MAX IL=-39 */ | |
204 14, /* EGSM_MAX IL=-40 */ | |
205 14, /* EGSM_MAX IL=-41 */ | |
206 14, /* EGSM_MAX IL=-42 */ | |
207 14, /* EGSM_MAX IL=-43 */ | |
208 14, /* EGSM_MAX IL=-44 */ | |
209 14, /* EGSM_MAX IL=-45 */ | |
210 14, /* EGSM_MAX IL=-46 */ | |
211 14, /* EGSM_MAX IL=-47 */ | |
212 14, /* EGSM_MAX IL=-48 */ | |
213 14, /* EGSM_MAX IL=-49 */ | |
214 14, /* EGSM_MAX IL=-50 */ | |
215 14, /* EGSM_MAX IL=-51 */ | |
216 14, /* EGSM_MAX IL=-52 */ | |
217 14, /* EGSM_MAX IL=-53 */ | |
218 14, /* EGSM_MAX IL=-54 */ | |
219 16, /* EGSM_MAX IL=-55 */ | |
220 16, /* EGSM_MAX IL=-56 */ | |
221 18, /* EGSM_MAX IL=-57 */ | |
222 18, /* EGSM_MAX IL=-58 */ | |
223 20, /* EGSM_MAX IL=-59 */ | |
224 20, /* EGSM_MAX IL=-60 */ | |
225 22, /* EGSM_MAX IL=-61 */ | |
226 22, /* EGSM_MAX IL=-62 */ | |
227 24, /* EGSM_MAX IL=-63 */ | |
228 24, /* EGSM_MAX IL=-64 */ | |
229 26, /* EGSM_MAX IL=-65 */ | |
230 26, /* EGSM_MAX IL=-66 */ | |
231 28, /* EGSM_MAX IL=-67 */ | |
232 28, /* EGSM_MAX IL=-68 */ | |
233 30, /* EGSM_MAX IL=-69 */ | |
234 30, /* EGSM_MAX IL=-70 */ | |
235 32, /* EGSM_MAX IL=-71 */ | |
236 32, /* EGSM_MAX IL=-72 */ | |
237 34, /* EGSM_MAX IL=-73 */ | |
238 34, /* EGSM_MAX IL=-74 */ | |
239 36, /* EGSM_MAX IL=-75 */ | |
240 36, /* EGSM_MAX IL=-76 */ | |
241 38, /* EGSM_MAX IL=-77 */ | |
242 38, /* EGSM_MAX IL=-78 */ | |
243 40, /* EGSM_MAX IL=-79 */ | |
244 40, /* EGSM_MAX IL=-80 */ | |
245 40, /* EGSM_MAX IL=-81 */ | |
246 40, /* EGSM_MAX IL=-82 */ | |
247 40, /* EGSM_MAX IL=-83 */ | |
248 40, /* EGSM_MAX IL=-84 */ | |
249 40, /* EGSM_MAX IL=-85 */ | |
250 40, /* EGSM_MAX IL=-86 */ | |
251 40, /* EGSM_MAX IL=-87 */ | |
252 40, /* EGSM_MAX IL=-88 */ | |
253 40, /* EGSM_MAX IL=-89 */ | |
254 40, /* EGSM_MAX IL=-90 */ | |
255 40, /* EGSM_MAX IL=-91 */ | |
256 40, /* EGSM_MAX IL=-92 */ | |
257 40, /* EGSM_MAX IL=-93 */ | |
258 40, /* EGSM_MAX IL=-94 */ | |
259 40, /* EGSM_MAX IL=-95 */ | |
260 40, /* EGSM_MAX IL=-96 */ | |
261 40, /* EGSM_MAX IL=-97 */ | |
262 40, /* EGSM_MAX IL=-98 */ | |
263 40, /* EGSM_MAX IL=-99 */ | |
264 40, /* EGSM_MAX IL=-100 */ | |
265 40, /* EGSM_MAX IL=-101 */ | |
266 40, /* EGSM_MAX IL=-102 */ | |
267 40, /* EGSM_MAX IL=-103 */ | |
268 40, /* EGSM_MAX IL=-104 */ | |
269 40, /* EGSM_MAX IL=-105 */ | |
270 40, /* EGSM_MAX IL=-106 */ | |
271 40, /* EGSM_MAX IL=-107 */ | |
272 40, /* EGSM_MAX IL=-108 */ | |
273 40, /* EGSM_MAX IL=-109 */ | |
274 40, /* EGSM_MAX IL=-110 */ | |
275 40, /* EGSM_MAX IL=-111 */ | |
276 40, /* EGSM_MAX IL=-112 */ | |
277 40, /* EGSM_MAX IL=-113 */ | |
278 40, /* EGSM_MAX IL=-114 */ | |
279 40, /* EGSM_MAX IL=-115 */ | |
280 40, /* EGSM_MAX IL=-116 */ | |
281 40, /* EGSM_MAX IL=-117 */ | |
282 40, /* EGSM_MAX IL=-118 */ | |
283 40, /* EGSM_MAX IL=-119 */ | |
284 40 /* EGSM_MAX IL=-120 */ | |
285 }, | |
286 { // il2agc_av | |
287 // Note this is shared between PCN and EGSM. | |
288 14, /* EGSM_MAX IL=0 */ | |
289 14, /* EGSM_MAX IL=-1 */ | |
290 14, /* EGSM_MAX IL=-2 */ | |
291 14, /* EGSM_MAX IL=-3 */ | |
292 14, /* EGSM_MAX IL=-4 */ | |
293 14, /* EGSM_MAX IL=-5 */ | |
294 14, /* EGSM_MAX IL=-6 */ | |
295 14, /* EGSM_MAX IL=-7 */ | |
296 14, /* EGSM_MAX IL=-8 */ | |
297 14, /* EGSM_MAX IL=-9 */ | |
298 14, /* EGSM_MAX IL=-10 */ | |
299 14, /* EGSM_MAX IL=-11 */ | |
300 14, /* EGSM_MAX IL=-12 */ | |
301 14, /* EGSM_MAX IL=-13 */ | |
302 14, /* EGSM_MAX IL=-14 */ | |
303 14, /* EGSM_MAX IL=-15 */ | |
304 14, /* EGSM_MAX IL=-16 */ | |
305 14, /* EGSM_MAX IL=-17 */ | |
306 14, /* EGSM_MAX IL=-18 */ | |
307 14, /* EGSM_MAX IL=-19 */ | |
308 14, /* EGSM_MAX IL=-20 */ | |
309 14, /* EGSM_MAX IL=-21 */ | |
310 14, /* EGSM_MAX IL=-22 */ | |
311 14, /* EGSM_MAX IL=-23 */ | |
312 14, /* EGSM_MAX IL=-24 */ | |
313 14, /* EGSM_MAX IL=-25 */ | |
314 14, /* EGSM_MAX IL=-26 */ | |
315 14, /* EGSM_MAX IL=-27 */ | |
316 14, /* EGSM_MAX IL=-28 */ | |
317 14, /* EGSM_MAX IL=-29 */ | |
318 14, /* EGSM_MAX IL=-30 */ | |
319 14, /* EGSM_MAX IL=-31 */ | |
320 14, /* EGSM_MAX IL=-32 */ | |
321 14, /* EGSM_MAX IL=-33 */ | |
322 14, /* EGSM_MAX IL=-34 */ | |
323 14, /* EGSM_MAX IL=-35 */ | |
324 14, /* EGSM_MAX IL=-36 */ | |
325 14, /* EGSM_MAX IL=-37 */ | |
326 14, /* EGSM_MAX IL=-38 */ | |
327 14, /* EGSM_MAX IL=-39 */ | |
328 14, /* EGSM_MAX IL=-40 */ | |
329 14, /* EGSM_MAX IL=-41 */ | |
330 14, /* EGSM_MAX IL=-42 */ | |
331 14, /* EGSM_MAX IL=-43 */ | |
332 14, /* EGSM_MAX IL=-44 */ | |
333 14, /* EGSM_MAX IL=-45 */ | |
334 14, /* EGSM_MAX IL=-46 */ | |
335 14, /* EGSM_MAX IL=-47 */ | |
336 14, /* EGSM_MAX IL=-48 */ | |
337 14, /* EGSM_MAX IL=-49 */ | |
338 14, /* EGSM_MAX IL=-50 */ | |
339 14, /* EGSM_MAX IL=-51 */ | |
340 14, /* EGSM_MAX IL=-52 */ | |
341 14, /* EGSM_MAX IL=-53 */ | |
342 14, /* EGSM_MAX IL=-54 */ | |
343 16, /* EGSM_MAX IL=-55 */ | |
344 16, /* EGSM_MAX IL=-56 */ | |
345 18, /* EGSM_MAX IL=-57 */ | |
346 18, /* EGSM_MAX IL=-58 */ | |
347 20, /* EGSM_MAX IL=-59 */ | |
348 20, /* EGSM_MAX IL=-60 */ | |
349 22, /* EGSM_MAX IL=-61 */ | |
350 22, /* EGSM_MAX IL=-62 */ | |
351 24, /* EGSM_MAX IL=-63 */ | |
352 24, /* EGSM_MAX IL=-64 */ | |
353 26, /* EGSM_MAX IL=-65 */ | |
354 26, /* EGSM_MAX IL=-66 */ | |
355 28, /* EGSM_MAX IL=-67 */ | |
356 28, /* EGSM_MAX IL=-68 */ | |
357 30, /* EGSM_MAX IL=-69 */ | |
358 30, /* EGSM_MAX IL=-70 */ | |
359 32, /* EGSM_MAX IL=-71 */ | |
360 32, /* EGSM_MAX IL=-72 */ | |
361 34, /* EGSM_MAX IL=-73 */ | |
362 34, /* EGSM_MAX IL=-74 */ | |
363 36, /* EGSM_MAX IL=-75 */ | |
364 36, /* EGSM_MAX IL=-76 */ | |
365 38, /* EGSM_MAX IL=-77 */ | |
366 38, /* EGSM_MAX IL=-78 */ | |
367 40, /* EGSM_MAX IL=-79 */ | |
368 40, /* EGSM_MAX IL=-80 */ | |
369 40, /* EGSM_MAX IL=-81 */ | |
370 40, /* EGSM_MAX IL=-82 */ | |
371 40, /* EGSM_MAX IL=-83 */ | |
372 40, /* EGSM_MAX IL=-84 */ | |
373 40, /* EGSM_MAX IL=-85 */ | |
374 40, /* EGSM_MAX IL=-86 */ | |
375 40, /* EGSM_MAX IL=-87 */ | |
376 40, /* EGSM_MAX IL=-88 */ | |
377 40, /* EGSM_MAX IL=-89 */ | |
378 40, /* EGSM_MAX IL=-90 */ | |
379 40, /* EGSM_MAX IL=-91 */ | |
380 40, /* EGSM_MAX IL=-92 */ | |
381 40, /* EGSM_MAX IL=-93 */ | |
382 40, /* EGSM_MAX IL=-94 */ | |
383 40, /* EGSM_MAX IL=-95 */ | |
384 40, /* EGSM_MAX IL=-96 */ | |
385 40, /* EGSM_MAX IL=-97 */ | |
386 40, /* EGSM_MAX IL=-98 */ | |
387 40, /* EGSM_MAX IL=-99 */ | |
388 40, /* EGSM_MAX IL=-100 */ | |
389 40, /* EGSM_MAX IL=-101 */ | |
390 40, /* EGSM_MAX IL=-102 */ | |
391 40, /* EGSM_MAX IL=-103 */ | |
392 40, /* EGSM_MAX IL=-104 */ | |
393 40, /* EGSM_MAX IL=-105 */ | |
394 40, /* EGSM_MAX IL=-106 */ | |
395 40, /* EGSM_MAX IL=-107 */ | |
396 40, /* EGSM_MAX IL=-108 */ | |
397 40, /* EGSM_MAX IL=-109 */ | |
398 40, /* EGSM_MAX IL=-110 */ | |
399 40, /* EGSM_MAX IL=-111 */ | |
400 40, /* EGSM_MAX IL=-112 */ | |
401 40, /* EGSM_MAX IL=-113 */ | |
402 40, /* EGSM_MAX IL=-114 */ | |
403 40, /* EGSM_MAX IL=-115 */ | |
404 40, /* EGSM_MAX IL=-116 */ | |
405 40, /* EGSM_MAX IL=-117 */ | |
406 40, /* EGSM_MAX IL=-118 */ | |
407 40, /* EGSM_MAX IL=-119 */ | |
408 40 /* EGSM_MAX IL=-120 */ | |
409 } | |
410 }, | |
411 }, | |
412 { | |
413 {0, 0}, // ramp up and down delays | |
414 GUARD_BITS, // number of guard bits needed for ramp up | |
415 PRG_TX // propagation delay PRG_TX | |
416 }, | |
417 { //AFC parameters | |
418 EEPROM_AFC, | |
419 C_Psi_sta_inv, // (1/C_Psi_sta) | |
420 C_Psi_st, // C_Psi_sta * 0.8 F0.16 | |
421 C_Psi_st_32, // F0.32 | |
422 C_Psi_st_inv // (1/C_Psi_st) | |
423 | |
424 #if (VCXO_ALGO==1) | |
425 ,C_AFC_DAC_CENTER, // VCXO startup parameter - best guess | |
426 C_AFC_DAC_MIN, // VCXO startup parameter - 15ppm | |
427 C_AFC_DAC_MAX, // VCXO startup parameter + 15ppm | |
428 C_AFC_SNR_THR // snr - Default threshold value | |
429 #endif | |
430 } | |
431 }; | |
432 | |
433 /* uninitialised rf struct for bands */ | |
434 T_RF_BAND rf_band[GSM_BANDS] __attribute__ ((section ("int.bss"))); | |
435 | |
436 /* | |
437 * The const T_RF_BAND rf_{900,1800,850,1900} structures that follow | |
438 * are the versions that appear in the .const section of l1_cust.obj | |
439 * in the l1_custom_int.lib Leonardo blob, used successfully in leo2moko. | |
440 * As revealed with objgrep, this .const section with these uncalibrated | |
441 * defaults in it also appears in the moko11 binary - I'm guessing that | |
442 * Openmoko probably had no source for this part either, and used TI's | |
443 * standard Leonardo binary lib. The pretty C formatting presented here | |
444 * is courtesy of the calextract utility. | |
445 * | |
446 * Please note that these hard-coded "calibration" values are mostly | |
447 * decorative: when running on an actual GSM device (at least on GTA0x | |
448 * and Pirelli targets; dunno how we'll handle Compal, if at all), | |
449 * almost everything in these tables will be overridden with the "real" | |
450 * calibration data read from MokoFFS or from Pirelli's factory data | |
451 * block. The only bits that remain from these hard-coded structs are | |
452 * the Rx and Tx temperature compensation tables, and these have been | |
453 * found to be identical between mv100/l1_rf12.c, the bits in the Leonardo | |
454 * object blob (and hence in moko11 too), and the hard-coded structs | |
455 * found in Pirelli's fw image. | |
456 */ | |
457 | |
458 #if (ORDER2_TX_TEMP_CAL != 1) | |
459 #error "Hard-coded T_RF_BAND structs expect ORDER2_TX_TEMP_CAL to be 1" | |
460 #endif | |
461 | |
462 const T_RF_BAND rf_900 = { | |
463 { /* Rx structure */ | |
464 { /* T_RX_CAL_PARAMS */ | |
465 193, | |
466 40, | |
467 40, | |
468 44, | |
469 }, | |
470 { /* T_RF_AGC_BANDs */ | |
471 { 10, 0}, | |
472 { 30, 0}, | |
473 { 51, 0}, | |
474 { 71, 0}, | |
475 { 90, 0}, | |
476 { 112, 0}, | |
477 { 124, 0}, | |
478 { 991, 0}, | |
479 { 992, 0}, | |
480 { 1023, 0}, | |
481 }, | |
482 { /* Rx temperature compensation */ | |
483 { -15, 0}, | |
484 { -5, 0}, | |
485 { 6, 0}, | |
486 { 16, 0}, | |
487 { 25, 0}, | |
488 { 35, 0}, | |
489 { 45, 0}, | |
490 { 56, 0}, | |
491 { 66, 0}, | |
492 { 75, 0}, | |
493 { 100, 0}, | |
494 }, | |
495 }, | |
496 { /* Tx structure */ | |
497 { /* levels */ | |
498 { 465, 0, 0}, /* 0 */ | |
499 { 465, 0, 0}, /* 1 */ | |
500 { 465, 0, 0}, /* 2 */ | |
501 { 465, 0, 0}, /* 3 */ | |
502 { 465, 0, 0}, /* 4 */ | |
503 { 465, 0, 0}, /* 5 */ | |
504 { 387, 1, 0}, /* 6 */ | |
505 { 324, 2, 0}, /* 7 */ | |
506 { 260, 3, 0}, /* 8 */ | |
507 { 210, 4, 0}, /* 9 */ | |
508 { 170, 5, 0}, /* 10 */ | |
509 { 138, 6, 0}, /* 11 */ | |
510 { 113, 7, 0}, /* 12 */ | |
511 { 92, 8, 0}, /* 13 */ | |
512 { 76, 9, 0}, /* 14 */ | |
513 { 62, 10, 0}, /* 15 */ | |
514 { 51, 11, 0}, /* 16 */ | |
515 { 42, 12, 0}, /* 17 */ | |
516 { 34, 13, 0}, /* 18 */ | |
517 { 27, 14, 0}, /* 19 */ | |
518 { 27, 14, 0}, /* 20 */ | |
519 { 27, 14, 0}, /* 21 */ | |
520 { 27, 14, 0}, /* 22 */ | |
521 { 27, 14, 0}, /* 23 */ | |
522 { 27, 14, 0}, /* 24 */ | |
523 { 27, 14, 0}, /* 25 */ | |
524 { 27, 14, 0}, /* 26 */ | |
525 { 27, 14, 0}, /* 27 */ | |
526 { 27, 14, 0}, /* 28 */ | |
527 { 27, 14, 0}, /* 29 */ | |
528 { 27, 14, 0}, /* 30 */ | |
529 { 27, 14, 0}, /* 31 */ | |
530 }, | |
531 { /* channel calibration tables */ | |
532 { /* calibration table 0 */ | |
533 { 40, 128}, | |
534 { 80, 128}, | |
535 { 124, 128}, | |
536 { 586, 128}, | |
537 { 661, 128}, | |
538 { 736, 128}, | |
539 { 885, 128}, | |
540 { 1023, 128}, | |
541 }, | |
542 { /* calibration table 1 */ | |
543 { 40, 128}, | |
544 { 80, 128}, | |
545 { 124, 128}, | |
546 { 586, 128}, | |
547 { 661, 128}, | |
548 { 736, 128}, | |
549 { 885, 128}, | |
550 { 1023, 128}, | |
551 }, | |
552 { /* calibration table 2 */ | |
553 { 40, 128}, | |
554 { 80, 128}, | |
555 { 124, 128}, | |
556 { 586, 128}, | |
557 { 661, 128}, | |
558 { 736, 128}, | |
559 { 885, 128}, | |
560 { 1023, 128}, | |
561 }, | |
562 { /* calibration table 3 */ | |
563 { 40, 128}, | |
564 { 80, 128}, | |
565 { 124, 128}, | |
566 { 586, 128}, | |
567 { 661, 128}, | |
568 { 736, 128}, | |
569 { 885, 128}, | |
570 { 1023, 128}, | |
571 }, | |
572 }, | |
573 { /* ramps */ | |
574 { /* profile 0 */ | |
575 /* ramp-up */ | |
576 { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0}, | |
577 /* ramp-down */ | |
578 { 0, 11, 31, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
579 }, | |
580 { /* profile 1 */ | |
581 /* ramp-up */ | |
582 { 0, 0, 0, 0, 0, 0, 1, 1, 7, 16, 28, 31, 31, 13, 0, 0}, | |
583 /* ramp-down */ | |
584 { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
585 }, | |
586 { /* profile 2 */ | |
587 /* ramp-up */ | |
588 { 0, 0, 0, 0, 0, 0, 1, 1, 8, 16, 29, 31, 31, 11, 0, 0}, | |
589 /* ramp-down */ | |
590 { 0, 8, 28, 31, 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
591 }, | |
592 { /* profile 3 */ | |
593 /* ramp-up */ | |
594 { 0, 0, 0, 0, 0, 0, 2, 0, 6, 18, 28, 31, 31, 12, 0, 0}, | |
595 /* ramp-down */ | |
596 { 0, 9, 24, 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
597 }, | |
598 { /* profile 4 */ | |
599 /* ramp-up */ | |
600 { 0, 0, 0, 0, 0, 0, 3, 0, 5, 19, 31, 31, 31, 8, 0, 0}, | |
601 /* ramp-down */ | |
602 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
603 }, | |
604 { /* profile 5 */ | |
605 /* ramp-up */ | |
606 { 0, 0, 0, 0, 0, 0, 2, 0, 7, 18, 31, 31, 31, 8, 0, 0}, | |
607 /* ramp-down */ | |
608 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
609 }, | |
610 { /* profile 6 */ | |
611 /* ramp-up */ | |
612 { 0, 0, 0, 0, 0, 0, 3, 0, 5, 20, 31, 31, 31, 7, 0, 0}, | |
613 /* ramp-down */ | |
614 { 0, 10, 21, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
615 }, | |
616 { /* profile 7 */ | |
617 /* ramp-up */ | |
618 { 0, 0, 0, 0, 0, 0, 4, 0, 9, 23, 22, 31, 31, 8, 0, 0}, | |
619 /* ramp-down */ | |
620 { 0, 9, 24, 30, 31, 30, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
621 }, | |
622 { /* profile 8 */ | |
623 /* ramp-up */ | |
624 { 0, 0, 0, 0, 0, 0, 5, 0, 8, 21, 24, 31, 31, 8, 0, 0}, | |
625 /* ramp-down */ | |
626 { 0, 8, 23, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
627 }, | |
628 { /* profile 9 */ | |
629 /* ramp-up */ | |
630 { 0, 0, 0, 0, 0, 5, 0, 3, 1, 27, 22, 31, 31, 8, 0, 0}, | |
631 /* ramp-down */ | |
632 { 0, 8, 27, 25, 26, 31, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
633 }, | |
634 { /* profile 10 */ | |
635 /* ramp-up */ | |
636 { 0, 0, 0, 0, 5, 0, 0, 2, 7, 22, 23, 31, 31, 7, 0, 0}, | |
637 /* ramp-down */ | |
638 { 0, 7, 25, 30, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
639 }, | |
640 { /* profile 11 */ | |
641 /* ramp-up */ | |
642 { 0, 0, 0, 0, 0, 5, 0, 4, 8, 21, 21, 31, 31, 7, 0, 0}, | |
643 /* ramp-down */ | |
644 { 0, 8, 21, 31, 31, 31, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
645 }, | |
646 { /* profile 12 */ | |
647 /* ramp-up */ | |
648 { 0, 0, 0, 0, 0, 7, 0, 0, 12, 22, 25, 31, 27, 4, 0, 0}, | |
649 /* ramp-down */ | |
650 { 0, 9, 12, 21, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
651 }, | |
652 { /* profile 13 */ | |
653 /* ramp-up */ | |
654 { 0, 0, 0, 0, 0, 0, 7, 0, 8, 15, 31, 31, 31, 5, 0, 0}, | |
655 /* ramp-down */ | |
656 { 0, 6, 14, 23, 31, 31, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
657 }, | |
658 { /* profile 14 */ | |
659 /* ramp-up */ | |
660 { 0, 0, 0, 0, 0, 20, 0, 0, 8, 15, 14, 31, 31, 9, 0, 0}, | |
661 /* ramp-down */ | |
662 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
663 }, | |
664 { /* profile 15 */ | |
665 /* ramp-up */ | |
666 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
667 /* ramp-down */ | |
668 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
669 }, | |
670 }, | |
671 { /* Tx temperature compensation */ | |
672 { -11, 0, 0, 0}, | |
673 { 9, 0, 0, 0}, | |
674 { 39, 0, 0, 0}, | |
675 { 59, 0, 0, 0}, | |
676 { 127, 0, 0, 0}, | |
677 }, | |
678 }, | |
679 //IQ swap | |
680 SWAP_IQ_GSM, | |
681 }; | |
682 | |
683 const T_RF_BAND rf_1800 = { | |
684 { /* Rx structure */ | |
685 { /* T_RX_CAL_PARAMS */ | |
686 188, | |
687 40, | |
688 40, | |
689 44, | |
690 }, | |
691 { /* T_RF_AGC_BANDs */ | |
692 { 548, 0}, | |
693 { 622, 0}, | |
694 { 680, 0}, | |
695 { 745, 0}, | |
696 { 812, 0}, | |
697 { 860, 0}, | |
698 { 885, 0}, | |
699 { 991, 0}, | |
700 { 992, 0}, | |
701 { 1023, 0}, | |
702 }, | |
703 { /* Rx temperature compensation */ | |
704 { -15, 0}, | |
705 { -5, 0}, | |
706 { 6, 0}, | |
707 { 16, 0}, | |
708 { 25, 0}, | |
709 { 35, 0}, | |
710 { 45, 0}, | |
711 { 56, 0}, | |
712 { 66, 0}, | |
713 { 75, 0}, | |
714 { 100, 0}, | |
715 }, | |
716 }, | |
717 { /* Tx structure */ | |
718 { /* levels */ | |
719 { 436, 0, 0}, /* 0 */ | |
720 { 363, 1, 0}, /* 1 */ | |
721 { 310, 2, 0}, /* 2 */ | |
722 { 253, 3, 0}, /* 3 */ | |
723 { 205, 4, 0}, /* 4 */ | |
724 { 168, 5, 0}, /* 5 */ | |
725 { 138, 6, 0}, /* 6 */ | |
726 { 113, 7, 0}, /* 7 */ | |
727 { 93, 8, 0}, /* 8 */ | |
728 { 76, 9, 0}, /* 9 */ | |
729 { 61, 10, 0}, /* 10 */ | |
730 { 50, 11, 0}, /* 11 */ | |
731 { 40, 12, 0}, /* 12 */ | |
732 { 32, 13, 0}, /* 13 */ | |
733 { 26, 14, 0}, /* 14 */ | |
734 { 20, 15, 0}, /* 15 */ | |
735 { 20, 15, 0}, /* 16 */ | |
736 { 20, 15, 0}, /* 17 */ | |
737 { 20, 15, 0}, /* 18 */ | |
738 { 20, 15, 0}, /* 19 */ | |
739 { 20, 15, 0}, /* 20 */ | |
740 { 20, 15, 0}, /* 21 */ | |
741 { 20, 15, 0}, /* 22 */ | |
742 { 20, 15, 0}, /* 23 */ | |
743 { 20, 15, 0}, /* 24 */ | |
744 { 20, 15, 0}, /* 25 */ | |
745 { 20, 15, 0}, /* 26 */ | |
746 { 20, 15, 0}, /* 27 */ | |
747 { 20, 15, 0}, /* 28 */ | |
748 { 20, 0, 0}, /* 29 */ | |
749 { 20, 0, 0}, /* 30 */ | |
750 { 20, 0, 0}, /* 31 */ | |
751 }, | |
752 { /* channel calibration tables */ | |
753 { /* calibration table 0 */ | |
754 { 554, 128}, | |
755 { 722, 128}, | |
756 { 746, 128}, | |
757 { 774, 128}, | |
758 { 808, 128}, | |
759 { 851, 128}, | |
760 { 870, 128}, | |
761 { 885, 128}, | |
762 }, | |
763 { /* calibration table 1 */ | |
764 { 554, 128}, | |
765 { 722, 128}, | |
766 { 746, 128}, | |
767 { 774, 128}, | |
768 { 808, 128}, | |
769 { 851, 128}, | |
770 { 870, 128}, | |
771 { 885, 128}, | |
772 }, | |
773 { /* calibration table 2 */ | |
774 { 554, 128}, | |
775 { 722, 128}, | |
776 { 746, 128}, | |
777 { 774, 128}, | |
778 { 808, 128}, | |
779 { 851, 128}, | |
780 { 870, 128}, | |
781 { 885, 128}, | |
782 }, | |
783 { /* calibration table 3 */ | |
784 { 554, 128}, | |
785 { 722, 128}, | |
786 { 746, 128}, | |
787 { 774, 128}, | |
788 { 808, 128}, | |
789 { 851, 128}, | |
790 { 870, 128}, | |
791 { 885, 128}, | |
792 }, | |
793 }, | |
794 { /* ramps */ | |
795 { /* profile 0 */ | |
796 /* ramp-up */ | |
797 { 0, 0, 0, 0, 0, 0, 2, 3, 5, 16, 31, 31, 31, 9, 0, 0}, | |
798 /* ramp-down */ | |
799 { 0, 11, 31, 31, 31, 10, 11, 3, 0, 0, 0, 0, 0, 0, 0, 0}, | |
800 }, | |
801 { /* profile 1 */ | |
802 /* ramp-up */ | |
803 { 0, 0, 0, 0, 0, 0, 2, 3, 4, 17, 30, 31, 31, 10, 0, 0}, | |
804 /* ramp-down */ | |
805 { 0, 10, 31, 31, 31, 13, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0}, | |
806 }, | |
807 { /* profile 2 */ | |
808 /* ramp-up */ | |
809 { 0, 0, 0, 0, 0, 0, 4, 2, 2, 18, 31, 31, 31, 9, 0, 0}, | |
810 /* ramp-down */ | |
811 { 0, 10, 26, 31, 31, 16, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0}, | |
812 }, | |
813 { /* profile 3 */ | |
814 /* ramp-up */ | |
815 { 0, 0, 0, 0, 0, 0, 3, 4, 4, 15, 31, 31, 31, 9, 0, 0}, | |
816 /* ramp-down */ | |
817 { 0, 9, 31, 31, 31, 13, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0}, | |
818 }, | |
819 { /* profile 4 */ | |
820 /* ramp-up */ | |
821 { 0, 0, 0, 0, 0, 0, 4, 3, 7, 11, 31, 31, 31, 10, 0, 0}, | |
822 /* ramp-down */ | |
823 { 0, 8, 31, 31, 31, 11, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0}, | |
824 }, | |
825 { /* profile 5 */ | |
826 /* ramp-up */ | |
827 { 0, 0, 0, 0, 0, 4, 3, 2, 7, 14, 25, 31, 31, 11, 0, 0}, | |
828 /* ramp-down */ | |
829 { 0, 14, 31, 31, 31, 9, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0}, | |
830 }, | |
831 { /* profile 6 */ | |
832 /* ramp-up */ | |
833 { 0, 0, 0, 0, 0, 7, 1, 3, 10, 12, 25, 31, 31, 8, 0, 0}, | |
834 /* ramp-down */ | |
835 { 0, 7, 30, 31, 31, 14, 4, 6, 5, 0, 0, 0, 0, 0, 0, 0}, | |
836 }, | |
837 { /* profile 7 */ | |
838 /* ramp-up */ | |
839 { 0, 0, 0, 0, 3, 5, 0, 5, 8, 12, 26, 31, 31, 7, 0, 0}, | |
840 /* ramp-down */ | |
841 { 0, 7, 31, 31, 31, 15, 0, 8, 5, 0, 0, 0, 0, 0, 0, 0}, | |
842 }, | |
843 { /* profile 8 */ | |
844 /* ramp-up */ | |
845 { 0, 0, 0, 0, 0, 9, 0, 3, 10, 16, 21, 31, 31, 7, 0, 0}, | |
846 /* ramp-down */ | |
847 { 0, 11, 28, 31, 27, 10, 11, 0, 10, 0, 0, 0, 0, 0, 0, 0}, | |
848 }, | |
849 { /* profile 9 */ | |
850 /* ramp-up */ | |
851 { 0, 0, 0, 0, 0, 10, 0, 6, 9, 15, 22, 29, 31, 6, 0, 0}, | |
852 /* ramp-down */ | |
853 { 0, 9, 22, 31, 31, 12, 5, 0, 18, 0, 0, 0, 0, 0, 0, 0}, | |
854 }, | |
855 { /* profile 10 */ | |
856 /* ramp-up */ | |
857 { 0, 0, 0, 0, 14, 0, 0, 8, 6, 20, 21, 29, 24, 6, 0, 0}, | |
858 /* ramp-down */ | |
859 { 0, 8, 28, 29, 26, 14, 6, 0, 17, 0, 0, 0, 0, 0, 0, 0}, | |
860 }, | |
861 { /* profile 11 */ | |
862 /* ramp-up */ | |
863 { 0, 0, 0, 0, 16, 0, 3, 5, 8, 16, 31, 28, 18, 3, 0, 0}, | |
864 /* ramp-down */ | |
865 { 0, 6, 18, 26, 31, 16, 9, 7, 0, 15, 0, 0, 0, 0, 0, 0}, | |
866 }, | |
867 { /* profile 12 */ | |
868 /* ramp-up */ | |
869 { 0, 0, 0, 0, 19, 0, 3, 6, 8, 21, 24, 31, 14, 2, 0, 0}, | |
870 /* ramp-down */ | |
871 { 0, 0, 12, 31, 31, 27, 4, 0, 23, 0, 0, 0, 0, 0, 0, 0}, | |
872 }, | |
873 { /* profile 13 */ | |
874 /* ramp-up */ | |
875 { 0, 0, 0, 0, 0, 14, 14, 0, 0, 24, 31, 31, 14, 0, 0, 0}, | |
876 /* ramp-down */ | |
877 { 0, 0, 11, 31, 31, 22, 11, 3, 19, 0, 0, 0, 0, 0, 0, 0}, | |
878 }, | |
879 { /* profile 14 */ | |
880 /* ramp-up */ | |
881 { 0, 0, 0, 0, 0, 30, 1, 4, 8, 18, 31, 31, 5, 0, 0, 0}, | |
882 /* ramp-down */ | |
883 { 0, 0, 8, 31, 31, 22, 5, 0, 31, 0, 0, 0, 0, 0, 0, 0}, | |
884 }, | |
885 { /* profile 15 */ | |
886 /* ramp-up */ | |
887 { 0, 0, 0, 0, 0, 31, 13, 0, 0, 14, 31, 31, 8, 0, 0, 0}, | |
888 /* ramp-down */ | |
889 { 0, 0, 4, 31, 31, 25, 5, 0, 5, 26, 1, 0, 0, 0, 0, 0}, | |
890 }, | |
891 }, | |
892 { /* Tx temperature compensation */ | |
893 { -11, 0, 0, 0}, | |
894 { 9, 0, 0, 0}, | |
895 { 39, 0, 0, 0}, | |
896 { 59, 0, 0, 0}, | |
897 { 127, 0, 0, 0}, | |
898 }, | |
899 }, | |
900 //IQ swap | |
901 SWAP_IQ_DCS | |
902 }; | |
903 | |
904 const T_RF_BAND rf_850 = { | |
905 { /* Rx structure */ | |
906 { /* T_RX_CAL_PARAMS */ | |
907 181, | |
908 40, | |
909 40, | |
910 44, | |
911 }, | |
912 { /* T_RF_AGC_BANDs */ | |
913 { 10, 0}, | |
914 { 30, 0}, | |
915 { 51, 0}, | |
916 { 71, 0}, | |
917 { 90, 0}, | |
918 { 112, 0}, | |
919 { 124, 0}, | |
920 { 991, 0}, | |
921 { 992, 0}, | |
922 { 1023, 0}, | |
923 }, | |
924 { /* Rx temperature compensation */ | |
925 { -15, 0}, | |
926 { -5, 0}, | |
927 { 6, 0}, | |
928 { 16, 0}, | |
929 { 25, 0}, | |
930 { 35, 0}, | |
931 { 45, 0}, | |
932 { 56, 0}, | |
933 { 66, 0}, | |
934 { 75, 0}, | |
935 { 100, 0}, | |
936 }, | |
937 }, | |
938 { /* Tx structure */ | |
939 { /* levels */ | |
940 { 507, 0, 0}, /* 0 */ | |
941 { 507, 0, 0}, /* 1 */ | |
942 { 507, 0, 0}, /* 2 */ | |
943 { 507, 0, 0}, /* 3 */ | |
944 { 507, 0, 0}, /* 4 */ | |
945 { 507, 0, 0}, /* 5 */ | |
946 { 417, 1, 0}, /* 6 */ | |
947 { 350, 2, 0}, /* 7 */ | |
948 { 282, 3, 0}, /* 8 */ | |
949 { 226, 4, 0}, /* 9 */ | |
950 { 183, 5, 0}, /* 10 */ | |
951 { 148, 6, 0}, /* 11 */ | |
952 { 121, 7, 0}, /* 12 */ | |
953 { 98, 8, 0}, /* 13 */ | |
954 { 80, 9, 0}, /* 14 */ | |
955 { 66, 10, 0}, /* 15 */ | |
956 { 54, 11, 0}, /* 16 */ | |
957 { 44, 12, 0}, /* 17 */ | |
958 { 36, 13, 0}, /* 18 */ | |
959 { 29, 14, 0}, /* 19 */ | |
960 { 29, 14, 0}, /* 20 */ | |
961 { 29, 14, 0}, /* 21 */ | |
962 { 29, 14, 0}, /* 22 */ | |
963 { 29, 14, 0}, /* 23 */ | |
964 { 29, 14, 0}, /* 24 */ | |
965 { 29, 14, 0}, /* 25 */ | |
966 { 29, 14, 0}, /* 26 */ | |
967 { 29, 14, 0}, /* 27 */ | |
968 { 29, 14, 0}, /* 28 */ | |
969 { 29, 14, 0}, /* 29 */ | |
970 { 29, 14, 0}, /* 30 */ | |
971 { 29, 14, 0}, /* 31 */ | |
972 }, | |
973 { /* channel calibration tables */ | |
974 { /* calibration table 0 */ | |
975 { 40, 128}, | |
976 { 80, 128}, | |
977 { 124, 128}, | |
978 { 586, 128}, | |
979 { 661, 128}, | |
980 { 736, 128}, | |
981 { 885, 128}, | |
982 { 1023, 128}, | |
983 }, | |
984 { /* calibration table 1 */ | |
985 #if 0 | |
986 /* | |
987 * This bogon appears in the l1_custom_int.lib Leonardo blob | |
988 * and in Openmoko's official firmwares, from which it has | |
989 * propagated into the /gsm/rf/tx/calchan.850 file programmed | |
990 * into every produced GTA02 unit, or at least the units | |
991 * without the 850 MHz band. It also appears in mv100/l1_rf12.c | |
992 * and in the "dead" rf_850 table in Pirelli's fw binary. | |
993 * Whew! | |
994 */ | |
995 { 554, 130}, | |
996 { 722, 128}, | |
997 { 746, 129}, | |
998 { 774, 131}, | |
999 { 808, 132}, | |
1000 { 851, 134}, | |
1001 { 870, 138}, | |
1002 { 885, 140}, | |
1003 #else | |
1004 /* make it the same as the others */ | |
1005 { 40, 128}, | |
1006 { 80, 128}, | |
1007 { 124, 128}, | |
1008 { 586, 128}, | |
1009 { 661, 128}, | |
1010 { 736, 128}, | |
1011 { 885, 128}, | |
1012 { 1023, 128}, | |
1013 #endif | |
1014 }, | |
1015 { /* calibration table 2 */ | |
1016 { 40, 128}, | |
1017 { 80, 128}, | |
1018 { 124, 128}, | |
1019 { 586, 128}, | |
1020 { 661, 128}, | |
1021 { 736, 128}, | |
1022 { 885, 128}, | |
1023 { 1023, 128}, | |
1024 }, | |
1025 { /* calibration table 3 */ | |
1026 { 40, 128}, | |
1027 { 80, 128}, | |
1028 { 124, 128}, | |
1029 { 586, 128}, | |
1030 { 661, 128}, | |
1031 { 736, 128}, | |
1032 { 885, 128}, | |
1033 { 1023, 128}, | |
1034 }, | |
1035 }, | |
1036 { /* ramps */ | |
1037 { /* profile 0 */ | |
1038 /* ramp-up */ | |
1039 { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0}, | |
1040 /* ramp-down */ | |
1041 { 0, 11, 31, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1042 }, | |
1043 { /* profile 1 */ | |
1044 /* ramp-up */ | |
1045 { 0, 0, 0, 0, 0, 0, 1, 1, 7, 16, 28, 31, 31, 13, 0, 0}, | |
1046 /* ramp-down */ | |
1047 { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1048 }, | |
1049 { /* profile 2 */ | |
1050 /* ramp-up */ | |
1051 { 0, 0, 0, 0, 0, 0, 1, 1, 8, 16, 29, 31, 31, 11, 0, 0}, | |
1052 /* ramp-down */ | |
1053 { 0, 8, 28, 31, 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1054 }, | |
1055 { /* profile 3 */ | |
1056 /* ramp-up */ | |
1057 { 0, 0, 0, 0, 0, 0, 2, 0, 6, 18, 28, 31, 31, 12, 0, 0}, | |
1058 /* ramp-down */ | |
1059 { 0, 9, 24, 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1060 }, | |
1061 { /* profile 4 */ | |
1062 /* ramp-up */ | |
1063 { 0, 0, 0, 0, 0, 0, 3, 0, 5, 19, 31, 31, 31, 8, 0, 0}, | |
1064 /* ramp-down */ | |
1065 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1066 }, | |
1067 { /* profile 5 */ | |
1068 /* ramp-up */ | |
1069 { 0, 0, 0, 0, 0, 0, 2, 0, 7, 18, 31, 31, 31, 8, 0, 0}, | |
1070 /* ramp-down */ | |
1071 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1072 }, | |
1073 { /* profile 6 */ | |
1074 /* ramp-up */ | |
1075 { 0, 0, 0, 0, 0, 0, 3, 0, 5, 20, 31, 31, 31, 7, 0, 0}, | |
1076 /* ramp-down */ | |
1077 { 0, 10, 21, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1078 }, | |
1079 { /* profile 7 */ | |
1080 /* ramp-up */ | |
1081 { 0, 0, 0, 0, 0, 0, 4, 0, 9, 23, 22, 31, 31, 8, 0, 0}, | |
1082 /* ramp-down */ | |
1083 { 0, 9, 24, 30, 31, 30, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1084 }, | |
1085 { /* profile 8 */ | |
1086 /* ramp-up */ | |
1087 { 0, 0, 0, 0, 0, 0, 5, 0, 8, 21, 24, 31, 31, 8, 0, 0}, | |
1088 /* ramp-down */ | |
1089 { 0, 8, 23, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1090 }, | |
1091 { /* profile 9 */ | |
1092 /* ramp-up */ | |
1093 { 0, 0, 0, 0, 0, 5, 0, 3, 1, 27, 22, 31, 31, 8, 0, 0}, | |
1094 /* ramp-down */ | |
1095 { 0, 8, 27, 25, 26, 31, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1096 }, | |
1097 { /* profile 10 */ | |
1098 /* ramp-up */ | |
1099 { 0, 0, 0, 0, 5, 0, 0, 2, 7, 22, 23, 31, 31, 7, 0, 0}, | |
1100 /* ramp-down */ | |
1101 { 0, 7, 25, 30, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1102 }, | |
1103 { /* profile 11 */ | |
1104 /* ramp-up */ | |
1105 { 0, 0, 0, 0, 0, 5, 0, 4, 8, 21, 21, 31, 31, 7, 0, 0}, | |
1106 /* ramp-down */ | |
1107 { 0, 8, 21, 31, 31, 31, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1108 }, | |
1109 { /* profile 12 */ | |
1110 /* ramp-up */ | |
1111 { 0, 0, 0, 0, 0, 7, 0, 0, 12, 22, 25, 31, 27, 4, 0, 0}, | |
1112 /* ramp-down */ | |
1113 { 0, 9, 12, 21, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1114 }, | |
1115 { /* profile 13 */ | |
1116 /* ramp-up */ | |
1117 { 0, 0, 0, 0, 0, 0, 7, 0, 8, 15, 31, 31, 31, 5, 0, 0}, | |
1118 /* ramp-down */ | |
1119 { 0, 6, 14, 23, 31, 31, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1120 }, | |
1121 { /* profile 14 */ | |
1122 /* ramp-up */ | |
1123 { 0, 0, 0, 0, 0, 20, 0, 0, 8, 15, 14, 31, 31, 9, 0, 0}, | |
1124 /* ramp-down */ | |
1125 { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1126 }, | |
1127 { /* profile 15 */ | |
1128 /* ramp-up */ | |
1129 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1130 /* ramp-down */ | |
1131 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1132 }, | |
1133 }, | |
1134 { /* Tx temperature compensation */ | |
1135 { -11, 0, 0, 0}, | |
1136 { 9, 0, 0, 0}, | |
1137 { 39, 0, 0, 0}, | |
1138 { 59, 0, 0, 0}, | |
1139 { 127, 0, 0, 0}, | |
1140 }, | |
1141 }, | |
1142 //IQ swap | |
1143 SWAP_IQ_GSM850, | |
1144 }; | |
1145 | |
1146 const T_RF_BAND rf_1900 = { | |
1147 { /* Rx structure */ | |
1148 { /* T_RX_CAL_PARAMS */ | |
1149 188, | |
1150 40, | |
1151 40, | |
1152 44, | |
1153 }, | |
1154 { /* T_RF_AGC_BANDs */ | |
1155 { 548, 0}, | |
1156 { 622, 0}, | |
1157 { 680, 0}, | |
1158 { 745, 0}, | |
1159 { 812, 0}, | |
1160 { 860, 0}, | |
1161 { 885, 0}, | |
1162 { 991, 0}, | |
1163 { 992, 0}, | |
1164 { 1023, 0}, | |
1165 }, | |
1166 { /* Rx temperature compensation */ | |
1167 { -15, 0}, | |
1168 { -5, 0}, | |
1169 { 6, 0}, | |
1170 { 16, 0}, | |
1171 { 25, 0}, | |
1172 { 35, 0}, | |
1173 { 45, 0}, | |
1174 { 56, 0}, | |
1175 { 66, 0}, | |
1176 { 75, 0}, | |
1177 { 100, 0}, | |
1178 }, | |
1179 }, | |
1180 { /* Tx structure */ | |
1181 { /* levels */ | |
1182 { 429, 0, 0}, /* 0 */ | |
1183 { 353, 1, 0}, /* 1 */ | |
1184 { 302, 2, 0}, /* 2 */ | |
1185 { 246, 3, 0}, /* 3 */ | |
1186 { 200, 4, 0}, /* 4 */ | |
1187 { 164, 5, 0}, /* 5 */ | |
1188 { 135, 6, 0}, /* 6 */ | |
1189 { 111, 7, 0}, /* 7 */ | |
1190 { 91, 8, 0}, /* 8 */ | |
1191 { 75, 9, 0}, /* 9 */ | |
1192 { 60, 10, 0}, /* 10 */ | |
1193 { 49, 11, 0}, /* 11 */ | |
1194 { 40, 12, 0}, /* 12 */ | |
1195 { 33, 13, 0}, /* 13 */ | |
1196 { 26, 14, 0}, /* 14 */ | |
1197 { 26, 15, 0}, /* 15 */ | |
1198 { 26, 15, 0}, /* 16 */ | |
1199 { 26, 15, 0}, /* 17 */ | |
1200 { 26, 15, 0}, /* 18 */ | |
1201 { 26, 15, 0}, /* 19 */ | |
1202 { 26, 15, 0}, /* 20 */ | |
1203 { 26, 15, 0}, /* 21 */ | |
1204 { 26, 15, 0}, /* 22 */ | |
1205 { 26, 15, 0}, /* 23 */ | |
1206 { 26, 15, 0}, /* 24 */ | |
1207 { 26, 15, 0}, /* 25 */ | |
1208 { 26, 15, 0}, /* 26 */ | |
1209 { 26, 15, 0}, /* 27 */ | |
1210 { 26, 15, 0}, /* 28 */ | |
1211 { 26, 0, 0}, /* 29 */ | |
1212 { 26, 0, 0}, /* 30 */ | |
1213 { 26, 0, 0}, /* 31 */ | |
1214 }, | |
1215 { /* channel calibration tables */ | |
1216 { /* calibration table 0 */ | |
1217 { 554, 128}, | |
1218 { 722, 128}, | |
1219 { 746, 128}, | |
1220 { 774, 128}, | |
1221 { 808, 128}, | |
1222 { 810, 128}, | |
1223 { 810, 128}, | |
1224 { 810, 128}, | |
1225 }, | |
1226 { /* calibration table 1 */ | |
1227 { 554, 128}, | |
1228 { 722, 128}, | |
1229 { 746, 128}, | |
1230 { 774, 128}, | |
1231 { 808, 128}, | |
1232 { 810, 128}, | |
1233 { 810, 128}, | |
1234 { 810, 128}, | |
1235 }, | |
1236 { /* calibration table 2 */ | |
1237 { 554, 128}, | |
1238 { 722, 128}, | |
1239 { 746, 128}, | |
1240 { 774, 128}, | |
1241 { 808, 128}, | |
1242 { 810, 128}, | |
1243 { 810, 128}, | |
1244 { 810, 128}, | |
1245 }, | |
1246 { /* calibration table 3 */ | |
1247 { 554, 128}, | |
1248 { 722, 128}, | |
1249 { 746, 128}, | |
1250 { 774, 128}, | |
1251 { 808, 128}, | |
1252 { 810, 128}, | |
1253 { 810, 128}, | |
1254 { 810, 128}, | |
1255 }, | |
1256 }, | |
1257 { /* ramps */ | |
1258 { /* profile 0 */ | |
1259 /* ramp-up */ | |
1260 { 0, 0, 0, 0, 0, 0, 7, 0, 0, 16, 31, 31, 31, 12, 0, 0}, | |
1261 /* ramp-down */ | |
1262 { 0, 13, 31, 31, 31, 18, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1263 }, | |
1264 { /* profile 1 */ | |
1265 /* ramp-up */ | |
1266 { 0, 0, 0, 0, 0, 0, 2, 3, 4, 17, 30, 31, 31, 10, 0, 0}, | |
1267 /* ramp-down */ | |
1268 { 0, 10, 31, 31, 31, 13, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1269 }, | |
1270 { /* profile 2 */ | |
1271 /* ramp-up */ | |
1272 { 0, 0, 0, 0, 0, 0, 4, 2, 2, 18, 31, 31, 31, 9, 0, 0}, | |
1273 /* ramp-down */ | |
1274 { 0, 10, 26, 31, 31, 16, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1275 }, | |
1276 { /* profile 3 */ | |
1277 /* ramp-up */ | |
1278 { 0, 0, 0, 0, 0, 0, 3, 4, 4, 15, 31, 31, 31, 9, 0, 0}, | |
1279 /* ramp-down */ | |
1280 { 0, 9, 31, 31, 31, 13, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1281 }, | |
1282 { /* profile 4 */ | |
1283 /* ramp-up */ | |
1284 { 0, 0, 0, 0, 0, 0, 4, 3, 0, 18, 31, 31, 31, 10, 0, 0}, | |
1285 /* ramp-down */ | |
1286 { 0, 8, 31, 31, 31, 11, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1287 }, | |
1288 { /* profile 5 */ | |
1289 /* ramp-up */ | |
1290 { 0, 0, 0, 0, 0, 4, 3, 2, 7, 14, 25, 31, 31, 11, 0, 0}, | |
1291 /* ramp-down */ | |
1292 { 0, 14, 31, 31, 31, 9, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1293 }, | |
1294 { /* profile 6 */ | |
1295 /* ramp-up */ | |
1296 { 0, 0, 0, 0, 0, 7, 1, 3, 10, 12, 25, 31, 31, 8, 0, 0}, | |
1297 /* ramp-down */ | |
1298 { 0, 7, 30, 31, 31, 14, 4, 6, 5, 0, 0, 0, 0, 0, 0, 0}, | |
1299 }, | |
1300 { /* profile 7 */ | |
1301 /* ramp-up */ | |
1302 { 0, 0, 0, 0, 3, 5, 0, 5, 8, 12, 26, 31, 31, 7, 0, 0}, | |
1303 /* ramp-down */ | |
1304 { 0, 7, 31, 31, 31, 15, 0, 8, 5, 0, 0, 0, 0, 0, 0, 0}, | |
1305 }, | |
1306 { /* profile 8 */ | |
1307 /* ramp-up */ | |
1308 { 0, 0, 0, 0, 0, 9, 0, 3, 10, 16, 21, 31, 31, 7, 0, 0}, | |
1309 /* ramp-down */ | |
1310 { 0, 11, 28, 31, 27, 10, 11, 0, 10, 0, 0, 0, 0, 0, 0, 0}, | |
1311 }, | |
1312 { /* profile 9 */ | |
1313 /* ramp-up */ | |
1314 { 0, 0, 0, 0, 0, 10, 0, 6, 9, 15, 22, 29, 31, 6, 0, 0}, | |
1315 /* ramp-down */ | |
1316 { 0, 9, 22, 31, 31, 12, 5, 0, 18, 0, 0, 0, 0, 0, 0, 0}, | |
1317 }, | |
1318 { /* profile 10 */ | |
1319 /* ramp-up */ | |
1320 { 0, 0, 0, 0, 14, 0, 0, 4, 10, 20, 21, 29, 24, 6, 0, 0}, | |
1321 /* ramp-down */ | |
1322 { 0, 8, 28, 29, 26, 14, 6, 0, 17, 0, 0, 0, 0, 0, 0, 0}, | |
1323 }, | |
1324 { /* profile 11 */ | |
1325 /* ramp-up */ | |
1326 { 0, 0, 0, 0, 16, 0, 3, 5, 8, 16, 31, 28, 18, 3, 0, 0}, | |
1327 /* ramp-down */ | |
1328 { 0, 6, 18, 26, 31, 16, 9, 7, 0, 15, 0, 0, 0, 0, 0, 0}, | |
1329 }, | |
1330 { /* profile 12 */ | |
1331 /* ramp-up */ | |
1332 { 0, 0, 0, 0, 19, 0, 3, 6, 8, 21, 24, 31, 14, 2, 0, 0}, | |
1333 /* ramp-down */ | |
1334 { 0, 0, 12, 31, 31, 27, 4, 0, 23, 0, 0, 0, 0, 0, 0, 0}, | |
1335 }, | |
1336 { /* profile 13 */ | |
1337 /* ramp-up */ | |
1338 { 0, 0, 0, 0, 0, 14, 14, 0, 0, 24, 31, 31, 14, 0, 0, 0}, | |
1339 /* ramp-down */ | |
1340 { 0, 0, 11, 31, 31, 22, 11, 3, 19, 0, 0, 0, 0, 0, 0, 0}, | |
1341 }, | |
1342 { /* profile 14 */ | |
1343 /* ramp-up */ | |
1344 { 0, 0, 0, 0, 0, 30, 1, 4, 8, 18, 31, 31, 5, 0, 0, 0}, | |
1345 /* ramp-down */ | |
1346 { 0, 0, 8, 31, 31, 22, 5, 0, 31, 0, 0, 0, 0, 0, 0, 0}, | |
1347 }, | |
1348 { /* profile 15 */ | |
1349 /* ramp-up */ | |
1350 { 0, 0, 0, 0, 0, 30, 1, 4, 8, 18, 31, 31, 5, 0, 0, 0}, | |
1351 /* ramp-down */ | |
1352 { 0, 0, 8, 31, 31, 22, 5, 0, 31, 0, 0, 0, 0, 0, 0, 0}, | |
1353 }, | |
1354 }, | |
1355 { /* Tx temperature compensation */ | |
1356 { -11, 0, 0, 0}, | |
1357 { 9, 0, 0, 0}, | |
1358 { 39, 0, 0, 0}, | |
1359 { 59, 0, 0, 0}, | |
1360 { 127, 0, 0, 0}, | |
1361 }, | |
1362 }, | |
1363 //IQ swap | |
1364 SWAP_IQ_PCS | |
1365 }; | |
1366 | |
1367 /* | |
1368 * The following part is unchanged from mv100/l1_rf12.c; the initialization | |
1369 * values come from l1_rf12.h, and we got that header from the Leonardo | |
1370 * version, so we trust it to be correct. Some of the constants got | |
1371 * renamed between the two versions, though. | |
1372 */ | |
1373 | |
1374 /*------------------------------------------*/ | |
1375 /* ABB Initialization words | |
1376 /*------------------------------------------*/ | |
1377 #if (ANALOG == 1) | |
1378 UWORD16 abb[ABB_TABLE_SIZE] = | |
1379 { | |
1380 C_AFCCTLADD, // Value at reset | |
1381 C_VBUCTRL, // Uplink gain amp 0dB, Sidetone gain to mute | |
1382 C_VBDCTRL, // Downlink gain amp 0dB, Volume control 0 dB | |
1383 C_BBCTRL, // value at reset | |
1384 C_APCOFF, // value at reset | |
1385 C_BULIOFF, // value at reset | |
1386 C_BULQOFF, // value at reset | |
1387 C_DAI_ON_OFF, // value at reset | |
1388 C_AUXDAC, // value at reset | |
1389 C_VBCTRL, // VULSWITCH=0, VDLAUX=1, VDLEAR=1 | |
1390 C_APCDEL1 // value at reset | |
1391 }; | |
1392 #elif (ANALOG == 2) | |
1393 UWORD16 abb[ABB_TABLE_SIZE] = | |
1394 { | |
1395 C_AFCCTLADD, | |
1396 C_VBUCTRL, | |
1397 C_VBDCTRL, | |
1398 C_BBCTRL, | |
1399 C_BULGCAL, | |
1400 C_APCOFF, | |
1401 C_BULIOFF, | |
1402 C_BULQOFF, | |
1403 C_DAI_ON_OFF, | |
1404 C_AUXDAC, | |
1405 C_VBCTRL1, | |
1406 C_VBCTRL2, | |
1407 C_APCDEL1, | |
1408 C_APCDEL2 | |
1409 }; | |
1410 | |
1411 #elif (ANALOG == 3) | |
1412 UWORD16 abb[ABB_TABLE_SIZE] = | |
1413 { | |
1414 C_AFCCTLADD, | |
1415 C_VBUCTRL, | |
1416 C_VBDCTRL, | |
1417 C_BBCTRL, | |
1418 C_BULGCAL, | |
1419 C_APCOFF, | |
1420 C_BULIOFF, | |
1421 C_BULQOFF, | |
1422 C_DAI_ON_OFF, | |
1423 C_AUXDAC, | |
1424 C_VBCTRL1, | |
1425 C_VBCTRL2, | |
1426 C_APCDEL1, | |
1427 C_APCDEL2, | |
1428 C_VBPOP, | |
1429 C_VAUDINITD, | |
1430 C_VAUDCR, | |
1431 C_VAUOCR, | |
1432 C_VAUSCR, | |
1433 C_VAUDPLL | |
1434 }; | |
1435 | |
1436 #endif | |
1437 | |
1438 /*------------------------------------------*/ | |
1439 /* Gain table */ | |
1440 /* specified in the TRF6053 spec */ | |
1441 /* 2 dB steps - LNA always ON */ | |
1442 /*------------------------------------------*/ | |
1443 UWORD16 AGC_TABLE[AGC_TABLE_SIZE] = | |
1444 { | |
1445 0x00, //reserved | |
1446 0x01, //reserved | |
1447 0x02, //reserved | |
1448 0x03, //reserved | |
1449 0x04, //reserved | |
1450 0x05, //reserved | |
1451 0x06, //14 dB | |
1452 0x07, //16 | |
1453 0x08, //18 | |
1454 0x09, //20 | |
1455 0x0a, //22 | |
1456 0x0b, //24 | |
1457 0x0c, //26 | |
1458 0x0d, //28 | |
1459 0x0e, //30 | |
1460 0x0f, //32 | |
1461 0x10, //34 | |
1462 0x11, //36 | |
1463 0x12, //38 | |
1464 0x13, //40 | |
1465 /* | |
1466 0x14, //reserved | |
1467 0x15, //reserved | |
1468 0x16, //reserved | |
1469 0x17, //reserved | |
1470 0x18, //reserved | |
1471 0x19, //reserved | |
1472 0x1a, //reserved | |
1473 0x1b, //reserved | |
1474 0x1c, //reserved | |
1475 0x1d, //reserved | |
1476 0x1e, //reserved | |
1477 0x1f, //reserved | |
1478 */ | |
1479 }; | |
1480 | |
1481 // structure for ADC conversion (4 Internal channel + 5 Ext channels max.) | |
1482 T_ADC adc __attribute__ ((section ("int.bss"))); | |
1483 | |
1484 // MADC calibration structure | |
1485 T_ADCCAL adc_cal= | |
1486 { // a: 0,..,8 | |
1487 // b, 0,..,8 | |
1488 // cal_a = 4*1750 is the Typical value 1.75 V ref voltage , divide by 4 | |
1489 7000, 8750, 7000, 7000, 7000, 7000, 7000, 256, 7000, | |
1490 0, 0, 0, 0, 0, 0, 0, 0, 0 | |
1491 }; | |
1492 | |
1493 #if (BOARD == 41) | |
1494 // table which converts ADC value into RF temperature | |
1495 T_TEMP temperature[TEMP_TABLE_SIZE] = | |
1496 { | |
1497 // Temperature compensation for EVARITA - S.Glock, J.Demay 04/23/2003 | |
1498 582, -40, | |
1499 640, -10, | |
1500 698, 25, | |
1501 756, 60, | |
1502 815, 90 | |
1503 }; | |
1504 #else | |
1505 // table which converts ADC value into RF temperature | |
1506 T_TEMP temperature[TEMP_TABLE_SIZE] = | |
1507 { | |
1508 7, -35, | |
1509 7, -34, | |
1510 8, -33, | |
1511 8, -32, | |
1512 9, -31, | |
1513 9, -30, | |
1514 10, -29, | |
1515 11, -28, | |
1516 11, -27, | |
1517 12, -26, | |
1518 13, -25, | |
1519 14, -24, | |
1520 14, -23, | |
1521 15, -22, | |
1522 16, -21, | |
1523 17, -20, | |
1524 18, -19, | |
1525 19, -18, | |
1526 21, -17, | |
1527 22, -16, | |
1528 23, -15, | |
1529 24, -14, | |
1530 26, -13, | |
1531 27, -12, | |
1532 29, -11, | |
1533 30, -10, | |
1534 32, -9, | |
1535 34, -8, | |
1536 36, -7, | |
1537 37, -6, | |
1538 39, -5, | |
1539 41, -4, | |
1540 44, -3, | |
1541 46, -2, | |
1542 48, -1, | |
1543 51, 0, | |
1544 53, 1, | |
1545 56, 2, | |
1546 59, 3, | |
1547 61, 4, | |
1548 64, 5, | |
1549 68, 6, | |
1550 71, 7, | |
1551 74, 8, | |
1552 78, 9, | |
1553 81, 10, | |
1554 85, 11, | |
1555 89, 12, | |
1556 93, 13, | |
1557 97, 14, | |
1558 101, 15, | |
1559 105, 16, | |
1560 110, 17, | |
1561 115, 18, | |
1562 119, 19, | |
1563 124, 20, | |
1564 130, 21, | |
1565 135, 22, | |
1566 140, 23, | |
1567 146, 24, | |
1568 152, 25, | |
1569 158, 26, | |
1570 164, 27, | |
1571 170, 28, | |
1572 176, 29, | |
1573 183, 30, | |
1574 190, 31, | |
1575 197, 32, | |
1576 204, 33, | |
1577 211, 34, | |
1578 219, 35, | |
1579 226, 36, | |
1580 234, 37, | |
1581 242, 38, | |
1582 250, 39, | |
1583 259, 40, | |
1584 267, 41, | |
1585 276, 42, | |
1586 285, 43, | |
1587 294, 44, | |
1588 303, 45, | |
1589 312, 46, | |
1590 322, 47, | |
1591 331, 48, | |
1592 341, 49, | |
1593 351, 50, | |
1594 361, 51, | |
1595 371, 52, | |
1596 382, 53, | |
1597 392, 54, | |
1598 403, 55, | |
1599 413, 56, | |
1600 424, 57, | |
1601 435, 58, | |
1602 446, 59, | |
1603 458, 60, | |
1604 469, 61, | |
1605 480, 62, | |
1606 492, 63, | |
1607 503, 64, | |
1608 515, 65, | |
1609 527, 66, | |
1610 539, 67, | |
1611 550, 68, | |
1612 562, 69, | |
1613 574, 70, | |
1614 586, 71, | |
1615 598, 72, | |
1616 611, 73, | |
1617 623, 74, | |
1618 635, 75, | |
1619 647, 76, | |
1620 659, 77, | |
1621 671, 78, | |
1622 683, 79, | |
1623 696, 80, | |
1624 708, 81, | |
1625 720, 82, | |
1626 732, 83, | |
1627 744, 84, | |
1628 756, 85, | |
1629 768, 86, | |
1630 780, 87, | |
1631 792, 88, | |
1632 804, 89, | |
1633 816, 90, | |
1634 827, 91, | |
1635 839, 92, | |
1636 851, 93, | |
1637 862, 94, | |
1638 873, 95 | |
1639 }; | |
1640 #endif |