Home | History | Annotate | Download | only in include
      1 /******************************************************************************
      2  *
      3  *  Copyright (C) 2001-2012 Broadcom Corporation
      4  *
      5  *  Licensed under the Apache License, Version 2.0 (the "License");
      6  *  you may not use this file except in compliance with the License.
      7  *  You may obtain a copy of the License at:
      8  *
      9  *  http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  *  Unless required by applicable law or agreed to in writing, software
     12  *  distributed under the License is distributed on an "AS IS" BASIS,
     13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  *  See the License for the specific language governing permissions and
     15  *  limitations under the License.
     16  *
     17  ******************************************************************************/
     18 
     19 /******************************************************************************
     20  *
     21  *  this file contains constants and definitions for the bte project
     22  *
     23  ******************************************************************************/
     24 #ifndef BTE_H
     25 #define BTE_H
     26 
     27 #include <semaphore.h>
     28 #include <signal.h>
     29 #include <pthread.h>
     30 #include "bt_target.h"
     31 
     32 /* by default on shutdown, baudrate is reset 115kbits. this should NOT be need for platforms
     33  * that kill BTE driver and remove/reset BT chip
     34  */
     35 #ifndef BTE_RESET_BAUD_ON_BT_DISABLE
     36 #define BTE_RESET_BAUD_ON_BT_DISABLE TRUE
     37 #endif
     38 
     39 /* Target Modes (based on jumper settings on hardware [see user manual]) */
     40 enum
     41 {
     42                             /* BTE                  BBY                     */
     43                             /* J3   J4              SW3-3   SW3-2   SW3-1   */
     44                             /* -------------------------------------------- */
     45     BTE_MODE_SERIAL_APP,    /* OUT  OUT             OFF     OFF     OFF     Sample serial port application      */
     46     BTE_MODE_APPL,    	    /* IN   OUT             OFF     OFF     ON      Target used with Tester through RPC */
     47     BTE_MODE_RESERVED,      /* OUT  IN              OFF     ON      OFF     Reserved                            */
     48     BTE_MODE_SAMPLE_APPS,   /* IN   IN              OFF     ON      ON      Sample applications (ICP/HSP)       */
     49     BTE_MODE_DONGLE,        /* not yet supported    ON      OFF     OFF     Dongle mode                         */
     50     BTE_MODE_APPL_PROTOCOL_TRACE, /* this is a fake mode do allow protocol tracing in application without rpc */
     51     BTE_MODE_INVALID
     52 };
     53 
     54 extern volatile UINT8    bte_target_mode;    /* indicates the mode that the board is running in */
     55 
     56 /* Startup options */
     57 extern UINT32 bte_startup_options;                      /* Switch and jumper settings at startup */
     58 void bte_get_startup_options(UINT32 *p_options);        /* Platform specific function for getting startup options */
     59 
     60 #define BTE_OPTIONS_TARGET_MODE_MASK    0x00000007      /* bits 2-0 indicate target mode (QuickConnect: jp3 & jp4, BBY: SW3-1 & SW3-2)*/
     61 
     62 
     63 /****************************************************************************
     64  * Definitions to define which type of application gets built
     65  ****************************************************************************/
     66 #define BUILD_HCITOOL         FALSE
     67 #define BUILD_L2PING          FALSE
     68 
     69 
     70 #define LINUX_FM_DRIVER_INCLUDED		FALSE
     71 
     72 
     73 /* hcisu userial operations. should probably go into bt_types to avoid collisions! */
     74 #define BT_EVT_TO_HCISU_USERIAL_OP (0x0080 | BT_EVT_HCISU)
     75 /* operation for above hcisu event */
     76 #define BT_HCISU_USERIAL_OPEN (0)   /* open serial port calling USERIAL_Open() */
     77 #define BT_HCISU_USERIAL_CLOSE (1)  /* close userial port */
     78 /* options associated with close op */
     79 #define BT_HCISU_USERIAL_CL_NO_DIS_BT   0 /* do not touch bt_wake and power gpio */
     80 #define BT_HCISU_USERIAL_CL_DIS_BT      1 /* put power and bt_wake into defined off state to preserve
     81                                              power */
     82 /* status codes for callback */
     83 #define BTE_HCISU_USERIAL_FAIL      0
     84 #define BTE_HCISU_USERIAL_OK        1
     85 typedef void (tUSERIAL_MSG_CBACK) (int status);
     86 typedef struct tHCISU_USERIAL_MSG_tag {
     87     BT_HDR      hdr;
     88     tUSERIAL_MSG_CBACK *p_cback;
     89     UINT8       port;   /* port number */
     90     UINT8       op;
     91     UINT8       option; /* option for operation. depends on operation */
     92 } tHCISU_USERIAL_MSG;
     93 
     94 extern void bte_hcisu_userial_oper( tUSERIAL_MSG_CBACK *p_cback, UINT8 port, UINT8 op, UINT8 option );
     95 
     96 /* Pointer to function for sending HCI commands and data to the HCI tranport */
     97 extern int (*p_bte_hci_send)(UINT16 port, BT_HDR *p_msg);
     98 
     99 
    100 /* Protocol trace mask */
    101 extern UINT32 bte_proto_trace_mask;
    102 
    103 /* BTE version string */
    104 extern const UINT8 bte_version_string[];
    105 
    106 /* BTIF version string */
    107 extern const UINT8 btif_version_string[];
    108 
    109 typedef struct tBAUD_REG_tag {
    110     UINT8 DHBR;
    111     UINT8 DLBR;
    112     UINT8 ExplicitBaudRate0;
    113     UINT8 ExplicitBaudRate1;
    114     UINT8 ExplicitBaudRate2;
    115     UINT8 ExplicitBaudRate3;
    116 } tBAUD_REG;
    117 
    118 #include "gki.h"
    119 
    120 extern const tBAUD_REG baud_rate_regs[];
    121 
    122 #endif  /* BTE_H */
    123