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