FreeCalypso > hg > freecalypso-sw
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 /*------------------------------------------*/ |