1/* 2 * Copyright (C) 2010 NXP Semiconductors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17/*! 18* =========================================================================== * 19* * 20* * 21* \file phHciNfc_NfcIPMgmt.h * 22* \brief HCI NFCIP-1 Management Routines. * 23* * 24* * 25* Project: NFC-FRI-1.1 * 26* * 27* $Date: Tue Jun 30 17:09:29 2009 $ * 28* $Author: ing04880 $ * 29* $Revision: 1.1 $ * 30* $Aliases: NFC_FRI1.1_WK926_R28_2,NFC_FRI1.1_WK926_R28_3,NFC_FRI1.1_WK928_R29_1,NFC_FRI1.1_WK930_R30_1,NFC_FRI1.1_WK934_R31_1,NFC_FRI1.1_WK941_PREP1,NFC_FRI1.1_WK941_PREP2,NFC_FRI1.1_WK941_1,NFC_FRI1.1_WK943_R32_1,NFC_FRI1.1_WK949_PREP1,NFC_FRI1.1_WK943_R32_10,NFC_FRI1.1_WK943_R32_13,NFC_FRI1.1_WK943_R32_14,NFC_FRI1.1_WK1007_R33_1,NFC_FRI1.1_WK1007_R33_4,NFC_FRI1.1_WK1017_PREP1,NFC_FRI1.1_WK1017_R34_1,NFC_FRI1.1_WK1017_R34_2,NFC_FRI1.1_WK1023_R35_1 $ * 31* * 32* =========================================================================== * 33*/ 34 35#ifndef PHHCINFC_ISO15693_H 36#define PHHCINFC_ISO15693_H 37 38/*@}*/ 39 40 41/** 42* \name HCI 43* 44* File: \ref phHciNfc_ISO15693.h 45* 46*/ 47/*@{*/ 48#define PHHCINFC_ISO15693_FILEREVISION "$Revision: 1.1 $" /**< \ingroup grp_file_attributes */ 49#define PHHCINFC_ISO15693_FILEALIASES "$Aliases: NFC_FRI1.1_WK926_R28_2,NFC_FRI1.1_WK926_R28_3,NFC_FRI1.1_WK928_R29_1,NFC_FRI1.1_WK930_R30_1,NFC_FRI1.1_WK934_R31_1,NFC_FRI1.1_WK941_PREP1,NFC_FRI1.1_WK941_PREP2,NFC_FRI1.1_WK941_1,NFC_FRI1.1_WK943_R32_1,NFC_FRI1.1_WK949_PREP1,NFC_FRI1.1_WK943_R32_10,NFC_FRI1.1_WK943_R32_13,NFC_FRI1.1_WK943_R32_14,NFC_FRI1.1_WK1007_R33_1,NFC_FRI1.1_WK1007_R33_4,NFC_FRI1.1_WK1017_PREP1,NFC_FRI1.1_WK1017_R34_1,NFC_FRI1.1_WK1017_R34_2,NFC_FRI1.1_WK1023_R35_1 $" /**< \ingroup grp_file_attributes */ 50/*@}*/ 51 52/* 53***************************** Header File Inclusion **************************** 54*/ 55 56#include <phHciNfc_Generic.h> 57 58/* 59****************************** Macro Definitions ******************************* 60*/ 61/* Enable the ISO 15693 */ 62#define HCI_ISO_15693_ENABLE 0x01U 63#define HCI_ISO_15693_INFO_SEQ 0x02U 64 65#define NXP_ISO15693_CMD 0x20U 66 67 68/* 69******************** Enumeration and Structure Definition ********************** 70*/ 71 72typedef enum phHciNfc_ISO15693_Seq{ 73 ISO15693_INVENTORY, 74 ISO15693_AFI, 75 ISO15693_END_SEQUENCE, 76 ISO15693_INVALID_SEQ 77} phHciNfc_ISO15693_Seq_t; 78 79typedef struct phHciNfc_ISO15693_Info{ 80 phHciNfc_ISO15693_Seq_t current_seq; 81 phHciNfc_ISO15693_Seq_t next_seq; 82 phHciNfc_Pipe_Info_t *ps_15693_pipe_info; 83 uint8_t pipe_id; 84 uint8_t multiple_tgts_found; 85 phHal_sRemoteDevInformation_t iso15693_info; 86 uint8_t enable_iso_15693_gate; 87}phHciNfc_ISO15693_Info_t; 88 89 90/* 91*********************** Function Prototype Declaration ************************* 92*/ 93 94/*! 95* \brief Allocates the resources of ISO15693 management gate. 96* 97* This function Allocates the resources of the ISO15693 management 98* gate Information Structure. 99* 100*/ 101extern 102NFCSTATUS 103phHciNfc_ISO15693_Init_Resources( 104 phHciNfc_sContext_t *psHciContext 105 ); 106 107/** 108* \ingroup grp_hci_nfc 109* 110* The phHciNfc_ISO15693_Get_PipeID function gives the pipe id of the ISO15693 111* gate 112* 113* \param[in] psHciContext psHciContext is the pointer to HCI Layer 114* context Structure. 115* \param[in] pHwRef pHwRef is the Information of 116* the Device Interface Link 117* 118* \retval NFCSTATUS_SUCCESS Function execution is successful. 119* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters 120* could not be interpreted properly. 121* 122*/ 123extern 124NFCSTATUS 125phHciNfc_ISO15693_Get_PipeID( 126 phHciNfc_sContext_t *psHciContext, 127 uint8_t *ppipe_id 128 ); 129 130/** 131* \ingroup grp_hci_nfc 132* 133* The phHciNfc_ISO15693_Update_PipeInfo function updates the pipe_id of the ISO15693 134* gate management Structure. 135* 136* \param[in] psHciContext psHciContext is the pointer to HCI Layer 137* context Structure. 138* \param[in] pipeID pipeID of the ISO15693 gate 139* \param[in] pPipeInfo Update the pipe Information of the ISO15693 140* gate 141* 142* \retval NFCSTATUS_SUCCESS Function execution is successful. 143* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters 144* could not be interpreted properly. 145* 146*/ 147 148extern 149NFCSTATUS 150phHciNfc_ISO15693_Update_PipeInfo( 151 phHciNfc_sContext_t *psHciContext, 152 uint8_t pipeID, 153 phHciNfc_Pipe_Info_t *pPipeInfo 154 ); 155 156/** 157* \ingroup grp_hci_nfc 158* 159* The phHciNfc_ISO15693_Update_Info function stores the data sent by the 160* upper layer. 161* 162* \param[in] psHciContext psHciContext is the pointer to HCI Layer 163* context Structure. 164* \param[in] infotype To enable the ISO 15693 gate 165* \param[in] iso_15693_info ISO 15693 gate info 166* 167* \retval NFCSTATUS_SUCCESS Function execution is successful. 168* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters 169* could not be interpreted properly. 170* 171*/ 172extern 173NFCSTATUS 174phHciNfc_ISO15693_Update_Info( 175 phHciNfc_sContext_t *psHciContext, 176 uint8_t infotype, 177 void *iso_15693_info 178 ); 179 180/** 181* \ingroup grp_hci_nfc 182* 183* The phHciNfc_ISO15693_Sequence function executes the sequence of operations, to 184* get the NXP_ISO15693_INVENTORY, NXP_ISO15693_AFI. 185* 186* \param[in] psHciContext psHciContext is the pointer to HCI Layer 187* context Structure. 188* \param[in] pHwRef pHwRef is the Information of 189* the Device Interface Link 190* 191* \retval NFCSTATUS_SUCCESS Function execution is successful. 192* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters 193* could not be interpreted properly. 194* 195*/ 196extern 197NFCSTATUS 198phHciNfc_ISO15693_Info_Sequence ( 199 void *psHciHandle, 200 void *pHwRef 201 ); 202 203/** 204* \ingroup grp_hci_nfc 205* 206* The phHciNfc_Send_ISO15693_Command function executes the command sent by the 207* upper layer, depending on the commands defined. 208* 209* \param[in] psContext psContext is the pointer to HCI Layer 210* context Structure. 211* \param[in] pHwRef pHwRef is the Information of 212* the Device Interface Link 213* \param[in] pipe_id pipeID of the ISO 15693 gate 214* \param[in] cmd command that needs to be sent to the device 215* 216* \retval NFCSTATUS_SUCCESS Function execution is successful. 217* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters 218* could not be interpreted properly. 219* 220*/ 221extern 222NFCSTATUS 223phHciNfc_Send_ISO15693_Command( 224 phHciNfc_sContext_t *psHciContext, 225 void *pHwRef, 226 uint8_t pipe_id, 227 uint8_t cmd 228 ); 229 230/** 231* \ingroup grp_hci_nfc 232* 233* The phHciNfc_ISO15693_Set_AFI function updates the AFI value 234* 235* \param[in] psHciContext psHciContext is the pointer to HCI Layer 236* context Structure. 237* \param[in] pipeID pipeID of the ISO 15693 gate 238* \param[in] pPipeInfo Update the pipe Information of the ISO 239* 15693 gate 240* 241* \retval NFCSTATUS_SUCCESS Function execution is successful. 242* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters 243* could not be interpreted properly. 244* 245*/ 246extern 247NFCSTATUS 248phHciNfc_ISO15693_Set_AFI( 249 void *psContext, 250 void *pHwRef, 251 uint8_t afi_value 252 ); 253 254#endif /* #ifndef PHHCINFC_ISO15693_H */ 255 256 257