view src/aci2/mfw/mfw_bte.h @ 685:3fb7384e820d

tpudrv12.h: FCDEV3B goes back to being itself A while back we had the idea of a FreeCalypso modem family whereby our current fcdev3b target would some day morph into fcmodem, with multiple FC modem family products, potentially either triband or quadband, being firmware-compatible with each other and with our original FCDEV3B. But in light of the discovery of Tango modules that earlier idea is now being withdrawn: instead the already existing Tango hw is being adopted into our FreeCalypso family. Tango cannot be firmware-compatible with triband OM/FCDEV3B targets because the original quadband RFFE on Tango modules is wired in TI's original Leonardo arrangement. Because this Leonardo/Tango way is now becoming the official FreeCalypso way of driving quadband RFFEs thanks to the adoption of Tango into our FC family, our earlier idea of extending FIC's triband RFFE control signals with TSPACT5 no longer makes much sense - we will probably never produce any new hardware with that once-proposed arrangement. Therefore, that triband-or-quadband FCFAM provision is being removed from the code base, and FCDEV3B goes back to being treated the same way as CONFIG_TARGET_GTAMODEM for RFFE control purposes.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 24 Sep 2020 21:03:08 +0000
parents 93999a60b835
children
line wrap: on
line source

/*
+-------------------------------------------------------------------+
| PROJECT: MMI-Framework (8445)         $Workfile:: mfw_bte.h				$|
| $Author:: NDH					     $Revision::  1						$|
| CREATED: 17.04.04				     $Modtime:: 17.04.04 10:48			$|
| STATE  : code														 |
+-------------------------------------------------------------------+


   MODULE  : MFW_BT

   PURPOSE : This module contains the definitions for MFW Bluetooth Management

*/

#ifndef DEF_MFW_BT_HEADER
#define DEF_MFW_BT_HEADER

#define BT_INTERFACE
#include "bta_riviera.h"

#include "target.h"
#include "buildcfg.h"

#include "bta_api.h"
#include "mfw_mfw.h"
#include "mfw_win.h"

typedef enum {
	MFW_BT_UNKNOWN_DEVICE				= -8,
	MFW_BT_DATA_BASE_FULL				= -7,
	MFW_BT_NOT_INITIALISED				= -6,
	MFW_BT_FAILED_TO_STORE_EVENT		= -5,
	MFW_BT_INVALID_DATA					= -4,
	MFW_BT_INVALID_EVENT					= -3,
	MFW_BT_INVALID_ORIG					= -2,
	MFW_BT_UNABLE_TO_CREATE_EVT_BUF	= -1,
	MFW_BT_FAIL							= 0,
	MFW_BT_SUCCESS						= 1
 } T_MFW_BT_STATUS;



typedef enum
{
	MFW_BT_DEFAULT_VIS = -1,
	MFW_BT_SHOWN = BTA_DM_GENERAL_DISC,
	MFW_BT_HIDDEN = BTA_DM_NON_DISC
}T_MFW_STARTUP_VISIBILITY;



/*
** Debug Macros : These will enable easy enabling/disabling of tracing within the Bluetooth environment
*/
#define MFW_BT_DEBUG	1

#ifdef MFW_BT_DEBUG

#define 	MFW_BT_TRACE(a)								TRACE_EVENT(a)
#define	MFW_BT_TRACE_P1(s, a)							TRACE_EVENT_P1(s, a)
#define	MFW_BT_TRACE_P2(s, a, b)						TRACE_EVENT_P2(s, a, b)
#define	MFW_BT_TRACE_P3(s, a, b, c)						TRACE_EVENT_P3(s, a, b, c)
#define	MFW_BT_TRACE_P4(s, a, b, c, d)					TRACE_EVENT_P4(s, a, b, c, d)
#define	MFW_BT_TRACE_P5(s, a, b, c, d, e)					TRACE_EVENT_P5(s, a, b, c, d, e)
#define	MFW_BT_TRACE_P6(s, a, b, c, d, e, f)				TRACE_EVENT_P6(s, a, b, c, d, e, f)
#define	MFW_BT_TRACE_P7(s, a, b, c, d, e, f, g)			TRACE_EVENT_P7(s, a, b, c, d, e, f, g)
#define	MFW_BT_TRACE_P8(s, a, b, c, d, e, f, g, h)			TRACE_EVENT_P8(s, a, b, c, d, e, f, g, h)
#define	MFW_BT_TRACE_P9(s, a, b, c, d, e, f, g, h, i)		TRACE_EVENT_P9(s, a, b, c, d, e, f, g, h, i)

