FreeCalypso > hg > fc-magnetite
view src/g23m-aci/gdd_dio/gdd_dio_txf.c @ 680:ee3ac8c617cb
armio.c: set GPIO2 output high initially
On TI-canonical platforms GPIO2 is DCD modem control output. In TI's
original code the AI_InitIOConfig() function called from Init_Target()
would configure GPIO2 as an output and set the initial output value to
low, but then the init code in uartfax.c called from Init_Serial_Flows()
would immediately change it to high, corresponding to DCD not asserted.
The result is a momentary asserted-state glitch on the DCD output.
The present change eliminates this glitch, setting DCD output to
not-asserted initially like it should be.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 25 Jun 2020 03:17:43 +0000 |
parents | 53929b40109c |
children |
line wrap: on
line source
/* +----------------------------------------------------------------------------- | File : gdd_dio_txf.c +----------------------------------------------------------------------------- | Copyright 2002 Texas Instruments Berlin, AG | All rights reserved. | | This file is confidential and a trade secret of Texas | Instruments Berlin, AG | The receipt of or possession of this file does not convey | any rights to reproduce or disclose its contents or to | manufacture, use, or sell anything it may describe, in | whole, or in part, without the specific written consent of | Texas Instruments Berlin, AG. +----------------------------------------------------------------------------- | Purpose : This modul is part of the entity gdd_dio and implements the | tx service functions. +----------------------------------------------------------------------------- */ #define ENTITY_GDD_DIO /*==== INCLUDES =============================================================*/ #include "typedefs.h" /* to get Condat data types */ #include "vsi.h" /* to get a lot of macros */ /* DIO stuff */ #include "dio.h" #include "dio_il/dio_drv.h" /* GDD_DIO stuff */ /* We must define P_DIO_H, in order to avoid inclusion of p_dio.h. This is necessary due to the special fact, that "dio.h", which is included in the header "dio_io/dio_drv.h", mirrors the header "p_dio.h". */ #define P_DIO_H #include "gdd_dio.h" /* to get the global entity definitions */ #include "gdd_dio_con_mgr.h" #include "gdd_dio_queue.h" #include "gdd_dio_txf.h" #include "gdd_dio_drxf.h" /*==== CONST ================================================================*/ /*==== LOCAL VARS ===========================================================*/ /*==== PRIVATE FUNCTIONS ====================================================*/ /*==== PUBLIC FUNCTIONS =====================================================*/ GLOBAL void gdd_dio_tx_receive_buf(T_GDD_CON_HANDLE con_handle, T_dio_buffer * buf) { #ifdef GDD_MAKE_DTX_CONTEXT_SWITCH U32 signal = GDD_DIO_SIGNAL_RECEIVE_DATA | (U32)con_handle; #else /* GDD_MAKE_DTX_CONTEXT_SWITCH */ U32 signal = con_handle; #endif /* GDD_MAKE_DTX_CONTEXT_SWITCH */ TRACE_FUNCTION("[GDD] gdd_dio_tx_receive_buf()"); #ifdef MEMORY_SUPERVISION vsi_c_ssend(hCommGDD_DIO, signal, (T_VOID_STRUCT*)buf, sizeof(T_VOID_STRUCT*), __FILE__, __LINE__); #else vsi_c_ssend(hCommGDD_DIO, signal, (T_VOID_STRUCT*)buf, sizeof(T_VOID_STRUCT*)); #endif }