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