changeset 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 6edd9be81b94
children 57e67ca2e1cb
files src/cs/drivers/drv_core/inth/niq32.c
diffstat 1 files changed, 7 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/src/cs/drivers/drv_core/inth/niq32.c	Sat Jan 04 20:48:07 2020 +0000
+++ b/src/cs/drivers/drv_core/inth/niq32.c	Sun Jan 19 01:41:35 2020 +0000
@@ -30,6 +30,7 @@
 #include "board.cfg"
 #include "rf.cfg"
 #include "swconfig.cfg"
+#include "fc-target.h"
 
 #if(OP_L1_STANDALONE == 0)
   #include "debug.cfg"
@@ -163,9 +164,7 @@
    SER_uart_modem_handler, /* AIRQ 7 */
 #endif
 #if ((BOARD == 8) || (BOARD == 9) || (BOARD == 40) || (BOARD == 41))
-// CC test 0316
    IQ_KeypadGPIOHandler,   /* AIRQ 8 */
-// end
 #else
    IQ_KeypadHandler,       /* AIRQ 8 */
 #endif
@@ -539,11 +538,6 @@
 /* Return        : none                                            */
 /* Functionality : Handle keypad and GPIO interrupts          */
 /*--------------------------------------------------------------*/
-// CC test 0316
-//#include "rvm/rvm_use_id_list.h"
-//#include "rvf/rvf_api.h"
-//static char debug_buffer[50];
-// end
 
 void IQ_KeypadGPIOHandler(void)
 {
@@ -554,36 +548,23 @@
      * status bit is reset when the register is read.
      */
      
-    if (AI_CheckITSource (ARMIO_GPIO_INT))
-
-// CC test 0315
-{	       
-        AI_MaskIT (ARMIO_MASKIT_GPIO);
-//sprintf(debug_buffer, "GPIO_Interrupt");
-//rvf_send_trace(debug_buffer, 40, NULL_PARAM, RV_TRACE_LEVEL_ERROR, RVT_USE_ID);
-        AI_UnmaskIT(ARMIO_MASKIT_GPIO);       //0x0002  
-// end
-/*
+    if (AI_CheckITSource (ARMIO_GPIO_INT)) {	       
     #ifdef RVM_MPM_SWE
       // check if the SWE has been started
        MPM_InterruptHandler ();
     #elif BT_CLK_REQ_INT
-
       BT_DRV_ClkReqInterruptHandler( );
-    #else
+    #elif UARTFAX_CLASSIC_DTR_DCD
       UAF_DTRInterruptHandler ();
+    #else
+      AI_MaskIT(ARMIO_MASKIT_GPIO);
+      AI_UnmaskIT(ARMIO_MASKIT_GPIO);
     #endif
-*/    
-}
+    }
     if (AI_CheckITSource (ARMIO_KEYPDAD_INT))
     {
-// CC test 0316
-//sprintf(debug_buffer, "Key_Interrupt");
-//rvf_send_trace(debug_buffer, 40, NULL_PARAM, RV_TRACE_LEVEL_ERROR, RVT_USE_ID);
-// end
       kpd_key_handler ();
     }
-
  #endif
 }