1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
3e9629bad30a9f478b336ab46b8e6e02f7f87af46Evan Chu *  Copyright (C) 2012-2014 Broadcom Corporation
4e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
5e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the "License");
6e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  you may not use this file except in compliance with the License.
7e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  You may obtain a copy of the License at:
8e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
9e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  http://www.apache.org/licenses/LICENSE-2.0
10e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
11e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
12e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
13e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  See the License for the specific language governing permissions and
15e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  limitations under the License.
16e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
17e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/
18e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
19e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  This file contains the Broadcom-specific defintions that are shared
22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  between HAL, nfc stack, adaptation layer and applications.
23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/
25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_BRCM_DEFS_H
27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_BRCM_DEFS_H
28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*****************************************************************************
30df5080d7feca9827fd0306471c54f52ecf185c22Evan Chu** Broadcom HW ID definitions
31df5080d7feca9827fd0306471c54f52ecf185c22Evan Chu*****************************************************************************/
326fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define BRCM_20791B3_ID 0x20791b03
336fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define BRCM_20791B4_ID 0x20791b04
346fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define BRCM_20791B5_ID 0x20791b05
356fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define BRCM_43341B0_ID 0x43341b00
366fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define BRCM_20795T1_ID 0x20795a01
376fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define BRCM_20795A0_ID 0x20795a00
386fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define BRCM_20795A1_ID 0x20795a10
396fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi
406fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define BRCM_NFC_GEN_MASK 0xFFFFF000 /* HW generation mask */
416fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define BRCM_NFC_REV_MASK 0x00000FFF /* HW revision mask   */
426fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define BRCM_NFC_20791_GEN 0x20791000
436fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define BRCM_NFC_20791_GEN_MAX_EE 3 /* HCI access and 2 UICCs */
446fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define BRCM_NFC_43341_GEN 0x43341000
456fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define BRCM_NFC_43341_GEN_MAX_EE 3 /* HCI access and 2 UICCs */
466fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define BRCM_NFC_20795_GEN 0x20795000
476fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define BRCM_NFC_20795_GEN_MAX_EE 4 /* HCI access and 3 UICCs */
48df5080d7feca9827fd0306471c54f52ecf185c22Evan Chu
49df5080d7feca9827fd0306471c54f52ecf185c22Evan Chu/*****************************************************************************
50e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Broadcom-specific NCI definitions
51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/
52e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
53e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**********************************************
54e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * NCI Message Proprietary  Group       - F
55e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project **********************************************/
566fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_TAG_SET_MEM 0x00
576fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_TAG_GET_MEM 0x01
586fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_T1T_SET_HR 0x02
596fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_SET_CLF_REGISTERS 0x03
606fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_GET_BUILD_INFO 0x04
616fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_HCI_NETWK 0x05
626fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_SET_FWFSM 0x06
636fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_SET_UICCRDRF 0x07
646fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_POWER_LEVEL 0x08
656fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_FRAME_LOG 0x09
666fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_UICC_READER_ACTION 0x0A
676fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_SET_PPSE_RESPONSE 0x0B
686fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_PRBS_SET 0x0C
6946e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* reset HCI network/close all pipes (S,D) register */
7046e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NCI_MSG_RESET_ALL_UICC_CFG 0x0D
716fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_GET_NFCEE_INFO 0x0E
726fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_DISABLE_INIT_CHECK 0x0F
736fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_ANTENNA_SELF_TEST 0x10
746fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_SET_MAX_PKT_SIZE 0x11
75e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NCI_MSG_NCIP_CLK_REQ_OR_CAR_DET 0x12
766fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_NCIP_CONFIG_DBUART 0x13
776fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_NCIP_ENABLE_DVT_DRIVER 0x14
786fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_SET_ASWP 0x15
796fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_ENCAPSULATE_NCI 0x16
806fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_CONFIGURE_ARM_JTAG 0x17
816fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_STATISTICS 0x18
826fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_SET_DSP_TABLE 0x19
836fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_GET_DSP_TABLE 0x1a
846fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_READY_RX_CMD 0x1b
856fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_GET_VBAT 0x1c
866fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_GET_XTAL_INDEX_FROM_DH 0x1d
876fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_SWP_LOG 0x1e
886fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_GET_PWRLEVEL 0x1f
896fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_SET_VBAT_MONITOR 0x20
906fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_SET_TINT_MODE 0x21
916fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_ACCESS_APP 0x22
926fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_SET_SECURE_MODE 0x23
936fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_GET_NV_DEVICE 0x24
946fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_LPTD 0x25
956fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_SET_CE4_AS_SNOOZE 0x26
966fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_NFCC_SEND_HCI 0x27
97e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NCI_MSG_CE4_PATCH_DOWNLOAD_DONE 0x28
986fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_EEPROM_RW 0x29
996fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_GET_CLF_REGISTERS 0x2A
1006fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_RF_TEST 0x2B
1016fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_DEBUG_PRINT 0x2C
1026fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_GET_PATCH_VERSION 0x2D
1036fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_SECURE_PATCH_DOWNLOAD 0x2E
1046fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_SPD_FORMAT_NVM 0x2F
1056fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_SPD_READ_NVM 0x30
1066fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_SWP_BIST 0x31
1076fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_WLESS_DBG_MODE 0x32
1086fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_I2C_REQ_POLARITY 0x33
1096fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_MSG_AID_FILTER 0x39
110e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
111e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**********************************************
112e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Proprietary  NCI status codes
113e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project **********************************************/
1146fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_STATUS_SPD_ERROR_ORDER 0xE0
1156fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_STATUS_SPD_ERROR_DEST 0xE1
1166fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_STATUS_SPD_ERROR_PROJECTID 0xE2
1176fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_STATUS_SPD_ERROR_CHIPVER 0xE3
1186fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_STATUS_SPD_ERROR_MAJORVER 0xE4
1196fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_STATUS_SPD_ERROR_INVALID_PARAM 0xE5
1206fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_STATUS_SPD_ERROR_INVALID_SIG 0xE6
1216fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_STATUS_SPD_ERROR_NVM_CORRUPTED 0xE7
1226fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_STATUS_SPD_ERROR_PWR_MODE 0xE8
1236fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_STATUS_SPD_ERROR_MSG_LEN 0xE9
1246fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_STATUS_SPD_ERROR_PATCHSIZE 0xEA
1256fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi
1266fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_NV_DEVICE_NONE 0x00
1276fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_NV_DEVICE_EEPROM 0x08
1286fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_NV_DEVICE_UICC1 0x10
129e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
130e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The events reported on tNFC_VS_CBACK */
131e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* The event is (NCI_NTF_BIT|oid) or (NCI_RSP_BIT|oid) */
1326fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_VS_HCI_NETWK_EVT (NCI_NTF_BIT | NCI_MSG_HCI_NETWK)
1336fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_VS_HCI_NETWK_RSP (NCI_RSP_BIT | NCI_MSG_HCI_NETWK)
1346fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_VS_UICC_READER_ACTION_EVT (NCI_NTF_BIT | NCI_MSG_UICC_READER_ACTION)
1356fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_VS_POWER_LEVEL_RSP (NCI_RSP_BIT | NCI_MSG_POWER_LEVEL)
1366fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_VS_GET_NV_DEVICE_EVT (NCI_RSP_BIT | NCI_MSG_GET_NV_DEVICE)
1376fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_VS_LPTD_EVT (NCI_NTF_BIT | NCI_MSG_LPTD)
1386fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_VS_GET_BUILD_INFO_EVT (NCI_RSP_BIT | NCI_MSG_GET_BUILD_INFO)
1396fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_VS_GET_PATCH_VERSION_EVT (NCI_RSP_BIT | NCI_MSG_GET_PATCH_VERSION)
1406fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_VS_SEC_PATCH_DOWNLOAD_EVT \
1416fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  (NCI_RSP_BIT | NCI_MSG_SECURE_PATCH_DOWNLOAD)
1426fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_VS_SEC_PATCH_AUTH_EVT (NCI_NTF_BIT | NCI_MSG_SECURE_PATCH_DOWNLOAD)
1436fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_VS_EEPROM_RW_EVT (NCI_RSP_BIT | NCI_MSG_EEPROM_RW)
1446fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi
1456fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_GET_PATCH_VERSION_NVM_OFFSET 37
146e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
14746e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Static and dynamic pipe id and status for each pipe to uicc0 and uicc1. */
14846e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NCI_NFCC_PIPE_INFO_NV_SIZE 24
1496fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PERSONALITY_SLOT_SIZE 19
1506fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_DYNAMIC_PIPE_SIZE 8
151e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
15246e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Type of TLV in NCI_MSG_HCI_NETWK */
15346e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NCI_SWP_INTERFACE_TYPE 0xFF
15446e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Type of TLV in NCI_MSG_HCI_NETWK */
15546e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NCI_HCI_GATE_TYPE 0xFE
156e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
157e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Secure Patch Download definitions (patch type definitions) */
1586fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_SPD_TYPE_HEADER 0x00
1596fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_SPD_TYPE_SRAM 0x01
1606fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_SPD_TYPE_AON 0x02
1616fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_SPD_TYPE_PATCH_TABLE 0x03
1626fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_SPD_TYPE_SECURE_CONFIG 0x04
1636fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_SPD_TYPE_CONTROLLED_CONFIG 0x05
1646fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_SPD_TYPE_SIGNATURE 0x06
1656fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_SPD_TYPE_SIGCHEK 0x07
166e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
167e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Secure Patch Download definitions (NCI_SPD_TYPE_HEADER definitions) */
1686fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_SPD_HEADER_OFFSET_CHIPVERLEN 0x18
1696fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_SPD_HEADER_CHIPVER_LEN 16
170e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
171e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* NVM Type (in GET_PATCH_VERSION RSP) */
1726fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_SPD_NVM_TYPE_NONE 0x00
1736fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_SPD_NVM_TYPE_EEPROM 0x01
1746fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_SPD_NVM_TYPE_UICC 0x02
175e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
176e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**********************************************
177e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * NCI NFCC proprietary features in octet 3
178e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project **********************************************/
1796fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_FEAT_SIGNED_PATCH 0x01000000
180e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
181e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**********************************************
182e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * NCI Interface Types
183e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project **********************************************/
1846fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_INTERFACE_VS_MIFARE 0x80
1856fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_INTERFACE_VS_CALYPSO_CE 0x81
1866fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_INTERFACE_VS_T2T_CE 0x82 /* for Card Emulation side */
18746e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* for both Reader/Writer and Card Emulation side */
18846e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NCI_INTERFACE_VS_15693 0x83
1896fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_INTERFACE_VS_T1T_CE 0x84 /* for Card Emulation side */
190e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
191e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**********************************************
192e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * NCI Proprietary Parameter IDs
193e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project **********************************************/
1946fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_LA_FSDI 0xA0
1956fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_LB_FSDI 0xA1
1966fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_HOST_LISTEN_MASK 0xA2
1976fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_CHIP_TYPE 0xA3 /* NFCDEP */
1986fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_PA_ANTICOLL 0xA4
1996fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_CONTINUE_MODE 0xA5
2006fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_LBP 0xA6
2016fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_T1T_RDR_ONLY 0xA7
2026fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_LA_SENS_RES 0xA8
203e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NCI_PARAM_ID_PWR_SETTING_BITMAP 0xA9
2046fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_WI_NTF_ENABLE 0xAA
2056fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_LN_BITRATE 0xAB /* NFCDEP Listen Bitrate */
2066fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_LF_BITRATE 0xAC /* FeliCa */
2076fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_SWP_BITRATE_MASK 0xAD
2086fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_KOVIO 0xAE
2096fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_UICC_NTF_TO 0xAF
2106fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_NFCDEP 0xB0
2116fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_CLF_REGS_CFG 0xB1
2126fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_NFCDEP_TRANS_TIME 0xB2
2136fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_CREDIT_TIMER 0xB3
2146fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_CORRUPT_RX 0xB4
2156fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_ISODEP 0xB5
2166fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_LF_CONFIG 0xB6
2176fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_I93_DATARATE 0xB7
2186fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_CREDITS_THRESHOLD 0xB8
2196fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_TAGSNIFF_CFG 0xB9
2206fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_PA_FSDI 0xBA /* ISODEP */
2216fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_PB_FSDI 0xBB /* ISODEP */
2226fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_FRAME_INTF_RETXN 0xBC
2236fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi
2246fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_UICC_RDR_PRIORITY 0xBD
2256fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_GUARD_TIME 0xBE
2266fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_STDCONFIG 0xBF /* dont not use this config item */
22746e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* dont not use this config item  */
22846e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NCI_PARAM_ID_PROPCFG 0xC0
2296fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_MAXTRY2ACTIVATE 0xC1
2306fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_SWPCFG 0xC2
2316fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_CLF_LPM_CFG 0xC3
2326fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_DCLB 0xC4
2336fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_ACT_ORDER 0xC5
2346fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_DEP_DELAY_ACT 0xC6
2356fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_DH_PARITY_CRC_CTL 0xC7
2366fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_PREINIT_DSP_CFG 0xC8
2376fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_FW_WORKAROUND 0xC9
2386fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_RFU_CONFIG 0xCA
2396fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_EMVCO_ENABLE 0xCB
2406fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_ANTDRIVER_PARAM 0xCC
2416fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_PLL325_CFG_PARAM 0xCD
242e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NCI_PARAM_ID_OPNLP_ADPLL_ENABLE 0xCE
2436fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_CONFORMANCE_MODE 0xCF
244e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
2456fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_LPO_ON_OFF_ENABLE 0xD0
2466fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_FORCE_VANT 0xD1
2476fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_COEX_CONFIG 0xD2
2486fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_INTEL_MODE 0xD3
249e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
2506fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_ID_AID 0xFF
251e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
252e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**********************************************
253e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * NCI Parameter ID Lens
254e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project **********************************************/
2556fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_LEN_PWR_SETTING_BITMAP 3
2566fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_LEN_HOST_LISTEN_MASK 2
2576fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_LEN_PLL325_CFG_PARAM 14
2586fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NCI_PARAM_LEN_POWER_LEVEL 6
259e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
260e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**********************************************
261e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Snooze Mode
262e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project **********************************************/
2636fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_SNOOZE_MODE_NONE 0x00    /* Snooze mode disabled    */
2646fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_SNOOZE_MODE_UART 0x01    /* Snooze mode for UART    */
2656fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_SNOOZE_MODE_SPI_I2C 0x08 /* Snooze mode for SPI/I2C */
266e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
2676fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_SNOOZE_ACTIVE_LOW 0x00  /* high to low voltage is asserting */
2686fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_SNOOZE_ACTIVE_HIGH 0x01 /* low to high voltage is asserting */
269a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
270a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/**********************************************
271a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu * HCI definitions
272a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu **********************************************/
2736fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_SESSION_ID_LEN 8
2746fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_SYNC_ID_LEN 2
275a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
276a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* HCI Network command definitions */
2776fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_NETWK_INFO_SIZE 250
2786fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_NO_RW_MODE_NETWK_INFO_SIZE 184
2796fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_DH_NETWK_INFO_SIZE 111
2806fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_MIN_NETWK_INFO_SIZE 12
2816fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_MIN_DH_NETWK_INFO_SIZE 11
282a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
283a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* Card emulation RF Gate A definitions */
2846fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_CE_RF_A_UID_REG_LEN 10
2856fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_CE_RF_A_ATQA_RSP_CODE_LEN 2
2866fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_CE_RF_A_MAX_HIST_DATA_LEN 15
2876fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_CE_RF_A_MAX_DATA_RATE_LEN 3
288a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
289a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* Card emulation RF Gate B definitions */
2906fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_CE_RF_B_PUPI_LEN 4
2916fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_CE_RF_B_ATQB_LEN 4
2926fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_CE_RF_B_HIGHER_LAYER_RSP_LEN 61
2936fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_CE_RF_B_MAX_DATA_RATE_LEN 3
294a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
295a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* Card emulation RF Gate BP definitions */
2966fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_CE_RF_BP_MAX_PAT_IN_LEN 8
2976fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_CE_RF_BP_DATA_OUT_LEN 40
298a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
299a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* Reader RF Gate A definitions */
3006fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_RD_RF_B_HIGHER_LAYER_DATA_LEN 61
301a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
302a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* DH HCI Network command definitions */
3036fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_DH_MAX_DYN_PIPES 20
304a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
305a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* Target handle for different host in the network */
3066fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_DH_TARGET_HANDLE 0xF2
3076fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_UICC0_TARGET_HANDLE 0xF3
3086fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_UICC1_TARGET_HANDLE 0xF4
3096fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFC_HAL_HCI_UICC2_TARGET_HANDLE 0xF5
310a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
311a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* Card emulation RF Gate A registry information */
3126fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct {
3136fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t pipe_id; /* if MSB is set then valid, 7 bits for Pipe ID */
3146fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t mode; /* Type A card emulation enabled indicator, 0x02:enabled    */
3156fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t sak;
3166fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t uid_reg_len;
3176fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t uid_reg[NFC_HAL_HCI_CE_RF_A_UID_REG_LEN];
3186fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t atqa[NFC_HAL_HCI_CE_RF_A_ATQA_RSP_CODE_LEN]; /* ATQA response code */
3196fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t app_data_len;
3206fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t
3216fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      app_data[NFC_HAL_HCI_CE_RF_A_MAX_HIST_DATA_LEN]; /* 15 bytes optional
3226fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi                                                          storage for historic
3236fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi                                                          data, use 2 slots */
3246fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t fwi_sfgi; /* FRAME WAITING TIME, START-UP FRAME GUARD TIME */
3256fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t cid_support;
3266fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t datarate_max[NFC_HAL_HCI_CE_RF_A_MAX_DATA_RATE_LEN];
3276fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t clt_support;
328a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu} tNCI_HCI_CE_RF_A;
329a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
330a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* Card emulation RF Gate B registry information */
3316fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct {
3326fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t pipe_id; /* if MSB is set then valid, 7 bits for Pipe ID */
3336fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t mode; /* Type B card emulation enabled indicator, 0x02:enabled    */
3346fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t pupi_len;
3356fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t pupi_reg[NFC_HAL_HCI_CE_RF_B_PUPI_LEN];
3366fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t afi;
3376fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t
3386fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      atqb[NFC_HAL_HCI_CE_RF_B_ATQB_LEN]; /* 4 bytes ATQB application data */
3396fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t higherlayer_resp
3406fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      [NFC_HAL_HCI_CE_RF_B_HIGHER_LAYER_RSP_LEN]; /* 0~ 61 bytes ATRB_INF use
3416fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi                                                     1~4 personality slots */
3426fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t datarate_max[NFC_HAL_HCI_CE_RF_B_MAX_DATA_RATE_LEN];
3436fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t natrb;
344a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu} tNCI_HCI_CE_RF_B;
345a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
346a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* Card emulation RF Gate BP registry information */
3476fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct {
3486fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t pipe_id; /* if MSB is set then valid, 7 bits for Pipe ID */
3496fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t
3506fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      mode; /* Type B prime card emulation enabled indicator, 0x02:enabled */
3516fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t pat_in_len;
3526fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t pat_in[NFC_HAL_HCI_CE_RF_BP_MAX_PAT_IN_LEN];
3536fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t dat_out_len;
3546fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t
3556fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      dat_out[NFC_HAL_HCI_CE_RF_BP_DATA_OUT_LEN]; /* ISO7816-3 <=64 byte, and
3566fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi                                                     other fields are 9 bytes */
3576fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t natr;
358a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu} tNCI_HCI_CE_RF_BP;
359a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
360a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* Card emulation RF Gate F registry information */
3616fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct {
3626fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t pipe_id; /* if MSB is set then valid, 7 bits for Pipe ID */
3636fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t mode; /* Type F card emulation enabled indicator, 0x02:enabled    */
3646fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t speed_cap;
3656fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t clt_support;
366a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu} tNCI_HCI_CE_RF_F;
367a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
368a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* Reader RF Gate A registry information */
3696fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct {
3706fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t pipe_id; /* if MSB is set then valid, 7 bits for Pipe ID */
3716fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t datarate_max;
372a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu} tNCI_HCI_RD_RF_A;
373a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
374a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* Reader RF Gate B registry information */
3756fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct {
3766fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t pipe_id; /* if MSB is set then valid, 7 bits for Pipe ID */
3776fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t afi;
3786fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t hldata_len;
3796fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t
3806fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      high_layer_data[NFC_HAL_HCI_RD_RF_B_HIGHER_LAYER_DATA_LEN]; /* INF field
3816fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi                                                                     in ATTRIB
3826fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi                                                                     command */
383a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu} tNCI_HCI_RD_RF_B;
384a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
385a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* Dynamic pipe information */
3866fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct {
3876fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t source_host;
3886fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t dest_host;
3896fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t source_gate;
3906fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t dest_gate;
3916fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t pipe_id; /* if MSB is set then valid, 7 bits for Pipe ID */
392a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu} tNCI_HCI_DYN_PIPE_INFO;
393a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
394a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/*************************************************************
395a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu * HCI Network CMD/NTF structure for UICC host in the network
396a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu *************************************************************/
3976fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct {
3986fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t target_handle;
3996fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t session_id[NFC_HAL_HCI_SESSION_ID_LEN];
4006fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t sync_id[NFC_HAL_HCI_SYNC_ID_LEN];
4016fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t static_pipe_info;
4026fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNCI_HCI_CE_RF_A ce_rf_a;
4036fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNCI_HCI_CE_RF_B ce_rf_b;
4046fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNCI_HCI_CE_RF_BP ce_rf_bp;
4056fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNCI_HCI_CE_RF_F ce_rf_f;
4066fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNCI_HCI_RD_RF_A rw_rf_a;
4076fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNCI_HCI_RD_RF_B rw_rf_b;
408a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu} tNCI_HCI_NETWK;
409a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
410a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/************************************************
411a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu * HCI Network CMD/NTF structure for Device host
412a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu ************************************************/
4136fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct {
4146fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t target_handle;
4156fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t session_id[NFC_HAL_HCI_SESSION_ID_LEN];
4166fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t static_pipe_info;
4176fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t num_dyn_pipes;
4186fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNCI_HCI_DYN_PIPE_INFO dyn_pipe_info[NFC_HAL_HCI_DH_MAX_DYN_PIPES];
419a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu} tNCI_HCI_NETWK_DH;
420a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
4216fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#endif /* NFC_BRCM_DEFS_H */
422