Home | History | Annotate | Download | only in include
      1 /******************************************************************************
      2  *
      3  *  Copyright (C) 1999-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 #ifndef NFC_TARGET_H
     20 #define NFC_TARGET_H
     21 
     22 #include "data_types.h"
     23 
     24 #ifdef BUILDCFG
     25 #include "buildcfg.h"
     26 #endif
     27 
     28 /* Include common GKI definitions used by this platform */
     29 #include "gki_target.h"
     30 
     31 #include "bt_types.h" /* This must be defined AFTER buildcfg.h */
     32 #ifndef LMP_TEST
     33 #include "bt_trace.h"
     34 #endif
     35 
     36 #ifndef USERIAL_DEBUG
     37 #define USERIAL_DEBUG FALSE
     38 #endif
     39 
     40 /******************************************************************************
     41 **
     42 ** GKI Mail Box and Timer
     43 **
     44 ******************************************************************************/
     45 
     46 /* Mailbox event mask for NFC stack */
     47 #ifndef NFC_MBOX_EVT_MASK
     48 #define NFC_MBOX_EVT_MASK (TASK_MBOX_0_EVT_MASK)
     49 #endif
     50 
     51 /* Mailbox ID for NFC stack */
     52 #ifndef NFC_MBOX_ID
     53 #define NFC_MBOX_ID (TASK_MBOX_0)
     54 #endif
     55 
     56 /* Mailbox event mask for NFA */
     57 #ifndef NFA_MBOX_EVT_MASK
     58 #define NFA_MBOX_EVT_MASK (TASK_MBOX_2_EVT_MASK)
     59 #endif
     60 
     61 /* Mailbox ID for NFA */
     62 #ifndef NFA_MBOX_ID
     63 #define NFA_MBOX_ID (TASK_MBOX_2)
     64 #endif
     65 
     66 /* GKI timer id used for protocol timer in NFC stack */
     67 #ifndef NFC_TIMER_ID
     68 #define NFC_TIMER_ID (TIMER_0)
     69 #endif
     70 
     71 /* GKI timer event mask used for protocol timer in NFC stack */
     72 #ifndef NFC_TIMER_EVT_MASK
     73 #define NFC_TIMER_EVT_MASK (TIMER_0_EVT_MASK)
     74 #endif
     75 
     76 /* GKI timer id used for quick timer in NFC stack */
     77 #ifndef NFC_QUICK_TIMER_ID
     78 #define NFC_QUICK_TIMER_ID (TIMER_1)
     79 #endif
     80 
     81 /* GKI timer event mask used for quick timer in NFC stack */
     82 #ifndef NFC_QUICK_TIMER_EVT_MASK
     83 #define NFC_QUICK_TIMER_EVT_MASK (TIMER_1_EVT_MASK)
     84 #endif
     85 
     86 /* GKI timer id used for protocol timer in NFA */
     87 #ifndef NFA_TIMER_ID
     88 #define NFA_TIMER_ID (TIMER_2)
     89 #endif
     90 
     91 /* GKI timer event mask used for protocol timer in NFA */
     92 #ifndef NFA_TIMER_EVT_MASK
     93 #define NFA_TIMER_EVT_MASK (TIMER_2_EVT_MASK)
     94 #endif
     95 
     96 /******************************************************************************
     97 **
     98 ** GKI Buffer Pools
     99 **
    100 ******************************************************************************/
    101 
    102 /* NCI command/notification/data */
    103 #ifndef NFC_NCI_POOL_ID
    104 #define NFC_NCI_POOL_ID GKI_POOL_ID_2
    105 #endif
    106 
    107 #ifndef NFC_NCI_POOL_BUF_SIZE
    108 #define NFC_NCI_POOL_BUF_SIZE GKI_BUF2_SIZE
    109 #endif
    110 
    111 /* Reader/Write commands (NCI data payload) */
    112 #ifndef NFC_RW_POOL_ID
    113 #define NFC_RW_POOL_ID GKI_POOL_ID_2
    114 #endif
    115 
    116 #ifndef NFC_RW_POOL_BUF_SIZE
    117 #define NFC_RW_POOL_BUF_SIZE GKI_BUF2_SIZE
    118 #endif
    119 
    120 /* Card Emulation responses (NCI data payload) */
    121 #ifndef NFC_CE_POOL_ID
    122 #define NFC_CE_POOL_ID GKI_POOL_ID_2
    123 #endif
    124 
    125 #ifndef NFC_CE_POOL_BUF_SIZE
    126 #define NFC_CE_POOL_BUF_SIZE GKI_BUF2_SIZE
    127 #endif
    128 
    129 /* NCI msg pool for HAL (for shared NFC/HAL GKI)*/
    130 #ifndef NFC_HAL_NCI_POOL_ID
    131 #define NFC_HAL_NCI_POOL_ID NFC_NCI_POOL_ID
    132 #endif
    133 
    134 #ifndef NFC_HAL_NCI_POOL_BUF_SIZE
    135 #define NFC_HAL_NCI_POOL_BUF_SIZE NFC_NCI_POOL_BUF_SIZE
    136 #endif
    137 
    138 /******************************************************************************
    139 **
    140 ** NCI Transport definitions
    141 **
    142 ******************************************************************************/
    143 /* offset of the first NCI packet in buffer for outgoing */
    144 #ifndef NCI_MSG_OFFSET_SIZE
    145 #define NCI_MSG_OFFSET_SIZE 1
    146 #endif
    147 
    148 /* Restore NFCC baud rate to default on shutdown if NFC_UpdateBaudRate was
    149  * called */
    150 #ifndef NFC_RESTORE_BAUD_ON_SHUTDOWN
    151 #define NFC_RESTORE_BAUD_ON_SHUTDOWN TRUE
    152 #endif
    153 
    154 /******************************************************************************
    155 **
    156 ** NCI
    157 **
    158 ******************************************************************************/
    159 
    160 #define NCI_VERSION_0_F 0x0F
    161 #define NCI_VERSION_1_0 0x10
    162 
    163 #ifndef NCI_VERSION
    164 #define NCI_VERSION NCI_VERSION_1_0
    165 #endif
    166 
    167 /* TRUE I2C patch is needed */
    168 #ifndef NFC_I2C_PATCH_INCLUDED
    169 #define NFC_I2C_PATCH_INCLUDED TRUE /* NFC-Android uses this!!! */
    170 #endif
    171 
    172 /******************************************************************************
    173 **
    174 ** NFC
    175 **
    176 ******************************************************************************/
    177 
    178 /* Define to TRUE to include Broadcom Vendor Specific implementation */
    179 #ifndef NFC_BRCM_VS_INCLUDED
    180 #define NFC_BRCM_VS_INCLUDED TRUE
    181 #endif
    182 
    183 /* Define to TRUE if compling for NFC Reader/Writer Only mode */
    184 #ifndef NFC_RW_ONLY
    185 #define NFC_RW_ONLY FALSE
    186 #endif
    187 
    188 /* Timeout for receiving response to NCI command */
    189 #ifndef NFC_CMD_CMPL_TIMEOUT
    190 #define NFC_CMD_CMPL_TIMEOUT 2
    191 #endif
    192 
    193 /* Timeout for waiting on data credit/NFC-DEP */
    194 #ifndef NFC_DEACTIVATE_TIMEOUT
    195 #define NFC_DEACTIVATE_TIMEOUT 2
    196 #endif
    197 
    198 /* the maximum number of Vendor Specific callback functions allowed to be
    199  * registered. 1-14 */
    200 #ifndef NFC_NUM_VS_CBACKS
    201 #define NFC_NUM_VS_CBACKS 3
    202 #endif
    203 
    204 /* the maximum number of NCI connections allowed. 1-14 */
    205 #ifndef NCI_MAX_CONN_CBS
    206 #define NCI_MAX_CONN_CBS 4
    207 #endif
    208 
    209 /* Maximum number of NCI commands that the NFCC accepts without needing to wait
    210  * for response */
    211 #ifndef NCI_MAX_CMD_WINDOW
    212 #define NCI_MAX_CMD_WINDOW 1
    213 #endif
    214 
    215 /* Define to TRUE to include the NFCEE related functionalities */
    216 #ifndef NFC_NFCEE_INCLUDED
    217 #define NFC_NFCEE_INCLUDED TRUE
    218 #endif
    219 
    220 /* the maximum number of NFCEE interface supported */
    221 #ifndef NFC_MAX_EE_INTERFACE
    222 #define NFC_MAX_EE_INTERFACE 3
    223 #endif
    224 
    225 /* the maximum number of NFCEE information supported. */
    226 #ifndef NFC_MAX_EE_INFO
    227 #define NFC_MAX_EE_INFO 8
    228 #endif
    229 
    230 /* the maximum number of NFCEE TLVs supported */
    231 #ifndef NFC_MAX_EE_TLVS
    232 #define NFC_MAX_EE_TLVS 1
    233 #endif
    234 
    235 /* the maximum size of NFCEE TLV list supported */
    236 #ifndef NFC_MAX_EE_TLV_SIZE
    237 #define NFC_MAX_EE_TLV_SIZE 150
    238 #endif
    239 
    240 /* Maximum time to discover NFCEE */
    241 #ifndef NFA_EE_DISCV_TIMEOUT_VAL
    242 #define NFA_EE_DISCV_TIMEOUT_VAL 2000
    243 #endif
    244 
    245 /* Number of times reader/writer should attempt to resend a command on failure
    246  */
    247 #ifndef RW_MAX_RETRIES
    248 #define RW_MAX_RETRIES 5
    249 #endif
    250 
    251 /* RW NDEF Support */
    252 #ifndef RW_NDEF_INCLUDED
    253 #define RW_NDEF_INCLUDED TRUE
    254 #endif
    255 
    256 /* RW Type 1 Tag timeout for each API call, in ms */
    257 #ifndef RW_T1T_TOUT_RESP
    258 #define RW_T1T_TOUT_RESP 100
    259 #endif
    260 
    261 /* CE Type 2 Tag timeout for controller command, in ms */
    262 #ifndef CE_T2T_TOUT_RESP
    263 #define CE_T2T_TOUT_RESP 1000
    264 #endif
    265 
    266 /* RW Type 2 Tag timeout for each API call, in ms */
    267 #ifndef RW_T2T_TOUT_RESP
    268 /* Android requires 150 instead of 100 for presence-check*/
    269 #define RW_T2T_TOUT_RESP 150
    270 #endif
    271 
    272 /* RW Type 2 Tag timeout for each API call, in ms */
    273 #ifndef RW_T2T_SEC_SEL_TOUT_RESP
    274 #define RW_T2T_SEC_SEL_TOUT_RESP 10
    275 #endif
    276 
    277 /* RW Type 3 Tag timeout for each API call, in ms */
    278 #ifndef RW_T3T_TOUT_RESP
    279 /* NFC-Android will use 100 instead of 75 for T3t presence-check */
    280 #define RW_T3T_TOUT_RESP 100
    281 #endif
    282 
    283 /* CE Type 3 Tag maximum response timeout index (for check and update, used in
    284  * SENSF_RES) */
    285 #ifndef CE_T3T_MRTI_C
    286 #define CE_T3T_MRTI_C 0xFF
    287 #endif
    288 #ifndef CE_T3T_MRTI_U
    289 #define CE_T3T_MRTI_U 0xFF
    290 #endif
    291 
    292 /* Default maxblocks for CE_T3T UPDATE/CHECK operations */
    293 #ifndef CE_T3T_DEFAULT_UPDATE_MAXBLOCKS
    294 #define CE_T3T_DEFAULT_UPDATE_MAXBLOCKS 3
    295 #endif
    296 
    297 #ifndef CE_T3T_DEFAULT_CHECK_MAXBLOCKS
    298 #define CE_T3T_DEFAULT_CHECK_MAXBLOCKS 3
    299 #endif
    300 
    301 /* CE Type 4 Tag, Frame Waiting time Integer */
    302 #ifndef CE_T4T_ISO_DEP_FWI
    303 #define CE_T4T_ISO_DEP_FWI 7
    304 #endif
    305 
    306 /* RW Type 4 Tag timeout for each API call, in ms */
    307 #ifndef RW_T4T_TOUT_RESP
    308 #define RW_T4T_TOUT_RESP 1000
    309 #endif
    310 
    311 /* CE Type 4 Tag timeout for update file, in ms */
    312 #ifndef CE_T4T_TOUT_UPDATE
    313 #define CE_T4T_TOUT_UPDATE 1000
    314 #endif
    315 
    316 /* CE Type 4 Tag, mandatory NDEF File ID */
    317 #ifndef CE_T4T_MANDATORY_NDEF_FILE_ID
    318 #define CE_T4T_MANDATORY_NDEF_FILE_ID 0x1000
    319 #endif
    320 
    321 /* CE Type 4 Tag, max number of AID supported */
    322 #ifndef CE_T4T_MAX_REG_AID
    323 #define CE_T4T_MAX_REG_AID 4
    324 #endif
    325 
    326 /* Sub carrier */
    327 #ifndef RW_I93_FLAG_SUB_CARRIER
    328 #define RW_I93_FLAG_SUB_CARRIER I93_FLAG_SUB_CARRIER_SINGLE
    329 #endif
    330 
    331 /* Data rate for 15693 command/response */
    332 #ifndef RW_I93_FLAG_DATA_RATE
    333 #define RW_I93_FLAG_DATA_RATE I93_FLAG_DATA_RATE_HIGH
    334 #endif
    335 
    336 /* TRUE, to include Card Emulation related test commands */
    337 #ifndef CE_TEST_INCLUDED
    338 #define CE_TEST_INCLUDED FALSE
    339 #endif
    340 
    341 /* Quick Timer */
    342 #ifndef QUICK_TIMER_TICKS_PER_SEC
    343 #define QUICK_TIMER_TICKS_PER_SEC 100 /* 10ms timer */
    344 #endif
    345 
    346 /******************************************************************************
    347 **
    348 ** LLCP
    349 **
    350 ******************************************************************************/
    351 
    352 #ifndef LLCP_TEST_INCLUDED
    353 #define LLCP_TEST_INCLUDED FALSE
    354 #endif
    355 
    356 #ifndef LLCP_POOL_ID
    357 #define LLCP_POOL_ID GKI_POOL_ID_3
    358 #endif
    359 
    360 #ifndef LLCP_POOL_BUF_SIZE
    361 #define LLCP_POOL_BUF_SIZE GKI_BUF3_SIZE
    362 #endif
    363 
    364 /* LLCP Maximum Information Unit (between LLCP_DEFAULT_MIU(128) and LLCP_MAX_MIU
    365  * (2175)*/
    366 #ifndef LLCP_MIU
    367 #define LLCP_MIU                                             \
    368   (LLCP_POOL_BUF_SIZE - NFC_HDR_SIZE - NCI_MSG_OFFSET_SIZE - \
    369    NCI_DATA_HDR_SIZE - LLCP_PDU_HEADER_SIZE)
    370 #endif
    371 
    372 /* Link Timeout, LTO */
    373 #ifndef LLCP_LTO_VALUE
    374 /* Default is 100ms. It should be sufficiently larger than RWT */
    375 #define LLCP_LTO_VALUE 1000
    376 #endif
    377 
    378 /*
    379 ** LTO is max time interval between the last bit received and the first bit sent
    380 ** over the air. Link timeout must be delayed as much as time between the packet
    381 ** sent from LLCP and the last bit transmitted at NFCC.
    382 **  - 200ms, max OTA transmitting time between the first bit and the last bit at
    383 **    NFCC. Largest MIU(2175bytes) of LLCP must be fragmented and sent on
    384 **    NFC-DEP over the air. 8 * (DEP_REQ/RES+ACK) + DEP_REQ/RES for 2175 MIU at
    385 **    106kbps bit rate.
    386 **  - 10ms, processing time
    387 */
    388 #ifndef LLCP_INTERNAL_TX_DELAY
    389 #define LLCP_INTERNAL_TX_DELAY 210
    390 #endif
    391 
    392 /*
    393 ** LTO is max time interval between the last bit received and the first bit sent
    394 ** over the air. Link timeout must be delayed as much as time between the first
    395 ** bit received at NFCC and the packet received at LLCP.
    396 **  - 200ms, max OTA transmitting time between the first bit and the last bit at
    397 **    NFCC. LLCP cannot receive data packet until all bit are received and
    398 **    reassembled in NCI. 8 * (DEP_REQ/RES+ACK) + DEP_REQ/RES for 2175 MIU at
    399 **    106kbps bit rate.
    400 **  - 10ms, processing time
    401 */
    402 #ifndef LLCP_INTERNAL_RX_DELAY
    403 #define LLCP_INTERNAL_RX_DELAY 210
    404 #endif
    405 
    406 /* Wait for application layer sending data before sending SYMM */
    407 #ifndef LLCP_DELAY_RESP_TIME
    408 #define LLCP_DELAY_RESP_TIME 20 /* in ms */
    409 #endif
    410 
    411 /* LLCP inactivity timeout for initiator */
    412 #ifndef LLCP_INIT_INACTIVITY_TIMEOUT
    413 #define LLCP_INIT_INACTIVITY_TIMEOUT 0 /* in ms */
    414 #endif
    415 
    416 /* LLCP inactivity timeout for target */
    417 #ifndef LLCP_TARGET_INACTIVITY_TIMEOUT
    418 #define LLCP_TARGET_INACTIVITY_TIMEOUT 0 /* in ms */
    419 #endif
    420 
    421 /* LLCP delay timeout to send the first PDU as initiator */
    422 #ifndef LLCP_DELAY_TIME_TO_SEND_FIRST_PDU
    423 #define LLCP_DELAY_TIME_TO_SEND_FIRST_PDU 50 /* in ms */
    424 #endif
    425 
    426 /* Response Waiting Time */
    427 #ifndef LLCP_WAITING_TIME
    428 /* its scaled value should be less than LTO */
    429 #define LLCP_WAITING_TIME 7
    430 #endif
    431 
    432 /* Options Parameters */
    433 #ifndef LLCP_OPT_VALUE
    434 #define LLCP_OPT_VALUE LLCP_LSC_3 /* Link Service Class 3 */
    435 #endif
    436 
    437 /* Data link connection timeout */
    438 #ifndef LLCP_DATA_LINK_CONNECTION_TOUT
    439 #define LLCP_DATA_LINK_CONNECTION_TOUT 1000
    440 #endif
    441 
    442 /* Max length of service name */
    443 #ifndef LLCP_MAX_SN_LEN
    444 #define LLCP_MAX_SN_LEN 255 /* max length of service name */
    445 #endif
    446 
    447 /* Max number of well-known services, at least 2 for LM and SDP and up to 16 */
    448 #ifndef LLCP_MAX_WKS
    449 #define LLCP_MAX_WKS 5
    450 #endif
    451 
    452 /* Max number of services advertised by local SDP, up to 16 */
    453 #ifndef LLCP_MAX_SERVER
    454 #define LLCP_MAX_SERVER 10
    455 #endif
    456 
    457 /* Max number of services not advertised by local SDP, up to 32 */
    458 #ifndef LLCP_MAX_CLIENT
    459 #define LLCP_MAX_CLIENT 20
    460 #endif
    461 
    462 /* Max number of data link connections */
    463 #ifndef LLCP_MAX_DATA_LINK
    464 #define LLCP_MAX_DATA_LINK 16
    465 #endif
    466 
    467 /* Max number of outstanding service discovery requests */
    468 #ifndef LLCP_MAX_SDP_TRANSAC
    469 #define LLCP_MAX_SDP_TRANSAC 16
    470 #endif
    471 
    472 /* Percentage of LLCP buffer pool for receiving data */
    473 #ifndef LLCP_RX_BUFF_RATIO
    474 #define LLCP_RX_BUFF_RATIO 30
    475 #endif
    476 
    477 /* Rx congestion end threshold as percentage of receiving buffers */
    478 #ifndef LLCP_RX_CONGEST_END
    479 #define LLCP_RX_CONGEST_END 50
    480 #endif
    481 
    482 /* Rx congestion start threshold as percentage of receiving buffers */
    483 #ifndef LLCP_RX_CONGEST_START
    484 #define LLCP_RX_CONGEST_START 70
    485 #endif
    486 
    487 /* limitation of rx UI PDU as percentage of receiving buffers */
    488 #ifndef LLCP_LL_RX_BUFF_LIMIT
    489 #define LLCP_LL_RX_BUFF_LIMIT 30
    490 #endif
    491 
    492 /* minimum rx congestion threshold (number of rx I PDU in queue) for data link
    493  * connection */
    494 #ifndef LLCP_DL_MIN_RX_CONGEST
    495 #define LLCP_DL_MIN_RX_CONGEST 4
    496 #endif
    497 
    498 /* limitation of tx UI PDU as percentage of transmitting buffers */
    499 #ifndef LLCP_LL_TX_BUFF_LIMIT
    500 #define LLCP_LL_TX_BUFF_LIMIT 30
    501 #endif
    502 
    503 /******************************************************************************
    504 **
    505 ** NFA
    506 **
    507 ******************************************************************************/
    508 
    509 #ifndef NFA_P2P_INCLUDED
    510 #define NFA_P2P_INCLUDED TRUE
    511 #endif
    512 
    513 /* Maximum Idle time (no hcp) to wait for EE DISC REQ Ntf(s) */
    514 #ifndef NFA_HCI_NETWK_INIT_IDLE_TIMEOUT
    515 #define NFA_HCI_NETWK_INIT_IDLE_TIMEOUT 1000
    516 #endif
    517 
    518 #ifndef NFA_HCI_MAX_HOST_IN_NETWORK
    519 #define NFA_HCI_MAX_HOST_IN_NETWORK 0x06
    520 #endif
    521 
    522 /* Max number of Application that can be registered to NFA-HCI */
    523 #ifndef NFA_HCI_MAX_APP_CB
    524 #define NFA_HCI_MAX_APP_CB 0x05
    525 #endif
    526 
    527 /* Max number of HCI gates that can be created */
    528 #ifndef NFA_HCI_MAX_GATE_CB
    529 #define NFA_HCI_MAX_GATE_CB 0x06
    530 #endif
    531 
    532 /* Max number of HCI pipes that can be created for the whole system */
    533 #ifndef NFA_HCI_MAX_PIPE_CB
    534 #define NFA_HCI_MAX_PIPE_CB 0x08
    535 #endif
    536 
    537 /* Timeout for waiting for the response to HCP Command packet */
    538 #ifndef NFA_HCI_RESPONSE_TIMEOUT
    539 #define NFA_HCI_RESPONSE_TIMEOUT 1000
    540 #endif
    541 
    542 /* Default poll duration (may be over-ridden using NFA_SetRfDiscoveryDuration)
    543  */
    544 #ifndef NFA_DM_DISC_DURATION_POLL
    545 #define NFA_DM_DISC_DURATION_POLL 500 /* Android requires 500 */
    546 #endif
    547 
    548 /* Automatic NDEF detection (when not in exclusive RF mode) */
    549 #ifndef NFA_DM_AUTO_DETECT_NDEF
    550 #define NFA_DM_AUTO_DETECT_NDEF FALSE /* !!!!! NFC-Android needs FALSE */
    551 #endif
    552 
    553 /* Automatic NDEF read (when not in exclusive RF mode) */
    554 #ifndef NFA_DM_AUTO_READ_NDEF
    555 #define NFA_DM_AUTO_READ_NDEF FALSE /* !!!!! NFC-Android needs FALSE */
    556 #endif
    557 
    558 /* Automatic NDEF presence check (when not in exclusive RF mode) */
    559 #ifndef NFA_DM_AUTO_PRESENCE_CHECK
    560 #define NFA_DM_AUTO_PRESENCE_CHECK FALSE /* Android requires FALSE */
    561 #endif
    562 
    563 /* Presence check option: 0x01: use sleep/wake for none-NDEF ISO-DEP tags */
    564 #ifndef NFA_DM_PRESENCE_CHECK_OPTION
    565 /* !!!!! Android needs value 3 */
    566 #define NFA_DM_PRESENCE_CHECK_OPTION 0x03
    567 #endif
    568 
    569 /* Maximum time to wait for presence check response */
    570 #ifndef NFA_DM_MAX_PRESENCE_CHECK_TIMEOUT
    571 #define NFA_DM_MAX_PRESENCE_CHECK_TIMEOUT 500
    572 #endif
    573 
    574 /* Default delay to auto presence check after sending raw frame */
    575 #ifndef NFA_DM_DEFAULT_PRESENCE_CHECK_START_DELAY
    576 #define NFA_DM_DEFAULT_PRESENCE_CHECK_START_DELAY 750
    577 #endif
    578 
    579 /* Timeout for reactivation of Kovio bar code tag (presence check) */
    580 #ifndef NFA_DM_DISC_TIMEOUT_KOVIO_PRESENCE_CHECK
    581 #define NFA_DM_DISC_TIMEOUT_KOVIO_PRESENCE_CHECK (1000)
    582 #endif
    583 
    584 /* Max number of NDEF type handlers that can be registered (including the
    585  * default handler) */
    586 #ifndef NFA_NDEF_MAX_HANDLERS
    587 #define NFA_NDEF_MAX_HANDLERS 8
    588 #endif
    589 
    590 /* Maximum number of listen entries configured/registered with
    591  * NFA_CeConfigureUiccListenTech, */
    592 /* NFA_CeRegisterFelicaSystemCodeOnDH, or NFA_CeRegisterT4tAidOnDH */
    593 #ifndef NFA_CE_LISTEN_INFO_MAX
    594 #define NFA_CE_LISTEN_INFO_MAX 5
    595 #endif
    596 
    597 #ifndef NFA_SNEP_INCLUDED
    598 /* Android must use FALSE to exclude SNEP */
    599 #define NFA_SNEP_INCLUDED FALSE
    600 #endif
    601 
    602 /* Max acceptable length */
    603 #ifndef NFA_SNEP_DEFAULT_SERVER_MAX_NDEF_SIZE
    604 #define NFA_SNEP_DEFAULT_SERVER_MAX_NDEF_SIZE 500000
    605 #endif
    606 
    607 /* Max number of SNEP server/client and data link connection */
    608 #ifndef NFA_SNEP_MAX_CONN
    609 #define NFA_SNEP_MAX_CONN 6
    610 #endif
    611 
    612 /* Max number data link connection of SNEP default server*/
    613 #ifndef NFA_SNEP_DEFAULT_MAX_CONN
    614 #define NFA_SNEP_DEFAULT_MAX_CONN 3
    615 #endif
    616 
    617 /* MIU for SNEP              */
    618 #ifndef NFA_SNEP_MIU
    619 #define NFA_SNEP_MIU 1980 /* Modified for NFC-A */
    620 #endif
    621 
    622 /* Receiving Window for SNEP */
    623 #ifndef NFA_SNEP_RW
    624 #define NFA_SNEP_RW 2 /* Modified for NFC-A */
    625 #endif
    626 
    627 /* Max number of NFCEE supported */
    628 #ifndef NFA_EE_MAX_EE_SUPPORTED
    629 /* Modified for NFC-A until we add dynamic support */
    630 #define NFA_EE_MAX_EE_SUPPORTED 4
    631 #endif
    632 
    633 /* Maximum number of AID entries per target_handle  */
    634 #ifndef NFA_EE_MAX_AID_ENTRIES
    635 #define NFA_EE_MAX_AID_ENTRIES (32)
    636 #endif
    637 
    638 /* Maximum number of callback functions can be registered through
    639  * NFA_EeRegister() */
    640 #ifndef NFA_EE_MAX_CBACKS
    641 #define NFA_EE_MAX_CBACKS (3)
    642 #endif
    643 
    644 #ifndef NFA_DTA_INCLUDED
    645 #define NFA_DTA_INCLUDED TRUE
    646 #endif
    647 
    648 /*****************************************************************************
    649 **  Define HAL_WRITE depending on whether HAL is using shared GKI resources
    650 **  as the NFC stack.
    651 *****************************************************************************/
    652 #ifndef HAL_WRITE
    653 #define HAL_WRITE(p)                                            \
    654   {                                                             \
    655     nfc_cb.p_hal->write(p->len, (uint8_t*)(p + 1) + p->offset); \
    656     GKI_freebuf(p);                                             \
    657   }
    658 
    659 #ifdef NFC_HAL_SHARED_GKI
    660 
    661 /* NFC HAL Included if NFC_NFCEE_INCLUDED */
    662 #if (NFC_NFCEE_INCLUDED == TRUE)
    663 
    664 #ifndef NFC_HAL_HCI_INCLUDED
    665 #define NFC_HAL_HCI_INCLUDED TRUE
    666 #endif
    667 #else /* NFC_NFCEE_INCLUDED == TRUE */
    668 #ifndef NFC_HAL_HCI_INCLUDED
    669 #define NFC_HAL_HCI_INCLUDED FALSE
    670 #endif
    671 
    672 #endif /* NFC_NFCEE_INCLUDED == FALSE */
    673 
    674 #endif /* NFC_HAL_SHARED_GKI */
    675 
    676 #endif /* HAL_WRITE */
    677 
    678 #endif /* NFC_TARGET_H */
    679