FreeCalypso > hg > fc-magnetite
view src/cs/layer1/tpu_drivers/p_source0/p_tpudr12.c @ 635:baa0a02bc676
niq32.c DTR handling restored for targets that have it
TI's original TCS211 fw treated GPIO 3 as the DTR input (wired so on C-Sample
and D-Sample boards, also compatible with Leonardo and FCDEV3B which have a
fixed pull-down resistor on this GPIO line), and the code in niq32.c called
UAF_DTRInterruptHandler() (implemented in uartfax.c) from the
IQ_KeypadGPIOHandler() function. But on Openmoko's GTA02 with their official
fw this GPIO is a floating input, all of the DTR handling code in uartfax.c
including the interrupt logic is still there, but the hobbled TCS211-20070608
semi-src delivery which OM got from TI contained a change in niq32.c (which
had been kept in FC until now) that removed the call to
UAF_DTRInterruptHandler() as part of those not-quite-understood "CC test"
hacks.
The present change fixes this bug at a long last: if we are building fw for a
target that has TI's "classic" DTR & DCD GPIO arrangement (dsample, fcmodem and
gtm900), we bring back all of TI's original code in both uartfax.c and niq32.c,
whereas if we are building fw for a target that does not use this classic GPIO
arrangement, the code in niq32.c goes back to what we got from OM and all
DTR & DCD code in uartfax.c is conditioned out. This change also removes the
very last remaining bit of "CC test" bogosity from our FreeCalypso code base.
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Sun, 19 Jan 2020 01:41:35 +0000 |
| parents | 0740b5ff15f6 |
| children |
line wrap: on
line source
/************* Revision Controle System Header ************* * GSM Layer 1 software * * Filename p_tpudr12.c * Copyright 2003 (C) Texas Instruments * ************* Revision Controle System Header *************/ #include "l1_macro.h" #include "l1_confg.h" #if L1_GPRS #include "sys_types.h" #include "iq.h" #include "l1_const.h" #include "l1_types.h" #if TESTMODE #include "l1tm_defty.h" #endif #if (AUDIO_TASK == 1) #include "l1audio_const.h" #include "l1audio_cust.h" #include "l1audio_defty.h" #endif #if (L1_GTT == 1) #include "l1gtt_const.h" #include "l1gtt_defty.h" #endif #if (L1_MP3 == 1) #include "l1mp3_defty.h" #endif #if (L1_MIDI == 1) #include "l1midi_defty.h" #endif #if (L1_AAC == 1) #include "l1aac_defty.h" #endif #include "l1_defty.h" #include "l1_time.h" #include "tpudrv.h" #include "tpudrv12.h" #include "armio.h" // external function prototypes void l1dmacro_rx_up (void); void l1dmacro_rx_down (WORD32 t); void l1dmacro_tx_up (void); void l1dmacro_tx_down (WORD32 time, BOOL tx_flag, UWORD8 adc_active); // external variables and tables extern SYS_UWORD16 *TP_Ptr; /**************************************************************************/ /**************************************************************************/ /* EXTERNAL FUNCTIONS CALLED BY LAYER1 */ /* COMMON TO L1 and TOOLKIT */ /**************************************************************************/ /**************************************************************************/ /*------------------------------------------*/ /* l1dmacro_tx_synth */ /*------------------------------------------*/ /* programs RF synth for transmit */ /* programs OPLL for transmit */ /*------------------------------------------*/ void l1pdmacro_tx_synth(SYS_UWORD16 radio_freq) { l1dmacro_tx_synth(radio_freq); } /*------------------------------------------*/ /* l1pdmacro_rx_up */ /*------------------------------------------*/ /* Open window for normal burst reception */ /*------------------------------------------*/ void l1pdmacro_rx_up (SYS_UWORD16 radio_freq) { l1dmacro_rx_up(); } /*------------------------------------------*/ /* l1pdmacro_rx_down */ /*------------------------------------------*/ /* Close window for normal burst reception */ /*------------------------------------------*/ void l1pdmacro_rx_down (SYS_UWORD16 radio_freq, UWORD8 num_rx, BOOL rx_done_flag) { l1dmacro_rx_down (RX_DOWN_TABLE[num_rx - 1]); } /*------------------------------------------*/ /* l1pdmacro_tx_up */ /*------------------------------------------*/ /* Open transmission window for normal burst*/ /*------------------------------------------*/ void l1pdmacro_tx_up (SYS_UWORD16 radio_freq) { l1dmacro_tx_up(); } /*-------------------------------------------*/ /* l1pdmacro_tx_down */ /*-------------------------------------------*/ /* Close transmission window for normal burst*/ /*-------------------------------------------*/ void l1pdmacro_tx_down (SYS_UWORD16 radio_freq, WORD16 time, BOOL tx_flag, UWORD8 timing_advance,UWORD8 adc_active) { l1dmacro_tx_down (time, tx_flag, adc_active); } /*---------------------------------------------*/ /* l1pdmacro_it_dsp_gen */ /*---------------------------------------------*/ /* Generate IT to DSP */ /*---------------------------------------------*/ void l1pdmacro_it_dsp_gen(WORD16 time) { // WARNING: 'time' must always be included between 0 and TPU_CLOCK_RANGE !!! *TP_Ptr++ = TPU_FAT (time); *TP_Ptr++ = TPU_MOVE (TPU_IT_DSP_PG,0x0001); } // TEMPORARY !!!!! /*---------------------------------------------*/ /* l1pdmacro_anchor */ /*---------------------------------------------*/ /* Temporary macro used to program a TPU */ /* scenario executed on the correct frame */ /*---------------------------------------------*/ void l1pdmacro_anchor(WORD16 time) { // WARNING: 'time' must always be included between 0 and TPU_CLOCK_RANGE !!! *TP_Ptr++ = TPU_FAT (time); } #endif
