Project

General

Profile

Feature #3582 » rf_tables_e86_correct.c

falconia, 03/10/2019 04:09 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
	{  0,  0,  3,  0,  0,  0,  0,  0,  2, 31, 30, 31, 31,  0,  0,  0},
197
	/* ramp-down */
198
	{ 20, 21, 31, 26, 10, 10, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0},
199
      },
200
      { /* profile 1 */
201
	/* ramp-up */
202
	{  0,  0,  5,  0,  0,  0,  0,  0,  0, 31, 30, 31, 31,  0,  0,  0},
203
	/* ramp-down */
204
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
205
      },
206
      { /* profile 2 */
207
	/* ramp-up */
208
	{  0,  0,  5,  0,  0,  0,  0,  0,  0, 31, 30, 31, 31,  0,  0,  0},
209
	/* ramp-down */
210
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
211
      },
212
      { /* profile 3 */
213
	/* ramp-up */
214
	{  0,  0,  0,  5,  0,  0,  0,  0,  0, 31, 30, 31, 31,  0,  0,  0},
215
	/* ramp-down */
216
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
217
      },
218
      { /* profile 4 */
219
	/* ramp-up */
220
	{  0,  0,  0,  5,  0,  0,  0,  0,  0, 31, 30, 31, 31,  0,  0,  0},
221
	/* ramp-down */
222
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
223
      },
224
      { /* profile 5 */
225
	/* ramp-up */
226
	{  0,  0,  0,  8,  0,  0,  0,  0,  0, 28, 30, 31, 31,  0,  0,  0},
227
	/* ramp-down */
228
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
229
      },
230
      { /* profile 6 */
231
	/* ramp-up */
232
	{  0,  0,  0,  8,  0,  0,  0,  0,  0, 28, 30, 31, 31,  0,  0,  0},
233
	/* ramp-down */
234
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
235
      },
236
      { /* profile 7 */
237
	/* ramp-up */
238
	{  0,  0,  0, 12,  0,  0,  0,  0,  0, 20, 30, 31, 31,  4,  0,  0},
239
	/* ramp-down */
240
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
241
      },
242
      { /* profile 8 */
243
	/* ramp-up */
244
	{  0,  0,  0, 12,  0,  0,  0,  0,  0, 20, 30, 31, 31,  4,  0,  0},
245
	/* ramp-down */
246
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
247
      },
248
      { /* profile 9 */
249
	/* ramp-up */
250
	{  0,  0,  0, 17,  0,  0,  0,  0,  0, 25, 24, 31, 31,  0,  0,  0},
251
	/* ramp-down */
252
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
253
      },
254
      { /* profile 10 */
255
	/* ramp-up */
256
	{  0,  0,  0, 17,  0,  0,  0,  0,  0, 25, 24, 31, 31,  0,  0,  0},
257
	/* ramp-down */
258
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
259
      },
260
      { /* profile 11 */
261
	/* ramp-up */
262
	{  0,  0,  0, 17,  0,  0,  0,  0,  0, 14, 30, 31, 31,  5,  0,  0},
263
	/* ramp-down */
264
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
265
      },
266
      { /* profile 12 */
267
	/* ramp-up */
268
	{  0,  0,  0, 17,  0,  0,  0,  0,  0, 14, 30, 31, 31,  5,  0,  0},
269
	/* ramp-down */
270
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
271
      },
272
      { /* profile 13 */
273
	/* ramp-up */
274
	{  0,  0,  0, 28,  0,  0,  0,  0,  0,  0, 31, 31, 31,  7,  0,  0},
275
	/* ramp-down */
276
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
277
      },
278
      { /* profile 14 */
279
	/* ramp-up */
280
	{  0,  0,  0, 28,  0,  0,  0,  0,  0,  0, 31, 31, 31,  7,  0,  0},
281
	/* ramp-down */
282
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
283
      },
