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 <osi/semaphore.h>
28 //#include <signal.h>
29 //#include <pthread.h>
30 #include "common/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     /* BTE                  BBY                     */
42     /* J3   J4              SW3-3   SW3-2   SW3-1   */
43     /* -------------------------------------------- */
44     BTE_MODE_SERIAL_APP,    /* OUT  OUT             OFF     OFF     OFF     Sample serial port application      */
45     BTE_MODE_APPL,          /* IN   OUT             OFF     OFF     ON      Target used with Tester through RPC */
46     BTE_MODE_RESERVED,      /* OUT  IN              OFF     ON      OFF     Reserved                            */
47     BTE_MODE_SAMPLE_APPS,   /* IN   IN              OFF     ON      ON      Sample applications (ICP/HSP)       */
48     BTE_MODE_DONGLE,        /* not yet supported    ON      OFF     OFF     Dongle mode                         */
49     BTE_MODE_APPL_PROTOCOL_TRACE, /* this is a fake mode do allow protocol tracing in application without rpc */
50     BTE_MODE_INVALID
51 };
52 
53 extern volatile UINT8    bte_target_mode;    /* indicates the mode that the board is running in */
54 
55 /* Startup options */
56 extern UINT32 bte_startup_options;                      /* Switch and jumper settings at startup */
57 void bte_get_startup_options(UINT32 *p_options);        /* Platform specific function for getting startup options */
58 
59 #define BTE_OPTIONS_TARGET_MODE_MASK    0x00000007      /* bits 2-0 indicate target mode (QuickConnect: jp3 & jp4, BBY: SW3-1 & SW3-2)*/
60 
61 
62 /****************************************************************************
63  * Definitions to define which type of application gets built
64  ****************************************************************************/
65 #define BUILD_HCITOOL         FALSE
66 #define BUILD_L2PING          FALSE
67 
68 
69 #define LINUX_FM_DRIVER_INCLUDED        FALSE
70 
71 
72 /* hcisu userial operations. should probably go into bt_types to avoid collisions! */
73 #define BT_EVT_TO_HCISU_USERIAL_OP (0x0080 | BT_EVT_HCISU)
74 /* operation for above hcisu event */
75 #define BT_HCISU_USERIAL_OPEN (0)   /* open serial port calling USERIAL_Open() */
76 #define BT_HCISU_USERIAL_CLOSE (1)  /* close userial port */
77 /* options associated with close op */
78 #define BT_HCISU_USERIAL_CL_NO_DIS_BT   0 /* do not touch bt_wake and power gpio */
79 #define BT_HCISU_USERIAL_CL_DIS_BT      1 /* put power and bt_wake into defined off state to preserve
80                                              power */
81 /* status codes for callback */
82 /*
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 
97 /* Pointer to function for sending HCI commands and data to the HCI tranport */
98 extern int (*p_bte_hci_send)(UINT16 port, BT_HDR *p_msg);
99 
100 
101 /* Protocol trace mask */
102 extern UINT32 bte_proto_trace_mask;
103 
104 typedef struct tBAUD_REG_tag {
105     UINT8 DHBR;
106     UINT8 DLBR;
107     UINT8 ExplicitBaudRate0;
108     UINT8 ExplicitBaudRate1;
109     UINT8 ExplicitBaudRate2;
110     UINT8 ExplicitBaudRate3;
111 } tBAUD_REG;
112 
113 
114 extern const tBAUD_REG baud_rate_regs[];
115 
116 #endif  /* BTE_H */
117