1*7eba2f3bSAndroid Build Coastguard Worker /****************************************************************************** 2*7eba2f3bSAndroid Build Coastguard Worker * 3*7eba2f3bSAndroid Build Coastguard Worker * Copyright (C) 2012-2014 Broadcom Corporation 4*7eba2f3bSAndroid Build Coastguard Worker * 5*7eba2f3bSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 6*7eba2f3bSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 7*7eba2f3bSAndroid Build Coastguard Worker * You may obtain a copy of the License at: 8*7eba2f3bSAndroid Build Coastguard Worker * 9*7eba2f3bSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 10*7eba2f3bSAndroid Build Coastguard Worker * 11*7eba2f3bSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 12*7eba2f3bSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 13*7eba2f3bSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*7eba2f3bSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 15*7eba2f3bSAndroid Build Coastguard Worker * limitations under the License. 16*7eba2f3bSAndroid Build Coastguard Worker * 17*7eba2f3bSAndroid Build Coastguard Worker ******************************************************************************/ 18*7eba2f3bSAndroid Build Coastguard Worker 19*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_TARGET_H 20*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_TARGET_H 21*7eba2f3bSAndroid Build Coastguard Worker 22*7eba2f3bSAndroid Build Coastguard Worker #include "data_types.h" 23*7eba2f3bSAndroid Build Coastguard Worker #include "gki.h" 24*7eba2f3bSAndroid Build Coastguard Worker 25*7eba2f3bSAndroid Build Coastguard Worker /**************************************************************************** 26*7eba2f3bSAndroid Build Coastguard Worker ** NCI related configuration 27*7eba2f3bSAndroid Build Coastguard Worker ****************************************************************************/ 28*7eba2f3bSAndroid Build Coastguard Worker 29*7eba2f3bSAndroid Build Coastguard Worker /* Initial Max Control Packet Payload Size (until receiving payload size in 30*7eba2f3bSAndroid Build Coastguard Worker * INIT_CORE_RSP) */ 31*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_NCI_INIT_CTRL_PAYLOAD_SIZE 32*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_NCI_INIT_CTRL_PAYLOAD_SIZE 0xFF 33*7eba2f3bSAndroid Build Coastguard Worker #endif 34*7eba2f3bSAndroid Build Coastguard Worker 35*7eba2f3bSAndroid Build Coastguard Worker /* Number of bytes to reserve in front of NCI messages (e.g. for transport 36*7eba2f3bSAndroid Build Coastguard Worker * header) */ 37*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_NCI_MSG_OFFSET_SIZE 38*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_NCI_MSG_OFFSET_SIZE 1 39*7eba2f3bSAndroid Build Coastguard Worker #endif 40*7eba2f3bSAndroid Build Coastguard Worker 41*7eba2f3bSAndroid Build Coastguard Worker /* NFC-WAKE */ 42*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_LP_NFC_WAKE_GPIO 43*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_LP_NFC_WAKE_GPIO UPIO_GENERAL3 44*7eba2f3bSAndroid Build Coastguard Worker #endif 45*7eba2f3bSAndroid Build Coastguard Worker 46*7eba2f3bSAndroid Build Coastguard Worker /* NFCC snooze mode idle timeout before deassert NFC_WAKE in ms */ 47*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_LP_IDLE_TIMEOUT 48*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_LP_IDLE_TIMEOUT 100 49*7eba2f3bSAndroid Build Coastguard Worker #endif 50*7eba2f3bSAndroid Build Coastguard Worker 51*7eba2f3bSAndroid Build Coastguard Worker /* NFC snooze mode */ 52*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_LP_SNOOZE_MODE 53*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_LP_SNOOZE_MODE NFC_HAL_LP_SNOOZE_MODE_UART 54*7eba2f3bSAndroid Build Coastguard Worker #endif 55*7eba2f3bSAndroid Build Coastguard Worker 56*7eba2f3bSAndroid Build Coastguard Worker /* Idle Threshold Host in 100ms unit */ 57*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_LP_IDLE_THRESHOLD_HOST 58*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_LP_IDLE_THRESHOLD_HOST 0 59*7eba2f3bSAndroid Build Coastguard Worker #endif 60*7eba2f3bSAndroid Build Coastguard Worker 61*7eba2f3bSAndroid Build Coastguard Worker /* Idle Threshold HC in 100ms unit */ 62*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_LP_IDLE_THRESHOLD_HC 63*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_LP_IDLE_THRESHOLD_HC 0 64*7eba2f3bSAndroid Build Coastguard Worker #endif 65*7eba2f3bSAndroid Build Coastguard Worker 66*7eba2f3bSAndroid Build Coastguard Worker /* Default NFCC power-up baud rate */ 67*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_DEFAULT_BAUD 68*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_DEFAULT_BAUD USERIAL_BAUD_115200 69*7eba2f3bSAndroid Build Coastguard Worker #endif 70*7eba2f3bSAndroid Build Coastguard Worker 71*7eba2f3bSAndroid Build Coastguard Worker /* time (in ms) between power off and on NFCC */ 72*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_POWER_CYCLE_DELAY 73*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_POWER_CYCLE_DELAY 100 74*7eba2f3bSAndroid Build Coastguard Worker #endif 75*7eba2f3bSAndroid Build Coastguard Worker 76*7eba2f3bSAndroid Build Coastguard Worker /* time (in ms) between power off and on NFCC */ 77*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_NFCC_ENABLE_TIMEOUT 78*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_NFCC_ENABLE_TIMEOUT 1000 79*7eba2f3bSAndroid Build Coastguard Worker #endif 80*7eba2f3bSAndroid Build Coastguard Worker 81*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_PRM_DEBUG 82*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_PRM_DEBUG TRUE 83*7eba2f3bSAndroid Build Coastguard Worker #endif 84*7eba2f3bSAndroid Build Coastguard Worker 85*7eba2f3bSAndroid Build Coastguard Worker /* max patch data length (Can be overridden by platform for ACL HCI command 86*7eba2f3bSAndroid Build Coastguard Worker * size) */ 87*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_PRM_HCD_CMD_MAXLEN 88*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_PRM_HCD_CMD_MAXLEN 250 89*7eba2f3bSAndroid Build Coastguard Worker #endif 90*7eba2f3bSAndroid Build Coastguard Worker 91*7eba2f3bSAndroid Build Coastguard Worker /* Require PreI2C patch by default */ 92*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_PRE_I2C_PATCH_INCLUDED 93*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_PRE_I2C_PATCH_INCLUDED TRUE 94*7eba2f3bSAndroid Build Coastguard Worker #endif 95*7eba2f3bSAndroid Build Coastguard Worker 96*7eba2f3bSAndroid Build Coastguard Worker /* over-riden for platforms that have transport packet limitations */ 97*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_PRM_MIN_NCI_CMD_PAYLOAD_SIZE 98*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_PRM_MIN_NCI_CMD_PAYLOAD_SIZE (32) 99*7eba2f3bSAndroid Build Coastguard Worker #endif 100*7eba2f3bSAndroid Build Coastguard Worker 101*7eba2f3bSAndroid Build Coastguard Worker /* amount of time to wait for authenticating/committing patch to NVM */ 102*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_PRM_COMMIT_DELAY 103*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_PRM_COMMIT_DELAY (30000) 104*7eba2f3bSAndroid Build Coastguard Worker #endif 105*7eba2f3bSAndroid Build Coastguard Worker 106*7eba2f3bSAndroid Build Coastguard Worker /* amount of time to wait after downloading preI2C patch before downloading 107*7eba2f3bSAndroid Build Coastguard Worker * LPM/FPM patch */ 108*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_PRM_POST_I2C_FIX_DELAY 109*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_PRM_POST_I2C_FIX_DELAY (200) 110*7eba2f3bSAndroid Build Coastguard Worker #endif 111*7eba2f3bSAndroid Build Coastguard Worker 112*7eba2f3bSAndroid Build Coastguard Worker /* NFCC will respond to more than one technology during listen discovery */ 113*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_DM_MULTI_TECH_RESP 114*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_DM_MULTI_TECH_RESP TRUE 115*7eba2f3bSAndroid Build Coastguard Worker #endif 116*7eba2f3bSAndroid Build Coastguard Worker 117*7eba2f3bSAndroid Build Coastguard Worker /* Data rate for 15693 command/response, it must be same as 118*7eba2f3bSAndroid Build Coastguard Worker * RW_I93_FLAG_DATA_RATE in nfc_target.h */ 119*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_I93_FLAG_DATA_RATE_HIGH 0x02 120*7eba2f3bSAndroid Build Coastguard Worker 121*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_I93_FLAG_DATA_RATE 122*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_I93_FLAG_DATA_RATE NFC_HAL_I93_FLAG_DATA_RATE_HIGH 123*7eba2f3bSAndroid Build Coastguard Worker #endif 124*7eba2f3bSAndroid Build Coastguard Worker 125*7eba2f3bSAndroid Build Coastguard Worker /* NFC HAL HCI */ 126*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_HCI_INCLUDED 127*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_HCI_INCLUDED TRUE 128*7eba2f3bSAndroid Build Coastguard Worker #endif 129*7eba2f3bSAndroid Build Coastguard Worker 130*7eba2f3bSAndroid Build Coastguard Worker /* Quick Timer */ 131*7eba2f3bSAndroid Build Coastguard Worker #ifndef QUICK_TIMER_TICKS_PER_SEC 132*7eba2f3bSAndroid Build Coastguard Worker #define QUICK_TIMER_TICKS_PER_SEC 100 /* 10ms timer */ 133*7eba2f3bSAndroid Build Coastguard Worker #endif 134*7eba2f3bSAndroid Build Coastguard Worker 135*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_SHARED_TRANSPORT_ENABLED 136*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_SHARED_TRANSPORT_ENABLED FALSE 137*7eba2f3bSAndroid Build Coastguard Worker #endif 138*7eba2f3bSAndroid Build Coastguard Worker 139*7eba2f3bSAndroid Build Coastguard Worker /* Enable verbose tracing by default */ 140*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_TRACE_VERBOSE 141*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_TRACE_VERBOSE TRUE 142*7eba2f3bSAndroid Build Coastguard Worker #endif 143*7eba2f3bSAndroid Build Coastguard Worker 144*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_INITIAL_TRACE_LEVEL 145*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_INITIAL_TRACE_LEVEL 5 146*7eba2f3bSAndroid Build Coastguard Worker #endif 147*7eba2f3bSAndroid Build Coastguard Worker 148*7eba2f3bSAndroid Build Coastguard Worker /* Map NFC serial port to USERIAL_PORT_6 by default */ 149*7eba2f3bSAndroid Build Coastguard Worker #ifndef USERIAL_NFC_PORT 150*7eba2f3bSAndroid Build Coastguard Worker #define USERIAL_NFC_PORT (USERIAL_PORT_6) 151*7eba2f3bSAndroid Build Coastguard Worker #endif 152*7eba2f3bSAndroid Build Coastguard Worker 153*7eba2f3bSAndroid Build Coastguard Worker /* Restore NFCC baud rate to default on shutdown if baud rate was updated */ 154*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_RESTORE_BAUD_ON_SHUTDOWN 155*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_RESTORE_BAUD_ON_SHUTDOWN TRUE 156*7eba2f3bSAndroid Build Coastguard Worker #endif 157*7eba2f3bSAndroid Build Coastguard Worker 158*7eba2f3bSAndroid Build Coastguard Worker /* Enable protocol tracing by default */ 159*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_TRACE_PROTOCOL 160*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_TRACE_PROTOCOL TRUE 161*7eba2f3bSAndroid Build Coastguard Worker #endif 162*7eba2f3bSAndroid Build Coastguard Worker 163*7eba2f3bSAndroid Build Coastguard Worker #endif /* GKI_TARGET_H */ 164