1 /****************************************************************************** 2 * 3 * Copyright (C) 2012-2013 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 20 /****************************************************************************** 21 * 22 * This file contains the Broadcom-specific defintions that are shared 23 * between HAL, nfc stack, adaptation layer and applications. 24 * 25 ******************************************************************************/ 26 27 #ifndef NFC_BRCM_DEFS_H 28 #define NFC_BRCM_DEFS_H 29 30 /***************************************************************************** 31 ** Broadcom HW ID definitions 32 *****************************************************************************/ 33 #define BRCM_20791B3_ID 0x20791b03 34 #define BRCM_20791B4_ID 0x20791b04 35 #define BRCM_20791B5_ID 0x20791b05 36 #define BRCM_43341B0_ID 0x43341b00 37 #define BRCM_20795A0_ID 0x20795a00 38 39 #define BRCM_NFC_GEN_MASK 0xFFFFF000 /* HW generation mask */ 40 #define BRCM_NFC_REV_MASK 0x00000FFF /* HW revision mask */ 41 #define BRCM_NFC_20791_GEN 0x20791000 42 #define BRCM_NFC_20791_GEN_MAX_EE 3 /* HCI access and 2 UICCs */ 43 #define BRCM_NFC_43341_GEN 0x43341000 44 #define BRCM_NFC_43341_GEN_MAX_EE 3 /* HCI access and 2 UICCs */ 45 #define BRCM_NFC_20795_GEN 0x20795000 46 #define BRCM_NFC_20795_GEN_MAX_EE 4 /* HCI access and 3 UICCs */ 47 48 /***************************************************************************** 49 ** Broadcom-specific NCI definitions 50 *****************************************************************************/ 51 52 /********************************************** 53 * NCI Message Proprietary Group - F 54 **********************************************/ 55 #define NCI_MSG_TAG_SET_MEM 0x00 56 #define NCI_MSG_TAG_GET_MEM 0x01 57 #define NCI_MSG_T1T_SET_HR 0x02 58 #define NCI_MSG_SET_CLF_REGISTERS 0x03 59 #define NCI_MSG_GET_BUILD_INFO 0x04 60 #define NCI_MSG_HCI_NETWK 0x05 61 #define NCI_MSG_SET_FWFSM 0x06 62 #define NCI_MSG_SET_UICCRDRF 0x07 63 #define NCI_MSG_POWER_LEVEL 0x08 64 #define NCI_MSG_FRAME_LOG 0x09 65 #define NCI_MSG_UICC_READER_ACTION 0x0A 66 #define NCI_MSG_SET_PPSE_RESPONSE 0x0B 67 #define NCI_MSG_PRBS_SET 0x0C 68 #define NCI_MSG_RESET_ALL_UICC_CFG 0x0D /* reset HCI network/close all pipes (S,D) register */ 69 #define NCI_MSG_GET_NFCEE_INFO 0x0E 70 #define NCI_MSG_DISABLE_INIT_CHECK 0x0F 71 #define NCI_MSG_ANTENNA_SELF_TEST 0x10 72 #define NCI_MSG_SET_MAX_PKT_SIZE 0x11 73 #define NCI_MSG_NCIP_CLK_REQ_OR_CAR_DET 0x12 74 #define NCI_MSG_NCIP_CONFIG_DBUART 0x13 75 #define NCI_MSG_NCIP_ENABLE_DVT_DRIVER 0x14 76 #define NCI_MSG_SET_ASWP 0x15 77 #define NCI_MSG_ENCAPSULATE_NCI 0x16 78 #define NCI_MSG_CONFIGURE_ARM_JTAG 0x17 79 #define NCI_MSG_STATISTICS 0x18 80 #define NCI_MSG_SET_DSP_TABLE 0x19 81 #define NCI_MSG_GET_DSP_TABLE 0x1a 82 #define NCI_MSG_READY_RX_CMD 0x1b 83 #define NCI_MSG_GET_VBAT 0x1c 84 #define NCI_MSG_GET_XTAL_INDEX_FROM_DH 0x1d 85 #define NCI_MSG_SWP_LOG 0x1e 86 #define NCI_MSG_GET_PWRLEVEL 0x1f 87 #define NCI_MSG_SET_VBAT_MONITOR 0x20 88 #define NCI_MSG_SET_TINT_MODE 0x21 89 #define NCI_MSG_ACCESS_APP 0x22 90 #define NCI_MSG_SET_SECURE_MODE 0x23 91 #define NCI_MSG_GET_NV_DEVICE 0x24 92 #define NCI_MSG_LPTD 0x25 93 #define NCI_MSG_SET_CE4_AS_SNOOZE 0x26 94 #define NCI_MSG_NFCC_SEND_HCI 0x27 95 #define NCI_MSG_CE4_PATCH_DOWNLOAD_DONE 0x28 96 #define NCI_MSG_EEPROM_RW 0x29 97 #define NCI_MSG_GET_CLF_REGISTERS 0x2A 98 #define NCI_MSG_RF_TEST 0x2B 99 #define NCI_MSG_DEBUG_PRINT 0x2C 100 #define NCI_MSG_GET_PATCH_VERSION 0x2D 101 #define NCI_MSG_SECURE_PATCH_DOWNLOAD 0x2E 102 #define NCI_MSG_SPD_FORMAT_NVM 0x2F 103 #define NCI_MSG_SPD_READ_NVM 0x30 104 #define NCI_MSG_SWP_BIST 0x31 105 #define NCI_MSG_WLESS_DBG_MODE 0x32 106 #define NCI_MSG_I2C_REQ_POLARITY 0x33 107 108 109 /********************************************** 110 * Proprietary NCI status codes 111 **********************************************/ 112 #define NCI_STATUS_SPD_ERROR_ORDER 0xE0 113 #define NCI_STATUS_SPD_ERROR_DEST 0xE1 114 #define NCI_STATUS_SPD_ERROR_PROJECTID 0xE2 115 #define NCI_STATUS_SPD_ERROR_CHIPVER 0xE3 116 #define NCI_STATUS_SPD_ERROR_MAJORVER 0xE4 117 #define NCI_STATUS_SPD_ERROR_INVALID_PARAM 0xE5 118 #define NCI_STATUS_SPD_ERROR_INVALID_SIG 0xE6 119 #define NCI_STATUS_SPD_ERROR_NVM_CORRUPTED 0xE7 120 #define NCI_STATUS_SPD_ERROR_PWR_MODE 0xE8 121 #define NCI_STATUS_SPD_ERROR_MSG_LEN 0xE9 122 #define NCI_STATUS_SPD_ERROR_PATCHSIZE 0xEA 123 124 125 126 #define NCI_NV_DEVICE_NONE 0x00 127 #define NCI_NV_DEVICE_EEPROM 0x08 128 #define NCI_NV_DEVICE_UICC1 0x10 129 130 /* The events reported on tNFC_VS_CBACK */ 131 /* The event is (NCI_NTF_BIT|oid) or (NCI_RSP_BIT|oid) */ 132 #define NFC_VS_HCI_NETWK_EVT (NCI_NTF_BIT|NCI_MSG_HCI_NETWK) 133 #define NFC_VS_HCI_NETWK_RSP (NCI_RSP_BIT|NCI_MSG_HCI_NETWK) 134 #define NFC_VS_UICC_READER_ACTION_EVT (NCI_NTF_BIT|NCI_MSG_UICC_READER_ACTION) 135 #define NFC_VS_POWER_LEVEL_RSP (NCI_RSP_BIT|NCI_MSG_POWER_LEVEL) 136 #define NFC_VS_GET_NV_DEVICE_EVT (NCI_RSP_BIT|NCI_MSG_GET_NV_DEVICE) 137 #define NFC_VS_LPTD_EVT (NCI_NTF_BIT|NCI_MSG_LPTD) 138 #define NFC_VS_GET_BUILD_INFO_EVT (NCI_RSP_BIT|NCI_MSG_GET_BUILD_INFO) 139 #define NFC_VS_GET_PATCH_VERSION_EVT (NCI_RSP_BIT|NCI_MSG_GET_PATCH_VERSION) 140 #define NFC_VS_SEC_PATCH_DOWNLOAD_EVT (NCI_RSP_BIT|NCI_MSG_SECURE_PATCH_DOWNLOAD) 141 #define NFC_VS_SEC_PATCH_AUTH_EVT (NCI_NTF_BIT|NCI_MSG_SECURE_PATCH_DOWNLOAD) 142 143 #define NCI_GET_PATCH_VERSION_NVM_OFFSET 37 144 145 146 #define NCI_NFCC_PIPE_INFO_NV_SIZE 24 /* Static and dynamic pipe id and status for each pipe to uicc0 and uicc1. */ 147 #define NCI_PERSONALITY_SLOT_SIZE 19 148 #define NCI_DYNAMIC_PIPE_SIZE 8 149 150 #define NCI_SWP_INTERFACE_TYPE 0xFF /* Type of TLV in NCI_MSG_HCI_NETWK */ 151 #define NCI_HCI_GATE_TYPE 0xFE /* Type of TLV in NCI_MSG_HCI_NETWK */ 152 153 /* Secure Patch Download definitions (patch type definitions) */ 154 #define NCI_SPD_TYPE_HEADER 0x00 155 #define NCI_SPD_TYPE_SRAM 0x01 156 #define NCI_SPD_TYPE_AON 0x02 157 #define NCI_SPD_TYPE_PATCH_TABLE 0x03 158 #define NCI_SPD_TYPE_SECURE_CONFIG 0x04 159 #define NCI_SPD_TYPE_CONTROLLED_CONFIG 0x05 160 #define NCI_SPD_TYPE_SIGNATURE 0x06 161 #define NCI_SPD_TYPE_SIGCHEK 0x07 162 163 /* Secure Patch Download definitions (NCI_SPD_TYPE_HEADER definitions) */ 164 #define NCI_SPD_HEADER_OFFSET_CHIPVERLEN 0x18 165 #define NCI_SPD_HEADER_CHIPVER_LEN 16 166 167 /* NVM Type (in GET_PATCH_VERSION RSP) */ 168 #define NCI_SPD_NVM_TYPE_NONE 0x00 169 #define NCI_SPD_NVM_TYPE_EEPROM 0x01 170 #define NCI_SPD_NVM_TYPE_UICC 0x02 171 172 /********************************************** 173 * NCI NFCC proprietary features in octet 3 174 **********************************************/ 175 #define NCI_FEAT_SIGNED_PATCH 0x01000000 176 177 /********************************************** 178 * NCI Interface Types 179 **********************************************/ 180 #define NCI_INTERFACE_VS_CALYPSO_CE 0x81 181 #define NCI_INTERFACE_VS_T2T_CE 0x82 /* for Card Emulation side */ 182 #define NCI_INTERFACE_VS_15693 0x83 /* for both Reader/Writer and Card Emulation side */ 183 #define NCI_INTERFACE_VS_T1T_CE 0x84 /* for Card Emulation side */ 184 185 /********************************************** 186 * NCI Proprietary Parameter IDs 187 **********************************************/ 188 #define NCI_PARAM_ID_LA_FSDI 0xA0 189 #define NCI_PARAM_ID_LB_FSDI 0xA1 190 #define NCI_PARAM_ID_HOST_LISTEN_MASK 0xA2 191 #define NCI_PARAM_ID_CHIP_TYPE 0xA3 /* NFCDEP */ 192 #define NCI_PARAM_ID_PA_ANTICOLL 0xA4 193 #define NCI_PARAM_ID_CONTINUE_MODE 0xA5 194 #define NCI_PARAM_ID_LBP 0xA6 195 #define NCI_PARAM_ID_T1T_RDR_ONLY 0xA7 196 #define NCI_PARAM_ID_LA_SENS_RES 0xA8 197 #define NCI_PARAM_ID_PWR_SETTING_BITMAP 0xA9 198 #define NCI_PARAM_ID_WI_NTF_ENABLE 0xAA 199 #define NCI_PARAM_ID_LN_BITRATE 0xAB /* NFCDEP Listen Bitrate */ 200 #define NCI_PARAM_ID_LF_BITRATE 0xAC /* FeliCa */ 201 #define NCI_PARAM_ID_SWP_BITRATE_MASK 0xAD 202 #define NCI_PARAM_ID_KOVIO 0xAE 203 #define NCI_PARAM_ID_UICC_NTF_TO 0xAF 204 #define NCI_PARAM_ID_NFCDEP 0xB0 205 #define NCI_PARAM_ID_CLF_REGS_CFG 0xB1 206 #define NCI_PARAM_ID_NFCDEP_TRANS_TIME 0xB2 207 #define NCI_PARAM_ID_CREDIT_TIMER 0xB3 208 #define NCI_PARAM_ID_CORRUPT_RX 0xB4 209 #define NCI_PARAM_ID_ISODEP 0xB5 210 #define NCI_PARAM_ID_LF_CONFIG 0xB6 211 #define NCI_PARAM_ID_I93_DATARATE 0xB7 212 #define NCI_PARAM_ID_CREDITS_THRESHOLD 0xB8 213 #define NCI_PARAM_ID_TAGSNIFF_CFG 0xB9 214 #define NCI_PARAM_ID_PA_FSDI 0xBA /* ISODEP */ 215 #define NCI_PARAM_ID_PB_FSDI 0xBB /* ISODEP */ 216 #define NCI_PARAM_ID_FRAME_INTF_RETXN 0xBC 217 218 #define NCI_PARAM_ID_UICC_RDR_PRIORITY 0xBD 219 #define NCI_PARAM_ID_GUARD_TIME 0xBE 220 #define NCI_PARAM_ID_STDCONFIG 0xBF /* dont not use this config item */ 221 #define NCI_PARAM_ID_PROPCFG 0xC0 /* dont not use this config item */ 222 #define NCI_PARAM_ID_MAXTRY2ACTIVATE 0xC1 223 #define NCI_PARAM_ID_SWPCFG 0xC2 224 #define NCI_PARAM_ID_CLF_LPM_CFG 0xC3 225 #define NCI_PARAM_ID_DCLB 0xC4 226 #define NCI_PARAM_ID_ACT_ORDER 0xC5 227 #define NCI_PARAM_ID_DEP_DELAY_ACT 0xC6 228 #define NCI_PARAM_ID_DH_PARITY_CRC_CTL 0xC7 229 #define NCI_PARAM_ID_PREINIT_DSP_CFG 0xC8 230 #define NCI_PARAM_ID_FW_WORKAROUND 0xC9 231 #define NCI_PARAM_ID_RFU_CONFIG 0xCA 232 #define NCI_PARAM_ID_EMVCO_ENABLE 0xCB 233 #define NCI_PARAM_ID_ANTDRIVER_PARAM 0xCC 234 #define NCI_PARAM_ID_PLL325_CFG_PARAM 0xCD 235 #define NCI_PARAM_ID_OPNLP_ADPLL_ENABLE 0xCE 236 #define NCI_PARAM_ID_CONFORMANCE_MODE 0xCF 237 238 #define NCI_PARAM_ID_LPO_ON_OFF_ENABLE 0xD0 239 #define NCI_PARAM_ID_FORCE_VANT 0xD1 240 #define NCI_PARAM_ID_COEX_CONFIG 0xD2 241 #define NCI_PARAM_ID_INTEL_MODE 0xD3 242 243 #define NCI_PARAM_ID_AID 0xFF 244 245 /********************************************** 246 * NCI Parameter ID Lens 247 **********************************************/ 248 #define NCI_PARAM_LEN_PWR_SETTING_BITMAP 3 249 #define NCI_PARAM_LEN_HOST_LISTEN_MASK 2 250 #define NCI_PARAM_LEN_PLL325_CFG_PARAM 14 251 252 /********************************************** 253 * Snooze Mode 254 **********************************************/ 255 #define NFC_SNOOZE_MODE_NONE 0x00 /* Snooze mode disabled */ 256 #define NFC_SNOOZE_MODE_UART 0x01 /* Snooze mode for UART */ 257 #define NFC_SNOOZE_MODE_SPI_I2C 0x08 /* Snooze mode for SPI/I2C */ 258 259 #define NFC_SNOOZE_ACTIVE_LOW 0x00 /* high to low voltage is asserting */ 260 #define NFC_SNOOZE_ACTIVE_HIGH 0x01 /* low to high voltage is asserting */ 261 262 #endif /* NFC_BRCM_DEFS_H */ 263