1*7eba2f3bSAndroid Build Coastguard Worker /****************************************************************************** 2*7eba2f3bSAndroid Build Coastguard Worker * 3*7eba2f3bSAndroid Build Coastguard Worker * Copyright (C) 2010-2014 Broadcom Corporation 4*7eba2f3bSAndroid Build Coastguard Worker * 5*7eba2f3bSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 6*7eba2f3bSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 7*7eba2f3bSAndroid Build Coastguard Worker * You may obtain a copy of the License at: 8*7eba2f3bSAndroid Build Coastguard Worker * 9*7eba2f3bSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 10*7eba2f3bSAndroid Build Coastguard Worker * 11*7eba2f3bSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 12*7eba2f3bSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 13*7eba2f3bSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*7eba2f3bSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 15*7eba2f3bSAndroid Build Coastguard Worker * limitations under the License. 16*7eba2f3bSAndroid Build Coastguard Worker * 17*7eba2f3bSAndroid Build Coastguard Worker ******************************************************************************/ 18*7eba2f3bSAndroid Build Coastguard Worker 19*7eba2f3bSAndroid Build Coastguard Worker /****************************************************************************** 20*7eba2f3bSAndroid Build Coastguard Worker * 21*7eba2f3bSAndroid Build Coastguard Worker * This is the public interface file for NFA, Broadcom's NFC application 22*7eba2f3bSAndroid Build Coastguard Worker * layer for mobile phones. 23*7eba2f3bSAndroid Build Coastguard Worker * 24*7eba2f3bSAndroid Build Coastguard Worker ******************************************************************************/ 25*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFA_API_H 26*7eba2f3bSAndroid Build Coastguard Worker #define NFA_API_H 27*7eba2f3bSAndroid Build Coastguard Worker 28*7eba2f3bSAndroid Build Coastguard Worker #include "gki.h" 29*7eba2f3bSAndroid Build Coastguard Worker #include "nci_defs.h" 30*7eba2f3bSAndroid Build Coastguard Worker #include "nfc_api.h" 31*7eba2f3bSAndroid Build Coastguard Worker #include "nfc_hal_api.h" 32*7eba2f3bSAndroid Build Coastguard Worker #include "nfc_target.h" 33*7eba2f3bSAndroid Build Coastguard Worker #include "rw_api.h" 34*7eba2f3bSAndroid Build Coastguard Worker #include "tags_defs.h" 35*7eba2f3bSAndroid Build Coastguard Worker 36*7eba2f3bSAndroid Build Coastguard Worker /***************************************************************************** 37*7eba2f3bSAndroid Build Coastguard Worker ** Constants and data types 38*7eba2f3bSAndroid Build Coastguard Worker *****************************************************************************/ 39*7eba2f3bSAndroid Build Coastguard Worker 40*7eba2f3bSAndroid Build Coastguard Worker /* Max length of Appliction ID in 7816-4 */ 41*7eba2f3bSAndroid Build Coastguard Worker #define NFA_MAX_AID_LEN NFC_MAX_AID_LEN 42*7eba2f3bSAndroid Build Coastguard Worker #define NFA_MIN_AID_LEN 5 /* per NCI specification */ 43*7eba2f3bSAndroid Build Coastguard Worker 44*7eba2f3bSAndroid Build Coastguard Worker /* Command succeeded */ 45*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_OK NCI_STATUS_OK 46*7eba2f3bSAndroid Build Coastguard Worker /* Command is rejected. */ 47*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_REJECTED NCI_STATUS_REJECTED 48*7eba2f3bSAndroid Build Coastguard Worker /* buffer full */ 49*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_BUFFER_FULL NCI_STATUS_BUFFER_FULL 50*7eba2f3bSAndroid Build Coastguard Worker /* failed */ 51*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_FAILED NCI_STATUS_FAILED 52*7eba2f3bSAndroid Build Coastguard Worker /* Optional feature of NCI Spec not supported */ 53*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_NOT_SUPPORTED NCI_STATUS_NOT_SUPPORTED 54*7eba2f3bSAndroid Build Coastguard Worker /* Semantic error */ 55*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_SEMANTIC_ERROR NCI_STATUS_SEMANTIC_ERROR 56*7eba2f3bSAndroid Build Coastguard Worker /* Unknown NCI Group ID */ 57*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_UNKNOWN_GID NCI_STATUS_UNKNOWN_GID 58*7eba2f3bSAndroid Build Coastguard Worker /* Invalid Parameter */ 59*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_INVALID_PARAM NCI_STATUS_INVALID_PARAM 60*7eba2f3bSAndroid Build Coastguard Worker /* Already started */ 61*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_ALREADY_STARTED NCI_STATUS_ALREADY_STARTED 62*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_RF_UNEXPECTED_DATA NCI_STATUS_RF_UNEXPECTED_DATA 63*7eba2f3bSAndroid Build Coastguard Worker /* RF frame error */ 64*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_RF_FRAME_CORRUPTED NCI_STATUS_RF_FRAME_CORRUPTED 65*7eba2f3bSAndroid Build Coastguard Worker /* RF protocol error */ 66*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_RF_PROTOCOL_ERR NCI_STATUS_RF_PROTOCOL_ERR 67*7eba2f3bSAndroid Build Coastguard Worker /* RF Timeout */ 68*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_TIMEOUT NCI_STATUS_TIMEOUT 69*7eba2f3bSAndroid Build Coastguard Worker 70*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_CONTINUE NFC_STATUS_CONTINUE 71*7eba2f3bSAndroid Build Coastguard Worker /* Out of GKI buffers */ 72*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_NO_BUFFERS NFC_STATUS_NO_BUFFERS 73*7eba2f3bSAndroid Build Coastguard Worker /* Protocol mismatch between API and activated one */ 74*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_WRONG_PROTOCOL NFC_STATUS_WRONG_PROTOCOL 75*7eba2f3bSAndroid Build Coastguard Worker /* Another Tag command is already in progress */ 76*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_BUSY NFC_STATUS_BUSY 77*7eba2f3bSAndroid Build Coastguard Worker 78*7eba2f3bSAndroid Build Coastguard Worker /* data len exceeds MIU */ 79*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_BAD_LENGTH NFC_STATUS_BAD_LENGTH 80*7eba2f3bSAndroid Build Coastguard Worker /* invalid handle */ 81*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_BAD_HANDLE NFC_STATUS_BAD_HANDLE 82*7eba2f3bSAndroid Build Coastguard Worker /* congested */ 83*7eba2f3bSAndroid Build Coastguard Worker #define NFA_STATUS_CONGESTED NFC_STATUS_CONGESTED 84*7eba2f3bSAndroid Build Coastguard Worker typedef uint8_t tNFA_STATUS; 85*7eba2f3bSAndroid Build Coastguard Worker 86*7eba2f3bSAndroid Build Coastguard Worker /* Handle for NFA registrations and connections */ 87*7eba2f3bSAndroid Build Coastguard Worker typedef uint16_t tNFA_HANDLE; 88*7eba2f3bSAndroid Build Coastguard Worker #define NFA_HANDLE_INVALID (0xFFFF) 89*7eba2f3bSAndroid Build Coastguard Worker /* NFA Handle definitions */ 90*7eba2f3bSAndroid Build Coastguard Worker 91*7eba2f3bSAndroid Build Coastguard Worker /* The upper byte of NFA_HANDLE signifies the handle group */ 92*7eba2f3bSAndroid Build Coastguard Worker /* NDEF Type Handler handles */ 93*7eba2f3bSAndroid Build Coastguard Worker #define NFA_HANDLE_GROUP_NDEF_HANDLER 0x0200 94*7eba2f3bSAndroid Build Coastguard Worker /* DH Card Emulation handles */ 95*7eba2f3bSAndroid Build Coastguard Worker #define NFA_HANDLE_GROUP_CE 0x0300 96*7eba2f3bSAndroid Build Coastguard Worker /* Handles to identify NFCEE */ 97*7eba2f3bSAndroid Build Coastguard Worker #define NFA_HANDLE_GROUP_EE 0x0400 98*7eba2f3bSAndroid Build Coastguard Worker /* HCI handles */ 99*7eba2f3bSAndroid Build Coastguard Worker #define NFA_HANDLE_GROUP_HCI 0x0800 100*7eba2f3bSAndroid Build Coastguard Worker /* Local NDEF message handle */ 101*7eba2f3bSAndroid Build Coastguard Worker #define NFA_HANDLE_GROUP_MASK 0xFF00 102*7eba2f3bSAndroid Build Coastguard Worker #define NFA_HANDLE_MASK 0x00FF 103*7eba2f3bSAndroid Build Coastguard Worker 104*7eba2f3bSAndroid Build Coastguard Worker /* NCI Parameter IDs */ 105*7eba2f3bSAndroid Build Coastguard Worker typedef uint8_t tNFA_PMID; 106*7eba2f3bSAndroid Build Coastguard Worker 107*7eba2f3bSAndroid Build Coastguard Worker /* Definitions for tNFA_TECHNOLOGY_MASK */ 108*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TECHNOLOGY_MASK_A 0x01 /* NFC Technology A */ 109*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TECHNOLOGY_MASK_B 0x02 /* NFC Technology B */ 110*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TECHNOLOGY_MASK_F 0x04 /* NFC Technology F */ 111*7eba2f3bSAndroid Build Coastguard Worker /* TECHNOLOGY_MASK_V in NCI2.0 and TECHNOLOGY_MASK_15693 proprietary in NCI1.0*/ 112*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TECHNOLOGY_MASK_V 0x08 113*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TECHNOLOGY_MASK_B_PRIME 0x10 /* Proprietary Technology */ 114*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TECHNOLOGY_MASK_KOVIO 0x20 /* Proprietary Technology */ 115*7eba2f3bSAndroid Build Coastguard Worker /* NFC technology NFC-DEP protocol active mode */ 116*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TECHNOLOGY_MASK_ACTIVE 0x40 117*7eba2f3bSAndroid Build Coastguard Worker /* NFC Technology A active mode */ 118*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TECHNOLOGY_MASK_A_ACTIVE 0x40 119*7eba2f3bSAndroid Build Coastguard Worker /* NFC Technology F active mode */ 120*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TECHNOLOGY_MASK_F_ACTIVE 0x80 121*7eba2f3bSAndroid Build Coastguard Worker /* All supported technologies */ 122*7eba2f3bSAndroid Build Coastguard Worker typedef uint8_t tNFA_TECHNOLOGY_MASK; 123*7eba2f3bSAndroid Build Coastguard Worker 124*7eba2f3bSAndroid Build Coastguard Worker /* Definitions for NFC protocol for RW, CE and P2P APIs */ 125*7eba2f3bSAndroid Build Coastguard Worker /* Type1Tag - NFC-A */ 126*7eba2f3bSAndroid Build Coastguard Worker #define NFA_PROTOCOL_T1T NFC_PROTOCOL_T1T 127*7eba2f3bSAndroid Build Coastguard Worker /* MIFARE/Type2Tag - NFC-A */ 128*7eba2f3bSAndroid Build Coastguard Worker #define NFA_PROTOCOL_T2T NFC_PROTOCOL_T2T 129*7eba2f3bSAndroid Build Coastguard Worker /* Felica/Type3Tag - NFC-F */ 130*7eba2f3bSAndroid Build Coastguard Worker #define NFA_PROTOCOL_T3T NFC_PROTOCOL_T3T 131*7eba2f3bSAndroid Build Coastguard Worker /* Type 4A,4B - NFC-A or NFC-B */ 132*7eba2f3bSAndroid Build Coastguard Worker #define NFA_PROTOCOL_ISO_DEP NFC_PROTOCOL_ISO_DEP 133*7eba2f3bSAndroid Build Coastguard Worker /* NFCDEP/LLCP - NFC-A or NFC-F */ 134*7eba2f3bSAndroid Build Coastguard Worker #define NFA_PROTOCOL_NFC_DEP NFC_PROTOCOL_NFC_DEP 135*7eba2f3bSAndroid Build Coastguard Worker /* NFC_PROTOCOL_T5T in NCI2.0 and NFC_PROTOCOL_ISO15693 proprietary in NCI1.0*/ 136*7eba2f3bSAndroid Build Coastguard Worker #define NFA_PROTOCOL_T5T NFC_PROTOCOL_T5T 137*7eba2f3bSAndroid Build Coastguard Worker #define NFA_PROTOCOL_CI NFC_PROTOCOL_CI 138*7eba2f3bSAndroid Build Coastguard Worker #define NFA_PROTOCOL_INVALID 0xFF 139*7eba2f3bSAndroid Build Coastguard Worker typedef uint8_t tNFA_NFC_PROTOCOL; 140*7eba2f3bSAndroid Build Coastguard Worker 141*7eba2f3bSAndroid Build Coastguard Worker /* Definitions for tNFA_PROTOCOL_MASK */ 142*7eba2f3bSAndroid Build Coastguard Worker #define NFA_PROTOCOL_MASK_T1T 0x01 /* Type 1 tag */ 143*7eba2f3bSAndroid Build Coastguard Worker #define NFA_PROTOCOL_MASK_T2T 0x02 /* MIFARE / Type 2 tag */ 144*7eba2f3bSAndroid Build Coastguard Worker #define NFA_PROTOCOL_MASK_T3T 0x04 /* FeliCa / Type 3 tag */ 145*7eba2f3bSAndroid Build Coastguard Worker #define NFA_PROTOCOL_MASK_ISO_DEP 0x08 /* ISODEP/4A,4B */ 146*7eba2f3bSAndroid Build Coastguard Worker typedef uint8_t tNFA_PROTOCOL_MASK; 147*7eba2f3bSAndroid Build Coastguard Worker 148*7eba2f3bSAndroid Build Coastguard Worker /* NFA_DM callback events */ 149*7eba2f3bSAndroid Build Coastguard Worker /* Result of NFA_Enable */ 150*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DM_ENABLE_EVT 0 151*7eba2f3bSAndroid Build Coastguard Worker /* Result of NFA_Disable */ 152*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DM_DISABLE_EVT 1 153*7eba2f3bSAndroid Build Coastguard Worker /* Result of NFA_SetConfig */ 154*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DM_SET_CONFIG_EVT 2 155*7eba2f3bSAndroid Build Coastguard Worker /* Result of NFA_GetConfig */ 156*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DM_GET_CONFIG_EVT 3 157*7eba2f3bSAndroid Build Coastguard Worker /* Result of NFA_PowerOffSleepMode */ 158*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DM_PWR_MODE_CHANGE_EVT 4 159*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DM_RF_FIELD_EVT 5 /* Status of RF Field */ 160*7eba2f3bSAndroid Build Coastguard Worker /* NFCC is not responding */ 161*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DM_NFCC_TIMEOUT_EVT 6 162*7eba2f3bSAndroid Build Coastguard Worker /* NCI Tranport error */ 163*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DM_NFCC_TRANSPORT_ERR_EVT 7 164*7eba2f3bSAndroid Build Coastguard Worker /* Result of NFA_SetPowerSubStateForScreenState */ 165*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DM_SET_POWER_SUB_STATE_EVT 11 166*7eba2f3bSAndroid Build Coastguard Worker /* T1T HR length */ 167*7eba2f3bSAndroid Build Coastguard Worker #define NFA_T1T_HR_LEN T1T_HR_LEN 168*7eba2f3bSAndroid Build Coastguard Worker /* Max UID length of T1/T2 */ 169*7eba2f3bSAndroid Build Coastguard Worker #define NFA_MAX_UID_LEN TAG_MAX_UID_LEN 170*7eba2f3bSAndroid Build Coastguard Worker /* UID len for T1T cmds */ 171*7eba2f3bSAndroid Build Coastguard Worker #define NFA_T1T_CMD_UID_LEN T1T_CMD_UID_LEN 172*7eba2f3bSAndroid Build Coastguard Worker /* T2T UID length */ 173*7eba2f3bSAndroid Build Coastguard Worker 174*7eba2f3bSAndroid Build Coastguard Worker /* Tag formated for NDEF */ 175*7eba2f3bSAndroid Build Coastguard Worker #define NFA_RW_NDEF_FL_FORMATED RW_NDEF_FL_FORMATED 176*7eba2f3bSAndroid Build Coastguard Worker /* NDEF supported by the tag */ 177*7eba2f3bSAndroid Build Coastguard Worker #define NFA_RW_NDEF_FL_SUPPORTED RW_NDEF_FL_SUPPORTED 178*7eba2f3bSAndroid Build Coastguard Worker /* Unable to find if tag is ndef capable/formated/read only */ 179*7eba2f3bSAndroid Build Coastguard Worker #define NFA_RW_NDEF_FL_UNKNOWN RW_NDEF_FL_UNKNOWN 180*7eba2f3bSAndroid Build Coastguard Worker /* Tag supports format operation */ 181*7eba2f3bSAndroid Build Coastguard Worker #define NFA_RW_NDEF_FL_FORMATABLE RW_NDEF_FL_FORMATABLE 182*7eba2f3bSAndroid Build Coastguard Worker 183*7eba2f3bSAndroid Build Coastguard Worker typedef uint8_t tNFA_RW_NDEF_FLAG; 184*7eba2f3bSAndroid Build Coastguard Worker 185*7eba2f3bSAndroid Build Coastguard Worker /* Data for NFA_DM_SET_CONFIG_EVT */ 186*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 187*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS status; /* NFA_STATUS_OK if successful */ 188*7eba2f3bSAndroid Build Coastguard Worker uint8_t num_param_id; /* Number of rejected Param ID */ 189*7eba2f3bSAndroid Build Coastguard Worker tNFA_PMID param_ids[NFC_MAX_NUM_IDS]; /* Rejected Param ID */ 190*7eba2f3bSAndroid Build Coastguard Worker } tNFA_SET_CONFIG; 191*7eba2f3bSAndroid Build Coastguard Worker 192*7eba2f3bSAndroid Build Coastguard Worker /* Data for NFA_DM_GET_CONFIG_EVT */ 193*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 194*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS status; /* NFA_STATUS_OK if successful */ 195*7eba2f3bSAndroid Build Coastguard Worker uint16_t tlv_size; /* The length of TLV */ 196*7eba2f3bSAndroid Build Coastguard Worker uint8_t* param_tlvs; /* TLV (Parameter ID-Len-Value byte stream) */ 197*7eba2f3bSAndroid Build Coastguard Worker } tNFA_GET_CONFIG; 198*7eba2f3bSAndroid Build Coastguard Worker 199*7eba2f3bSAndroid Build Coastguard Worker /* Structure to store screen state */ 200*7eba2f3bSAndroid Build Coastguard Worker typedef enum screen_state { 201*7eba2f3bSAndroid Build Coastguard Worker NFA_SCREEN_STATE_UNKNOWN = 0x00, 202*7eba2f3bSAndroid Build Coastguard Worker NFA_SCREEN_STATE_OFF_UNLOCKED = 0x01, 203*7eba2f3bSAndroid Build Coastguard Worker NFA_SCREEN_STATE_OFF_LOCKED = 0x02, 204*7eba2f3bSAndroid Build Coastguard Worker NFA_SCREEN_STATE_ON_LOCKED = 0x04, 205*7eba2f3bSAndroid Build Coastguard Worker NFA_SCREEN_STATE_ON_UNLOCKED = 0x08 206*7eba2f3bSAndroid Build Coastguard Worker } eScreenState_t; 207*7eba2f3bSAndroid Build Coastguard Worker 208*7eba2f3bSAndroid Build Coastguard Worker typedef enum power_substate { 209*7eba2f3bSAndroid Build Coastguard Worker SCREEN_STATE_ON_UNLOCKED = 0x00, 210*7eba2f3bSAndroid Build Coastguard Worker SCREEN_STATE_OFF_UNLOCKED, 211*7eba2f3bSAndroid Build Coastguard Worker SCREEN_STATE_ON_LOCKED, 212*7eba2f3bSAndroid Build Coastguard Worker SCREEN_STATE_OFF_LOCKED, 213*7eba2f3bSAndroid Build Coastguard Worker SCREEN_STATE_INVALID = 0xFF 214*7eba2f3bSAndroid Build Coastguard Worker } epower_substate_t; 215*7eba2f3bSAndroid Build Coastguard Worker 216*7eba2f3bSAndroid Build Coastguard Worker #define NFA_SCREEN_STATE_MASK 0x0F 217*7eba2f3bSAndroid Build Coastguard Worker 218*7eba2f3bSAndroid Build Coastguard Worker /* CONN_DISCOVER_PARAM */ 219*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DM_PWR_MODE_FULL 0x04 220*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DM_PWR_MODE_OFF_SLEEP 0x00 221*7eba2f3bSAndroid Build Coastguard Worker 222*7eba2f3bSAndroid Build Coastguard Worker typedef uint8_t tNFA_DM_PWR_MODE; 223*7eba2f3bSAndroid Build Coastguard Worker 224*7eba2f3bSAndroid Build Coastguard Worker /* Data for NFA_DM_PWR_MODE_CHANGE_EVT */ 225*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 226*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS status; /* NFA_STATUS_OK if successful */ 227*7eba2f3bSAndroid Build Coastguard Worker /* NFA_DM_PWR_MODE_FULL or NFA_DM_PWR_MODE_OFF_SLEEP */ 228*7eba2f3bSAndroid Build Coastguard Worker tNFA_DM_PWR_MODE power_mode; 229*7eba2f3bSAndroid Build Coastguard Worker } tNFA_DM_PWR_MODE_CHANGE; 230*7eba2f3bSAndroid Build Coastguard Worker 231*7eba2f3bSAndroid Build Coastguard Worker /* Data for NFA_DM_RF_FIELD_EVT */ 232*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DM_RF_FIELD_OFF 0x00 233*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DM_RF_FIELD_ON 0x01 234*7eba2f3bSAndroid Build Coastguard Worker 235*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 236*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS status; /* NFA_STATUS_OK if successful */ 237*7eba2f3bSAndroid Build Coastguard Worker /* NFA_DM_RF_FIELD_ON if operating field generated by remote */ 238*7eba2f3bSAndroid Build Coastguard Worker uint8_t rf_field_status; 239*7eba2f3bSAndroid Build Coastguard Worker } tNFA_DM_RF_FIELD; 240*7eba2f3bSAndroid Build Coastguard Worker 241*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 242*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS status; /* NFA_STATUS_OK if successful */ 243*7eba2f3bSAndroid Build Coastguard Worker uint8_t power_state; /* current screen/power state */ 244*7eba2f3bSAndroid Build Coastguard Worker } tNFA_DM_POWER_STATE; 245*7eba2f3bSAndroid Build Coastguard Worker 246*7eba2f3bSAndroid Build Coastguard Worker /* Union of all DM callback structures */ 247*7eba2f3bSAndroid Build Coastguard Worker typedef union { 248*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS status; /* NFA_DM_ENABLE_EVT */ 249*7eba2f3bSAndroid Build Coastguard Worker tNFA_SET_CONFIG set_config; /* NFA_DM_SET_CONFIG_EVT */ 250*7eba2f3bSAndroid Build Coastguard Worker tNFA_GET_CONFIG get_config; /* NFA_DM_GET_CONFIG_EVT */ 251*7eba2f3bSAndroid Build Coastguard Worker tNFA_DM_PWR_MODE_CHANGE power_mode; /* NFA_DM_PWR_MODE_CHANGE_EVT */ 252*7eba2f3bSAndroid Build Coastguard Worker tNFA_DM_RF_FIELD rf_field; /* NFA_DM_RF_FIELD_EVT */ 253*7eba2f3bSAndroid Build Coastguard Worker void* p_vs_evt_data; /* Vendor-specific evt data */ 254*7eba2f3bSAndroid Build Coastguard Worker tNFA_DM_POWER_STATE power_sub_state; /* power sub state */ 255*7eba2f3bSAndroid Build Coastguard Worker } tNFA_DM_CBACK_DATA; 256*7eba2f3bSAndroid Build Coastguard Worker 257*7eba2f3bSAndroid Build Coastguard Worker /* NFA_DM callback */ 258*7eba2f3bSAndroid Build Coastguard Worker typedef void(tNFA_DM_CBACK)(uint8_t event, tNFA_DM_CBACK_DATA* p_data); 259*7eba2f3bSAndroid Build Coastguard Worker 260*7eba2f3bSAndroid Build Coastguard Worker /* NFA Enable DTA Type Mode */ 261*7eba2f3bSAndroid Build Coastguard Worker typedef enum { 262*7eba2f3bSAndroid Build Coastguard Worker NFA_DTA_APPL_MODE = 0x00000000, 263*7eba2f3bSAndroid Build Coastguard Worker NFA_DTA_DEFAULT_MODE = 0x00000001, 264*7eba2f3bSAndroid Build Coastguard Worker NFA_DTA_LLCP_MODE = 0x00000002, 265*7eba2f3bSAndroid Build Coastguard Worker NFA_DTA_HCEF_MODE = 0x00000004, 266*7eba2f3bSAndroid Build Coastguard Worker NFA_DTA_CR8 = 0x00000080, 267*7eba2f3bSAndroid Build Coastguard Worker } tNFA_eDtaModes; 268*7eba2f3bSAndroid Build Coastguard Worker 269*7eba2f3bSAndroid Build Coastguard Worker /* NFA Connection Callback Events */ 270*7eba2f3bSAndroid Build Coastguard Worker #define NFA_POLL_ENABLED_EVT 0 /* Polling enabled event */ 271*7eba2f3bSAndroid Build Coastguard Worker #define NFA_POLL_DISABLED_EVT 1 /* Polling disabled event */ 272*7eba2f3bSAndroid Build Coastguard Worker /* NFC link/protocol discovery notificaiton */ 273*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DISC_RESULT_EVT 2 274*7eba2f3bSAndroid Build Coastguard Worker /* NFC link/protocol discovery select response */ 275*7eba2f3bSAndroid Build Coastguard Worker #define NFA_SELECT_RESULT_EVT 3 276*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DEACTIVATE_FAIL_EVT 4 /* NFA_Deactivate failure */ 277*7eba2f3bSAndroid Build Coastguard Worker /* NFC link/protocol activated */ 278*7eba2f3bSAndroid Build Coastguard Worker #define NFA_ACTIVATED_EVT 5 279*7eba2f3bSAndroid Build Coastguard Worker /* NFC link/protocol deactivated */ 280*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DEACTIVATED_EVT 6 281*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TLV_DETECT_EVT 7 /* TLV Detection complete */ 282*7eba2f3bSAndroid Build Coastguard Worker /* NDEF Detection complete */ 283*7eba2f3bSAndroid Build Coastguard Worker #define NFA_NDEF_DETECT_EVT 8 284*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DATA_EVT 9 /* Data message received */ 285*7eba2f3bSAndroid Build Coastguard Worker #define NFA_SELECT_CPLT_EVT 10 /* Select completed */ 286*7eba2f3bSAndroid Build Coastguard Worker #define NFA_READ_CPLT_EVT 11 /* Read completed */ 287*7eba2f3bSAndroid Build Coastguard Worker #define NFA_WRITE_CPLT_EVT 12 /* Write completed */ 288*7eba2f3bSAndroid Build Coastguard Worker /* Response to NFA_RwPresenceCheck */ 289*7eba2f3bSAndroid Build Coastguard Worker #define NFA_PRESENCE_CHECK_EVT 15 290*7eba2f3bSAndroid Build Coastguard Worker /* Tag Formating completed */ 291*7eba2f3bSAndroid Build Coastguard Worker #define NFA_FORMAT_CPLT_EVT 16 292*7eba2f3bSAndroid Build Coastguard Worker /* ISO 15693 command completed */ 293*7eba2f3bSAndroid Build Coastguard Worker #define NFA_I93_CMD_CPLT_EVT 17 294*7eba2f3bSAndroid Build Coastguard Worker #define NFA_SET_TAG_RO_EVT 18 /* Tag set as Read only */ 295*7eba2f3bSAndroid Build Coastguard Worker /* Result for NFA_RequestExclusiveRfControl */ 296*7eba2f3bSAndroid Build Coastguard Worker #define NFA_EXCLUSIVE_RF_CONTROL_STARTED_EVT 19 297*7eba2f3bSAndroid Build Coastguard Worker /* Result for NFA_ReleaseExclusiveRfControl */ 298*7eba2f3bSAndroid Build Coastguard Worker #define NFA_EXCLUSIVE_RF_CONTROL_STOPPED_EVT 20 299*7eba2f3bSAndroid Build Coastguard Worker /* DH Card emulation: AID or System code reg'd */ 300*7eba2f3bSAndroid Build Coastguard Worker #define NFA_CE_REGISTERED_EVT 21 301*7eba2f3bSAndroid Build Coastguard Worker /* DH Card emulation: AID or System code dereg'd */ 302*7eba2f3bSAndroid Build Coastguard Worker #define NFA_CE_DEREGISTERED_EVT 22 303*7eba2f3bSAndroid Build Coastguard Worker /* DH Card emulation: data received event */ 304*7eba2f3bSAndroid Build Coastguard Worker #define NFA_CE_DATA_EVT 23 305*7eba2f3bSAndroid Build Coastguard Worker /* DH Card emulation: activation event */ 306*7eba2f3bSAndroid Build Coastguard Worker #define NFA_CE_ACTIVATED_EVT 24 307*7eba2f3bSAndroid Build Coastguard Worker /* DH Card emulation: deactivation event */ 308*7eba2f3bSAndroid Build Coastguard Worker #define NFA_CE_DEACTIVATED_EVT 25 309*7eba2f3bSAndroid Build Coastguard Worker /* DH Card emulation: local NDEF configured */ 310*7eba2f3bSAndroid Build Coastguard Worker #define NFA_CE_LOCAL_TAG_CONFIGURED_EVT 26 311*7eba2f3bSAndroid Build Coastguard Worker /* DH Card emulation: NDEF write started */ 312*7eba2f3bSAndroid Build Coastguard Worker #define NFA_CE_NDEF_WRITE_START_EVT 27 313*7eba2f3bSAndroid Build Coastguard Worker /* DH Card emulation: NDEF write completed */ 314*7eba2f3bSAndroid Build Coastguard Worker #define NFA_CE_NDEF_WRITE_CPLT_EVT 28 315*7eba2f3bSAndroid Build Coastguard Worker #define NFA_CE_UICC_LISTEN_CONFIGURED_EVT 29 /* UICC Listen configured */ 316*7eba2f3bSAndroid Build Coastguard Worker /* RF Discovery started event */ 317*7eba2f3bSAndroid Build Coastguard Worker #define NFA_RF_DISCOVERY_STARTED_EVT 30 318*7eba2f3bSAndroid Build Coastguard Worker /* RF Discovery stopped event */ 319*7eba2f3bSAndroid Build Coastguard Worker #define NFA_RF_DISCOVERY_STOPPED_EVT 31 320*7eba2f3bSAndroid Build Coastguard Worker /* status of updating RF communication paramters */ 321*7eba2f3bSAndroid Build Coastguard Worker #define NFA_UPDATE_RF_PARAM_RESULT_EVT 32 322*7eba2f3bSAndroid Build Coastguard Worker /* RF Interface error event */ 323*7eba2f3bSAndroid Build Coastguard Worker #define NFA_RW_INTF_ERROR_EVT 34 324*7eba2f3bSAndroid Build Coastguard Worker /* Listening enabled event */ 325*7eba2f3bSAndroid Build Coastguard Worker #define NFA_LISTEN_ENABLED_EVT 36 326*7eba2f3bSAndroid Build Coastguard Worker /* Listening disabled event */ 327*7eba2f3bSAndroid Build Coastguard Worker #define NFA_LISTEN_DISABLED_EVT 37 328*7eba2f3bSAndroid Build Coastguard Worker /* T2T command completed */ 329*7eba2f3bSAndroid Build Coastguard Worker #define NFA_T2T_CMD_CPLT_EVT 40 330*7eba2f3bSAndroid Build Coastguard Worker 331*7eba2f3bSAndroid Build Coastguard Worker /* NFC deactivation type */ 332*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DEACTIVATE_TYPE_IDLE NFC_DEACTIVATE_TYPE_IDLE 333*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DEACTIVATE_TYPE_SLEEP NFC_DEACTIVATE_TYPE_SLEEP 334*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DEACTIVATE_TYPE_DISCOVERY NFC_DEACTIVATE_TYPE_DISCOVERY 335*7eba2f3bSAndroid Build Coastguard Worker 336*7eba2f3bSAndroid Build Coastguard Worker typedef uint8_t tNFA_DEACTIVATE_TYPE; 337*7eba2f3bSAndroid Build Coastguard Worker 338*7eba2f3bSAndroid Build Coastguard Worker /* Data for NFA_DISC_RESULT_EVT */ 339*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 340*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS status; /* NFA_STATUS_OK if successful */ 341*7eba2f3bSAndroid Build Coastguard Worker tNFC_RESULT_DEVT discovery_ntf; /* RF discovery notification details */ 342*7eba2f3bSAndroid Build Coastguard Worker } tNFA_DISC_RESULT; 343*7eba2f3bSAndroid Build Coastguard Worker 344*7eba2f3bSAndroid Build Coastguard Worker /* Data for NFA_ACTIVATED_EVT */ 345*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 346*7eba2f3bSAndroid Build Coastguard Worker uint8_t hr[NFA_T1T_HR_LEN]; /* HR of Type 1 tag */ 347*7eba2f3bSAndroid Build Coastguard Worker uint8_t uid[NFA_T1T_CMD_UID_LEN]; /* UID used in T1T Commands */ 348*7eba2f3bSAndroid Build Coastguard Worker } tNFA_T1T_PARAMS; 349*7eba2f3bSAndroid Build Coastguard Worker 350*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 351*7eba2f3bSAndroid Build Coastguard Worker uint8_t uid[NFA_MAX_UID_LEN]; /* UID of T2T tag */ 352*7eba2f3bSAndroid Build Coastguard Worker } tNFA_T2T_PARAMS; 353*7eba2f3bSAndroid Build Coastguard Worker 354*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 355*7eba2f3bSAndroid Build Coastguard Worker uint8_t num_system_codes; /* Number of system codes supporte by tag */ 356*7eba2f3bSAndroid Build Coastguard Worker uint16_t* p_system_codes; /* Pointer to list of system codes */ 357*7eba2f3bSAndroid Build Coastguard Worker } tNFA_T3T_PARAMS; 358*7eba2f3bSAndroid Build Coastguard Worker 359*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 360*7eba2f3bSAndroid Build Coastguard Worker uint8_t uid[I93_UID_BYTE_LEN]; /* UID[0]:MSB, ... UID[7]:LSB */ 361*7eba2f3bSAndroid Build Coastguard Worker uint8_t info_flags; /* information flags */ 362*7eba2f3bSAndroid Build Coastguard Worker uint8_t dsfid; /* DSFID if I93_INFO_FLAG_DSFID */ 363*7eba2f3bSAndroid Build Coastguard Worker uint8_t afi; /* AFI if I93_INFO_FLAG_AFI */ 364*7eba2f3bSAndroid Build Coastguard Worker uint16_t num_block; /* number of blocks if I93_INFO_FLAG_MEM_SIZE */ 365*7eba2f3bSAndroid Build Coastguard Worker uint8_t block_size; /* block size in byte if I93_INFO_FLAG_MEM_SIZE */ 366*7eba2f3bSAndroid Build Coastguard Worker uint8_t IC_reference; /* IC Reference if I93_INFO_FLAG_IC_REF */ 367*7eba2f3bSAndroid Build Coastguard Worker } tNFA_I93_PARAMS; 368*7eba2f3bSAndroid Build Coastguard Worker 369*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 370*7eba2f3bSAndroid Build Coastguard Worker uint8_t mbi; 371*7eba2f3bSAndroid Build Coastguard Worker uint8_t uid[8]; /* UID of Chinese Id Card */ 372*7eba2f3bSAndroid Build Coastguard Worker } tNFA_CI_PARAMS; 373*7eba2f3bSAndroid Build Coastguard Worker typedef union { 374*7eba2f3bSAndroid Build Coastguard Worker tNFA_T1T_PARAMS t1t; /* HR and UID of T1T */ 375*7eba2f3bSAndroid Build Coastguard Worker tNFA_T2T_PARAMS t2t; /* UID of T2T */ 376*7eba2f3bSAndroid Build Coastguard Worker tNFA_T3T_PARAMS t3t; /* System codes */ 377*7eba2f3bSAndroid Build Coastguard Worker tNFA_I93_PARAMS i93; /* System Information of ISO 15693 */ 378*7eba2f3bSAndroid Build Coastguard Worker tNFA_CI_PARAMS ci; 379*7eba2f3bSAndroid Build Coastguard Worker } tNFA_TAG_PARAMS; 380*7eba2f3bSAndroid Build Coastguard Worker 381*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 382*7eba2f3bSAndroid Build Coastguard Worker tNFC_ACTIVATE_DEVT activate_ntf; /* RF discovery activation details */ 383*7eba2f3bSAndroid Build Coastguard Worker tNFA_TAG_PARAMS params; /* additional informaiton of tag */ 384*7eba2f3bSAndroid Build Coastguard Worker } tNFA_ACTIVATED; 385*7eba2f3bSAndroid Build Coastguard Worker 386*7eba2f3bSAndroid Build Coastguard Worker /* Data for NFA_DEACTIVATED_EVT */ 387*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 388*7eba2f3bSAndroid Build Coastguard Worker /* NFA_DEACTIVATE_TYPE_IDLE or NFA_DEACTIVATE_TYPE_SLEEP */ 389*7eba2f3bSAndroid Build Coastguard Worker tNFA_DEACTIVATE_TYPE type; 390*7eba2f3bSAndroid Build Coastguard Worker } tNFA_DEACTIVATED; 391*7eba2f3bSAndroid Build Coastguard Worker 392*7eba2f3bSAndroid Build Coastguard Worker /* Structure for NFA_NDEF_DETECT_EVT event data */ 393*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 394*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS status; /* Status of the ndef detecton */ 395*7eba2f3bSAndroid Build Coastguard Worker tNFA_NFC_PROTOCOL protocol; /* protocol used to detect NDEF */ 396*7eba2f3bSAndroid Build Coastguard Worker uint32_t max_size; /* max number of bytes available for NDEF data */ 397*7eba2f3bSAndroid Build Coastguard Worker uint32_t cur_size; /* current size of stored NDEF data (in bytes) */ 398*7eba2f3bSAndroid Build Coastguard Worker /* Flags to indicate NDEF capability, is formated, soft/hard lockable, 399*7eba2f3bSAndroid Build Coastguard Worker * formatable, otp and read only */ 400*7eba2f3bSAndroid Build Coastguard Worker tNFA_RW_NDEF_FLAG flags; 401*7eba2f3bSAndroid Build Coastguard Worker } tNFA_NDEF_DETECT; 402*7eba2f3bSAndroid Build Coastguard Worker 403*7eba2f3bSAndroid Build Coastguard Worker /* Structure for NFA_TLV_DETECT_EVT event data */ 404*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 405*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS status; /* Status of the tlv detecton */ 406*7eba2f3bSAndroid Build Coastguard Worker tNFA_NFC_PROTOCOL protocol; /* protocol used to detect TLV */ 407*7eba2f3bSAndroid Build Coastguard Worker uint8_t num_tlvs; /* number of tlvs present in the tag */ 408*7eba2f3bSAndroid Build Coastguard Worker uint8_t num_bytes; /* number of lock/reserved bytes */ 409*7eba2f3bSAndroid Build Coastguard Worker } tNFA_TLV_DETECT; 410*7eba2f3bSAndroid Build Coastguard Worker 411*7eba2f3bSAndroid Build Coastguard Worker /* Structure for NFA_DATA_EVT data */ 412*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 413*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS status; /* Status of Data received */ 414*7eba2f3bSAndroid Build Coastguard Worker uint8_t* p_data; /* Data buffer */ 415*7eba2f3bSAndroid Build Coastguard Worker uint16_t len; /* Length of data */ 416*7eba2f3bSAndroid Build Coastguard Worker } tNFA_RX_DATA; 417*7eba2f3bSAndroid Build Coastguard Worker 418*7eba2f3bSAndroid Build Coastguard Worker /* Structure for NFA_CE_NDEF_WRITE_CPLT_EVT data */ 419*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 420*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS status; /* Status of the ndef write op */ 421*7eba2f3bSAndroid Build Coastguard Worker uint32_t len; /* Update length of NDEF data */ 422*7eba2f3bSAndroid Build Coastguard Worker uint8_t* p_data; /* data buffer */ 423*7eba2f3bSAndroid Build Coastguard Worker } tNFA_CE_NDEF_WRITE_CPLT; 424*7eba2f3bSAndroid Build Coastguard Worker 425*7eba2f3bSAndroid Build Coastguard Worker /* Data for NFA_I93_CMD_CPLT_EVT */ 426*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 427*7eba2f3bSAndroid Build Coastguard Worker uint8_t dsfid; /* DSFID */ 428*7eba2f3bSAndroid Build Coastguard Worker uint8_t uid[I93_UID_BYTE_LEN]; /* UID[0]:MSB, ... UID[7]:LSB */ 429*7eba2f3bSAndroid Build Coastguard Worker } tNFA_I93_INVENTORY; 430*7eba2f3bSAndroid Build Coastguard Worker 431*7eba2f3bSAndroid Build Coastguard Worker typedef struct /* RW_I93_SYS_INFO_EVT */ 432*7eba2f3bSAndroid Build Coastguard Worker { 433*7eba2f3bSAndroid Build Coastguard Worker uint8_t info_flags; /* information flags */ 434*7eba2f3bSAndroid Build Coastguard Worker uint8_t uid[I93_UID_BYTE_LEN]; /* UID */ 435*7eba2f3bSAndroid Build Coastguard Worker uint8_t dsfid; /* DSFID if I93_INFO_FLAG_DSFID */ 436*7eba2f3bSAndroid Build Coastguard Worker uint8_t afi; /* AFI if I93_INFO_FLAG_AFI */ 437*7eba2f3bSAndroid Build Coastguard Worker uint16_t num_block; /* number of blocks if I93_INFO_FLAG_MEM_SIZE */ 438*7eba2f3bSAndroid Build Coastguard Worker uint8_t block_size; /* block size in byte if I93_INFO_FLAG_MEM_SIZE */ 439*7eba2f3bSAndroid Build Coastguard Worker uint8_t IC_reference; /* IC Reference if I93_INFO_FLAG_IC_REF */ 440*7eba2f3bSAndroid Build Coastguard Worker } tNFA_I93_SYS_INFO; 441*7eba2f3bSAndroid Build Coastguard Worker 442*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 443*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS status; /* Status of sending command */ 444*7eba2f3bSAndroid Build Coastguard Worker uint8_t sent_command; /* sent command to tag */ 445*7eba2f3bSAndroid Build Coastguard Worker union { 446*7eba2f3bSAndroid Build Coastguard Worker uint8_t error_code; /* error code defined in ISO 15693 */ 447*7eba2f3bSAndroid Build Coastguard Worker tNFA_I93_INVENTORY inventory; /* inventory response */ 448*7eba2f3bSAndroid Build Coastguard Worker tNFA_I93_SYS_INFO sys_info; /* system information */ 449*7eba2f3bSAndroid Build Coastguard Worker } params; 450*7eba2f3bSAndroid Build Coastguard Worker } tNFA_I93_CMD_CPLT; 451*7eba2f3bSAndroid Build Coastguard Worker 452*7eba2f3bSAndroid Build Coastguard Worker /* Data for NFA_CE_REGISTERED_EVT */ 453*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 454*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS status; /* NFA_STATUS_OK if successful */ 455*7eba2f3bSAndroid Build Coastguard Worker tNFA_HANDLE handle; /* handle for NFA_CeRegisterFelicaSystemCodeOnDH () */ 456*7eba2f3bSAndroid Build Coastguard Worker /* NFA_CeRegisterT4tAidOnDH () */ 457*7eba2f3bSAndroid Build Coastguard Worker } tNFA_CE_REGISTERED; 458*7eba2f3bSAndroid Build Coastguard Worker 459*7eba2f3bSAndroid Build Coastguard Worker /* Data for NFA_CE_DEREGISTERED_EVT */ 460*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 461*7eba2f3bSAndroid Build Coastguard Worker tNFA_HANDLE handle; /* handle from NFA_CE_REGISTERED_EVT */ 462*7eba2f3bSAndroid Build Coastguard Worker } tNFA_CE_DEREGISTERED; 463*7eba2f3bSAndroid Build Coastguard Worker 464*7eba2f3bSAndroid Build Coastguard Worker /* Data for NFA_CE_ACTIVATED_EVT */ 465*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 466*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS status; /* NFA_STATUS_OK if successful */ 467*7eba2f3bSAndroid Build Coastguard Worker tNFA_HANDLE handle; /* handle from NFA_CE_REGISTERED_EVT */ 468*7eba2f3bSAndroid Build Coastguard Worker tNFC_ACTIVATE_DEVT activate_ntf; /* RF discovery activation details */ 469*7eba2f3bSAndroid Build Coastguard Worker } tNFA_CE_ACTIVATED; 470*7eba2f3bSAndroid Build Coastguard Worker 471*7eba2f3bSAndroid Build Coastguard Worker /* Data for NFA_CE_DEACTIVATED_EVT */ 472*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 473*7eba2f3bSAndroid Build Coastguard Worker tNFA_HANDLE handle; /* handle from NFA_CE_REGISTERED_EVT */ 474*7eba2f3bSAndroid Build Coastguard Worker /* NFA_DEACTIVATE_TYPE_IDLE or NFA_DEACTIVATE_TYPE_SLEEP */ 475*7eba2f3bSAndroid Build Coastguard Worker tNFA_DEACTIVATE_TYPE type; 476*7eba2f3bSAndroid Build Coastguard Worker } tNFA_CE_DEACTIVATED; 477*7eba2f3bSAndroid Build Coastguard Worker 478*7eba2f3bSAndroid Build Coastguard Worker /* Structure for NFA_CE_DATA_EVT data */ 479*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 480*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS status; /* NFA_STATUS_OK if complete packet */ 481*7eba2f3bSAndroid Build Coastguard Worker tNFA_HANDLE handle; /* handle from NFA_CE_REGISTERED_EVT */ 482*7eba2f3bSAndroid Build Coastguard Worker uint8_t* p_data; /* Data buffer */ 483*7eba2f3bSAndroid Build Coastguard Worker uint16_t len; /* Length of data */ 484*7eba2f3bSAndroid Build Coastguard Worker } tNFA_CE_DATA; 485*7eba2f3bSAndroid Build Coastguard Worker 486*7eba2f3bSAndroid Build Coastguard Worker /* Union of all connection callback structures */ 487*7eba2f3bSAndroid Build Coastguard Worker typedef union { 488*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS status; /* NFA_POLL_ENABLED_EVT */ 489*7eba2f3bSAndroid Build Coastguard Worker tNFA_DISC_RESULT disc_result; /* NFA_DISC_RESULT_EVT */ 490*7eba2f3bSAndroid Build Coastguard Worker tNFA_ACTIVATED activated; /* NFA_ACTIVATED_EVT */ 491*7eba2f3bSAndroid Build Coastguard Worker tNFA_DEACTIVATED deactivated; /* NFA_DEACTIVATED_EVT */ 492*7eba2f3bSAndroid Build Coastguard Worker tNFA_NDEF_DETECT ndef_detect; /* NFA_NDEF_DETECT_EVT */ 493*7eba2f3bSAndroid Build Coastguard Worker tNFA_TLV_DETECT tlv_detect; /* NFA_TLV_DETECT_EVT */ 494*7eba2f3bSAndroid Build Coastguard Worker tNFA_RX_DATA data; /* NFA_DATA_EVT */ 495*7eba2f3bSAndroid Build Coastguard Worker tNFA_CE_NDEF_WRITE_CPLT ndef_write_cplt; /* NFA_CE_NDEF_WRITE_CPLT_EVT */ 496*7eba2f3bSAndroid Build Coastguard Worker tNFA_I93_CMD_CPLT i93_cmd_cplt; /* NFA_I93_CMD_CPLT_EVT */ 497*7eba2f3bSAndroid Build Coastguard Worker tNFA_CE_REGISTERED ce_registered; /* NFA_CE_REGISTERED_EVT */ 498*7eba2f3bSAndroid Build Coastguard Worker tNFA_CE_DEREGISTERED ce_deregistered; /* NFA_CE_DEREGISTERED_EVT */ 499*7eba2f3bSAndroid Build Coastguard Worker tNFA_CE_ACTIVATED ce_activated; /* NFA_CE_ACTIVATED_EVT */ 500*7eba2f3bSAndroid Build Coastguard Worker tNFA_CE_DEACTIVATED ce_deactivated; /* NFA_CE_DEACTIVATED_EVT */ 501*7eba2f3bSAndroid Build Coastguard Worker tNFA_CE_DATA ce_data; /* NFA_CE_DATA_EVT */ 502*7eba2f3bSAndroid Build Coastguard Worker 503*7eba2f3bSAndroid Build Coastguard Worker } tNFA_CONN_EVT_DATA; 504*7eba2f3bSAndroid Build Coastguard Worker 505*7eba2f3bSAndroid Build Coastguard Worker /* NFA Connection Callback */ 506*7eba2f3bSAndroid Build Coastguard Worker typedef void(tNFA_CONN_CBACK)(uint8_t event, tNFA_CONN_EVT_DATA* p_data); 507*7eba2f3bSAndroid Build Coastguard Worker 508*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFA_DM_NUM_INTERFACE_MAP 509*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DM_NUM_INTERFACE_MAP 3 510*7eba2f3bSAndroid Build Coastguard Worker #endif 511*7eba2f3bSAndroid Build Coastguard Worker 512*7eba2f3bSAndroid Build Coastguard Worker /* compile-time configuration structure for the RF Discovery Frequency for each 513*7eba2f3bSAndroid Build Coastguard Worker * technology */ 514*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 515*7eba2f3bSAndroid Build Coastguard Worker uint8_t pa; /* Frequency for NFC Technology A */ 516*7eba2f3bSAndroid Build Coastguard Worker uint8_t pb; /* Frequency for NFC Technology B */ 517*7eba2f3bSAndroid Build Coastguard Worker uint8_t pf; /* Frequency for NFC Technology F */ 518*7eba2f3bSAndroid Build Coastguard Worker uint8_t pi93; /* Frequency for Proprietary Technology/15693 */ 519*7eba2f3bSAndroid Build Coastguard Worker uint8_t pbp; /* Frequency for Proprietary Technology/B-Prime */ 520*7eba2f3bSAndroid Build Coastguard Worker uint8_t pk; /* Frequency for Proprietary Technology/Kovio */ 521*7eba2f3bSAndroid Build Coastguard Worker uint8_t paa; /* Frequency for NFC Technology A active mode */ 522*7eba2f3bSAndroid Build Coastguard Worker uint8_t pfa; /* Frequency for NFC Technology F active mode */ 523*7eba2f3bSAndroid Build Coastguard Worker uint8_t pacm; /* Frequency for NFC Technology active mode */ 524*7eba2f3bSAndroid Build Coastguard Worker } tNFA_DM_DISC_FREQ_CFG; 525*7eba2f3bSAndroid Build Coastguard Worker 526*7eba2f3bSAndroid Build Coastguard Worker /* definitions for tNFA_DM_CFG.presence_check_option */ 527*7eba2f3bSAndroid Build Coastguard Worker /* if NDEF is not supported by the tag, use sleep/wake(last interface) */ 528*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DM_PCO_ISO_SLEEP_WAKE 0x01 529*7eba2f3bSAndroid Build Coastguard Worker /* NFA_SendRawFrame() has been used, use empty I block for presence check 530*7eba2f3bSAndroid Build Coastguard Worker * if this bit is not set, use read-binary on channel 3 for presence check */ 531*7eba2f3bSAndroid Build Coastguard Worker #define NFA_DM_PCO_EMPTY_I_BLOCK 0x02 532*7eba2f3bSAndroid Build Coastguard Worker 533*7eba2f3bSAndroid Build Coastguard Worker /* compile-time configuration structure */ 534*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 535*7eba2f3bSAndroid Build Coastguard Worker /* Automatic NDEF detection (when not in exclusive RF mode) */ 536*7eba2f3bSAndroid Build Coastguard Worker bool auto_detect_ndef; 537*7eba2f3bSAndroid Build Coastguard Worker /* Automatic NDEF read (when not in exclusive RF mode) */ 538*7eba2f3bSAndroid Build Coastguard Worker bool auto_read_ndef; 539*7eba2f3bSAndroid Build Coastguard Worker /* Automatic presence check */ 540*7eba2f3bSAndroid Build Coastguard Worker bool auto_presence_check; 541*7eba2f3bSAndroid Build Coastguard Worker /* Use sleep/wake(last interface) for ISODEP presence check */ 542*7eba2f3bSAndroid Build Coastguard Worker uint8_t presence_check_option; 543*7eba2f3bSAndroid Build Coastguard Worker /* Maximum time to wait for presence check response */ 544*7eba2f3bSAndroid Build Coastguard Worker uint16_t presence_check_timeout; 545*7eba2f3bSAndroid Build Coastguard Worker /* timeout for rf deactivate in rf listen active state */ 546*7eba2f3bSAndroid Build Coastguard Worker uint16_t deact_ntf_listen_active_timeout; 547*7eba2f3bSAndroid Build Coastguard Worker } tNFA_DM_CFG; 548*7eba2f3bSAndroid Build Coastguard Worker 549*7eba2f3bSAndroid Build Coastguard Worker /* compile-time configuration structure for HCI */ 550*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 551*7eba2f3bSAndroid Build Coastguard Worker /* Maximum idle(no HCP Pkt) time to wait for EE DISC REQ Ntf(s) */ 552*7eba2f3bSAndroid Build Coastguard Worker uint16_t hci_netwk_enable_timeout; 553*7eba2f3bSAndroid Build Coastguard Worker /* Maximum time to wait for EE DISC REQ NTF(s) after HOT PLUG EVT(s) */ 554*7eba2f3bSAndroid Build Coastguard Worker uint16_t hcp_response_timeout; 555*7eba2f3bSAndroid Build Coastguard Worker /* Number of host in the allowlist of Terminal host */ 556*7eba2f3bSAndroid Build Coastguard Worker uint8_t num_allowlist_host; 557*7eba2f3bSAndroid Build Coastguard Worker /* Allowlist of Terminal Host */ 558*7eba2f3bSAndroid Build Coastguard Worker uint8_t* p_allowlist; 559*7eba2f3bSAndroid Build Coastguard Worker } tNFA_HCI_CFG; 560*7eba2f3bSAndroid Build Coastguard Worker 561*7eba2f3bSAndroid Build Coastguard Worker /* 562*7eba2f3bSAndroid Build Coastguard Worker ** Exclusive RF mode listen configuration 563*7eba2f3bSAndroid Build Coastguard Worker */ 564*7eba2f3bSAndroid Build Coastguard Worker 565*7eba2f3bSAndroid Build Coastguard Worker #define NFA_LB_MAX_NFCID0_LEN 4 566*7eba2f3bSAndroid Build Coastguard Worker #define NFA_LF_MAX_SC_NFCID2 1 567*7eba2f3bSAndroid Build Coastguard Worker #define NFA_LA_MAX_HIST_BYTES 15 568*7eba2f3bSAndroid Build Coastguard Worker #define NFA_LB_MAX_H_INFO_LEN 15 569*7eba2f3bSAndroid Build Coastguard Worker 570*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 571*7eba2f3bSAndroid Build Coastguard Worker /* 572*7eba2f3bSAndroid Build Coastguard Worker ** Discovery Configuration Parameters for Listen A 573*7eba2f3bSAndroid Build Coastguard Worker */ 574*7eba2f3bSAndroid Build Coastguard Worker bool la_enable; /* TRUE if listening A */ 575*7eba2f3bSAndroid Build Coastguard Worker uint8_t la_bit_frame_sdd; /* Bit Frame SDD in Byte 1 of SENS_RES */ 576*7eba2f3bSAndroid Build Coastguard Worker uint8_t la_platform_config; /* Platform Config in Byte 2 of SENS_RES */ 577*7eba2f3bSAndroid Build Coastguard Worker uint8_t la_sel_info; /* Byte of SEL_RES */ 578*7eba2f3bSAndroid Build Coastguard Worker uint8_t la_nfcid1_len; /* NFCID1 (0, 4, 7 or 10 bytes) */ 579*7eba2f3bSAndroid Build Coastguard Worker uint8_t la_nfcid1[NCI_NFCID1_MAX_LEN]; /* if empty, NFCC will decide */ 580*7eba2f3bSAndroid Build Coastguard Worker 581*7eba2f3bSAndroid Build Coastguard Worker /* 582*7eba2f3bSAndroid Build Coastguard Worker ** Discovery Configuration Parameters for Listen B 583*7eba2f3bSAndroid Build Coastguard Worker */ 584*7eba2f3bSAndroid Build Coastguard Worker bool lb_enable; /* TRUE if listening B */ 585*7eba2f3bSAndroid Build Coastguard Worker uint8_t lb_sensb_info; /* Byte 2 of Protocol Info within SENSB_RES */ 586*7eba2f3bSAndroid Build Coastguard Worker uint8_t lb_nfcid0_len; /* NFCID0 (0, 1 or 4 bytes) */ 587*7eba2f3bSAndroid Build Coastguard Worker uint8_t 588*7eba2f3bSAndroid Build Coastguard Worker lb_nfcid0[NFA_LB_MAX_NFCID0_LEN]; /* if empty, NFCC will decide */ 589*7eba2f3bSAndroid Build Coastguard Worker uint8_t lb_app_data[NCI_PARAM_LEN_LB_APPDATA]; /* Bytes 6 - 9 in SENSB_RES */ 590*7eba2f3bSAndroid Build Coastguard Worker uint8_t lb_sfgi; /* Start-Up Frame Guard Time */ 591*7eba2f3bSAndroid Build Coastguard Worker uint8_t lb_adc_fo; /* Byte 12 in SENSB_RES */ 592*7eba2f3bSAndroid Build Coastguard Worker 593*7eba2f3bSAndroid Build Coastguard Worker /* 594*7eba2f3bSAndroid Build Coastguard Worker ** Discovery Configuration Parameters for Listen F 595*7eba2f3bSAndroid Build Coastguard Worker */ 596*7eba2f3bSAndroid Build Coastguard Worker bool lf_enable; /* TRUE if listening F */ 597*7eba2f3bSAndroid Build Coastguard Worker uint8_t lf_con_bitr_f; /* bit rate to listen */ 598*7eba2f3bSAndroid Build Coastguard Worker uint8_t lf_protocol_type; /* Supported Protocols */ 599*7eba2f3bSAndroid Build Coastguard Worker /* bit field indicating which lf_t3t_identifier are enabled */ 600*7eba2f3bSAndroid Build Coastguard Worker uint16_t lf_t3t_flags; 601*7eba2f3bSAndroid Build Coastguard Worker uint8_t lf_t3t_identifier[NFA_LF_MAX_SC_NFCID2] 602*7eba2f3bSAndroid Build Coastguard Worker [NCI_SYSTEMCODE_LEN + NCI_NFCID2_LEN]; 603*7eba2f3bSAndroid Build Coastguard Worker /* System Code and NFCID2 */ 604*7eba2f3bSAndroid Build Coastguard Worker uint8_t lf_t3t_pmm[NCI_T3T_PMM_LEN]; /* Bytes 10 - 17 in SENSF_RES */ 605*7eba2f3bSAndroid Build Coastguard Worker 606*7eba2f3bSAndroid Build Coastguard Worker /* 607*7eba2f3bSAndroid Build Coastguard Worker ** Discovery Configuration Parameters for Listen ISO-DEP 608*7eba2f3bSAndroid Build Coastguard Worker */ 609*7eba2f3bSAndroid Build Coastguard Worker bool li_enable; /* TRUE if listening ISO-DEP */ 610*7eba2f3bSAndroid Build Coastguard Worker uint8_t li_fwi; /* Frame Waiting Time Integer */ 611*7eba2f3bSAndroid Build Coastguard Worker uint8_t la_hist_bytes_len; /* historical bytes for Listen-A */ 612*7eba2f3bSAndroid Build Coastguard Worker uint8_t la_hist_bytes[NFA_LA_MAX_HIST_BYTES]; 613*7eba2f3bSAndroid Build Coastguard Worker uint8_t lb_h_info_resp_len; /* higher layer response for Listen-B */ 614*7eba2f3bSAndroid Build Coastguard Worker uint8_t lb_h_info_resp[NFA_LB_MAX_H_INFO_LEN]; 615*7eba2f3bSAndroid Build Coastguard Worker 616*7eba2f3bSAndroid Build Coastguard Worker /* 617*7eba2f3bSAndroid Build Coastguard Worker ** Discovery Configuration Parameters for Listen NFC-DEP 618*7eba2f3bSAndroid Build Coastguard Worker */ 619*7eba2f3bSAndroid Build Coastguard Worker bool ln_enable; /* TRUE if listening NFC-DEP */ 620*7eba2f3bSAndroid Build Coastguard Worker uint8_t ln_wt; /* Waiting Time Integer */ 621*7eba2f3bSAndroid Build Coastguard Worker uint8_t ln_atr_res_gen_bytes_len; /* General bytes in ATR_RES */ 622*7eba2f3bSAndroid Build Coastguard Worker uint8_t ln_atr_res_gen_bytes[NCI_MAX_GEN_BYTES_LEN]; 623*7eba2f3bSAndroid Build Coastguard Worker uint8_t ln_atr_res_config; /* Optional parameters (PPt) in ATR_RES */ 624*7eba2f3bSAndroid Build Coastguard Worker } tNFA_LISTEN_CFG; 625*7eba2f3bSAndroid Build Coastguard Worker 626*7eba2f3bSAndroid Build Coastguard Worker /* Data for NFA_UpdateRFCommParams () */ 627*7eba2f3bSAndroid Build Coastguard Worker typedef tNFC_RF_COMM_PARAMS tNFA_RF_COMM_PARAMS; 628*7eba2f3bSAndroid Build Coastguard Worker 629*7eba2f3bSAndroid Build Coastguard Worker /* RF Interface type */ 630*7eba2f3bSAndroid Build Coastguard Worker #define NFA_INTERFACE_FRAME NFC_INTERFACE_FRAME 631*7eba2f3bSAndroid Build Coastguard Worker #define NFA_INTERFACE_ISO_DEP NFC_INTERFACE_ISO_DEP 632*7eba2f3bSAndroid Build Coastguard Worker #define NFA_INTERFACE_MIFARE NFC_INTERFACE_MIFARE 633*7eba2f3bSAndroid Build Coastguard Worker typedef tNFC_INTF_TYPE tNFA_INTF_TYPE; 634*7eba2f3bSAndroid Build Coastguard Worker 635*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 636*7eba2f3bSAndroid Build Coastguard Worker ** NDEF Definitions 637*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 638*7eba2f3bSAndroid Build Coastguard Worker 639*7eba2f3bSAndroid Build Coastguard Worker /* Definitions for tNFA_TNF (NDEF type name format ID) */ 640*7eba2f3bSAndroid Build Coastguard Worker /* Empty or no type specified */ 641*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TNF_EMPTY NDEF_TNF_EMPTY 642*7eba2f3bSAndroid Build Coastguard Worker /* NFC Forum well-known type [NFC RTD] */ 643*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TNF_WKT NDEF_TNF_WKT 644*7eba2f3bSAndroid Build Coastguard Worker /* Media-type as defined in RFC 2046 [RFC 2046] */ 645*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TNF_RFC2046_MEDIA NDEF_TNF_MEDIA 646*7eba2f3bSAndroid Build Coastguard Worker /* Absolute URI as defined in RFC 3986 [RFC 3986] */ 647*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TNF_RFC3986_URI NDEF_TNF_URI 648*7eba2f3bSAndroid Build Coastguard Worker /* NFC Forum external type [NFC RTD] */ 649*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TNF_EXTERNAL NDEF_TNF_EXT 650*7eba2f3bSAndroid Build Coastguard Worker /* Unknown */ 651*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TNF_UNKNOWN NDEF_TNF_UNKNOWN 652*7eba2f3bSAndroid Build Coastguard Worker /* Unchanged */ 653*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TNF_UNCHANGED NDEF_TNF_UNCHANGED 654*7eba2f3bSAndroid Build Coastguard Worker /* Reserved */ 655*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TNF_RESERVED NDEF_TNF_RESERVED 656*7eba2f3bSAndroid Build Coastguard Worker /* Used to register default NDEF type handler */ 657*7eba2f3bSAndroid Build Coastguard Worker #define NFA_TNF_DEFAULT 0xFF 658*7eba2f3bSAndroid Build Coastguard Worker typedef uint8_t tNFA_TNF; 659*7eba2f3bSAndroid Build Coastguard Worker 660*7eba2f3bSAndroid Build Coastguard Worker /* Definitions for tNFA_NDEF_URI_ID (Frequently used prefixes. For additional 661*7eba2f3bSAndroid Build Coastguard Worker * values, see [NFC RTD URI] */ 662*7eba2f3bSAndroid Build Coastguard Worker #define NFA_NDEF_URI_ID_ABSOLUTE 0x00 /* Unabridged URI. */ 663*7eba2f3bSAndroid Build Coastguard Worker #define NFA_NDEF_URI_ID_HTTP 0x03 /* http:// */ 664*7eba2f3bSAndroid Build Coastguard Worker #define NFA_NDEF_URI_ID_HTTPS 0x04 /* https:// */ 665*7eba2f3bSAndroid Build Coastguard Worker #define NFA_NDEF_URI_ID_TEL 0x05 /* tel: */ 666*7eba2f3bSAndroid Build Coastguard Worker #define NFA_NDEF_URI_ID_MAILTO 0x06 /* mailto: */ 667*7eba2f3bSAndroid Build Coastguard Worker #define NFA_NDEF_URI_ID_FTP 0x0D /* ftp:// */ 668*7eba2f3bSAndroid Build Coastguard Worker #define NFA_NDEF_URI_ID_FILE 0x1D /* file:// */ 669*7eba2f3bSAndroid Build Coastguard Worker 670*7eba2f3bSAndroid Build Coastguard Worker typedef uint8_t tNFA_NDEF_URI_ID; 671*7eba2f3bSAndroid Build Coastguard Worker 672*7eba2f3bSAndroid Build Coastguard Worker /* Events for tNFA_NDEF_CBACK */ 673*7eba2f3bSAndroid Build Coastguard Worker /* NDEF record type registered. (In response to NFA_RegisterNDefTypeHandler) */ 674*7eba2f3bSAndroid Build Coastguard Worker #define NFA_NDEF_REGISTER_EVT 0 675*7eba2f3bSAndroid Build Coastguard Worker /* Received an NDEF message with the registered type. See [tNFA_NDEF_DATA] */ 676*7eba2f3bSAndroid Build Coastguard Worker #define NFA_NDEF_DATA_EVT 1 677*7eba2f3bSAndroid Build Coastguard Worker typedef uint8_t tNFA_NDEF_EVT; 678*7eba2f3bSAndroid Build Coastguard Worker 679*7eba2f3bSAndroid Build Coastguard Worker /* Structure for NFA_NDEF_REGISTER_EVT event data */ 680*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 681*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS status; /* Status of the registration */ 682*7eba2f3bSAndroid Build Coastguard Worker tNFA_HANDLE ndef_type_handle; /* Handle for this NDEF type registration. */ 683*7eba2f3bSAndroid Build Coastguard Worker } tNFA_NDEF_REGISTER; 684*7eba2f3bSAndroid Build Coastguard Worker 685*7eba2f3bSAndroid Build Coastguard Worker /* Structure for NFA_NDEF_DATA_EVT event data */ 686*7eba2f3bSAndroid Build Coastguard Worker typedef struct { 687*7eba2f3bSAndroid Build Coastguard Worker tNFA_HANDLE ndef_type_handle; /* Handle for NDEF type registration. */ 688*7eba2f3bSAndroid Build Coastguard Worker uint8_t* p_data; /* Data buffer */ 689*7eba2f3bSAndroid Build Coastguard Worker uint32_t len; /* Length of data */ 690*7eba2f3bSAndroid Build Coastguard Worker } tNFA_NDEF_DATA; 691*7eba2f3bSAndroid Build Coastguard Worker 692*7eba2f3bSAndroid Build Coastguard Worker /* Union of all NDEF callback structures */ 693*7eba2f3bSAndroid Build Coastguard Worker typedef union { 694*7eba2f3bSAndroid Build Coastguard Worker /* Structure for NFA_NDEF_REGISTER_EVT event data */ 695*7eba2f3bSAndroid Build Coastguard Worker tNFA_NDEF_REGISTER ndef_reg; 696*7eba2f3bSAndroid Build Coastguard Worker /* Structure for NFA_NDEF_DATA_EVT event data */ 697*7eba2f3bSAndroid Build Coastguard Worker tNFA_NDEF_DATA ndef_data; 698*7eba2f3bSAndroid Build Coastguard Worker } tNFA_NDEF_EVT_DATA; 699*7eba2f3bSAndroid Build Coastguard Worker 700*7eba2f3bSAndroid Build Coastguard Worker /* NFA_NDEF callback */ 701*7eba2f3bSAndroid Build Coastguard Worker typedef void(tNFA_NDEF_CBACK)(tNFA_NDEF_EVT event, tNFA_NDEF_EVT_DATA* p_data); 702*7eba2f3bSAndroid Build Coastguard Worker 703*7eba2f3bSAndroid Build Coastguard Worker /* NFA VSC Callback */ 704*7eba2f3bSAndroid Build Coastguard Worker typedef void(tNFA_VSC_CBACK)(uint8_t event, uint16_t param_len, 705*7eba2f3bSAndroid Build Coastguard Worker uint8_t* p_param); 706*7eba2f3bSAndroid Build Coastguard Worker /* Modes used by setNfcControllerAlwaysOn */ 707*7eba2f3bSAndroid Build Coastguard Worker #define ENABLE_MODE_DEFAULT 1 708*7eba2f3bSAndroid Build Coastguard Worker #define ENABLE_MODE_TRANSPARENT 2 709*7eba2f3bSAndroid Build Coastguard Worker #define ENABLE_MODE_EE 3 710*7eba2f3bSAndroid Build Coastguard Worker 711*7eba2f3bSAndroid Build Coastguard Worker /***************************************************************************** 712*7eba2f3bSAndroid Build Coastguard Worker ** External Function Declarations 713*7eba2f3bSAndroid Build Coastguard Worker *****************************************************************************/ 714*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 715*7eba2f3bSAndroid Build Coastguard Worker ** 716*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_SetNfccMode 717*7eba2f3bSAndroid Build Coastguard Worker ** 718*7eba2f3bSAndroid Build Coastguard Worker ** Description This function sets the control blocks nfcc mode 719*7eba2f3bSAndroid Build Coastguard Worker ** 720*7eba2f3bSAndroid Build Coastguard Worker ** mode ENABLE_MODE_DEFAULT or ENABLE_MODE_TRANSPARENT 721*7eba2f3bSAndroid Build Coastguard Worker ** or ENABLE_MODE_EE 722*7eba2f3bSAndroid Build Coastguard Worker ** 723*7eba2f3bSAndroid Build Coastguard Worker ** Returns none 724*7eba2f3bSAndroid Build Coastguard Worker ** 725*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 726*7eba2f3bSAndroid Build Coastguard Worker extern void NFA_SetNfccMode(uint8_t mode); 727*7eba2f3bSAndroid Build Coastguard Worker 728*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 729*7eba2f3bSAndroid Build Coastguard Worker ** 730*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_Init 731*7eba2f3bSAndroid Build Coastguard Worker ** 732*7eba2f3bSAndroid Build Coastguard Worker ** Description This function initializes control blocks for NFA 733*7eba2f3bSAndroid Build Coastguard Worker ** 734*7eba2f3bSAndroid Build Coastguard Worker ** p_hal_entry_tbl points to a table of HAL entry points 735*7eba2f3bSAndroid Build Coastguard Worker ** 736*7eba2f3bSAndroid Build Coastguard Worker ** NOTE: the buffer that p_hal_entry_tbl points must be 737*7eba2f3bSAndroid Build Coastguard Worker ** persistent until NFA is disabled. 738*7eba2f3bSAndroid Build Coastguard Worker ** 739*7eba2f3bSAndroid Build Coastguard Worker ** 740*7eba2f3bSAndroid Build Coastguard Worker ** Returns none 741*7eba2f3bSAndroid Build Coastguard Worker ** 742*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 743*7eba2f3bSAndroid Build Coastguard Worker extern void NFA_Init(tHAL_NFC_ENTRY* p_hal_entry_tbl); 744*7eba2f3bSAndroid Build Coastguard Worker 745*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 746*7eba2f3bSAndroid Build Coastguard Worker ** 747*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_Partial_Init 748*7eba2f3bSAndroid Build Coastguard Worker ** 749*7eba2f3bSAndroid Build Coastguard Worker ** Description This function initializes control blocks for NFA based on 750*7eba2f3bSAndroid Build Coastguard Worker ** mode 751*7eba2f3bSAndroid Build Coastguard Worker ** 752*7eba2f3bSAndroid Build Coastguard Worker ** p_hal_entry_tbl points to a table of HAL entry points 753*7eba2f3bSAndroid Build Coastguard Worker ** mode ENABLE_MODE_DEFAULT or ENABLE_MODE_TRANSPARENT 754*7eba2f3bSAndroid Build Coastguard Worker ** or ENABLE_MODE_EE 755*7eba2f3bSAndroid Build Coastguard Worker ** 756*7eba2f3bSAndroid Build Coastguard Worker ** NOTE: the buffer that p_hal_entry_tbl points must be 757*7eba2f3bSAndroid Build Coastguard Worker ** persistent until NFA is disabled. 758*7eba2f3bSAndroid Build Coastguard Worker ** 759*7eba2f3bSAndroid Build Coastguard Worker ** 760*7eba2f3bSAndroid Build Coastguard Worker ** Returns none 761*7eba2f3bSAndroid Build Coastguard Worker ** 762*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 763*7eba2f3bSAndroid Build Coastguard Worker extern void NFA_Partial_Init(tHAL_NFC_ENTRY* p_hal_entry_tbl, uint8_t mode); 764*7eba2f3bSAndroid Build Coastguard Worker 765*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 766*7eba2f3bSAndroid Build Coastguard Worker ** 767*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_Enable 768*7eba2f3bSAndroid Build Coastguard Worker ** 769*7eba2f3bSAndroid Build Coastguard Worker ** Description This function enables NFC. Prior to calling NFA_Enable, 770*7eba2f3bSAndroid Build Coastguard Worker ** the NFCC must be powered up, and ready to receive commands. 771*7eba2f3bSAndroid Build Coastguard Worker ** This function enables the tasks needed by NFC, opens the NCI 772*7eba2f3bSAndroid Build Coastguard Worker ** transport, resets the NFC controller, downloads patches to 773*7eba2f3bSAndroid Build Coastguard Worker ** the NFCC (if necessary), and initializes the NFC subsystems. 774*7eba2f3bSAndroid Build Coastguard Worker ** 775*7eba2f3bSAndroid Build Coastguard Worker ** This function should only be called once - typically when 776*7eba2f3bSAndroid Build Coastguard Worker ** NFC is enabled during boot-up, or when NFC is enabled from a 777*7eba2f3bSAndroid Build Coastguard Worker ** settings UI. Subsequent calls to NFA_Enable while NFA is 778*7eba2f3bSAndroid Build Coastguard Worker ** enabling or enabled will be ignored. When the NFC startup 779*7eba2f3bSAndroid Build Coastguard Worker ** procedure is completed, an NFA_DM_ENABLE_EVT is returned to 780*7eba2f3bSAndroid Build Coastguard Worker ** the application using the tNFA_DM_CBACK. 781*7eba2f3bSAndroid Build Coastguard Worker ** 782*7eba2f3bSAndroid Build Coastguard Worker ** The tNFA_CONN_CBACK parameter is used to register a callback 783*7eba2f3bSAndroid Build Coastguard Worker ** for polling and card emulation events. 784*7eba2f3bSAndroid Build Coastguard Worker ** 785*7eba2f3bSAndroid Build Coastguard Worker ** 786*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 787*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 788*7eba2f3bSAndroid Build Coastguard Worker ** 789*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 790*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_Enable(tNFA_DM_CBACK* p_dm_cback, 791*7eba2f3bSAndroid Build Coastguard Worker tNFA_CONN_CBACK* p_conn_cback); 792*7eba2f3bSAndroid Build Coastguard Worker 793*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 794*7eba2f3bSAndroid Build Coastguard Worker ** 795*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_Disable 796*7eba2f3bSAndroid Build Coastguard Worker ** 797*7eba2f3bSAndroid Build Coastguard Worker ** Description This function is called to shutdown NFC. The tasks for NFC 798*7eba2f3bSAndroid Build Coastguard Worker ** are terminated, and clean up routines are performed. This 799*7eba2f3bSAndroid Build Coastguard Worker ** function is typically called during platform shut-down, or 800*7eba2f3bSAndroid Build Coastguard Worker ** when NFC is disabled from a settings UI. When the NFC 801*7eba2f3bSAndroid Build Coastguard Worker ** shutdown procedure is completed, an NFA_DM_DISABLE_EVT is 802*7eba2f3bSAndroid Build Coastguard Worker ** returned to the application using the tNFA_DM_CBACK. 803*7eba2f3bSAndroid Build Coastguard Worker ** 804*7eba2f3bSAndroid Build Coastguard Worker ** The platform should wait until the NFC_DISABLE_REVT is 805*7eba2f3bSAndroid Build Coastguard Worker ** received before powering down the NFC chip and NCI 806*7eba2f3bSAndroid Build Coastguard Worker ** transport. This is required to so that NFA can gracefully 807*7eba2f3bSAndroid Build Coastguard Worker ** shut down any open connections. 808*7eba2f3bSAndroid Build Coastguard Worker ** 809*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 810*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 811*7eba2f3bSAndroid Build Coastguard Worker ** 812*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 813*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_Disable(bool graceful); 814*7eba2f3bSAndroid Build Coastguard Worker 815*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 816*7eba2f3bSAndroid Build Coastguard Worker ** 817*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_SetConfig 818*7eba2f3bSAndroid Build Coastguard Worker ** 819*7eba2f3bSAndroid Build Coastguard Worker ** Description Set the configuration parameters to NFCC. The result is 820*7eba2f3bSAndroid Build Coastguard Worker ** reported with an NFA_DM_SET_CONFIG_EVT in the tNFA_DM_CBACK 821*7eba2f3bSAndroid Build Coastguard Worker ** callback. 822*7eba2f3bSAndroid Build Coastguard Worker ** 823*7eba2f3bSAndroid Build Coastguard Worker ** Note: If RF discovery is started, 824*7eba2f3bSAndroid Build Coastguard Worker ** NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT should 825*7eba2f3bSAndroid Build Coastguard Worker ** happen before calling this function. Most Configuration 826*7eba2f3bSAndroid Build Coastguard Worker ** parameters are related to RF discovery. 827*7eba2f3bSAndroid Build Coastguard Worker ** 828*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 829*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_BUSY if previous setting is on-going 830*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 831*7eba2f3bSAndroid Build Coastguard Worker ** 832*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 833*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_SetConfig(tNFA_PMID param_id, uint8_t length, 834*7eba2f3bSAndroid Build Coastguard Worker uint8_t* p_data); 835*7eba2f3bSAndroid Build Coastguard Worker 836*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 837*7eba2f3bSAndroid Build Coastguard Worker ** 838*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_GetConfig 839*7eba2f3bSAndroid Build Coastguard Worker ** 840*7eba2f3bSAndroid Build Coastguard Worker ** Description Get the configuration parameters from NFCC. The result is 841*7eba2f3bSAndroid Build Coastguard Worker ** reported with an NFA_DM_GET_CONFIG_EVT in the tNFA_DM_CBACK 842*7eba2f3bSAndroid Build Coastguard Worker ** callback. 843*7eba2f3bSAndroid Build Coastguard Worker ** 844*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 845*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 846*7eba2f3bSAndroid Build Coastguard Worker ** 847*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 848*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_GetConfig(uint8_t num_ids, tNFA_PMID* p_param_ids); 849*7eba2f3bSAndroid Build Coastguard Worker 850*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 851*7eba2f3bSAndroid Build Coastguard Worker ** 852*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_RequestExclusiveRfControl 853*7eba2f3bSAndroid Build Coastguard Worker ** 854*7eba2f3bSAndroid Build Coastguard Worker ** Description Request exclusive control of NFC. 855*7eba2f3bSAndroid Build Coastguard Worker ** - Previous behavior (polling/tag reading, DH card emulation) 856*7eba2f3bSAndroid Build Coastguard Worker ** will be suspended . 857*7eba2f3bSAndroid Build Coastguard Worker ** - Polling and listening will be done based on the specified 858*7eba2f3bSAndroid Build Coastguard Worker ** params 859*7eba2f3bSAndroid Build Coastguard Worker ** 860*7eba2f3bSAndroid Build Coastguard Worker ** The NFA_EXCLUSIVE_RF_CONTROL_STARTED_EVT event of 861*7eba2f3bSAndroid Build Coastguard Worker ** tNFA_CONN_CBACK indicates the status of the operation. 862*7eba2f3bSAndroid Build Coastguard Worker ** 863*7eba2f3bSAndroid Build Coastguard Worker ** NFA_ACTIVATED_EVT and NFA_DEACTIVATED_EVT indicates link 864*7eba2f3bSAndroid Build Coastguard Worker ** activation/deactivation. 865*7eba2f3bSAndroid Build Coastguard Worker ** 866*7eba2f3bSAndroid Build Coastguard Worker ** NFA_SendRawFrame is used to send data to the peer. 867*7eba2f3bSAndroid Build Coastguard Worker ** NFA_DATA_EVT indicates data from the peer. 868*7eba2f3bSAndroid Build Coastguard Worker ** 869*7eba2f3bSAndroid Build Coastguard Worker ** If a tag is activated, then the NFA_RW APIs may be used to 870*7eba2f3bSAndroid Build Coastguard Worker ** send commands to the tag. Incoming NDEF messages are sent to 871*7eba2f3bSAndroid Build Coastguard Worker ** the NDEF callback. 872*7eba2f3bSAndroid Build Coastguard Worker ** 873*7eba2f3bSAndroid Build Coastguard Worker ** Once exclusive RF control has started, NFA will not activate 874*7eba2f3bSAndroid Build Coastguard Worker ** LLCP internally. The application has exclusive control of 875*7eba2f3bSAndroid Build Coastguard Worker ** the link. 876*7eba2f3bSAndroid Build Coastguard Worker ** 877*7eba2f3bSAndroid Build Coastguard Worker ** Note: If RF discovery is started, 878*7eba2f3bSAndroid Build Coastguard Worker ** NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT should 879*7eba2f3bSAndroid Build Coastguard Worker ** happen before calling this function 880*7eba2f3bSAndroid Build Coastguard Worker ** 881*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 882*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 883*7eba2f3bSAndroid Build Coastguard Worker ** 884*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 885*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_RequestExclusiveRfControl(tNFA_TECHNOLOGY_MASK poll_mask, 886*7eba2f3bSAndroid Build Coastguard Worker tNFA_LISTEN_CFG* p_listen_cfg, 887*7eba2f3bSAndroid Build Coastguard Worker tNFA_CONN_CBACK* p_conn_cback, 888*7eba2f3bSAndroid Build Coastguard Worker tNFA_NDEF_CBACK* p_ndef_cback); 889*7eba2f3bSAndroid Build Coastguard Worker 890*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 891*7eba2f3bSAndroid Build Coastguard Worker ** 892*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_ReleaseExclusiveRfControl 893*7eba2f3bSAndroid Build Coastguard Worker ** 894*7eba2f3bSAndroid Build Coastguard Worker ** Description Release exclusive control of NFC. Once released, behavior 895*7eba2f3bSAndroid Build Coastguard Worker ** prior to obtaining exclusive RF control will resume. 896*7eba2f3bSAndroid Build Coastguard Worker ** 897*7eba2f3bSAndroid Build Coastguard Worker Note?? 898*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 899*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 900*7eba2f3bSAndroid Build Coastguard Worker ** 901*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 902*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_ReleaseExclusiveRfControl(void); 903*7eba2f3bSAndroid Build Coastguard Worker 904*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 905*7eba2f3bSAndroid Build Coastguard Worker ** 906*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_EnablePolling 907*7eba2f3bSAndroid Build Coastguard Worker ** 908*7eba2f3bSAndroid Build Coastguard Worker ** Description Enable polling for technologies specified by poll_mask. 909*7eba2f3bSAndroid Build Coastguard Worker ** 910*7eba2f3bSAndroid Build Coastguard Worker ** The following events (notified using the connection 911*7eba2f3bSAndroid Build Coastguard Worker ** callback registered with NFA_Enable) are generated during 912*7eba2f3bSAndroid Build Coastguard Worker ** polling: 913*7eba2f3bSAndroid Build Coastguard Worker ** 914*7eba2f3bSAndroid Build Coastguard Worker ** - NFA_POLL_ENABLED_EVT indicates whether or not polling 915*7eba2f3bSAndroid Build Coastguard Worker ** successfully enabled. 916*7eba2f3bSAndroid Build Coastguard Worker ** - NFA_DISC_RESULT_EVT indicates there are more than one 917*7eba2f3bSAndroid Build Coastguard Worker ** devices, so application must select one of tags by calling 918*7eba2f3bSAndroid Build Coastguard Worker ** NFA_Select(). 919*7eba2f3bSAndroid Build Coastguard Worker ** - NFA_SELECT_RESULT_EVT indicates whether previous selection 920*7eba2f3bSAndroid Build Coastguard Worker ** was successful or not. If it was failed then application 921*7eba2f3bSAndroid Build Coastguard Worker ** must select again or deactivate by calling 922*7eba2f3bSAndroid Build Coastguard Worker ** NFA_Deactivate(). 923*7eba2f3bSAndroid Build Coastguard Worker ** - NFA_ACTIVATED_EVT is generated when an NFC link is 924*7eba2f3bSAndroid Build Coastguard Worker ** activated. 925*7eba2f3bSAndroid Build Coastguard Worker ** - NFA_NDEF_DETECT_EVT is generated if tag is activated 926*7eba2f3bSAndroid Build Coastguard Worker ** - NFA_DEACTIVATED_EVT will be returned after deactivating 927*7eba2f3bSAndroid Build Coastguard Worker ** NFC link. 928*7eba2f3bSAndroid Build Coastguard Worker ** 929*7eba2f3bSAndroid Build Coastguard Worker ** Note: If RF discovery is started, 930*7eba2f3bSAndroid Build Coastguard Worker ** NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT should 931*7eba2f3bSAndroid Build Coastguard Worker ** happen before calling this function 932*7eba2f3bSAndroid Build Coastguard Worker ** 933*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 934*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 935*7eba2f3bSAndroid Build Coastguard Worker ** 936*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 937*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_EnablePolling(tNFA_TECHNOLOGY_MASK poll_mask); 938*7eba2f3bSAndroid Build Coastguard Worker 939*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 940*7eba2f3bSAndroid Build Coastguard Worker ** 941*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_DisablePolling 942*7eba2f3bSAndroid Build Coastguard Worker ** 943*7eba2f3bSAndroid Build Coastguard Worker ** Description Disable polling 944*7eba2f3bSAndroid Build Coastguard Worker ** NFA_POLL_DISABLED_EVT will be returned after stopping 945*7eba2f3bSAndroid Build Coastguard Worker ** polling. 946*7eba2f3bSAndroid Build Coastguard Worker ** 947*7eba2f3bSAndroid Build Coastguard Worker ** Note: If RF discovery is started, 948*7eba2f3bSAndroid Build Coastguard Worker ** NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT should 949*7eba2f3bSAndroid Build Coastguard Worker ** happen before calling this function 950*7eba2f3bSAndroid Build Coastguard Worker ** 951*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 952*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 953*7eba2f3bSAndroid Build Coastguard Worker ** 954*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 955*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_DisablePolling(void); 956*7eba2f3bSAndroid Build Coastguard Worker 957*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 958*7eba2f3bSAndroid Build Coastguard Worker ** 959*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_EnableListening 960*7eba2f3bSAndroid Build Coastguard Worker ** 961*7eba2f3bSAndroid Build Coastguard Worker ** Description Enable listening. 962*7eba2f3bSAndroid Build Coastguard Worker ** NFA_LISTEN_ENABLED_EVT will be returned after listening is 963*7eba2f3bSAndroid Build Coastguard Worker ** allowed. 964*7eba2f3bSAndroid Build Coastguard Worker ** 965*7eba2f3bSAndroid Build Coastguard Worker ** The actual listening technologies are specified by other NFA 966*7eba2f3bSAndroid Build Coastguard Worker ** API functions. Such functions include (but not limited to) 967*7eba2f3bSAndroid Build Coastguard Worker ** NFA_CeConfigureUiccListenTech. 968*7eba2f3bSAndroid Build Coastguard Worker ** If NFA_DisableListening () is called to ignore the listening 969*7eba2f3bSAndroid Build Coastguard Worker ** technologies, NFA_EnableListening () is called to restore 970*7eba2f3bSAndroid Build Coastguard Worker ** the listening technologies set by these functions. 971*7eba2f3bSAndroid Build Coastguard Worker ** 972*7eba2f3bSAndroid Build Coastguard Worker ** Note: If RF discovery is started, 973*7eba2f3bSAndroid Build Coastguard Worker ** NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT should 974*7eba2f3bSAndroid Build Coastguard Worker ** happen before calling this function 975*7eba2f3bSAndroid Build Coastguard Worker ** 976*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 977*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 978*7eba2f3bSAndroid Build Coastguard Worker ** 979*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 980*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_EnableListening(void); 981*7eba2f3bSAndroid Build Coastguard Worker 982*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 983*7eba2f3bSAndroid Build Coastguard Worker ** 984*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_DisableListening 985*7eba2f3bSAndroid Build Coastguard Worker ** 986*7eba2f3bSAndroid Build Coastguard Worker ** Description Disable listening 987*7eba2f3bSAndroid Build Coastguard Worker ** NFA_LISTEN_DISABLED_EVT will be returned after stopping 988*7eba2f3bSAndroid Build Coastguard Worker ** listening. This function is called to exclude listen at RF 989*7eba2f3bSAndroid Build Coastguard Worker ** discovery. 990*7eba2f3bSAndroid Build Coastguard Worker ** 991*7eba2f3bSAndroid Build Coastguard Worker ** Note: If RF discovery is started, 992*7eba2f3bSAndroid Build Coastguard Worker ** NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT should 993*7eba2f3bSAndroid Build Coastguard Worker ** happen before calling this function 994*7eba2f3bSAndroid Build Coastguard Worker ** 995*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 996*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 997*7eba2f3bSAndroid Build Coastguard Worker ** 998*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 999*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_DisableListening(void); 1000*7eba2f3bSAndroid Build Coastguard Worker 1001*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1002*7eba2f3bSAndroid Build Coastguard Worker ** 1003*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_StartRfDiscovery 1004*7eba2f3bSAndroid Build Coastguard Worker ** 1005*7eba2f3bSAndroid Build Coastguard Worker ** Description Start RF discovery 1006*7eba2f3bSAndroid Build Coastguard Worker ** RF discovery parameters shall be set by other APIs. 1007*7eba2f3bSAndroid Build Coastguard Worker ** 1008*7eba2f3bSAndroid Build Coastguard Worker ** An NFA_RF_DISCOVERY_STARTED_EVT indicates whether starting 1009*7eba2f3bSAndroid Build Coastguard Worker ** was successful or not. 1010*7eba2f3bSAndroid Build Coastguard Worker ** 1011*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 1012*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 1013*7eba2f3bSAndroid Build Coastguard Worker ** 1014*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1015*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_StartRfDiscovery(void); 1016*7eba2f3bSAndroid Build Coastguard Worker 1017*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1018*7eba2f3bSAndroid Build Coastguard Worker ** 1019*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_StopRfDiscovery 1020*7eba2f3bSAndroid Build Coastguard Worker ** 1021*7eba2f3bSAndroid Build Coastguard Worker ** Description Stop RF discovery 1022*7eba2f3bSAndroid Build Coastguard Worker ** 1023*7eba2f3bSAndroid Build Coastguard Worker ** An NFA_RF_DISCOVERY_STOPPED_EVT indicates whether stopping 1024*7eba2f3bSAndroid Build Coastguard Worker ** was successful or not. 1025*7eba2f3bSAndroid Build Coastguard Worker ** 1026*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 1027*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 1028*7eba2f3bSAndroid Build Coastguard Worker ** 1029*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1030*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_StopRfDiscovery(void); 1031*7eba2f3bSAndroid Build Coastguard Worker 1032*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1033*7eba2f3bSAndroid Build Coastguard Worker ** 1034*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_SetRfDiscoveryDuration 1035*7eba2f3bSAndroid Build Coastguard Worker ** 1036*7eba2f3bSAndroid Build Coastguard Worker ** Description Set the duration of the single discovery period in [ms]. 1037*7eba2f3bSAndroid Build Coastguard Worker ** Allowable range: 0 ms to 0xFFFF ms. 1038*7eba2f3bSAndroid Build Coastguard Worker ** 1039*7eba2f3bSAndroid Build Coastguard Worker ** Note: If discovery is already started, the application should 1040*7eba2f3bSAndroid Build Coastguard Worker ** call NFA_StopRfDiscovery prior to calling 1041*7eba2f3bSAndroid Build Coastguard Worker ** NFA_SetRfDiscoveryDuration, and then call 1042*7eba2f3bSAndroid Build Coastguard Worker ** NFA_StartRfDiscovery afterwards to restart discovery using 1043*7eba2f3bSAndroid Build Coastguard Worker ** the new duration. 1044*7eba2f3bSAndroid Build Coastguard Worker ** 1045*7eba2f3bSAndroid Build Coastguard Worker ** Returns: 1046*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_OK, if command accepted 1047*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED: otherwise 1048*7eba2f3bSAndroid Build Coastguard Worker ** 1049*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1050*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_SetRfDiscoveryDuration(uint16_t discovery_period_ms); 1051*7eba2f3bSAndroid Build Coastguard Worker 1052*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1053*7eba2f3bSAndroid Build Coastguard Worker ** 1054*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_Select 1055*7eba2f3bSAndroid Build Coastguard Worker ** 1056*7eba2f3bSAndroid Build Coastguard Worker ** Description Select one from detected devices by NFA_DISC_RESULT_EVT 1057*7eba2f3bSAndroid Build Coastguard Worker ** after the last discovery result is received. 1058*7eba2f3bSAndroid Build Coastguard Worker ** An NFA_SELECT_RESULT_EVT indicates whether selection was 1059*7eba2f3bSAndroid Build Coastguard Worker ** successful or not. If failed then application must select 1060*7eba2f3bSAndroid Build Coastguard Worker ** again or deactivate by NFA_Deactivate (). 1061*7eba2f3bSAndroid Build Coastguard Worker ** 1062*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 1063*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_INVALID_PARAM if RF interface is not matched 1064*7eba2f3bSAndroid Build Coastguard Worker ** protocol 1065*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 1066*7eba2f3bSAndroid Build Coastguard Worker ** 1067*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1068*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_Select(uint8_t rf_disc_id, tNFA_NFC_PROTOCOL protocol, 1069*7eba2f3bSAndroid Build Coastguard Worker tNFA_INTF_TYPE rf_interface); 1070*7eba2f3bSAndroid Build Coastguard Worker 1071*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1072*7eba2f3bSAndroid Build Coastguard Worker ** 1073*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_UpdateRFCommParams 1074*7eba2f3bSAndroid Build Coastguard Worker ** 1075*7eba2f3bSAndroid Build Coastguard Worker ** Description This function is called to update RF Communication 1076*7eba2f3bSAndroid Build Coastguard Worker ** parameters once the Frame RF Interface has been activated. 1077*7eba2f3bSAndroid Build Coastguard Worker ** 1078*7eba2f3bSAndroid Build Coastguard Worker ** An NFA_UPDATE_RF_PARAM_RESULT_EVT indicates whether updating 1079*7eba2f3bSAndroid Build Coastguard Worker ** was successful or not. 1080*7eba2f3bSAndroid Build Coastguard Worker ** 1081*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 1082*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 1083*7eba2f3bSAndroid Build Coastguard Worker ** 1084*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1085*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_UpdateRFCommParams(tNFA_RF_COMM_PARAMS* p_params); 1086*7eba2f3bSAndroid Build Coastguard Worker 1087*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1088*7eba2f3bSAndroid Build Coastguard Worker ** 1089*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_Deactivate 1090*7eba2f3bSAndroid Build Coastguard Worker ** 1091*7eba2f3bSAndroid Build Coastguard Worker ** Description 1092*7eba2f3bSAndroid Build Coastguard Worker ** If sleep_mode=TRUE: 1093*7eba2f3bSAndroid Build Coastguard Worker ** Deselect the activated device by deactivating into sleep 1094*7eba2f3bSAndroid Build Coastguard Worker ** mode. 1095*7eba2f3bSAndroid Build Coastguard Worker ** 1096*7eba2f3bSAndroid Build Coastguard Worker ** An NFA_DEACTIVATE_FAIL_EVT indicates that selection was 1097*7eba2f3bSAndroid Build Coastguard Worker ** not successful. Application can select another 1098*7eba2f3bSAndroid Build Coastguard Worker ** discovered device or deactivate by NFA_Deactivate () 1099*7eba2f3bSAndroid Build Coastguard Worker ** after receiving NFA_DEACTIVATED_EVT. 1100*7eba2f3bSAndroid Build Coastguard Worker ** 1101*7eba2f3bSAndroid Build Coastguard Worker ** Deactivating to sleep mode is not allowed when NFCC is 1102*7eba2f3bSAndroid Build Coastguard Worker ** in wait-for-host-select mode, or in listen-sleep states; 1103*7eba2f3bSAndroid Build Coastguard Worker ** NFA will deactivate to idle or discovery state for these 1104*7eba2f3bSAndroid Build Coastguard Worker ** cases respectively. 1105*7eba2f3bSAndroid Build Coastguard Worker ** 1106*7eba2f3bSAndroid Build Coastguard Worker ** 1107*7eba2f3bSAndroid Build Coastguard Worker ** If sleep_mode=FALSE: 1108*7eba2f3bSAndroid Build Coastguard Worker ** Deactivate the connection (e.g. as a result of presence 1109*7eba2f3bSAndroid Build Coastguard Worker ** check failure) NFA_DEACTIVATED_EVT will indicate that 1110*7eba2f3bSAndroid Build Coastguard Worker ** link is deactivated. Polling/listening will resume 1111*7eba2f3bSAndroid Build Coastguard Worker ** (unless the nfcc is in wait_for-all-discoveries state) 1112*7eba2f3bSAndroid Build Coastguard Worker ** 1113*7eba2f3bSAndroid Build Coastguard Worker ** 1114*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 1115*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 1116*7eba2f3bSAndroid Build Coastguard Worker ** 1117*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1118*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_Deactivate(bool sleep_mode); 1119*7eba2f3bSAndroid Build Coastguard Worker 1120*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1121*7eba2f3bSAndroid Build Coastguard Worker ** 1122*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_SendRawFrame 1123*7eba2f3bSAndroid Build Coastguard Worker ** 1124*7eba2f3bSAndroid Build Coastguard Worker ** Description Send a raw frame over the activated interface with the NFCC. 1125*7eba2f3bSAndroid Build Coastguard Worker ** This function can only be called after NFC link is 1126*7eba2f3bSAndroid Build Coastguard Worker ** activated. 1127*7eba2f3bSAndroid Build Coastguard Worker ** 1128*7eba2f3bSAndroid Build Coastguard Worker ** If the activated interface is a tag and auto-presence check 1129*7eba2f3bSAndroid Build Coastguard Worker ** is enabled then presence_check_start_delay can be used to 1130*7eba2f3bSAndroid Build Coastguard Worker ** indicate the delay in msec after which the next auto 1131*7eba2f3bSAndroid Build Coastguard Worker ** presence check command can be sent. 1132*7eba2f3bSAndroid Build Coastguard Worker ** NFA_DM_DEFAULT_PRESENCE_CHECK_START_DELAY can be used as the 1133*7eba2f3bSAndroid Build Coastguard Worker ** default value for the delay. 1134*7eba2f3bSAndroid Build Coastguard Worker ** 1135*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 1136*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 1137*7eba2f3bSAndroid Build Coastguard Worker ** 1138*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1139*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_SendRawFrame(uint8_t* p_raw_data, uint16_t data_len, 1140*7eba2f3bSAndroid Build Coastguard Worker uint16_t presence_check_start_delay); 1141*7eba2f3bSAndroid Build Coastguard Worker 1142*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1143*7eba2f3bSAndroid Build Coastguard Worker ** NDEF APIs 1144*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1145*7eba2f3bSAndroid Build Coastguard Worker 1146*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1147*7eba2f3bSAndroid Build Coastguard Worker ** 1148*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_RegisterNDefTypeHandler 1149*7eba2f3bSAndroid Build Coastguard Worker ** 1150*7eba2f3bSAndroid Build Coastguard Worker ** Description This function allows the applications to register for 1151*7eba2f3bSAndroid Build Coastguard Worker ** specific types of NDEF records. When NDEF records are 1152*7eba2f3bSAndroid Build Coastguard Worker ** received, NFA will parse the record-type field, and pass 1153*7eba2f3bSAndroid Build Coastguard Worker ** the record to the registered tNFA_NDEF_CBACK. 1154*7eba2f3bSAndroid Build Coastguard Worker ** 1155*7eba2f3bSAndroid Build Coastguard Worker ** For records types which were not registered, the record will 1156*7eba2f3bSAndroid Build Coastguard Worker ** be sent to the default handler. A default type-handler may 1157*7eba2f3bSAndroid Build Coastguard Worker ** be registered by calling this NFA_RegisterNDefTypeHandler 1158*7eba2f3bSAndroid Build Coastguard Worker ** with tnf=NFA_TNF_DEFAULT. In this case, all un-registered 1159*7eba2f3bSAndroid Build Coastguard Worker ** record types will be sent to the callback. Only one default 1160*7eba2f3bSAndroid Build Coastguard Worker ** handler may be registered at a time. 1161*7eba2f3bSAndroid Build Coastguard Worker ** 1162*7eba2f3bSAndroid Build Coastguard Worker ** An NFA_NDEF_REGISTER_EVT will be sent to the tNFA_NDEF_CBACK 1163*7eba2f3bSAndroid Build Coastguard Worker ** to indicate that registration was successful, and provide a 1164*7eba2f3bSAndroid Build Coastguard Worker ** handle for this record type. 1165*7eba2f3bSAndroid Build Coastguard Worker ** 1166*7eba2f3bSAndroid Build Coastguard Worker ** 1167*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 1168*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 1169*7eba2f3bSAndroid Build Coastguard Worker ** 1170*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1171*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_RegisterNDefTypeHandler(bool handle_whole_message, 1172*7eba2f3bSAndroid Build Coastguard Worker tNFA_TNF tnf, 1173*7eba2f3bSAndroid Build Coastguard Worker uint8_t* p_type_name, 1174*7eba2f3bSAndroid Build Coastguard Worker uint8_t type_name_len, 1175*7eba2f3bSAndroid Build Coastguard Worker tNFA_NDEF_CBACK* p_ndef_cback); 1176*7eba2f3bSAndroid Build Coastguard Worker 1177*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1178*7eba2f3bSAndroid Build Coastguard Worker ** 1179*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_RegisterNDefUriHandler 1180*7eba2f3bSAndroid Build Coastguard Worker ** 1181*7eba2f3bSAndroid Build Coastguard Worker ** Description This API is a special-case of NFA_RegisterNDefTypeHandler 1182*7eba2f3bSAndroid Build Coastguard Worker ** with TNF=NFA_TNF_WKT, and type_name='U' (URI record); and 1183*7eba2f3bSAndroid Build Coastguard Worker ** allows registering for specific URI types (e.g. 'tel:' or 1184*7eba2f3bSAndroid Build Coastguard Worker ** 'mailto:'). 1185*7eba2f3bSAndroid Build Coastguard Worker ** 1186*7eba2f3bSAndroid Build Coastguard Worker ** An NFA_NDEF_REGISTER_EVT will be sent to the tNFA_NDEF_CBACK 1187*7eba2f3bSAndroid Build Coastguard Worker ** to indicate that registration was successful, and provide a 1188*7eba2f3bSAndroid Build Coastguard Worker ** handle for this registration. 1189*7eba2f3bSAndroid Build Coastguard Worker ** 1190*7eba2f3bSAndroid Build Coastguard Worker ** If uri_id=NFA_NDEF_URI_ID_ABSOLUTE, then p_abs_uri contains 1191*7eba2f3bSAndroid Build Coastguard Worker ** the unabridged URI. For all other uri_id values, the 1192*7eba2f3bSAndroid Build Coastguard Worker ** p_abs_uri parameter is ignored (i.e the URI prefix is 1193*7eba2f3bSAndroid Build Coastguard Worker ** implied by uri_id). 1194*7eba2f3bSAndroid Build Coastguard Worker ** 1195*7eba2f3bSAndroid Build Coastguard Worker ** See [NFC RTD URI] for more information. 1196*7eba2f3bSAndroid Build Coastguard Worker ** 1197*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 1198*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 1199*7eba2f3bSAndroid Build Coastguard Worker ** 1200*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1201*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_RegisterNDefUriHandler(bool handle_whole_message, 1202*7eba2f3bSAndroid Build Coastguard Worker tNFA_NDEF_URI_ID uri_id, 1203*7eba2f3bSAndroid Build Coastguard Worker uint8_t* p_abs_uri, 1204*7eba2f3bSAndroid Build Coastguard Worker uint8_t uri_id_len, 1205*7eba2f3bSAndroid Build Coastguard Worker tNFA_NDEF_CBACK* p_ndef_cback); 1206*7eba2f3bSAndroid Build Coastguard Worker 1207*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1208*7eba2f3bSAndroid Build Coastguard Worker ** 1209*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_DeregisterNDefTypeHandler 1210*7eba2f3bSAndroid Build Coastguard Worker ** 1211*7eba2f3bSAndroid Build Coastguard Worker ** Description Deregister NDEF record type handler. 1212*7eba2f3bSAndroid Build Coastguard Worker ** 1213*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 1214*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 1215*7eba2f3bSAndroid Build Coastguard Worker ** 1216*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1217*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_DeregisterNDefTypeHandler(tNFA_HANDLE ndef_type_handle); 1218*7eba2f3bSAndroid Build Coastguard Worker 1219*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1220*7eba2f3bSAndroid Build Coastguard Worker ** 1221*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_PowerOffSleepMode 1222*7eba2f3bSAndroid Build Coastguard Worker ** 1223*7eba2f3bSAndroid Build Coastguard Worker ** Description This function is called to enter or leave NFCC Power Off 1224*7eba2f3bSAndroid Build Coastguard Worker ** Sleep mode 1225*7eba2f3bSAndroid Build Coastguard Worker ** NFA_DM_PWR_MODE_CHANGE_EVT will be sent to indicate status. 1226*7eba2f3bSAndroid Build Coastguard Worker ** 1227*7eba2f3bSAndroid Build Coastguard Worker ** start_stop : TRUE if entering Power Off Sleep mode 1228*7eba2f3bSAndroid Build Coastguard Worker ** FALSE if leaving Power Off Sleep mode 1229*7eba2f3bSAndroid Build Coastguard Worker ** 1230*7eba2f3bSAndroid Build Coastguard Worker Note?? 1231*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 1232*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 1233*7eba2f3bSAndroid Build Coastguard Worker ** 1234*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1235*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_PowerOffSleepMode(bool start_stop); 1236*7eba2f3bSAndroid Build Coastguard Worker 1237*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1238*7eba2f3bSAndroid Build Coastguard Worker ** 1239*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_RegVSCback 1240*7eba2f3bSAndroid Build Coastguard Worker ** 1241*7eba2f3bSAndroid Build Coastguard Worker ** Description This function is called to register or de-register a 1242*7eba2f3bSAndroid Build Coastguard Worker ** callback function to receive Proprietary NCI response and 1243*7eba2f3bSAndroid Build Coastguard Worker ** notification events. 1244*7eba2f3bSAndroid Build Coastguard Worker ** The maximum number of callback functions allowed is 1245*7eba2f3bSAndroid Build Coastguard Worker ** NFC_NUM_VS_CBACKS 1246*7eba2f3bSAndroid Build Coastguard Worker ** 1247*7eba2f3bSAndroid Build Coastguard Worker ** Returns tNFC_STATUS 1248*7eba2f3bSAndroid Build Coastguard Worker ** 1249*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1250*7eba2f3bSAndroid Build Coastguard Worker extern tNFC_STATUS NFA_RegVSCback(bool is_register, tNFA_VSC_CBACK* p_cback); 1251*7eba2f3bSAndroid Build Coastguard Worker 1252*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1253*7eba2f3bSAndroid Build Coastguard Worker ** 1254*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_SendVsCommand 1255*7eba2f3bSAndroid Build Coastguard Worker ** 1256*7eba2f3bSAndroid Build Coastguard Worker ** Description This function is called to send an NCI Vendor Specific 1257*7eba2f3bSAndroid Build Coastguard Worker ** command to NFCC. 1258*7eba2f3bSAndroid Build Coastguard Worker ** 1259*7eba2f3bSAndroid Build Coastguard Worker ** oid - The opcode of the VS command. 1260*7eba2f3bSAndroid Build Coastguard Worker ** cmd_params_len - The command parameter len 1261*7eba2f3bSAndroid Build Coastguard Worker ** p_cmd_params - The command parameter 1262*7eba2f3bSAndroid Build Coastguard Worker ** p_cback - The callback function to receive the 1263*7eba2f3bSAndroid Build Coastguard Worker ** command status 1264*7eba2f3bSAndroid Build Coastguard Worker ** 1265*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 1266*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 1267*7eba2f3bSAndroid Build Coastguard Worker ** 1268*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1269*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_SendVsCommand(uint8_t oid, uint8_t cmd_params_len, 1270*7eba2f3bSAndroid Build Coastguard Worker uint8_t* p_cmd_params, 1271*7eba2f3bSAndroid Build Coastguard Worker tNFA_VSC_CBACK* p_cback); 1272*7eba2f3bSAndroid Build Coastguard Worker 1273*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1274*7eba2f3bSAndroid Build Coastguard Worker ** 1275*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_SendRawVsCommand 1276*7eba2f3bSAndroid Build Coastguard Worker ** 1277*7eba2f3bSAndroid Build Coastguard Worker ** Description This function is called to send raw vendor specific 1278*7eba2f3bSAndroid Build Coastguard Worker ** command to NFCC. 1279*7eba2f3bSAndroid Build Coastguard Worker ** 1280*7eba2f3bSAndroid Build Coastguard Worker ** cmd_params_len - The command parameter len 1281*7eba2f3bSAndroid Build Coastguard Worker ** p_cmd_params - The command parameter 1282*7eba2f3bSAndroid Build Coastguard Worker ** p_cback - The callback function to receive the 1283*7eba2f3bSAndroid Build Coastguard Worker ** command 1284*7eba2f3bSAndroid Build Coastguard Worker ** 1285*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 1286*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 1287*7eba2f3bSAndroid Build Coastguard Worker ** 1288*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1289*7eba2f3bSAndroid Build Coastguard Worker 1290*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_SendRawVsCommand(uint8_t cmd_params_len, 1291*7eba2f3bSAndroid Build Coastguard Worker uint8_t* p_cmd_params, 1292*7eba2f3bSAndroid Build Coastguard Worker tNFA_VSC_CBACK* p_cback); 1293*7eba2f3bSAndroid Build Coastguard Worker 1294*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1295*7eba2f3bSAndroid Build Coastguard Worker ** Function: NFA_EnableDTA_TypeMode 1296*7eba2f3bSAndroid Build Coastguard Worker ** 1297*7eba2f3bSAndroid Build Coastguard Worker ** Description: Initialize and get global DTA type mode from .conf 1298*7eba2f3bSAndroid Build Coastguard Worker ** 1299*7eba2f3bSAndroid Build Coastguard Worker ** Returns: none: 1300*7eba2f3bSAndroid Build Coastguard Worker ** 1301*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1302*7eba2f3bSAndroid Build Coastguard Worker extern void NFA_EnableDtamode(tNFA_eDtaModes eDtaMode); 1303*7eba2f3bSAndroid Build Coastguard Worker 1304*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1305*7eba2f3bSAndroid Build Coastguard Worker ** 1306*7eba2f3bSAndroid Build Coastguard Worker ** Function: NFA_SetNfcSecure 1307*7eba2f3bSAndroid Build Coastguard Worker ** 1308*7eba2f3bSAndroid Build Coastguard Worker ** Description: Set NFC secure flag 1309*7eba2f3bSAndroid Build Coastguard Worker ** 1310*7eba2f3bSAndroid Build Coastguard Worker ** Returns: none: 1311*7eba2f3bSAndroid Build Coastguard Worker ** 1312*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1313*7eba2f3bSAndroid Build Coastguard Worker extern void NFA_SetNfcSecure(bool status); 1314*7eba2f3bSAndroid Build Coastguard Worker 1315*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1316*7eba2f3bSAndroid Build Coastguard Worker ** 1317*7eba2f3bSAndroid Build Coastguard Worker ** Function: NFA_DisableDtamode 1318*7eba2f3bSAndroid Build Coastguard Worker ** 1319*7eba2f3bSAndroid Build Coastguard Worker ** Description: Disable DTA Mode 1320*7eba2f3bSAndroid Build Coastguard Worker ** 1321*7eba2f3bSAndroid Build Coastguard Worker ** Returns: none: 1322*7eba2f3bSAndroid Build Coastguard Worker ** 1323*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1324*7eba2f3bSAndroid Build Coastguard Worker extern void NFA_DisableDtamode(void); 1325*7eba2f3bSAndroid Build Coastguard Worker 1326*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1327*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_GetNCIVersion 1328*7eba2f3bSAndroid Build Coastguard Worker ** 1329*7eba2f3bSAndroid Build Coastguard Worker ** Description Called by higher layer to get the current nci 1330*7eba2f3bSAndroid Build Coastguard Worker ** version of nfc. 1331*7eba2f3bSAndroid Build Coastguard Worker ** 1332*7eba2f3bSAndroid Build Coastguard Worker ** Returns NCI version NCI2.0 / NCI1.0 1333*7eba2f3bSAndroid Build Coastguard Worker ** 1334*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1335*7eba2f3bSAndroid Build Coastguard Worker extern uint8_t NFA_GetNCIVersion(); 1336*7eba2f3bSAndroid Build Coastguard Worker 1337*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1338*7eba2f3bSAndroid Build Coastguard Worker ** Function: NFA_SetPowerSubStateForScreenState 1339*7eba2f3bSAndroid Build Coastguard Worker ** 1340*7eba2f3bSAndroid Build Coastguard Worker ** Description: This function send the current screen state 1341*7eba2f3bSAndroid Build Coastguard Worker ** 1342*7eba2f3bSAndroid Build Coastguard Worker ** Returns: NFA_STATUS_OK if successfully initiated 1343*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 1344*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1345*7eba2f3bSAndroid Build Coastguard Worker extern tNFA_STATUS NFA_SetPowerSubStateForScreenState(uint8_t ScreenState); 1346*7eba2f3bSAndroid Build Coastguard Worker 1347*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************* 1348*7eba2f3bSAndroid Build Coastguard Worker ** 1349*7eba2f3bSAndroid Build Coastguard Worker ** Function NFA_ChangeDiscoveryTech 1350*7eba2f3bSAndroid Build Coastguard Worker ** 1351*7eba2f3bSAndroid Build Coastguard Worker ** Description Change RF discoverying technologies specified by 1352*7eba2f3bSAndroid Build Coastguard Worker ** pollTech and listenTech. 1353*7eba2f3bSAndroid Build Coastguard Worker ** 1354*7eba2f3bSAndroid Build Coastguard Worker ** NFA_DM_API_CHANGE_DISCOVERY_TECH_EVT will be returned. 1355*7eba2f3bSAndroid Build Coastguard Worker ** 1356*7eba2f3bSAndroid Build Coastguard Worker ** If pollTech/listenTech are set to 0xFF, it revert to 1357*7eba2f3bSAndroid Build Coastguard Worker ** the polling/listening technologies 1358*7eba2f3bSAndroid Build Coastguard Worker ** before NFA_ChangeDiscoveryTech() was called. 1359*7eba2f3bSAndroid Build Coastguard Worker ** 1360*7eba2f3bSAndroid Build Coastguard Worker ** is_revert_poll : TRUE if reverting RF polling tech 1361*7eba2f3bSAndroid Build Coastguard Worker ** before calling NFA_StopRfDiscovery 1362*7eba2f3bSAndroid Build Coastguard Worker ** FALSE if changing RF polling tech according 1363*7eba2f3bSAndroid Build Coastguard Worker ** to pollTech 1364*7eba2f3bSAndroid Build Coastguard Worker ** is_revert_listen : TRUE if reverting RF listening tech 1365*7eba2f3bSAndroid Build Coastguard Worker ** before calling NFA_StopRfDiscovery 1366*7eba2f3bSAndroid Build Coastguard Worker ** FALSE if changing RF listening tech according 1367*7eba2f3bSAndroid Build Coastguard Worker ** to listenTech 1368*7eba2f3bSAndroid Build Coastguard Worker ** change_default_tech : TRUE if the default technolofy mask 1369*7eba2f3bSAndroid Build Coastguard Worker ** has to be changed according to listenTech 1370*7eba2f3bSAndroid Build Coastguard Worker ** and pollTech settings 1371*7eba2f3bSAndroid Build Coastguard Worker ** 1372*7eba2f3bSAndroid Build Coastguard Worker ** Note: If RF discovery is started, 1373*7eba2f3bSAndroid Build Coastguard Worker ** NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT 1374*7eba2f3bSAndroid Build Coastguard Worker ** should happen before calling this function 1375*7eba2f3bSAndroid Build Coastguard Worker ** 1376*7eba2f3bSAndroid Build Coastguard Worker ** Returns NFA_STATUS_OK if successfully initiated 1377*7eba2f3bSAndroid Build Coastguard Worker ** NFA_STATUS_FAILED otherwise 1378*7eba2f3bSAndroid Build Coastguard Worker ** 1379*7eba2f3bSAndroid Build Coastguard Worker *******************************************************************************/ 1380*7eba2f3bSAndroid Build Coastguard Worker tNFA_STATUS NFA_ChangeDiscoveryTech(tNFA_TECHNOLOGY_MASK pollTech, 1381*7eba2f3bSAndroid Build Coastguard Worker tNFA_TECHNOLOGY_MASK listenTech, 1382*7eba2f3bSAndroid Build Coastguard Worker bool is_revert_poll, bool is_revert_listen, 1383*7eba2f3bSAndroid Build Coastguard Worker bool change_default_tech = false); 1384*7eba2f3bSAndroid Build Coastguard Worker 1385*7eba2f3bSAndroid Build Coastguard Worker #endif /* NFA_API_H */ 1386