blob: 9ce68e39d38beca7f37f9a17e17ee5bbdff56a15 [file] [log] [blame]
/******************************************************************************
*
* Copyright (C) 2012 Broadcom Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************/
/******************************************************************************
*
* This file contains the Broadcom-specific defintions that are shared
* between HAL, nfc stack, adaptation layer and applications.
*
******************************************************************************/
#ifndef NFC_BRCM_DEFS_H
#define NFC_BRCM_DEFS_H
/*****************************************************************************
** Broadcom-specific NCI definitions
*****************************************************************************/
/**********************************************
* NCI Message Proprietary Group - F
**********************************************/
#define NCI_MSG_TAG_SET_MEM 0x00
#define NCI_MSG_TAG_GET_MEM 0x01
#define NCI_MSG_T1T_SET_HR 0x02
#define NCI_MSG_SET_CLF_REGISTERS 0x03
#define NCI_MSG_GET_BUILD_INFO 0x04
#define NCI_MSG_HCI_NETWK 0x05
#define NCI_MSG_SET_FWFSM 0x06
#define NCI_MSG_SET_UICCRDRF 0x07
#define NCI_MSG_POWER_LEVEL 0x08
#define NCI_MSG_FRAME_LOG 0x09
#define NCI_MSG_UICC_READER_ACTION 0x0A
#define NCI_MSG_SET_PPSE_RESPONSE 0x0B
#define NCI_MSG_PRBS_SET 0x0C
#define NCI_MSG_RESET_ALL_UICC_CFG 0x0D /* reset HCI network/close all pipes (S,D) register */
#define NCI_MSG_GET_NFCEE_INFO 0x0E
#define NCI_MSG_DISABLE_INIT_CHECK 0x0F
#define NCI_MSG_ANTENNA_SELF_TEST 0x10
#define NCI_MSG_SET_MAX_PKT_SIZE 0x11
#define NCI_MSG_NCIP_CLK_REQ_OR_CAR_DET 0x12
#define NCI_MSG_NCIP_CONFIG_DBUART 0x13
#define NCI_MSG_NCIP_ENABLE_DVT_DRIVER 0x14
#define NCI_MSG_SET_ASWP 0x15
#define NCI_MSG_ENCAPSULATE_NCI 0x16
#define NCI_MSG_CONFIGURE_ARM_JTAG 0x17
#define NCI_MSG_STATISTICS 0x18
#define NCI_MSG_SET_DSP_TABLE 0x19
#define NCI_MSG_GET_DSP_TABLE 0x1a
#define NCI_MSG_READY_RX_CMD 0x1b
#define NCI_MSG_GET_VBAT 0x1c
#define NCI_MSG_GET_XTAL_INDEX_FROM_DH 0x1d
#define NCI_MSG_SWP_LOG 0x1e
#define NCI_MSG_GET_PWRLEVEL 0x1f
#define NCI_MSG_SET_VBAT_MONITOR 0x20
#define NCI_MSG_SET_TINT_MODE 0x21
#define NCI_MSG_ACCESS_APP 0x22
#define NCI_MSG_SET_SECURE_MODE 0x23
#define NCI_MSG_GET_NV_DEVICE 0x24
#define NCI_MSG_LPTD 0x25
#define NCI_MSG_SET_CE4_AS_SNOOZE 0x26
#define NCI_MSG_NFCC_SEND_HCI 0x27
#define NCI_MSG_CE4_PATCH_DOWNLOAD_DONE 0x28
#define NCI_MSG_EEPROM_RW 0x29
#define NCI_MSG_GET_CLF_REGISTERS 0x2A
#define NCI_MSG_RF_TEST 0x2B
#define NCI_MSG_DEBUG_PRINT 0x2C
#define NCI_MSG_GET_PATCH_VERSION 0x2D
#define NCI_MSG_SECURE_PATCH_DOWNLOAD 0x2E
#define NCI_MSG_SPD_FORMAT_NVM 0x2F
#define NCI_MSG_SPD_READ_NVM 0x30
/**********************************************
* Proprietary NCI status codes
**********************************************/
#define NCI_STATUS_SPD_ERROR_ORDER 0xE0
#define NCI_STATUS_SPD_ERROR_DEST 0xE1
#define NCI_STATUS_SPD_ERROR_PROJECTID 0xE2
#define NCI_STATUS_SPD_ERROR_CHIPVER 0xE3
#define NCI_STATUS_SPD_ERROR_MAJORVER 0xE4
#define NCI_STATUS_SPD_ERROR_INVALID_PARAM 0xE5
#define NCI_STATUS_SPD_ERROR_INVALID_SIG 0xE6
#define NCI_STATUS_SPD_ERROR_NVM_CORRUPTED 0xE7
#define NCI_STATUS_SPD_ERROR_PWR_MODE 0xE8
#define NCI_STATUS_SPD_ERROR_MSG_LEN 0xE9
#define NCI_STATUS_SPD_ERROR_PATCHSIZE 0xEA
#define NCI_NV_DEVICE_NONE 0x00
#define NCI_NV_DEVICE_EEPROM 0x08
#define NCI_NV_DEVICE_UICC1 0x10
/* The events reported on tNFC_VS_CBACK */
/* The event is (NCI_NTF_BIT|oid) or (NCI_RSP_BIT|oid) */
#define NFC_VS_HCI_NETWK_EVT (NCI_NTF_BIT|NCI_MSG_HCI_NETWK)
#define NFC_VS_HCI_NETWK_RSP (NCI_RSP_BIT|NCI_MSG_HCI_NETWK)
#define NFC_VS_UICC_READER_ACTION_EVT (NCI_NTF_BIT|NCI_MSG_UICC_READER_ACTION)
#define NFC_VS_POWER_LEVEL_RSP (NCI_RSP_BIT|NCI_MSG_POWER_LEVEL)
#define NFC_VS_GET_NV_DEVICE_EVT (NCI_RSP_BIT|NCI_MSG_GET_NV_DEVICE)
#define NFC_VS_LPTD_EVT (NCI_NTF_BIT|NCI_MSG_LPTD)
#define NFC_VS_GET_BUILD_INFO_EVT (NCI_RSP_BIT|NCI_MSG_GET_BUILD_INFO)
#define NFC_VS_GET_PATCH_VERSION_EVT (NCI_RSP_BIT|NCI_MSG_GET_PATCH_VERSION)
#define NFC_VS_SEC_PATCH_DOWNLOAD_EVT (NCI_RSP_BIT|NCI_MSG_SECURE_PATCH_DOWNLOAD)
#define NFC_VS_SEC_PATCH_AUTH_EVT (NCI_NTF_BIT|NCI_MSG_SECURE_PATCH_DOWNLOAD)
#define NCI_GET_PATCH_VERSION_NVM_OFFSET 37
#define NCI_NFCC_PIPE_INFO_NV_SIZE 24 /* Static and dynamic pipe id and status for each pipe to uicc0 and uicc1. */
#define NCI_PERSONALITY_SLOT_SIZE 19
#define NCI_DYNAMIC_PIPE_SIZE 8
#define NCI_SWP_INTERFACE_TYPE 0xFF /* Type of TLV in NCI_MSG_HCI_NETWK */
#define NCI_HCI_GATE_TYPE 0xFE /* Type of TLV in NCI_MSG_HCI_NETWK */
/* Secure Patch Download definitions (patch type definitions) */
#define NCI_SPD_TYPE_HEADER 0x00
#define NCI_SPD_TYPE_SRAM 0x01
#define NCI_SPD_TYPE_AON 0x02
#define NCI_SPD_TYPE_PATCH_TABLE 0x03
#define NCI_SPD_TYPE_SECURE_CONFIG 0x04
#define NCI_SPD_TYPE_CONTROLLED_CONFIG 0x05
#define NCI_SPD_TYPE_SIGNATURE 0x06
#define NCI_SPD_TYPE_SIGCHEK 0x07
/* Secure Patch Download definitions (NCI_SPD_TYPE_HEADER definitions) */
#define NCI_SPD_HEADER_OFFSET_CHIPVERLEN 0x18
#define NCI_SPD_HEADER_CHIPVER_LEN 16
/* NVM Type (in GET_PATCH_VERSION RSP) */
#define NCI_SPD_NVM_TYPE_NONE 0x00
#define NCI_SPD_NVM_TYPE_EEPROM 0x01
#define NCI_SPD_NVM_TYPE_UICC 0x02
/**********************************************
* NCI NFCC proprietary features in octet 3
**********************************************/
#define NCI_FEAT_SIGNED_PATCH 0x01000000
/**********************************************
* NCI Interface Types
**********************************************/
#define NCI_INTERFACE_VS_CALYPSO_CE 0x81
#define NCI_INTERFACE_VS_T2T_CE 0x82 /* for Card Emulation side */
#define NCI_INTERFACE_VS_15693 0x83 /* for both Reader/Writer and Card Emulation side */
#define NCI_INTERFACE_VS_T1T_CE 0x84 /* for Card Emulation side */
/**********************************************
* NCI Proprietary Parameter IDs
**********************************************/
#define NCI_PARAM_ID_LA_FSDI 0xA0
#define NCI_PARAM_ID_LB_FSDI 0xA1
#define NCI_PARAM_ID_HOST_LISTEN_MASK 0xA2
#define NCI_PARAM_ID_CHIP_TYPE 0xA3 /* NFCDEP */
#define NCI_PARAM_ID_PA_ANTICOLL 0xA4
#define NCI_PARAM_ID_CONTINUE_MODE 0xA5
#define NCI_PARAM_ID_LBP 0xA6
#define NCI_PARAM_ID_T1T_RDR_ONLY 0xA7
#define NCI_PARAM_ID_LA_SENS_RES 0xA8
#define NCI_PARAM_ID_PWR_SETTING_BITMAP 0xA9
#define NCI_PARAM_ID_WI_NTF_ENABLE 0xAA
#define NCI_PARAM_ID_LN_BITRATE 0xAB /* NFCDEP Listen Bitrate */
#define NCI_PARAM_ID_LF_BITRATE 0xAC /* FeliCa */
#define NCI_PARAM_ID_SWP_BITRATE_MASK 0xAD
#define NCI_PARAM_ID_KOVIO 0xAE
#define NCI_PARAM_ID_UICC_NTF_TO 0xAF
#define NCI_PARAM_ID_NFCDEP 0xB0
#define NCI_PARAM_ID_CLF_REGS_CFG 0xB1
#define NCI_PARAM_ID_NFCDEP_TRANS_TIME 0xB2
#define NCI_PARAM_ID_CREDIT_TIMER 0xB3
#define NCI_PARAM_ID_CORRUPT_RX 0xB4
#define NCI_PARAM_ID_ISODEP 0xB5
#define NCI_PARAM_ID_LF_CONFIG 0xB6
#define NCI_PARAM_ID_I93_DATARATE 0xB7
#define NCI_PARAM_ID_CREDITS_THRESHOLD 0xB8
#define NCI_PARAM_ID_TAGSNIFF_CFG 0xB9
#define NCI_PARAM_ID_PA_FSDI 0xBA /* ISODEP */
#define NCI_PARAM_ID_PB_FSDI 0xBB /* ISODEP */
#define NCI_PARAM_ID_FRAME_INTF_RETXN 0xBC
#define NCI_PARAM_ID_UICC_RDR_PRIORITY 0xBD
#define NCI_PARAM_ID_GUARD_TIME 0xBE
#define NCI_PARAM_ID_STDCONFIG 0xBF /* dont not use this config item */
#define NCI_PARAM_ID_PROPCFG 0xC0 /* dont not use this config item */
#define NCI_PARAM_ID_MAXTRY2ACTIVATE 0xC1
#define NCI_PARAM_ID_SWPCFG 0xC2
#define NCI_PARAM_ID_CLF_LPM_CFG 0xC3
#define NCI_PARAM_ID_DCLB 0xC4
#define NCI_PARAM_ID_ACT_ORDER 0xC5
#define NCI_PARAM_ID_DEP_DELAY_ACT 0xC6
#define NCI_PARAM_ID_DH_PARITY_CRC_CTL 0xC7
#define NCI_PARAM_ID_PREINIT_DSP_CFG 0xC8
#define NCI_PARAM_ID_FW_WORKAROUND 0xC9
#define NCI_PARAM_ID_RFU_CONFIG 0xCA
#define NCI_PARAM_ID_EMVCO_ENABLE 0xCB
#define NCI_PARAM_ID_ANTDRIVER_PARAM 0xCC
#define NCI_PARAM_ID_PLL325_CFG_PARAM 0xCD
#define NCI_PARAM_ID_OPNLP_ADPLL_ENABLE 0xCE
#define NCI_PARAM_ID_CONFORMANCE_MODE 0xCF
#define NCI_PARAM_ID_LPO_ON_OFF_ENABLE 0xD0
#define NCI_PARAM_ID_FORCE_VANT 0xD1
#define NCI_PARAM_ID_COEX_CONFIG 0xD2
#define NCI_PARAM_ID_INTEL_MODE 0xD3
#define NCI_PARAM_ID_AID 0xFF
/**********************************************
* NCI Parameter ID Lens
**********************************************/
#define NCI_PARAM_LEN_PWR_SETTING_BITMAP 3
#define NCI_PARAM_LEN_HOST_LISTEN_MASK 2
#define NCI_PARAM_LEN_PLL325_CFG_PARAM 14
/**********************************************
* Snooze Mode
**********************************************/
#define NFC_SNOOZE_MODE_NONE 0x00 /* Snooze mode disabled */
#define NFC_SNOOZE_MODE_UART 0x01 /* Snooze mode for UART */
#define NFC_SNOOZE_MODE_SPI_I2C 0x08 /* Snooze mode for SPI/I2C */
#define NFC_SNOOZE_ACTIVE_LOW 0x00 /* high to low voltage is asserting */
#define NFC_SNOOZE_ACTIVE_HIGH 0x01 /* low to high voltage is asserting */
#endif /* NFC_BRCM_DEFS_H */