view src/g23m-aci/gdd_dio/gdd_dio_data.h @ 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 53929b40109c
children
line wrap: on
line source

/* 
+------------------------------------------------------------------------------
|  File:       gdd_dio_data.h
+------------------------------------------------------------------------------
|  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 :  Internal data structures for entity gdd_dio (DIO BAT Adapter)
+----------------------------------------------------------------------------- 
*/ 

#ifndef GDD_DIO_DATA_H
#define GDD_DIO_DATA_H

/*==== INCLUDES =============================================================*/

/* DIO stuff */
#include "dio.h"  /* for T_DIO_CAP_PKT */

/* 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.h"

#include "gdd_dio_queue.h"  /* for T_GDD_BUF_QUEUE */


/*==== DEFINITIONS ==========================================================*/

#define GDD_CON_HANDLE_USER_MASK 0xFF000000


/*==== CONSTS ===============================================================*/

/*==== TYPES =================================================================*/

/**
 * States of kernel service
 */
typedef enum 
{
	GDD_DIO_KER_DEAD = 0,
  GDD_DIO_KER_INIT,
  GDD_DIO_KER_READY
} T_GDD_DIO_KER_STATE;


/**
 * Kernel service data
 */
typedef struct
{
  T_GDD_DIO_KER_STATE         state;
} T_GDD_DIO_KER_DATA;


/**
 * States of a single connection
 */
typedef enum
{
  GDD_DIO_CON_DEAD = 1,
  GDD_DIO_CON_CONNECT,
  GDD_DIO_CON_READY,
  GDD_DIO_CON_SENDING,
  GDD_DIO_CON_CLOSE
} T_GDD_DIO_CON_STATE;

/**
 * Connection data
 */
typedef struct 
{
  T_GDD_BUF_QUEUE			   rx_queue;       /* RX buffer queue */
  T_GDD_BUF_QUEUE				 tx_queue;       /* TX buffer queue */
  UBYTE                  con_state;      /* Connection state */
  UBYTE                  wait_send_buf;  /* Flag indicating that we wait for
                                            a send buffer */
  U32                    dio_device;     /* Dio device type */
  T_GDD_RECEIVE_DATA_CB  rcv_cb;         /* Receive callback of the client */
  T_GDD_SIGNAL_CB        sig_cb;         /* Signale callback of the client */
  T_DIO_CAP_PKT          dio_cap;        /* DIO capabilities */
} T_GDD_DIO_CON_DATA;

/**
 * DIO driver number
 */
typedef U32 T_GDD_DIO_DRV_NUM;


/*==== EXPORTS ===============================================================*/

int inst_num_from_dev_id(U32 device);


#endif /* !GDD_DIO_DATA_H */