FreeCalypso > hg > fc-tourmaline
diff src/cs/layer1/tpu_drivers/source0/tpudrv2.h @ 0:4e78acac3d88
src/{condat,cs,gpf,nucleus}: import from Selenite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 16 Oct 2020 06:23:26 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/layer1/tpu_drivers/source0/tpudrv2.h Fri Oct 16 06:23:26 2020 +0000 @@ -0,0 +1,274 @@ +/****************** Revision Controle System Header *********************** + * GSM Layer 1 software + * Copyright (c) Texas Instruments 1998 + * + * Filename tpudrv2.h + * Copyright 2003 (C) Texas Instruments + * + ****************** Revision Controle System Header ***********************/ + +/***********************************************************/ +/* */ +/* Used Timing definitions given in "L1_TIME.H" */ +/* -------------------------------------------- */ +/* */ +/* START_RX_FB STOP_RX_FB */ +/* START_RX_SB STOP_RX_SB */ +/* START_RX_SNB STOP_RX_SNB */ +/* START_RX_NNB STOP_RX_NNB */ +/* START_RX_PW_1 STOP_RX_PW_1 */ +/* START_RX_FB26 STOP_RX_FB26 */ +/* START_TX_NB STOP_TX_NB */ +/* START_RX_RA STOP_RX_RA */ +/* */ +/***********************************************************/ + +// BB Timings +#define VG_CAL_RX_DELAY 65 +#define VG_CAL_TX_DELAY 143 +#define VG_BDLON_DELAY 70 +#define VG_BULOFF_DELAY 35 +#define VG_BULON_DELAY 159 + +#if ((ANLG_FAM == 1) || (ANLG_FAM == 2) || (ANLG_FAM == 3)) + #define OM_CAL_RX_DELAY 65 + #define OM_CAL_TX_DELAY 230 + #define OM_BDLON_DELAY 166 + #define OM_BULOFF_DELAY 35 + #define OM_BULON_DELAY 250 + + #define SL_SU_DELAY1 4 + #define SL_SU_DELAY2 3 +#endif + +#define RA_TRANSMIS_DURATION ( RA_BURST_DURATION + 46L ) +#define NB_TRANSMIS_DURATION ( NB_BURST_DURATION_UL + 29L ) +#define START_TX_NB ( 4984L ) // Calibration time is reduced of 4 GSM bit due to a slow APC ramp +#define STOP_TX_NB ( START_TX_NB + NB_TRANSMIS_DURATION ) +#define STOP_TX_RA ( START_TX_RA + RA_TRANSMIS_DURATION ) + + +#ifdef TPUDRV2_C + +#if ((ANLG_FAM == 1) || (ANLG_FAM == 2) || (ANLG_FAM == 3)) + const unsigned short RF_Sleep[] ={ + /*** Immediate ***/ + TPU_MOVE(TSP_SPI_SET1, TSP_ENA_POS_MSB), + TPU_MOVE(TSP_SPI_SET2, TSP_ENA_POS_MSB | TSP_ENA_POS), + 0 + }; + + const unsigned short RF_Wakeup[] ={ + /*** Immediate ***/ + TPU_MOVE(TSP_SPI_SET1, 0x00), + TPU_MOVE(TSP_SPI_SET2, TSP_ENA_POS), + 0 + }; + + +/*--------------------------------------------------------------------------------------------------------------*/ +/* Serial link delay for OMEGA. this delay includes */ +/* TSP register programming and serialization of data to OMEGA */ +/* */ +/* */ +/* 4991 4992 4993 4994 4995 4996 4997 */ +/* ---------------------------------------------------------------------------------------------- */ +/* | | | | | | | */ +/*OMEGA | AT(4991) | Clock conf | Nb of bit | Load data | Send write | Serialization */ +/* | | | to shift | to shift | command | | */ +/* ---------------------------------------------------------------------------------------------- */ +/* | | | | | | | */ +/* VEGA | | | | | | AT(4996) | TSPACT */ +/* | | | | | | | */ +/* ------------------------------------------------------------------------------------------|--- */ +/* <------------------------------------------------------------------> | */ +/* SL_SU_DELAY1 | */ +/* V */ +/* ACTION ON WINDOW */ +/* */ +/* When the TSP port is already configured is not necessary to configure the clock and the number of bits */ +/* */ +/* */ +/* 4998 4999 0 1 2 */ +/* ------------------------------------------------------------------- */ +/* | | | | | | */ +/*OMEGA | AT(4998) | Load data | Send write | Serialization | */ +/* | | to shift | command | | | */ +/* ---------------------------------------------------------------------- */ +/* | | | | | | */ +/* VEGA | | | | AT(4996) | TSPACT */ +/* | | | | | | */ +/* ------------------------------------------------------------|------- */ +/* <---------------------------------------> | */ +/* SL_SU_DELAY2 | */ +/* V */ +/* ACTION ON WINDOW */ +/* */ +/* */ +/* NOTE : WITH THIS IMPLEMENTATION THE OMEGA SCENARIO ANTICIPATES THE ACTION ON WINDOW SIGNAL OF 347 ns. */ +/* ANYWAY ACTION IS TAKEN IN THE SAME QB INTERVAL */ +/* */ +/* */ +/*--------------------------------------------------------------------------------------------------------------*/ + + + +/***********************************************************/ +/* BASEBAND TPU SCENARIOS FOR OMEGA */ +/***********************************************************/ + + #if ((CHIPSET == 4) || (CHIPSET == 7) || (CHIPSET == 8) || (CHIPSET == 10) || (CHIPSET == 11)) + // Samson TPU scenario: add 1 bit to reception window for DMA thres = 2 + const SYS_UWORD16 VG_DlNormalBurst [] = { + + TPU_AT (START_RX_SNB -VG_BDLON_DELAY - SL_SU_DELAY1 ), // AT(4991) +// TPU_MOVE (TSP_SPI_SET1, TSP_CLK_RISE), + TPU_MOVE (TSP_CTRL1,6), + TPU_MOVE (TSP_TX_REG_1,BDLON), + TPU_MOVE (TSP_CTRL2, TC2_WR), + + + TPU_AT (START_RX_SNB - VG_CAL_RX_DELAY - SL_SU_DELAY2), // AT(4998) + TPU_MOVE (TSP_TX_REG_1,BDLON | BDLCAL), + TPU_MOVE (TSP_CTRL2, TC2_WR), + + TPU_AT (START_RX_SNB - SL_SU_DELAY2), // AT(63) + TPU_MOVE (TSP_TX_REG_1,BDLON | BDLENA), + TPU_MOVE (TSP_CTRL2, TC2_WR), + + TPU_AT (STOP_RX_SNB - SL_SU_DELAY2), // AT(699) + TPU_MOVE (TSP_TX_REG_1,0x00), + TPU_MOVE (TSP_CTRL2, TC2_WR), + + 0 + }; + + + // HERCULES TPU scenario + const SYS_UWORD16 VG_DlFrequencyBurstIdle [] = { + + TPU_AT (START_RX_FB - VG_BDLON_DELAY -SL_SU_DELAY1 ), // AT(4991) +// TPU_MOVE (TSP_SPI_SET1, TSP_CLK_RISE), + TPU_MOVE (TSP_CTRL1,6), + TPU_MOVE (TSP_TX_REG_1,BDLON), + TPU_MOVE (TSP_CTRL2, TC2_WR), + + + TPU_AT (START_RX_FB - VG_CAL_RX_DELAY -SL_SU_DELAY2), // AT(4998) + TPU_MOVE (TSP_TX_REG_1,BDLON | BDLCAL), + TPU_MOVE (TSP_CTRL2, TC2_WR), + + + TPU_AT (START_RX_FB - SL_SU_DELAY2), // AT(63) + TPU_MOVE (TSP_TX_REG_1,BDLON | BDLENA), + TPU_MOVE (TSP_CTRL2, TC2_WR), + + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + + TPU_AT (STOP_RX_FB - SL_SU_DELAY2), // AT(2119) + TPU_MOVE (TSP_TX_REG_1,0X00), + TPU_MOVE (TSP_CTRL2, TC2_WR), + + 0 + }; + + + #else + /* HERCULES TPU scenario */ + + const SYS_UWORD16 VG_DlNormalBurst [] = { + + TPU_AT (START_RX_SNB -VG_BDLON_DELAY - SL_SU_DELAY1 ), // AT(4991) +// TPU_MOVE (TSP_SPI_SET1, TSP_CLK_RISE), + TPU_MOVE (TSP_CTRL1,6), + TPU_MOVE (TSP_TX_REG_1,BDLON), + TPU_MOVE (TSP_CTRL2, TC2_WR), + + + TPU_AT (START_RX_SNB - VG_CAL_RX_DELAY - SL_SU_DELAY2), // AT(4998) + TPU_MOVE (TSP_TX_REG_1,BDLON | BDLCAL), + TPU_MOVE (TSP_CTRL2, TC2_WR), + + TPU_AT (START_RX_SNB - SL_SU_DELAY2), // AT(63) + TPU_MOVE (TSP_TX_REG_1,BDLON | BDLENA), + TPU_MOVE (TSP_CTRL2, TC2_WR), + + TPU_AT (STOP_RX_SNB - SL_SU_DELAY2), // AT(699) + TPU_MOVE (TSP_TX_REG_1,0x00), + TPU_MOVE (TSP_CTRL2, TC2_WR), + + 0 + }; + + + // HERCULES TPU scenario + const SYS_UWORD16 VG_DlFrequencyBurstIdle [] = { + + TPU_AT (START_RX_FB - VG_BDLON_DELAY -SL_SU_DELAY1 ), // AT(4991) +// TPU_MOVE (TSP_SPI_SET1, TSP_CLK_RISE), + TPU_MOVE (TSP_CTRL1,6), + TPU_MOVE (TSP_TX_REG_1,BDLON), + TPU_MOVE (TSP_CTRL2, TC2_WR), + + + TPU_AT (START_RX_FB - VG_CAL_RX_DELAY -SL_SU_DELAY2), // AT(4998) + TPU_MOVE (TSP_TX_REG_1,BDLON | BDLCAL), + TPU_MOVE (TSP_CTRL2, TC2_WR), + + + TPU_AT (START_RX_FB - SL_SU_DELAY2), // AT(63) + TPU_MOVE (TSP_TX_REG_1,BDLON | BDLENA), + TPU_MOVE (TSP_CTRL2, TC2_WR), + + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + TPU_AT (0), + + TPU_AT (STOP_RX_FB - SL_SU_DELAY2), // AT(2119) + TPU_MOVE (TSP_TX_REG_1,0X00), + TPU_MOVE (TSP_CTRL2, TC2_WR), + + 0 + }; + + + + #endif + + + + // HERCULES TPU scenario for Omega windows reset + const SYS_UWORD16 VG_Omega_win_reset[] = { + + TPU_MOVE (TSP_SPI_SET1, TSP_CLK_RISE), + TPU_MOVE (TSP_CTRL1,6), + TPU_MOVE (TSP_TX_REG_1,0x00), + TPU_MOVE (TSP_CTRL2, TC2_WR), + 0 + }; + + #endif + +#else + extern const SYS_UWORD16 VG_DlNormalBurst[]; + extern const SYS_UWORD16 VG_DlFrequencyBurstIdle[]; +#endif +