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_CE_B.h * 22* \brief HCI card emulation management routines. * 23* * 24* * 25* Project: NFC-FRI-1.1 * 26* * 27* $Date: Fri Aug 14 17:01:26 2009 $ * 28* $Author: ing04880 $ * 29* $Revision: 1.4 $ * 30* $Aliases: 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 36#ifndef PHHCINFC_CE_B_H 37#define PHHCINFC_CE_B_H 38 39/*@}*/ 40 41 42/** 43* \name HCI 44* 45* File: \ref phHciNfc_CE_B.h 46* 47*/ 48/*@{*/ 49#define PHHCINFC_CE_B_FILEREVISION "$Revision: 1.4 $" /**< \ingroup grp_file_attributes */ 50#define PHHCINFC_CE_B_FILEALIASES "$Aliases: 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 */ 51/*@}*/ 52 53/* 54***************************** Header File Inclusion **************************** 55*/ 56 57#include <phHciNfc_Generic.h> 58 59/* 60****************************** Macro Definitions ******************************* 61*/ 62#define HOST_CE_B_MODE_INDEX (0x01U) 63#define HOST_CE_B_PUPI_INDEX (0x02U) 64#define HOST_CE_B_AFI_INDEX (0x03U) 65#define HOST_CE_B_ATQB_INDEX (0x04U) 66#define HOST_CE_B_HIGH_LAYER_RESP_INDEX (0x05U) 67#define HOST_CE_B_DATA_RATE_MAX_INDEX (0x05U) 68 69/* 70******************** Enumeration and Structure Definition ********************** 71*/ 72 73/* Sequence list */ 74typedef enum phHciNfc_CE_B_Seq{ 75 HOST_CE_B_INVALID_SEQ, 76 HOST_CE_B_PIPE_OPEN, 77 HOST_CE_B_PUPI_SEQ, 78 HOST_CE_B_ATQB_SEQ, 79 HOST_CE_B_ENABLE_SEQ, 80 HOST_CE_B_DISABLE_SEQ, 81 HOST_CE_B_PIPE_CLOSE, 82 HOST_CE_B_PIPE_DELETE 83}phHciNfc_CE_B_Seq_t; 84 85/* Information structure for the card emulation B gate */ 86typedef struct phHciNfc_CE_B_Info{ 87 phHciNfc_CE_B_Seq_t current_seq; 88 phHciNfc_CE_B_Seq_t next_seq; 89 /* Pointer to the card emulation B pipe information */ 90 phHciNfc_Pipe_Info_t *p_pipe_info; 91 uint8_t pipe_id; 92 93} phHciNfc_CE_B_Info_t; 94 95/* 96*********************** Function Prototype Declaration ************************* 97*/ 98 99/*! 100 * \brief Allocates the resources of card emulation B management gate. 101 * 102 * This function Allocates the resources of the card emulation B management 103 * gate Information Structure. 104 * 105 */ 106extern 107NFCSTATUS 108phHciNfc_CE_B_Init_Resources( 109 phHciNfc_sContext_t *psHciContext 110 ); 111 112/** 113* \ingroup grp_hci_nfc 114* 115* The phHciNfc_CE_B_Get_PipeID function gives the pipe id of the card 116* emulation B gate 117* 118* \param[in] psHciContext psHciContext is the pointer to HCI Layer 119* context Structure. 120* \param[in] pHwRef pHwRef is the Information of 121* the Device Interface Link 122* 123* \retval NFCSTATUS_SUCCESS Function execution is successful. 124* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters 125* could not be interpreted properly. 126* 127*/ 128extern 129NFCSTATUS 130phHciNfc_CE_B_Get_PipeID( 131 phHciNfc_sContext_t *psHciContext, 132 uint8_t *ppipe_id 133 ); 134 135/** 136* \ingroup grp_hci_nfc 137* 138* The phHciNfc_CE_B_Update_PipeInfo function updates the pipe_id of the card 139* emulation B gate management Structure. 140* 141* \param[in] psHciContext psHciContext is the pointer to HCI Layer 142* context Structure. 143* \param[in] pipeID pipeID of the card emulation A gate 144* \param[in] pPipeInfo Update the pipe Information of the reader 145* A gate 146* 147* \retval NFCSTATUS_SUCCESS Function execution is successful. 148* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters 149* could not be interpreted properly. 150* 151*/ 152 153extern 154NFCSTATUS 155phHciNfc_CE_B_Update_PipeInfo( 156 phHciNfc_sContext_t *psHciContext, 157 uint8_t pipeID, 158 phHciNfc_Pipe_Info_t *pPipeInfo 159 ); 160 161/** 162* \ingroup grp_hci_nfc 163* 164* The phHciNfc_CE_B_SendData_Event function sends data to the PN544 165* 166* \param[in] psHciContext psHciContext is the pointer to HCI Layer 167* context Structure. 168* \param[in] pHwRef pHwRef is the Information of 169* the Device Interface Link 170* \param[in] pipeID pipeID of the card emulation B gate 171* \param[in] pPipeInfo Update the pipe Information of the card 172* emulation B gate 173* 174* \retval NFCSTATUS_SUCCESS Function execution is successful. 175* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters 176* could not be interpreted properly. 177* 178*/ 179#ifdef CE_B_SEND_EVENT 180extern 181NFCSTATUS 182phHciNfc_CE_B_SendData_Event( 183 void *psContext, 184 void *pHwRef, 185 uint8_t *pEvent, 186 uint8_t length 187 ); 188#endif /* #ifdef CE_B_SEND_EVENT */ 189 190/** 191* \ingroup grp_hci_nfc 192* 193* The phHciNfc_CE_B_Mode function sends data to the set the card emulation mode 194* 195* \param[in] psHciContext psHciContext is the pointer to HCI Layer 196* context Structure. 197* \param[in] pHwRef pHwRef is the Information of 198* the Device Interface Link 199* \param[in] enable_type type to enable 200* 201* \retval NFCSTATUS_SUCCESS Function execution is successful. 202* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters 203* could not be interpreted properly. 204* 205*/ 206NFCSTATUS 207phHciNfc_CE_B_Mode( 208 void *psHciHandle, 209 void *pHwRef, 210 uint8_t enable_type 211 ); 212 213/** 214* \ingroup grp_hci_nfc 215* 216* The phHciNfc_CE_B_Initialise function opens the CE B and set all the 217* required parameters for CE B 218* 219* \param[in] psHciContext psHciContext is the pointer to HCI Layer 220* context Structure. 221* \param[in] pHwRef pHwRef is the Information of 222* the Device Interface Link 223* 224* \retval NFCSTATUS_SUCCESS Function execution is successful. 225* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters 226* could not be interpreted properly. 227* 228*/ 229extern 230NFCSTATUS 231phHciNfc_CE_B_Initialise( 232 phHciNfc_sContext_t *psHciContext, 233 void *pHwRef 234 ); 235 236/** 237* \ingroup grp_hci_nfc 238* 239* The phHciNfc_CE_B_Initialise function close the CE B and reset all the 240* required parameters to default value of CE B 241* 242* \param[in] psHciContext psHciContext is the pointer to HCI Layer 243* context Structure. 244* \param[in] pHwRef pHwRef is the Information of 245* the Device Interface Link 246* 247* \retval NFCSTATUS_SUCCESS Function execution is successful. 248* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters 249* could not be interpreted properly. 250* 251*/ 252extern 253NFCSTATUS 254phHciNfc_CE_B_Release( 255 phHciNfc_sContext_t *psHciContext, 256 void *pHwRef 257 ); 258 259/** 260* \ingroup grp_hci_nfc 261* 262* The phHciNfc_CE_B_Update_Seq function to update CE B sequence depending on the 263* specified \ref seq_type 264* 265* \param[in] psHciContext psHciContext is the pointer to HCI Layer 266* context Structure. 267* \param[in] seq_type sequence type specified in 268* \ref phHciNfc_eSeqType_t 269* 270* \retval NFCSTATUS_SUCCESS Function execution is successful. 271* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters 272* could not be interpreted properly. 273* 274*/ 275extern 276NFCSTATUS 277phHciNfc_CE_B_Update_Seq( 278 phHciNfc_sContext_t *psHciContext, 279 phHciNfc_eSeqType_t seq_type 280 ); 281 282#endif /* PHHCINFC_CE_B_H */ 283 284 285