#else

#define 	MFW_BT_TRACE(a)
#define	MFW_BT_TRACE_P1(s, a)
#define	MFW_BT_TRACE_P2(s, a, b)
#define	MFW_BT_TRACE_P3(s, a, b, c)
#define	MFW_BT_TRACE_P4(s, a, b, c, d)
#define	MFW_BT_TRACE_P5(s, a, b, c, d, e)
#define	MFW_BT_TRACE_P6(s, a, b, c, d, e, f)
#define	MFW_BT_TRACE_P7(s, a, b, c, d, e, f, g)
#define	MFW_BT_TRACE_P8(s, a, b, c, d, e, f, g, h)
#define	MFW_BT_TRACE_P9(s, a, b, c, d, e, f, g, h, i)

#endif


/*
** Status return values : The Bluetooth module will use meaningful return values to the functions so the software
** can be engineered to react appropriately to specific events
*/



/**********************************************************************************************
**
**		Mfw	-> BMI Interface (Event related definitions)
**
**********************************************************************************************/

/*
 * Events are organised as bitmaps
 */
#define E_BT_ENABLE_CMPL			(T_MFW_EVENT)0x00000001
#define E_BT_DISABLE_CMPL			(T_MFW_EVENT)0x00000002

#define E_BT_ALL_GENERIC_SERVICES	(T_MFW_EVENT)0x0000000F


#define E_BT_ALL_SERVICES			( (T_MFW_EVENT)(E_BT_ALL_GENERIC_SERVICES) \
									  | (T_MFW_EVENT)(E_BT_ALL_DM_SERVICES)) 
/*#if 0  Not Implemented yet 
									  | (T_MFW_EVENT)(E_BT_ALL_DG_SERVICES) \
									  | (T_MFW_EVENT)(E_BT_ALL_AG_SERVICES) \
									  | (T_MFW_EVENT)(E_BT_ALL_OP_SERVICES) \
									  | (T_MFW_EVENT)(E_BT_ALL_FT_SERVICES) \
#endif
					*/				  

/*
** Signal Parameter Structure Definitions
*/
typedef struct {
	BOOL	Success;
} T_MFW_BT_ENABLE_CMPL;



#include "mfw_bt_dm.h"
#include "mfw_bt_dg.h"
#include "mfw_bt_ag.h"
#include "mfw_bt_op.h"
#include "mfw_bt_ft.h"
/*
 * BT Mfw -> BMI signal parameter
 */
typedef union
{
	/*
	** Generic Service Signal Parameters
	*/
	T_MFW_BT_ENABLE_CMPL		enable_cmpl;

	/*
	** Device Manager Signal Parameters
	*/
	T_MFW_BT_DM_LINK_UP			link_up;
	T_MFW_BT_DM_LINK_DOWN			link_down;
	T_MFW_BT_DM_INQ_RES			inq_res;
	T_MFW_BT_DM_INQ_CMPL			inq_cmpl;  
	T_MFW_BT_DM_DISC_RES			disc_res;
	T_MFW_BT_DM_PIN_REQ			pin_req;
	T_MFW_BT_DM_AUTH_CMPL			auth_cmpl;
	T_MFW_BT_DM_AUTHORIZE_REQ		authorize_req;
	T_MFW_BT_DM_SIG_STRENGTH_IND	sig_strength_ind;

} 
T_MFW_BT_PARA;

/*
 *  BT Control Block
 */