284
      { /* profile 15 */
285
	/* ramp-up */
286
	{  0,  0,  0, 28,  0,  0,  0,  0,  0,  0, 31, 31, 31,  7,  0,  0},
287
	/* ramp-down */
288
	{ 31, 31, 31, 31,  4,  0,  0,  0,  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
	{  0,  0,  2,  0,  0,  0,  0,  0, 13, 24, 24, 25, 26, 14,  0,  0},
296
	/* ramp-down */
297
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
298
      },
299
      { /* profile 1 */
300
	/* ramp-up */
301
	{  0,  0,  3,  0,  0,  0,  0,  0, 16, 24, 24, 30, 31,  0,  0,  0},
302
	/* ramp-down */
303
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
304
      },
305
      { /* profile 2 */
306
	/* ramp-up */
307
	{  0,  0,  3,  0,  0,  0,  0,  0, 16, 24, 24, 30, 31,  0,  0,  0},
308
	/* ramp-down */
309
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
310
      },
311
      { /* profile 3 */
312
	/* ramp-up */
313
	{  0,  0,  0,  4,  0,  0,  0,  0,  0, 31, 31, 30, 30,  2,  0,  0},
314
	/* ramp-down */
315
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
316
      },
317
      { /* profile 4 */
318
	/* ramp-up */
319
	{  0,  0,  0,  4,  0,  0,  0,  0,  0, 31, 31, 30, 30,  2,  0,  0},
320
	/* ramp-down */
321
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
322
      },
323
      { /* profile 5 */
324
	/* ramp-up */
325
	{  0,  0,  0,  0, 15,  0,  0,  0,  0,  0, 31, 31, 31, 20,  0,  0},
326
	/* ramp-down */
327
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
328
      },
329
      { /* profile 6 */
330
	/* ramp-up */
331
	{  0,  0,  0,  0, 15,  0,  0,  0,  0,  0, 31, 31, 31, 20,  0,  0},
332
	/* ramp-down */
333
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
334
      },
335
      { /* profile 7 */
336
	/* ramp-up */
337
	{  0,  0,  0,  0, 15,  0,  0,  0,  0,  0, 31, 31, 31, 20,  0,  0},
338
	/* ramp-down */
339
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
340
      },
341
      { /* profile 8 */
342
	/* ramp-up */
343
	{  0,  0,  0,  0, 15,  0,  0,  0,  0,  0, 31, 31, 31, 20,  0,  0},
344
	/* ramp-down */
345
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
346
      },
347
      { /* profile 9 */
348
	/* ramp-up */
349
	{  0,  0,  0,  0, 18,  0,  0,  0,  0,  0, 31, 31, 31, 17,  0,  0},
350
	/* ramp-down */
351
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
352
      },
353
      { /* profile 10 */
354
	/* ramp-up */
355
	{  0,  0,  0,  0, 20,  0,  0,  0,  0,  0, 31, 31, 31, 15,  0,  0},
356
	/* ramp-down */
357
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
358
      },
359
      { /* profile 11 */
360
	/* ramp-up */
361
	{  0,  0,  0,  0, 25,  0,  0,  0,  0,  0, 31, 31, 31, 10,  0,  0},
362
	/* ramp-down */
363
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
364
      },
365
      { /* profile 12 */
366
	/* ramp-up */
367
	{  0,  0,  0,  0, 25,  0,  0,  0,  0,  0, 31, 31, 31, 10,  0,  0},
368
	/* ramp-down */
369
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
370
      },
371
      { /* profile 13 */
372
	/* ramp-up */
373
	{  0,  0,  0,  0, 25,  0,  0,  0,  0,  0, 31, 31, 31, 10,  0,  0},
374
	/* ramp-down */
375
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
376
      },
377
      { /* profile 14 */
378
	/* ramp-up */
379
	{  0,  0,  0,  0, 30,  0,  0,  0,  0,  0, 31, 31, 31,  5,  0,  0},
380
	/* ramp-down */
381
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
382
      },
383
      { /* profile 15 */
384
	/* ramp-up */
385
	{  0,  0,  0,  0, 30,  0,  0,  0,  0,  0, 31, 31, 31,  5,  0,  0},
386
	/* ramp-down */
387
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  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
	{  6,  0,  0,  0,  0,  0,  0,  0,  0, 26, 26, 30, 30, 10,  0,  0},
395
	/* ramp-down */
396
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
397
      },
398
      { /* profile 1 */
399
	/* ramp-up */
400
	{  6,  0,  0,  0,  0,  0,  0,  0,  0, 26, 26, 30, 30, 10,  0,  0},
401
	/* ramp-down */
402
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
403
      },
404
      { /* profile 2 */
405
	/* ramp-up */
406
	{  6,  0,  0,  0,  0,  0,  0,  0,  0, 26, 26, 30, 30, 10,  0,  0},
407
	/* ramp-down */
408
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
409
      },
410
      { /* profile 3 */
411
	/* ramp-up */
412
	{  6,  0,  0,  0,  0,  0,  0,  0,  0, 30, 30, 30, 30,  2,  0,  0},
413
	/* ramp-down */
414
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
415
      },
416
      { /* profile 4 */
417
	/* ramp-up */
418
	{  6,  0,  0,  0,  0,  0,  0,  0,  0, 30, 30, 30, 30,  2,  0,  0},
419
	/* ramp-down */
420
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
421
      },
422
      { /* profile 5 */
423
	/* ramp-up */
424
	{ 11,  0,  0,  0,  0,  0,  0,  0,  0, 15, 25, 26, 31, 10,  0,  0},
425
	/* ramp-down */
426
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
427
      },
428
      { /* profile 6 */
429
	/* ramp-up */
430
	{ 11,  0,  0,  0,  0,  0,  0,  0,  0, 15, 25, 26, 31, 10,  0,  0},
431
	/* ramp-down */
432
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
433
      },
434
      { /* profile 7 */
435
	/* ramp-up */
436
	{ 11,  0,  0,  0,  0,  0,  0,  0,  0, 15, 25, 26, 31, 10,  0,  0},
437
	/* ramp-down */
438
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
439
      },
440
      { /* profile 8 */
441
	/* ramp-up */
442
	{ 11,  0,  0,  0,  0,  0,  0,  0,  0, 15, 25, 26, 31, 10,  0,  0},
443
	/* ramp-down */
444
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
445
      },
446
      { /* profile 9 */
447
	/* ramp-up */
448
	{ 11,  0,  0,  0,  0,  0,  0,  0,  0, 15, 25, 26, 31, 10,  0,  0},
449
	/* ramp-down */
450
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
451
      },
452
      { /* profile 10 */
453
	/* ramp-up */
454
	{ 20,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30, 30, 30, 18,  0,  0},
455
	/* ramp-down */
456
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
457
      },
458
      { /* profile 11 */
459
	/* ramp-up */
460
	{ 20,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30, 30, 30, 18,  0,  0},
461
	/* ramp-down */
462
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
463
      },
464
      { /* profile 12 */
465
	/* ramp-up */
466
	{ 23,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30, 30, 30, 15,  0,  0},
467
	/* ramp-down */
468
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
469
      },
470
      { /* profile 13 */
471
	/* ramp-up */
472
	{ 28,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30, 30, 30, 10,  0,  0},
473
	/* ramp-down */
474
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
475
      },
476
      { /* profile 14 */
477
	/* ramp-up */
478
	{ 31,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30, 30, 30,  7,  0,  0},
479
	/* ramp-down */
480
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
481
      },
482
      { /* profile 15 */
483
	/* ramp-up */
484
	{ 31,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30, 30, 30,  7,  0,  0},
485
	/* ramp-down */
486
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  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
	{ 10,  0,  0,  0,  0,  0,  0,  0,  6, 15, 31, 31, 23, 12,  0,  0},
494
	/* ramp-down */
495
	{ 31, 31, 27, 27, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
496
      },
497
      { /* profile 1 */
498
	/* ramp-up */
499
	{ 10,  0,  0,  0,  0,  0,  0,  0,  6, 15, 31, 31, 23, 12,  0,  0},
500
	/* ramp-down */
501
	{ 31, 31, 27, 27, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
502
      },
503
      { /* profile 2 */
504
	/* ramp-up */
505
	{ 10,  0,  0,  0,  0,  0,  0,  0,  6, 15, 31, 31, 23, 12,  0,  0},
506
	/* ramp-down */
507
	{ 31, 31, 27, 27, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
508
      },
509
      { /* profile 3 */
510
	/* ramp-up */
511
	{ 10,  0,  0,  0,  0,  0,  0,  0,  6, 15, 31, 31, 23, 12,  0,  0},
512
	/* ramp-down */
513
	{ 31, 31, 27, 27, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
514
      },
515
      { /* profile 4 */
516
	/* ramp-up */
517
	{ 10,  0,  0,  0,  0,  0,  0,  0,  6, 15, 31, 31, 23, 12,  0,  0},
518
	/* ramp-down */
519
	{ 31, 31, 27, 27, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
520
      },
521
      { /* profile 5 */
522
	/* ramp-up */
523
	{ 11,  0,  0,  0,  0,  0,  0,  0,  0, 15, 25, 26, 31, 10,  0,  0},
524
	/* ramp-down */
525
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
526
      },
527
      { /* profile 6 */
528
	/* ramp-up */
529
	{ 11,  0,  0,  0,  0,  0,  0,  0,  0, 15, 25, 26, 31, 10,  0,  0},
530
	/* ramp-down */
531
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
532
      },
533
      { /* profile 7 */
534
	/* ramp-up */
535
	{ 11,  0,  0,  0,  0,  0,  0,  0,  0, 15, 25, 26, 31, 10,  0,  0},
536
	/* ramp-down */
537
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
538
      },
539
      { /* profile 8 */
540
	/* ramp-up */
541
	{ 11,  0,  0,  0,  0,  0,  0,  0,  0, 15, 25, 26, 31, 10,  0,  0},
542
	/* ramp-down */
543
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
544
      },
545
      { /* profile 9 */
546
	/* ramp-up */
547
	{ 11,  0,  0,  0,  0,  0,  0,  0,  0, 15, 25, 26, 31, 10,  0,  0},
548
	/* ramp-down */
549
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
550
      },
551
      { /* profile 10 */
552
	/* ramp-up */
553
	{ 11,  0,  0,  0,  0,  0,  0,  0,  0, 15, 25, 26, 31, 10,  0,  0},
554
	/* ramp-down */
555
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
556
      },
557
      { /* profile 11 */
558
	/* ramp-up */
559
	{ 16,  0,  0,  0,  0,  0,  0,  0,  0, 10, 30, 31, 31, 10,  0,  0},
560
	/* ramp-down */
561
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
562
      },
563
      { /* profile 12 */
564
	/* ramp-up */
565
	{ 16,  0,  0,  0,  0,  0,  0,  0,  0, 10, 30, 31, 31, 10,  0,  0},
566
	/* ramp-down */
567
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
568
      },
569
      { /* profile 13 */
570
	/* ramp-up */
571
	{ 19,  0,  0,  0,  0,  0,  0,  0,  0,  9, 31, 31, 31,  7,  0,  0},
572
	/* ramp-down */
573
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
574
      },
575
      { /* profile 14 */
576
	/* ramp-up */
577
	{ 23,  0,  0,  0,  0,  0,  0,  0,  0, 25, 31, 31, 31,  7,  0,  0},
578
	/* ramp-down */
579
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
580
      },
581
      { /* profile 15 */
582
	/* ramp-up */
583
	{ 23,  0,  0,  0,  0,  0,  0,  0,  0, 25, 31, 31, 31,  7,  0,  0},
584
	/* ramp-down */
585
	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
586
      },
587
};
(2-2/5)
Add picture from clipboard (Maximum size: 48.8 MB)