FreeCalypso > hg > fc-magnetite
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 }