comparison gsm-fw/L1/tpudrv/tpudrv12.h @ 887:7f305eb3c530

gsm-fw: tpudrv12.[ch] extended to support Pirelli DP-L10 target Pirelli ramImage compiles, not tested on hw yet compiled code unchanged in the gtamodem configuration (verified)
author Space Falcon <falcon@ivan.Harhan.ORG>
date Sun, 28 Jun 2015 08:15:10 +0000
parents 47754cdb6248
children 5a826938d005
comparison
equal deleted inserted replaced
886:346a15ea8222 887:7f305eb3c530
220 // For previous PGs this BIT was unused, so it can be safelly programmed 220 // For previous PGs this BIT was unused, so it can be safelly programmed
221 // for all PGs 221 // for all PGs
222 222
223 223
224 // RF signals connected to TSPACT [0..7] 224 // RF signals connected to TSPACT [0..7]
225 //#define RESET_RF BIT_0 // act0 225
226 #define RF_SER_ON BIT_0 // act0 226 #if CONFIG_TARGET_PIRELLI
227 #define RF_RESET_LINE BIT_5
228 #else
229 #define RF_RESET_LINE BIT_0
230 #endif
231
232 #define RF_SER_ON RF_RESET_LINE
227 #define RF_SER_OFF 0 233 #define RF_SER_OFF 0
228 234
229 235 #define TEST_TX_ON 0
230 #if (FEM_TEST==1) 236 #define TEST_RX_ON 0
231 //for test 237
232 #define TEST_TX_ON BIT_2 // act2 238 #if CONFIG_TARGET_GTAMODEM || CONFIG_TARGET_LEONARDO
233 #define TEST_RX_ON BIT_3 // act3 239
234 240 // 4-band config (E-sample, P2, Leonardo)
235 //3-band config (D-sample) 241 #define FEM_7 BIT_2 // act2
236 #define FEM_1 BIT_1 // act1 242 #define FEM_8 BIT_1 // act1
237 #define FEM_2 0 //BIT_2 // act2 243 #define FEM_9 BIT_4 // act4
238 #define FEM_3 0 //BIT_3 // act3 244
239 #elif (BOARD == 42 || BOARD == 43 || BOARD == 35 || (BOARD == 41 && (RF_PA == 0 || RF_PA == 1 || RF_PA == 2 || RF_PA == 4))) // ESample, P2, Leonardo 245 #define PA_HI_BAND BIT_3 // act3
240 #define TEST_TX_ON 0 246 #define PA_LO_BAND 0
241 #define TEST_RX_ON 0 247 #define PA_OFF 0
242 // 4-band config (E-sample, P2, Leonardo) 248
243 #define FEM_7 BIT_2 // act2 249 #define FEM_PINS (FEM_7 | FEM_8 | FEM_9)
244 #define FEM_8 BIT_1 // act1 250
245 #define FEM_9 BIT_4 // act4 251 #define FEM_OFF ( FEM_PINS ^ 0 )
246 252
247 #if (RF_PA == 0) // LCPA for ES, P2 and Leo 253 #define FEM_SLEEP ( 0 )
248 #define PA_HI_BAND BIT_3 // act3 254
249 #define PA_LO_BAND 0 255 // This configuration is always inverted.
250 #define PA_OFF 0 256
251 #elif (RF_PA == 1) // RF3146 for ES and Leonardo 257 // RX_UP/DOWN and TX_UP/DOWN
252 #define PA_HI_BAND BIT_3 // act3 258 #if CONFIG_TARGET_GTAMODEM
253 #define PA_LO_BAND 0 259 // Openmoko's hobbled triband hardware
254 #define PA_OFF 0 260 #define RU_900 ( PA_OFF | FEM_PINS ^ 0 )
255 #elif (RF_PA == 2) // RF3133 for P2 and Leonardo 261 #define RD_900 ( PA_OFF | FEM_PINS ^ 0 )
256 #define PA_HI_BAND BIT_3 // act3 262 #define TU_900 ( PA_LO_BAND | FEM_PINS ^ FEM_9 )
257 #define PA_LO_BAND 0 263 #define TD_900 ( PA_OFF | FEM_PINS ^ 0 )
258 #define PA_OFF 0 264
259 #elif (RF_PA == 4) // AWT6108 for Leonardo 265 #define RU_850 ( PA_OFF | FEM_PINS ^ 0 )
260 #define PA_HI_BAND BIT_3 // act3 266 #define RD_850 ( PA_OFF | FEM_PINS ^ 0 )
261 #define PA_LO_BAND 0 267 #define TU_850 ( PA_LO_BAND | FEM_PINS ^ FEM_9 )
262 #define PA_OFF 0 268 #define TD_850 ( PA_OFF | FEM_PINS ^ 0 )
269
270 #define RU_1800 ( PA_OFF | FEM_PINS ^ 0 )
271 #define RD_1800 ( PA_OFF | FEM_PINS ^ 0 )
272 #define TU_1800 ( PA_HI_BAND | FEM_PINS ^ FEM_7 )
273 #define TD_1800 ( PA_OFF | FEM_PINS ^ 0 )
274
275 #define RU_1900 ( PA_OFF | FEM_PINS ^ FEM_8 )
276 #define RD_1900 ( PA_OFF | FEM_PINS ^ 0 )
277 #define TU_1900 ( PA_HI_BAND | FEM_PINS ^ FEM_7 )
278 #define TD_1900 ( PA_OFF | FEM_PINS ^ 0 )
263 #else 279 #else
264 #error "RF_PA not correctly defined" 280 // original quadband arrangement
281 #define RU_900 ( PA_OFF | FEM_PINS ^ 0 )
282 #define RD_900 ( PA_OFF | FEM_PINS ^ 0 )
283 #define TU_900 ( PA_LO_BAND | FEM_PINS ^ FEM_7 )
284 #define TD_900 ( PA_OFF | FEM_PINS ^ 0 )
285
286 #define RU_850 ( PA_OFF | FEM_PINS ^ FEM_9 )
287 #define RD_850 ( PA_OFF | FEM_PINS ^ 0 )
288 #define TU_850 ( PA_LO_BAND | FEM_PINS ^ FEM_7 )
289 #define TD_850 ( PA_OFF | FEM_PINS ^ 0 )
290
291 #define RU_1800 ( PA_OFF | FEM_PINS ^ 0 )
292 #define RD_1800 ( PA_OFF | FEM_PINS ^ 0 )
293 #define TU_1800 ( PA_HI_BAND | FEM_PINS ^ FEM_8 )
294 #define TD_1800 ( PA_OFF | FEM_PINS ^ 0 )
295
296 #define RU_1900 ( PA_OFF | FEM_PINS ^ 0 )
297 #define RD_1900 ( PA_OFF | FEM_PINS ^ 0 )
298 #define TU_1900 ( PA_HI_BAND | FEM_PINS ^ FEM_8 )
299 #define TD_1900 ( PA_OFF | FEM_PINS ^ 0 )
265 #endif 300 #endif
266 301
267 #else // DSample + EVARITA 302 #elif CONFIG_TARGET_PIRELLI
268 #if (RF_PA != 3) // Hitachi for EVARITA 303
269 #error 304 #define ANTSW_RX_PCS BIT_4
270 #endif 305 #define ANTSW_TX_HIGH BIT_10
271 306 #define ANTSW_TX_LOW BIT_11
272 //#define TEST_RX_ON 0 307
273 //#define TEST_TX_ON BIT_3 // act3 308 #define PA_HI_BAND BIT_3 // act3
274 #define TEST_TX_ON 0 309 #define PA_LO_BAND 0
275 #define TEST_RX_ON BIT_3 // act3 310 #define PA_OFF 0
276 311
277 //3-band config (D-sample) 312 #define PA_ENABLE BIT_0
278 #define FEM_1 BIT_1 // act1 313
279 #define FEM_2 BIT_2 // act2 314 // Pirelli uses a non-inverting buffer
280 #define FEM_3 BIT_3 // act3 315
281 #endif 316 #define FEM_OFF ( 0 )
282 317
283 #if (BOARD == 42 || BOARD == 43 || BOARD == 35 || (BOARD == 41 && (RF_PA == 0 || RF_PA == 1 || RF_PA == 2 || RF_PA == 4))) // ESample, P2, Leonardo 318 #define FEM_SLEEP ( 0 )
284 319
285 #define FEM_PINS (FEM_7 | FEM_8 | FEM_9) 320 // RX_UP/DOWN and TX_UP/DOWN (triband)
286 321 #define RU_900 ( PA_OFF | 0 )
287 #define FEM_OFF ( FEM_PINS ^ 0 ) 322 #define RD_900 ( PA_OFF | 0 )
288 323 #define TU_900 ( PA_LO_BAND | ANTSW_TX_LOW )
289 #define FEM_SLEEP ( 0 ) 324 #define TD_900 ( PA_OFF | 0 )
290 325
291 // This configuration is always inverted. 326 #define RU_850 ( PA_OFF | 0 )
292 327 #define RD_850 ( PA_OFF | 0 )
293 // 4-band config 328 #define TU_850 ( PA_LO_BAND | ANTSW_TX_LOW )
294 // RX_UP/DOWN and TX_UP/DOWN 329 #define TD_850 ( PA_OFF | 0 )
295 #define RU_900 ( PA_OFF | FEM_PINS ^ 0 ) 330
296 #define RD_900 ( PA_OFF | FEM_PINS ^ 0 ) 331 #define RU_1800 ( PA_OFF | 0 )
297 #define TU_900 ( PA_LO_BAND | FEM_PINS ^ FEM_9 ) 332 #define RD_1800 ( PA_OFF | 0 )
298 #define TD_900 ( PA_OFF | FEM_PINS ^ 0 ) 333 #define TU_1800 ( PA_HI_BAND | ANTSW_TX_HIGH )
299 334 #define TD_1800 ( PA_OFF | 0 )
300 #define RU_850 ( PA_LO_BAND | FEM_PINS ^ 0 ) 335
301 #define RD_850 ( PA_OFF | FEM_PINS ^ 0 ) 336 #define RU_1900 ( PA_OFF | ANTSW_RX_PCS )
302 #define TU_850 ( PA_LO_BAND | FEM_PINS ^ FEM_9 ) 337 #define RD_1900 ( PA_OFF | 0 )
303 #define TD_850 ( PA_OFF | FEM_PINS ^ 0 ) 338 #define TU_1900 ( PA_HI_BAND | ANTSW_TX_HIGH )
304 339 #define TD_1900 ( PA_OFF | 0 )
305 #define RU_1800 ( PA_OFF | FEM_PINS ^ 0 ) 340
306 #define RD_1800 ( PA_OFF | FEM_PINS ^ 0 ) 341 #endif // FreeCalypso target selection
307 #define TU_1800 ( PA_HI_BAND | FEM_PINS ^ FEM_7 )
308 #define TD_1800 ( PA_OFF | FEM_PINS ^ 0 )
309
310 #define RU_1900 ( PA_LO_BAND | FEM_PINS ^ FEM_8 )
311 #define RD_1900 ( PA_OFF | FEM_PINS ^ 0 )
312 #define TU_1900 ( PA_HI_BAND | FEM_PINS ^ FEM_7 )
313 #define TD_1900 ( PA_OFF | FEM_PINS ^ 0 )
314
315 #else // end BOARD = 43
316 // start RF HW interfacing with EVARITA
317
318 #define FEM_OFF (FEM_1 | FEM_2)
319 #define FEM_SLEEP (0) // To avoid leakage during Deep-Seep
320
321 // 3-band config
322 // RX_UP/DOWN and TX_UP/DOWN
323 #define RU_900 ( FEM_1 | FEM_2 )
324 #define RD_900 ( FEM_1 | FEM_2 )
325 #define TU_900 ( FEM_1 )
326 #define TD_900 ( FEM_1 | FEM_2 )
327
328 #define RU_850 ( FEM_1 | FEM_2 )
329 #define RD_850 ( FEM_1 | FEM_2 )
330 #define TU_850 ( FEM_1 )
331 #define TD_850 ( FEM_1 | FEM_2 )
332
333 #define RU_1800 ( FEM_1 | FEM_2 )
334 #define RD_1800 ( FEM_1 | FEM_2 )
335 #define TU_1800 ( FEM_2 )
336 #define TD_1800 ( FEM_1 | FEM_2 )
337
338 #define RU_1900 ( FEM_1 | FEM_2 )
339 #define RD_1900 ( FEM_1 | FEM_2 )
340 #define TU_1900 ( FEM_2)
341 #define TD_1900 ( FEM_1 | FEM_2 )
342
343 #endif // BOARD != 43
344 342
345 #define TC1_DEVICE_ABB TC1_DEVICE0 // TSPEN0 343 #define TC1_DEVICE_ABB TC1_DEVICE0 // TSPEN0
344 #if CONFIG_TARGET_PIRELLI
345 #define TC1_DEVICE_RF TC1_DEVICE1 // TSPEN1
346 #else
346 #define TC1_DEVICE_RF TC1_DEVICE2 // TSPEN2 347 #define TC1_DEVICE_RF TC1_DEVICE2 // TSPEN2
348 #endif
347 349
348 350
349 //--- TIMINGS ---------------------------------------------------------- 351 //--- TIMINGS ----------------------------------------------------------
350 352
351 /*------------------------------------------*/ 353 /*------------------------------------------*/