view src/cs/services/atp/atp_uart_api.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 945cf7f506b2
children
line wrap: on
line source

/********************************************************************************/
/*                                                                              */
/*    File Name:         atp_uart_api.c                                         */
/*                                                                              */
/*    Purpose:           This file contains the external functions related to   */
/*                       the ATP-UART interface.                                */
/*                                                                              */
/*    Note:              None.                                                  */
/*                                                                              */
/*    Revision History:                                                         */
/*       10/04/01        Pascal Pompei                                          */
/*                          - Create.                                           */
/*                                                                              */
/* (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved.   */
/*                                                                              */
/********************************************************************************/
#include "atp/atp_uart_i.h"
#include "rvm/rvm_use_id_list.h"


/********************************************************************************/
/*                                                                              */
/*    Function Name:     atp_uart_open_com_port                                 */
/*                                                                              */
/*    Purpose:           This function instructs the ATP-UART interface to open */
/*                       the COM port.                                          */
/*                                                                              */
/*    Input Parameters:                                                         */
/*       com_port           - Contains the COM port number.                     */
/*       baud_rate          - Contains the baud rate (in bits per second).      */
/*                                                                              */
/*    Output Parameters: None.                                                  */
/*                                                                              */
/*    Global Parameters: None.                                                  */
/*                                                                              */
/*    Note:              None.                                                  */
/*                                                                              */
/*    Revision History:                                                         */
/*       10/04/01        Pascal Pompei                                          */
/*                          - Create.                                           */
/*                                                                              */
/********************************************************************************/
T_ATP_UART_ERROR_CODES atp_uart_open_com_port (T_ATP_UART_COM_PORT   com_port,
											   T_ATP_UART_BAUD_RATE  baud_rate)
{
    /* Declare a local variable.                                                */
	T_ATP_UART_OPEN_COM_PORT  *open_com_port_p = NULL;

/******************** atp_uart_open_com_port function begins ********************/

	/* Allocate memory required to instruct the ATP-UART interface to open the  */
	/* COM port. If insufficient resources, then report an internal memory      */
	/* error and abort.                                                         */
	if (rvf_get_buf (gbl_atp_uart_ctrl_blk_p->mb_id, \
					 sizeof (T_ATP_UART_OPEN_COM_PORT), \
					 (T_RVF_BUFFER **) (&open_com_port_p)) == RVF_RED)
	{
		rvf_send_trace ("  ATP-UART (api). Insufficient resources ",
						41,
						NULL_PARAM,
						RV_TRACE_LEVEL_WARNING,
						ATP_USE_ID);
		return (RV_MEMORY_ERR);
	}

	/* Fill the 'ATP-UART Open COM Port' header up.                             */
	(open_com_port_p->os_header).msg_id        = ATP_UART_OPEN_COM_PORT;
	(open_com_port_p->os_header).src_addr_id   = RVF_INVALID_ADDR_ID;
	(open_com_port_p->os_header).callback_func = NULL;

	/* Fill the 'ATP-UART Open COM Port' payload up.                            */
	open_com_port_p->com_port  = com_port;
	open_com_port_p->baud_rate = baud_rate;

	/* Send the 'ATP-UART Open COM Port' notification to the ATP-UART           */
	/* interface.                                                               */
	return (rvf_send_msg (gbl_atp_uart_ctrl_blk_p->addr_id, \
						  open_com_port_p));

} /******************* End of atp_uart_open_com_port function *******************/


/********************************************************************************/
/*                                                                              */
/*    Function Name:     atp_uart_start_gsm                                     */
/*                                                                              */
/*    Purpose:           This function instructs the ATP-UART interface to      */
/*                       initiate using the GSM protocol stack.                 */
/*                                                                              */
/*    Input Parameters:  None.                                                  */
/*                                                                              */
/*    Output Parameters: None.                                                  */
/*                                                                              */
/*    Global Parameters: None.                                                  */
/*                                                                              */
/*    Note:              The GSM protocol stack is initialized by invoking the  */
/*                       following AT commands:                                 */
/*                          AT+CFUN=1 : Set Phone Functionality (Full),         */
/*                          AT+COPS=0 : Operator Selection.                     */
/*                                                                              */
/*    Revision History:                                                         */
/*       09/26/02        Pascal Pompei                                          */
/*                          - Create.                                           */
/*                                                                              */
/********************************************************************************/
T_ATP_UART_ERROR_CODES atp_uart_start_gsm (void)
{
    /* Declare a local variable.                                                */
	T_ATP_UART_START_GSM  *start_gsm_p = NULL;

/********************** atp_uart_start_gsm function begins **********************/

	/* Allocate memory required to instruct the ATP-UART interface to initiate  */
	/* using the GSM protocol stack. If insufficient resources, then report an  */
	/* internal memory error and abort.                                         */
	if (rvf_get_buf (gbl_atp_uart_ctrl_blk_p->mb_id, \
					 sizeof (T_ATP_UART_START_GSM), \
					 (T_RVF_BUFFER **) (&start_gsm_p)) == RVF_RED)
	{
		rvf_send_trace ("  ATP-UART (api). Insufficient resources ",
						41,
						NULL_PARAM,
						RV_TRACE_LEVEL_WARNING,
						ATP_USE_ID);
		return (RV_MEMORY_ERR);
	}

	/* Fill the 'ATP-UART Start GSM' header up.                                 */
	(start_gsm_p->os_header).msg_id        = ATP_UART_START_GSM;
	(start_gsm_p->os_header).src_addr_id   = RVF_INVALID_ADDR_ID;
	(start_gsm_p->os_header).callback_func = NULL;

	/* Send the 'ATP-UART Start GSM' notification to the ATP-UART interface.    */
	return (rvf_send_msg (gbl_atp_uart_ctrl_blk_p->addr_id, \
						  start_gsm_p));

} /********************* End of atp_uart_start_gsm function *********************/