typedef struct
{
    T_MFW_EVENT      emask;         /* events of interest */
    T_MFW_EVENT      event;          /* current event */
    T_MFW_CB           handler;
    T_MFW_BT_PARA  para;
} T_MFW_BT;


void mfw_bt_signal(T_MFW_EVENT event, void *para);


/*******************************************************************************

 $Function:		mfw_bt_enable

 $Description:		This function will start the whole process of enabling Bluetooth.

 $Returns:		MFW_BT_FAIL if the chip is not stopped or if the generic event handler
 				doesn't start correctly.

 $Arguments:		Specify the visibility parameter at start-up. 	
 				MFW_BT_DEFAULT  => use value in flash
				MFW_BT_SHOWN 	=> device will be visible ( that doesn't update the flash ) 
				MFW_BT_HIDDEN   => device will be hidden ( ... )

*******************************************************************************/
T_MFW_BT_STATUS mfw_bt_enable(T_MFW_STARTUP_VISIBILITY startup_visibility );

/*  */
/*******************************************************************************

 $Function:		mfw_bt_enable_cb

 $Description:		mfw_bt_enable will cause a BTA_DM_SYS_START_EVT to be sent. At this 
 				moment we call BTA_EnableBluetooth. When we receive 
 				BTA_DM_ENABLE_EVT, we call this function.
 				
 $Returns:		Will send a BMI signal if there is no default name. If the user cancels the 
 				input, BT will then be stopped.
 				Will send a E_BT_ENABLE_CMPL event when the initialization is done. 

 $Arguments:		none 

*******************************************************************************/
void mfw_bt_enable_cb(void);

/*******************************************************************************
 $Function:		mfw_bt_disable
 $Description:		This function stops the BT system.
 $Returns:		None
 $Arguments:		
*******************************************************************************/
void mfw_bt_disable(void);


/*******************************************************************************
 $Function:		mfw_bt_init
 $Description:		This function initialises the Mfw Bluetooth Persistent Data on Power Up. 
 $Returns:		None
 $Arguments:		None
*******************************************************************************/
void mfw_bt_init(void);
/*******************************************************************************
 $Function:		mfw_bt_exit
 $Description:		This function will tidy up any resources used by the Mfw Bluetooth Module
				on Power Down
 $Returns:		None
 $Arguments:		None
*******************************************************************************/
void mfw_bt_exit(void);
/*******************************************************************************
 $Function:		mfw_bt_create
 $Description:		This function  initialises an Mfw Bluetooth entity and adds it to the Window Stack
 $Returns:		T_MFW_HND	: A handle for the entity
 $Arguments:		T_MFW_HND		: Parent Window Handle
 				T_MFW_EVENT	: Event Mask of the events to be handled
 				T_MFW_CB		: Callback function to handle the events
*******************************************************************************/
T_MFW_HND mfw_bt_create(T_MFW_HND hWin, T_MFW_EVENT event, T_MFW_CB cbfunc);
/*******************************************************************************
 $Function:		mfw_bt_delete
 $Description:		This function clears down an Mfw Bluetooth entity and removes it from the
				Window Stack
 $Returns:		T_MFW_RES	: The result of the function
 $Arguments:		T_MFW_HND	: The Handle of the entity to be removed
*******************************************************************************/
T_MFW_RES mfw_bt_delete(T_MFW_HND hnd);
/*******************************************************************************
 $Function:		mfw_bt_signal
 $Description:		This function sends the Mfw Bluetooth events from the Mfw to the BMI.
 $Returns:		None
 $Arguments:		T_MFW_EVENT	: The event to be sent to the BMI
				void *			: Pointer to the Event data
*******************************************************************************/
void mfw_bt_signal(T_MFW_EVENT event, void *para);
/*******************************************************************************
 $Function:		mfw_bt_sign_exec
 $Description:		This function sends the Mfw Bluetooth events from the Mfw to the BMI.
 $Returns:		None
 $Arguments:		None
*******************************************************************************/
BOOL mfw_bt_sign_exec (T_MFW_HDR * cur_elem, T_MFW_EVENT event, T_MFW_BT_PARA * para);

#endif