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