15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Copyright (C) 2001-2012 Broadcom Corporation 45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * you may not use this file except in compliance with the License. 75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * You may obtain a copy of the License at: 85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * See the License for the specific language governing permissions and 155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * limitations under the License. 165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * this file contains constants and definitions for the bte project 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTE_H 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTE_H 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <semaphore.h> 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <signal.h> 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <pthread.h> 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h" 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* by default on shutdown, baudrate is reset 115kbits. this should NOT be need for platforms 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * that kill BTE driver and remove/reset BT chip 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project */ 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTE_RESET_BAUD_ON_BT_DISABLE 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTE_RESET_BAUD_ON_BT_DISABLE TRUE 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Target Modes (based on jumper settings on hardware [see user manual]) */ 405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum 415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* BTE BBY */ 435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* J3 J4 SW3-3 SW3-2 SW3-1 */ 445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* -------------------------------------------- */ 455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTE_MODE_SERIAL_APP, /* OUT OUT OFF OFF OFF Sample serial port application */ 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTE_MODE_APPL, /* IN OUT OFF OFF ON Target used with Tester through RPC */ 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTE_MODE_RESERVED, /* OUT IN OFF ON OFF Reserved */ 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTE_MODE_SAMPLE_APPS, /* IN IN OFF ON ON Sample applications (ICP/HSP) */ 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTE_MODE_DONGLE, /* not yet supported ON OFF OFF Dongle mode */ 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTE_MODE_APPL_PROTOCOL_TRACE, /* this is a fake mode do allow protocol tracing in application without rpc */ 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTE_MODE_INVALID 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern volatile UINT8 bte_target_mode; /* indicates the mode that the board is running in */ 555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Startup options */ 575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern UINT32 bte_startup_options; /* Switch and jumper settings at startup */ 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bte_get_startup_options(UINT32 *p_options); /* Platform specific function for getting startup options */ 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTE_OPTIONS_TARGET_MODE_MASK 0x00000007 /* bits 2-0 indicate target mode (QuickConnect: jp3 & jp4, BBY: SW3-1 & SW3-2)*/ 615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/**************************************************************************** 645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Definitions to define which type of application gets built 655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ****************************************************************************/ 665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BUILD_HCITOOL FALSE 675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BUILD_L2PING FALSE 685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LINUX_FM_DRIVER_INCLUDED FALSE 715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* hcisu userial operations. should probably go into bt_types to avoid collisions! */ 745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BT_EVT_TO_HCISU_USERIAL_OP (0x0080 | BT_EVT_HCISU) 755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* operation for above hcisu event */ 765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BT_HCISU_USERIAL_OPEN (0) /* open serial port calling USERIAL_Open() */ 775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BT_HCISU_USERIAL_CLOSE (1) /* close userial port */ 785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* options associated with close op */ 795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BT_HCISU_USERIAL_CL_NO_DIS_BT 0 /* do not touch bt_wake and power gpio */ 805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BT_HCISU_USERIAL_CL_DIS_BT 1 /* put power and bt_wake into defined off state to preserve 815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project power */ 825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* status codes for callback */ 835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTE_HCISU_USERIAL_FAIL 0 845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTE_HCISU_USERIAL_OK 1 855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tUSERIAL_MSG_CBACK) (int status); 865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct tHCISU_USERIAL_MSG_tag { 875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; 885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tUSERIAL_MSG_CBACK *p_cback; 895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 port; /* port number */ 905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 op; 915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 option; /* option for operation. depends on operation */ 925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tHCISU_USERIAL_MSG; 935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bte_hcisu_userial_oper( tUSERIAL_MSG_CBACK *p_cback, UINT8 port, UINT8 op, UINT8 option ); 955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Pointer to function for sending HCI commands and data to the HCI tranport */ 975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern int (*p_bte_hci_send)(UINT16 port, BT_HDR *p_msg); 985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Protocol trace mask */ 1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern UINT32 bte_proto_trace_mask; 1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct tBAUD_REG_tag { 1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 DHBR; 1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 DLBR; 1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 ExplicitBaudRate0; 1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 ExplicitBaudRate1; 1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 ExplicitBaudRate2; 1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 ExplicitBaudRate3; 1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBAUD_REG; 1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern const tBAUD_REG baud_rate_regs[]; 1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTE_H */ 115