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