| /****************************************************************************** |
| * |
| * 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 */ |