FreeCalypso > hg > fc-magnetite
view src/aci2/mfw/mfw_bte.h @ 629:3231dd9b38c1
armio.c: make GPIOs 8 & 13 outputs driving 1 on all "classic" targets
Calypso GPIOs 8 & 13 are pinmuxed with MCUEN1 & MCUEN2, respectively,
and on powerup these pins are MCUEN, i.e., outputs driving 1. TI's code
for C-Sample and earlier turns them into GPIOs configured as outputs also
driving 1 - so far, so good - but TI's code for BOARD 41 (which covers
D-Sample, Leonardo and all real world Calypso devices derived from the
latter) switches them from MCUEN to GPIOs, but then leaves them as inputs.
Given that the hardware powerup state of these two pins is outputs driving 1,
every Calypso board design MUST be compatible with such driving; typically
these GPIO signals will be either unused and unconnected or connected as
outputs driving some peripheral. Turning these pins into GPIO inputs will
result in floating inputs on every reasonably-wired board, thus I am
convinced that this configuration is nothing but a bug on the part of
whoever wrote this code at TI.
This floating input bug had already been fixed earlier for GTA modem and
FCDEV3B targets; the present change makes the fix unconditional for all
"classic" targets. The newly affected targets are D-Sample, Leonardo,
Tango and GTM900.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 02 Jan 2020 05:38:26 +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