Project

General

Profile

rf_tables_e86.c

falconia, 03/10/2019 03:28 AM

 
1
/*
2
 * This code was written by Mychaela Falconia <falcon@freecalypso.org>
3
 * who refuses to claim copyright on it and has released it as public domain
4
 * instead.  NO rights reserved, all rights relinquished.
5
 *
6
 * Tweaked (coding style changes) by Vadim Yanitskiy <axilirator@gmail.com>
7
 *
8
 * This program is free software; you can redistribute it and/or modify
9
 * it under the terms of the GNU General Public License as published by
10
 * the Free Software Foundation; either version 2 of the License, or
11
 * (at your option) any later version.
12
 *
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 * GNU General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU General Public License along
19
 * with this program; if not, write to the Free Software Foundation, Inc.,
20
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21
 *
22
 */
23

    
24
#include <stdint.h>
25
#include <rf/txcal.h>
26
#include <rf/vcxocal.h>
27

    
28
/*
29
 * The following AFC initial DAC value and AFC slope settings are unchanged
30
 * from the old OsmocomBB code in which they were hard-coded in layer1/afc.c.
31
 * This AFC slope setting corresponds very closely to the original Leonardo
32
 * Psi values which are used by Motorola's official fw at least on the C139,
33
 * hence I have good reason to believe that they are indeed correct for the
34
 * Mot C1xx hardware target family.
35
 */
36
int16_t afc_initial_dac_value = -700;
37
int16_t afc_slope = 287;
38

    
39
/* APC offset (comes from the official firmware) for Compal targets */
40
uint8_t apc_offset = 32;
41

    
42
/*
43
 * The following Tx levels and ramps tables are the ones compiled into
44
 * Compal's firmware; more specifically, they have been read out from
45
 * Motorola C139 official fw via rftr and ttr Test Mode commands.
46
 * In normal operation the APC DAC values in the levels tables are replaced
47
 * with the ones read from the per-band factory calibration records, but
48
 * for the Tx ramp templates the compiled-in tables are always used -
49
 * these are calibrated per design rather than per unit.  Please note
50
 * that the Tx ramp templates for the SKY77325 PA in Mot C139/140 phones
51
 * are different from the older C11x/12x/155/156 (SKY77324) ones!
52
 */
