• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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  typedef struct tBAUD_REG_tag {
104      UINT8 DHBR;
105      UINT8 DLBR;
106      UINT8 ExplicitBaudRate0;
107      UINT8 ExplicitBaudRate1;
108      UINT8 ExplicitBaudRate2;
109      UINT8 ExplicitBaudRate3;
110  } tBAUD_REG;
111  
112  extern const tBAUD_REG baud_rate_regs[];
113  
114  #endif  /* BTE_H */
115