# HG changeset patch # User Mychaela Falconia # Date 1579398095 0 # Node ID baa0a02bc676f729a69c2e9ab41ce3853c7c7c66 # Parent 6edd9be81b94b10d2a4294615b3a8fbd52843390 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. diff -r 6edd9be81b94 -r baa0a02bc676 src/cs/drivers/drv_core/inth/niq32.c --- 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 }