53
struct txcal_tx_level rf_tx_levels_850[RF_TX_LEVELS_TABLE_SIZE] = {
54
        { 560,  0,  0 }, /* 0 */
55
        { 560,  0,  0 }, /* 1 */
56
        { 560,  0,  0 }, /* 2 */
57
        { 560,  0,  0 }, /* 3 */
58
        { 560,  0,  0 }, /* 4 */
59
        { 638,  0,  0 }, /* 5 */
60
        { 554,  1,  0 }, /* 6 */
61
        { 467,  2,  0 }, /* 7 */
62
        { 395,  3,  0 }, /* 8 */
63
        { 337,  4,  0 }, /* 9 */
64
        { 290,  5,  0 }, /* 10 */
65
        { 253,  6,  0 }, /* 11 */
66
        { 224,  7,  0 }, /* 12 */
67
        { 201,  8,  0 }, /* 13 */
68
        { 183,  9,  0 }, /* 14 */
69
        { 168, 10,  0 }, /* 15 */
70
        { 157, 11,  0 }, /* 16 */
71
        { 148, 12,  0 }, /* 17 */
72
        { 141, 13,  0 }, /* 18 */
73
        { 136, 14,  0 }, /* 19 */
74
        {  46, 14,  0 }, /* 20 */
75
        {  46, 14,  0 }, /* 21 */
76
        {  46, 14,  0 }, /* 22 */
77
        {  46, 14,  0 }, /* 23 */
78
        {  46, 14,  0 }, /* 24 */
79
        {  46, 14,  0 }, /* 25 */
80
        {  46, 14,  0 }, /* 26 */
81
        {  46, 14,  0 }, /* 27 */
82
        {  46, 14,  0 }, /* 28 */
83
        {  46, 14,  0 }, /* 29 */
84
        {  46, 14,  0 }, /* 30 */
85
        {  46, 14,  0 }, /* 31 */
86
};
87

    
88
struct txcal_tx_level rf_tx_levels_900[RF_TX_LEVELS_TABLE_SIZE] = {
89
        { 550,  0,  0 }, /* 0 */
90
        { 550,  0,  0 }, /* 1 */
91
        { 550,  0,  0 }, /* 2 */
92
        { 550,  0,  0 }, /* 3 */
93
        { 550,  0,  0 }, /* 4 */
94
        { 550,  0,  0 }, /* 5 */
95
        { 476,  1,  0 }, /* 6 */
96
        { 402,  2,  0 }, /* 7 */
97
        { 338,  3,  0 }, /* 8 */
98
        { 294,  4,  0 }, /* 9 */
99
        { 260,  5,  0 }, /* 10 */
100
        { 226,  6,  0 }, /* 11 */
101
        { 204,  7,  0 }, /* 12 */
102
        { 186,  8,  0 }, /* 13 */
103
        { 172,  9,  0 }, /* 14 */
104
        { 161, 10,  0 }, /* 15 */
105
        { 153, 11,  0 }, /* 16 */
106
        { 146, 12,  0 }, /* 17 */
107
        { 141, 13,  0 }, /* 18 */
108
        { 137, 14,  0 }, /* 19 */
109
        {  43, 14,  0 }, /* 20 */
110
        {  43, 14,  0 }, /* 21 */
111
        {  43, 14,  0 }, /* 22 */
112
        {  43, 14,  0 }, /* 23 */
113
        {  43, 14,  0 }, /* 24 */
114
        {  43, 14,  0 }, /* 25 */
115
        {  43, 14,  0 }, /* 26 */
116
        {  43, 14,  0 }, /* 27 */
117
        {  43, 14,  0 }, /* 28 */
118
        {  43, 14,  0 }, /* 29 */
119
        {  43, 14,  0 }, /* 30 */
120
        {  43, 14,  0 }, /* 31 */
121
};
122

    
123
struct txcal_tx_level rf_tx_levels_1800[RF_TX_LEVELS_TABLE_SIZE] = {
124
        { 480,  0,  0 }, /* 0 */
125
        { 416,  1,  0 }, /* 1 */
126
        { 352,  2,  0 }, /* 2 */
127
        { 308,  3,  0 }, /* 3 */
128
        { 266,  4,  0 }, /* 4 */
129
        { 242,  5,  0 }, /* 5 */
130
        { 218,  6,  0 }, /* 6 */
131
        { 200,  7,  0 }, /* 7 */
132
        { 186,  8,  0 }, /* 8 */
133
        { 175,  9,  0 }, /* 9 */
134
        { 167, 10,  0 }, /* 10 */
135
        { 160, 11,  0 }, /* 11 */
136
        { 156, 12,  0 }, /* 12 */
137
        { 152, 13,  0 }, /* 13 */
138
        { 145, 14,  0 }, /* 14 */
139
        { 142, 15,  0 }, /* 15 */
140
        {  61, 15,  0 }, /* 16 */
141
        {  61, 15,  0 }, /* 17 */
142
        {  61, 15,  0 }, /* 18 */
143
        {  61, 15,  0 }, /* 19 */
144
        {  61, 15,  0 }, /* 20 */
145
        {  61, 15,  0 }, /* 21 */
146
        {  61, 15,  0 }, /* 22 */
147
        {  61, 15,  0 }, /* 23 */
148
        {  61, 15,  0 }, /* 24 */
149
        {  61, 15,  0 }, /* 25 */
150
        {  61, 15,  0 }, /* 26 */
151
        {  61, 15,  0 }, /* 27 */
152
        {  61, 15,  0 }, /* 28 */
153
        { 750,  0,  0 }, /* 29 */
154
        { 750,  0,  0 }, /* 30 */
155
        { 750,  0,  0 }, /* 31 */
156
};
157

    
158
struct txcal_tx_level rf_tx_levels_1900[RF_TX_LEVELS_TABLE_SIZE] = {
159
        { 520,  0,  0 }, /* 0 */
160
        { 465,  1,  0 }, /* 1 */
161
        { 390,  2,  0 }, /* 2 */
162
        { 330,  3,  0 }, /* 3 */
163
        { 285,  4,  0 }, /* 4 */
164
        { 250,  5,  0 }, /* 5 */
165
        { 225,  6,  0 }, /* 6 */
166
        { 205,  7,  0 }, /* 7 */
167
        { 190,  8,  0 }, /* 8 */
168
        { 177,  9,  0 }, /* 9 */
169
        { 168, 10,  0 }, /* 10 */
170
        { 161, 11,  0 }, /* 11 */
171
        { 155, 12,  0 }, /* 12 */
172
        { 150, 13,  0 }, /* 13 */
173
        { 147, 14,  0 }, /* 14 */
174
        { 143, 15,  0 }, /* 15 */
175
        {  62, 15,  0 }, /* 16 */
176
        {  62, 15,  0 }, /* 17 */
177
        {  62, 15,  0 }, /* 18 */
178
        {  62, 15,  0 }, /* 19 */
179
        {  62, 15,  0 }, /* 20 */
180
        {  62, 15,  0 }, /* 21 */
181
        {  62, 15,  0 }, /* 22 */
182
        {  62, 15,  0 }, /* 23 */
183
        {  62, 15,  0 }, /* 24 */
184
        {  62, 15,  0 }, /* 25 */
185
        {  62, 15,  0 }, /* 26 */
186
        {  62, 15,  0 }, /* 27 */
187
        {  62, 15,  0 }, /* 28 */
188
        { 915,  0,  0 }, /* 29 */
189
        { 915,  0,  0 }, /* 30 */
190
        { 915,  0,  0 }, /* 31 */
191
};
192

    
193
struct txcal_ramp_def rf_tx_ramps_850[RF_TX_RAMP_SIZE] = {
194
      { /* profile 0 */
195
        /* ramp-up */
196
        { 28,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4, 31, 31, 31,  3,  0},
197
        /* ramp-down */
198
        { 31, 31, 18, 22,  6, 10,  2,  1,  1,  3,  3,  0,  0,  0,  0,  0},
199
      },
200
      { /* profile 1 */
201
        /* ramp-up */
202
        { 31,  1,  0,  0,  0,  0,  0,  0,  0,  0,  3, 31, 31, 31,  0,  0},
203
        /* ramp-down */
204
        { 31, 31, 31,  6,  8,  8,  9,  4,  0,  0,  0,  0,  0,  0,  0,  0},
205
      },
206
      { /* profile 2 */
207
        /* ramp-up */
208
        { 31,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31, 31, 29,  0,  0},
209
        /* ramp-down */
210
        { 31, 25, 21, 20, 13, 14,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0},
211
      },
212
      { /* profile 3 */
213
        /* ramp-up */
214
        { 31, 13,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31, 31, 22,  0,  0},
215
        /* ramp-down */
216
        { 27, 28, 23, 19, 13, 14,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0},
217
      },
218
      { /* profile 4 */
219
        /* ramp-up */
220
        { 31, 21,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31, 31, 14,  0,  0},
221
        /* ramp-down */
222
        { 31, 21, 31,  2, 31,  4,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0},
223
      },
224
      { /* profile 5 */
225
        /* ramp-up */
226
        { 31, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31, 31,  5,  0,  0},
227
        /* ramp-down */
228
        { 21, 31, 31,  2, 31,  4,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0},
229
      },
230
      { /* profile 6 */
231
        /* ramp-up */
232
        { 31, 31,  7,  0,  0,  0,  0,  0,  0,  0,  0, 31, 28,  0,  0,  0},
233
        /* ramp-down */
234
        { 31, 31, 28, 14,  3, 21,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
235
      },
236
      { /* profile 7 */
237
        /* ramp-up */
238
        { 31, 31, 16,  0,  0,  0,  0,  0,  0,  0,  0, 31, 19,  0,  0,  0},
239
        /* ramp-down */
240
        { 20, 30, 30, 10, 28, 10, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0},
241
      },
242
      { /* profile 8 */
243
        /* ramp-up */
244
        { 31, 31, 26,  0,  0,  0,  0,  0,  0,  0,  0, 31,  9,  0,  0,  0},
245
        /* ramp-down */
246
        { 20, 26, 26, 18, 18, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
247
      },
248
      { /* profile 9 */
249
        /* ramp-up */
250
        { 31, 31, 31,  2,  0,  0,  0,  0,  0,  0,  0, 31,  2,  0,  0,  0},
251
        /* ramp-down */
252
        { 16, 16, 26, 26, 26,  0,  0, 18,  0,  0,  0,  0,  0,  0,  0,  0},
253
      },
254
      { /* profile 10 */
255
        /* ramp-up */
256
        { 31, 31, 31, 11,  0,  0,  0,  0,  0,  0,  0,  0, 24,  0,  0,  0},
257
        /* ramp-down */
258
        { 10, 12, 31, 26, 29, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
259
      },
260
      { /* profile 11 */
261
        /* ramp-up */
262
        { 31, 31, 31, 18,  0,  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0},
263
        /* ramp-down */
264
        {  2, 20, 31, 26, 31,  0,  0, 18,  0,  0,  0,  0,  0,  0,  0,  0},
265
      },
266
      { /* profile 12 */
267
        /* ramp-up */
268
        { 31, 31, 31, 25,  0,  0,  0,  0,  0,  0,  0,  0, 10,  0,  0,  0},
269
        /* ramp-down */
270
        {  2, 20, 31, 26, 31,  0,  0,  0, 18,  0,  0,  0,  0,  0,  0,  0},
271
      },
272
      { /* profile 13 */
273
        /* ramp-up */
274
        { 31, 31, 31, 30,  0,  0,  0,  0,  0,  0,  0,  0,  5,  0,  0,  0},
275
        /* ramp-down */
276
        {  1, 16, 31, 31, 31,  0, 18,  0,  0,  0,  0,  0,  0,  0,  0,  0},
277
      },
278
      { /* profile 14 */
279
        /* ramp-up */
280
        { 31, 31, 31, 31,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0},
281
        /* ramp-down */
282
        {  4,  8, 10, 20, 31, 31, 20,  4,  0,  0,  0,  0,  0,  0,  0,  0},
283
      },
284
      { /* profile 15 */
285
        /* ramp-up */
286
        { 31, 31, 31, 31,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0},
287
        /* ramp-down */
288
        {  4,  8, 10, 20, 31, 31, 20,  4,  0,  0,  0,  0,  0,  0,  0,  0},
289
      },
290
};
291

    
292
struct txcal_ramp_def rf_tx_ramps_900[RF_TX_RAMP_SIZE] = {
293
      { /* profile 0 */
294
        /* ramp-up */
295
        { 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31, 31, 31,  5,  0},
296
        /* ramp-down */
297
        { 31, 31, 28, 15,  2,  0, 19,  2,  0,  0,  0,  0,  0,  0,  0,  0},
298
      },
299
      { /* profile 1 */
300
        /* ramp-up */
301
        { 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30, 26, 29,  8,  0},
302
        /* ramp-down */
303
        { 31, 31, 29, 14,  2,  1, 15,  2,  3,  0,  0,  0,  0,  0,  0,  0},
304
      },
305
      { /* profile 2 */
306
        /* ramp-up */
307
        { 31, 14,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31, 27, 24,  1,  0},
308
        /* ramp-down */
309
        { 30, 31, 25, 14,  2,  2, 15,  7,  2,  0,  0,  0,  0,  0,  0,  0},
310
      },
311
      { /* profile 3 */
312
        /* ramp-up */
313
        { 31, 22,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31, 14, 29,  1,  0},
314
        /* ramp-down */
315
        { 31, 29, 31, 13,  2,  2, 15,  2,  3,  0,  0,  0,  0,  0,  0,  0},
316
      },
317
      { /* profile 4 */
318
        /* ramp-up */
319
        { 31, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31, 17, 19,  0,  0},
320
        /* ramp-down */
321
        { 31, 30, 30, 15,  1,  2, 17,  2,  0,  0,  0,  0,  0,  0,  0,  0},
322
      },
323
      { /* profile 5 */
324
        /* ramp-up */
325
        { 31, 31,  7,  0,  0,  0,  0,  0,  0,  0,  0, 31, 19,  7,  2,  0},
326
        /* ramp-down */
327
        { 29, 31, 29, 16,  4,  0, 14,  2,  1,  2,  0,  0,  0,  0,  0,  0},
328
      },
329
      { /* profile 6 */
330
        /* ramp-up */
331
        { 31, 31, 16,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 20,  0,  0},
332
        /* ramp-down */
333
        { 19, 26, 26, 28, 10,  0, 19,  0,  0,  0,  0,  0,  0,  0,  0,  0},
334
      },
335
      { /* profile 7 */
336
        /* ramp-up */
337
        { 31, 31, 25,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0,  8,  2,  0},
338
        /* ramp-down */
339
        { 19, 28, 31, 24,  4,  0, 19,  3,  0,  0,  0,  0,  0,  0,  0,  0},
340
      },
341
      { /* profile 8 */
342
        /* ramp-up */
343
        { 31, 31, 31,  2,  0,  0,  0,  0,  0,  0,  0, 31,  2,  0,  0,  0},
344
        /* ramp-down */
345
        { 19, 28, 31, 24,  4,  0, 17,  5,  0,  0,  0,  0,  0,  0,  0,  0},
346
      },
347
      { /* profile 9 */
348
        /* ramp-up */
349
        { 31, 31, 31,  9,  0,  0,  0,  0,  0,  0,  0, 26,  0,  0,  0,  0},
350
        /* ramp-down */
351
        { 18, 25, 28, 31,  2,  2, 19,  3,  0,  0,  0,  0,  0,  0,  0,  0},
352
      },
353
      { /* profile 10 */
354
        /* ramp-up */
355
        { 31, 31, 31, 16,  0,  0,  0,  0,  0,  0,  0,  0, 19,  0,  0,  0},
356
        /* ramp-down */
357
        { 14, 21, 24, 29,  6,  2, 23,  5,  4,  0,  0,  0,  0,  0,  0,  0},
358
      },
359
      { /* profile 11 */
360
        /* ramp-up */
361
        { 31, 31, 31, 22,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0,  1,  0},
362
        /* ramp-down */
363
        {  8, 26, 26, 28, 12, 12,  5,  5,  0,  6,  0,  0,  0,  0,  0,  0},
364
      },
365
      { /* profile 12 */
366
        /* ramp-up */
367
        { 31, 31, 31, 27,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0},
368
        /* ramp-down */
369
        {  8, 14, 27, 30, 20, 19, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0},
370
      },
371
      { /* profile 13 */
372
        /* ramp-up */
373
        { 31, 31, 31, 31,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  1,  0},
374
        /* ramp-down */
375
        {  9, 10, 15, 26, 25, 10, 17, 13,  3,  0,  0,  0,  0,  0,  0,  0},
376
      },
377
      { /* profile 14 */
378
        /* ramp-up */
379
        { 31, 31, 30, 30,  1,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
380
        /* ramp-down */
381
        {  0,  4, 15, 21, 21, 21, 21, 15, 10,  0,  0,  0,  0,  0,  0,  0},
382
      },
383
      { /* profile 15 */
384
        /* ramp-up */
385
        { 31, 31, 30, 30,  1,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
386
        /* ramp-down */
387
        {  0,  4, 15, 21, 21, 21, 21, 15, 10,  0,  0,  0,  0,  0,  0,  0},
388
      },
389
};
390

    
391
struct txcal_ramp_def rf_tx_ramps_1800[RF_TX_RAMP_SIZE] = {
392
      { /* profile 0 */
393
        /* ramp-up */
394
        { 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31, 31, 27,  4,  0},
395
        /* ramp-down */
396
        { 28, 31, 18,  8,  8, 13,  9, 13,  0,  0,  0,  0,  0,  0,  0,  0},
397
      },
398
      { /* profile 1 */
399
        /* ramp-up */
400
        { 31, 11,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31, 31, 24,  0,  0},
401
        /* ramp-down */
402
        { 10, 30, 30, 20,  8, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
403
      },
404
      { /* profile 2 */
405
        /* ramp-up */
406
        { 31, 19,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31, 31, 16,  0,  0},
407
        /* ramp-down */
408
        { 10, 30, 31, 24, 31,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
409
      },
410
      { /* profile 3 */
411
        /* ramp-up */
412
        { 31, 27,  0,  0,  0,  0,  0,  0,  0,  0,  0, 28, 23, 19,  0,  0},
413
        /* ramp-down */
414
        { 31, 14, 31,  5, 24, 13, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0},
415
      },
416
      { /* profile 4 */
417
        /* ramp-up */
418
        { 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0, 10, 21, 31,  0,  0},
419
        /* ramp-down */
420
        { 20, 22, 31, 10, 22, 13, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0},
421
      },
422
      { /* profile 5 */
423
        /* ramp-up */
424
        { 31, 31, 13,  0,  0,  0,  0,  0,  0,  0,  0, 31, 22,  0,  0,  0},
425
        /* ramp-down */
426
        { 22, 14, 26, 22, 22, 17,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0},
427
      },
428
      { /* profile 6 */
429
        /* ramp-up */
430
        { 31, 31, 21,  0,  0,  0,  0,  0,  0,  0,  0, 24, 21,  0,  0,  0},
431
        /* ramp-down */
432
        { 10, 31, 31, 25, 17, 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
433
      },
434
      { /* profile 7 */
435
        /* ramp-up */
436
        { 31, 31, 28,  0,  0,  0,  0,  0,  0,  0,  0, 28, 10,  0,  0,  0},
437
        /* ramp-down */
438
        { 17, 24, 28, 21, 24, 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
439
      },
440
      { /* profile 8 */
441
        /* ramp-up */
442
        { 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0, 27,  4,  0,  0,  0},
443
        /* ramp-down */
444
        {  9, 23, 31, 24, 24, 13,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0},
445
      },
446
      { /* profile 9 */
447
        /* ramp-up */
448
        { 31, 31, 31, 12,  0,  0,  0,  0,  0,  0,  0,  0, 13, 10,  0,  0},
449
        /* ramp-down */
450
        {  9, 23, 31, 24, 24, 13,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0},
451
      },
452
      { /* profile 10 */
453
        /* ramp-up */
454
        { 31, 31, 31, 17,  0,  0,  0,  0,  0,  0,  0,  0, 12,  6,  0,  0},
455
        /* ramp-down */
456
        { 10, 10, 31, 31, 24, 13,  5,  4,  0,  0,  0,  0,  0,  0,  0,  0},
457
      },
458
      { /* profile 11 */
459
        /* ramp-up */
460
        { 31, 31, 31, 21,  0,  0,  0,  0,  0,  0,  0,  0, 14,  0,  0,  0},
461
        /* ramp-down */
462
        {  4, 14, 31, 31, 26, 13,  5,  4,  0,  0,  0,  0,  0,  0,  0,  0},
463
      },
464
      { /* profile 12 */
465
        /* ramp-up */
466
        { 31, 31, 31, 27,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0},
467
        /* ramp-down */
468
        {  2, 14, 31, 31, 28, 13,  5,  4,  0,  0,  0,  0,  0,  0,  0,  0},
469
      },
470
      { /* profile 13 */
471
        /* ramp-up */
472
        { 31, 31, 31, 29,  0,  0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0},
473
        /* ramp-down */
474
        {  0,  6, 14, 31, 31, 24, 13,  5,  4,  0,  0,  0,  0,  0,  0,  0},
475
      },
476
      { /* profile 14 */
477
        /* ramp-up */
478
        { 31, 31, 31, 31,  1,  0,  0,  0,  0,  0,  0,  0,  3,  0,  0,  0},
479
        /* ramp-down */
480
        {  2,  4,  4, 18, 31, 31, 24,  5,  5,  4,  0,  0,  0,  0,  0,  0},
481
      },
482
      { /* profile 15 */
483
        /* ramp-up */
484
        { 31, 31, 31, 31,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
485
        /* ramp-down */
486
        {  3,  2,  2, 22, 22, 21, 21, 21,  9,  5,  0,  0,  0,  0,  0,  0},
487
      },
488
};
489

    
490
struct txcal_ramp_def rf_tx_ramps_1900[RF_TX_RAMP_SIZE] = {
491
      { /* profile 0 */
492
        /* ramp-up */
493
        { 31,  4,  0,  0,  0,  0,  0,  0,  0,  0, 14, 31, 31, 17,  0,  0},
494
        /* ramp-down */
495
        { 31, 31, 15, 25,  8, 10,  4,  4,  0,  0,  0,  0,  0,  0,  0,  0},
496
      },
497
      { /* profile 1 */
498
        /* ramp-up */
499
        { 31,  8,  0,  0,  0,  0,  0,  0,  0,  0,  5, 31, 31, 22,  0,  0},
500
        /* ramp-down */
501
        { 31, 21, 31, 20,  4,  0, 21,  0,  0,  0,  0,  0,  0,  0,  0,  0},
502
      },
503
      { /* profile 2 */
504
        /* ramp-up */
505
        { 31, 16,  0,  0,  0,  0,  0,  0,  0,  0,  6, 31, 31, 13,  0,  0},
506
        /* ramp-down */
507
        { 30, 31, 24, 31, 10,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
508
      },
509
      { /* profile 3 */
510
        /* ramp-up */
511
        { 31, 24,  0,  0,  0,  0,  0,  0,  0,  0,  3, 31, 31,  8,  0,  0},
512
        /* ramp-down */
513
        { 31, 31, 19, 23, 24,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
514
      },
515
      { /* profile 4 */
516
        /* ramp-up */
517
        { 31, 31,  2,  0,  0,  0,  0,  0,  0,  0,  6, 31, 22,  5,  0,  0},
518
        /* ramp-down */
519
        { 31, 31, 14, 24,  5, 13, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0},
520
      },
521
      { /* profile 5 */
522
        /* ramp-up */
523
        { 31, 31, 10,  0,  0,  0,  0,  0,  0,  0,  0, 31, 25,  0,  0,  0},
524
        /* ramp-down */
525
        { 31, 19, 20,  8, 24, 17,  5,  4,  0,  0,  0,  0,  0,  0,  0,  0},
526
      },
527
      { /* profile 6 */
528
        /* ramp-up */
529
        { 31, 30, 19,  0,  0,  0,  0,  0,  0,  0,  0, 31, 17,  0,  0,  0},
530
        /* ramp-down */
531
        {  2, 31, 31, 25, 17, 22,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
532
      },
533
      { /* profile 7 */
534
        /* ramp-up */
535
        { 31, 31, 26,  0,  0,  0,  0,  0,  0,  0,  0, 31,  9,  0,  0,  0},
536
        /* ramp-down */
537
        { 14, 24, 25, 30, 24, 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
538
      },
539
      { /* profile 8 */
540
        /* ramp-up */
541
        { 31, 31, 31,  2,  0,  0,  0,  0,  0,  0,  0, 31,  2,  0,  0,  0},
542
        /* ramp-down */
543
        { 12, 17, 27, 31, 24, 13,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0},
544
      },
545
      { /* profile 9 */
546
        /* ramp-up */
547
        { 31, 31, 30, 10,  0,  0,  0,  0,  0,  0,  0, 25,  1,  0,  0,  0},
548
        /* ramp-down */
549
        { 21, 31, 31, 26, 13,  4,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0},
550
      },
551
      { /* profile 10 */
552
        /* ramp-up */
553
        { 31, 31, 31, 11,  0,  0,  0,  0,  0,  0,  0, 24,  0,  0,  0,  0},
554
        /* ramp-down */
555
        { 14, 31, 31, 28, 13,  5,  4,  2,  0,  0,  0,  0,  0,  0,  0,  0},
556
      },
557
      { /* profile 11 */
558
        /* ramp-up */
559
        { 31, 31, 31, 19,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0},
560
        /* ramp-down */
561
        {  6, 14, 31, 31, 24, 13,  5,  4,  0,  0,  0,  0,  0,  0,  0,  0},
562
      },
563
      { /* profile 12 */
564
        /* ramp-up */
565
        { 31, 31, 31, 25,  0,  0,  0,  0,  0,  0,  0,  0, 10,  0,  0,  0},
566
        /* ramp-down */
567
        {  6, 14, 31, 31, 24, 13,  5,  4,  0,  0,  0,  0,  0,  0,  0,  0},
568
      },
569
      { /* profile 13 */
570
        /* ramp-up */
571
        { 31, 31, 31, 29,  0,  0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0},
572
        /* ramp-down */
573
        {  6, 14, 31, 31, 24, 13,  5,  4,  0,  0,  0,  0,  0,  0,  0,  0},
574
      },
575
      { /* profile 14 */
576
        /* ramp-up */
577
        { 31, 31, 31, 31,  1,  0,  0,  0,  0,  0,  0,  0,  3,  0,  0,  0},
578
        /* ramp-down */
579
        {  3, 16, 31, 31, 24, 14,  5,  4,  0,  0,  0,  0,  0,  0,  0,  0},
580
      },
581
      { /* profile 15 */
582
        /* ramp-up */
583
        { 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
584
        /* ramp-down */
585
        {  4,  6, 21, 21, 21, 21, 15, 15,  4,  0,  0,  0,  0,  0,  0,  0},
586
      },
587
};
Add picture from clipboard (Maximum size: 48.8 MB)