diff options
author | Nick Pelly <npelly@google.com> | 2010-09-23 12:47:58 -0700 |
---|---|---|
committer | Nick Pelly <npelly@google.com> | 2010-09-23 13:53:18 -0700 |
commit | 5d9927ba30ba449badb9f6df0fbeb4d6aedc6e2a (patch) | |
tree | 190f9251c6db03d3550ec7f30b51a2561c01d9cf /src/phHciNfc_RFReader.h | |
parent | 4ff7c86a2c706b150078274455406f1b04966e1a (diff) | |
download | external_libnfc-nxp-5d9927ba30ba449badb9f6df0fbeb4d6aedc6e2a.zip external_libnfc-nxp-5d9927ba30ba449badb9f6df0fbeb4d6aedc6e2a.tar.gz external_libnfc-nxp-5d9927ba30ba449badb9f6df0fbeb4d6aedc6e2a.tar.bz2 |
Initial libnfc checkin
Source: Trusted_NFC_Device_Host_AA03.01e02_google.zip code drop (23-Sep-2010)
Change-Id: Ie47f18423f949a8d3e0815d13f55c814312add24
Signed-off-by: Nick Pelly <npelly@google.com>
Diffstat (limited to 'src/phHciNfc_RFReader.h')
-rw-r--r-- | src/phHciNfc_RFReader.h | 558 |
1 files changed, 558 insertions, 0 deletions
diff --git a/src/phHciNfc_RFReader.h b/src/phHciNfc_RFReader.h new file mode 100644 index 0000000..751fbbb --- /dev/null +++ b/src/phHciNfc_RFReader.h @@ -0,0 +1,558 @@ +/* + * Copyright (C) 2010 NXP Semiconductors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/*! +* =========================================================================== * +* * +* * +* \file phHciNfc_RFReader.h * +* \brief HCI Header for the RF Reader Management Gate. * +* * +* * +* Project: NFC-FRI-1.1 * +* * +* $Date: Fri Aug 14 17:01:28 2009 $ * +* $Author: ing04880 $ * +* $Revision: 1.17 $ * +* $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 $ * +* * +* =========================================================================== * +*/ + + +#ifndef PHHCINFC_RFREADER_H +#define PHHCINFC_RFREADER_H + +/*@}*/ + + +/** + * \name HCI + * + * File: \ref phHciNfc_RFReader.h + * + */ +/*@{*/ +#define PHHCINFC_RF_READER_FILEREVISION "$Revision: 1.17 $" /**< \ingroup grp_file_attributes */ +#define PHHCINFC_RF_READER_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 */ +/*@}*/ + +/* +***************************** Header File Inclusion **************************** +*/ + +#include <phHciNfc_Generic.h> + +/* +****************************** Macro Definitions ******************************* +*/ +/* Events Requested by the Reader Application Gates */ +#define EVT_READER_REQUESTED 0x10U +#define EVT_END_OPERATION 0x11U + +/* Events Triggered by the Reader RF Gates */ +#define EVT_TARGET_DISCOVERED 0x10U + +/* Commands from ETSI HCI Specification */ +#define WR_XCHGDATA 0x10U + +/* NXP Additional Commands apart from ETSI HCI Specification */ +/* Command to Check the presence of the card */ +#define NXP_WR_PRESCHECK 0x30U + +/* Command to Activate the next card present in the field */ +#define NXP_WR_ACTIVATE_NEXT 0x31U + +/* Command to Activate a card with its UID */ +#define NXP_WR_ACTIVATE_ID 0x32U + +/* Command to Dispatch the card to UICC */ +#define NXP_WR_DISPATCH_TO_UICC 0x33U + +/* NXP Additional Events apart from ETSI HCI Specification */ +/* Event to Release the Target and Restart The Wheel */ +#define NXP_EVT_RELEASE_TARGET 0x35U + + +/* Type Macro to Update the RF Reader Information */ + +#define HCI_RDR_ENABLE_TYPE 0x01U + +#define UICC_CARD_ACTIVATION_SUCCESS 0x00U +#define UICC_CARD_ACTIVATION_ERROR 0x01U +#define UICC_RDR_NOT_INTERESTED 0x02U + + +/* +******************** Enumeration and Structure Definition ********************** +*/ + + + +/* +*********************** Function Prototype Declaration ************************* +*/ + +/** + * \ingroup grp_hci_nfc + * + * The phHciNfc_ReaderMgmt_Initialise function creates and the opens RF Reader + * Management Gate + * + * \param[in] psHciContext psHciContext is the pointer to HCI Layer + * context Structure. + * \param[in] pHwRef pHwRef is the Information of + * the Device Interface Link . + * + * \retval NFCSTATUS_PENDING Reader RF Mgmt Gate Initialisation is pending. + * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters + * could not be interpreted properly. + * \retval Other errors Errors related to the other layers + * + */ +extern +NFCSTATUS +phHciNfc_ReaderMgmt_Initialise( + phHciNfc_sContext_t *psHciContext, + void *pHwRef + ); +/** + * \ingroup grp_hci_nfc + * + * The phHciNfc_ReaderMgmt_Release function closes the opened RF Reader pipes + * between the Host Controller Device and the NFC Device. + * + * \param[in] psHciContext psHciContext is the pointer to HCI Layer + * context Structure. + * \param[in] pHwRef pHwRef is the Information of + * the Device Interface Link . + * + * \retval NFCSTATUS_PENDING Release of the Reader RF Management gate + * resources are pending. + * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters + * could not be interpreted properly. + * \retval Other errors Errors related to the other layers + * + */ +extern +NFCSTATUS +phHciNfc_ReaderMgmt_Release( + phHciNfc_sContext_t *psHciContext, + void *pHwRef + ); + +/** + * \ingroup grp_hci_nfc + * + * The phHciNfc_ReaderMgmt_Update_Sequence function Resets/Updates the sequence + * to the Specified RF Reader Sequence . + * + * \param[in] psHciContext psHciContext is the pointer to HCI Layer + * context Structure. + * \param[in] reader_seq reader_seq is the Type of sequence update + * required to reset . + * + * \retval NFCSTATUS_SUCCESS Updates/Resets the Sequence of the Reader + * RF Management gate Successsfully. + * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters + * could not be interpreted properly. + * \retval + * NFCSTATUS_INVALID_HCI_INFORMATION The RF Reader Management information is + * invalid. + * + */ + +extern +NFCSTATUS +phHciNfc_ReaderMgmt_Update_Sequence( + phHciNfc_sContext_t *psHciContext, + phHciNfc_eSeqType_t reader_seq + ); + +/** + * \ingroup grp_hci_nfc + * + * The phHciNfc_ReaderMgmt_Enable_Discovery function Enables the RF Reader + * Gates to discover the corresponding PICC Tags . + * + * \param[in] psHciContext psHciContext is the pointer to HCI Layer + * context Structure. + * \param[in] pHwRef pHwRef is the Information of + * the Device Interface Link . + * + * \retval NFCSTATUS_PENDING Enable of the Reader RF Management gate + * Discovery is pending. + * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters + * could not be interpreted properly. + * \retval Other errors Errors related to the other layers + * + */ + +extern +NFCSTATUS +phHciNfc_ReaderMgmt_Enable_Discovery( + phHciNfc_sContext_t *psHciContext, + void *pHwRef + ); + +/** + * \ingroup grp_hci_nfc + * + * The phHciNfc_ReaderMgmt_Discovery function Enables/Disables/Restart/Continue + * the RF Reader Gates to discover the corresponding PICC Tags . + * + * \param[in] psHciContext psHciContext is the pointer to HCI Layer + * context Structure. + * \param[in] pHwRef pHwRef is the Information of + * the Device Interface Link . + * + * \retval NFCSTATUS_PENDING Enable of the Reader RF Management gate + * Discovery is pending. + * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters + * could not be interpreted properly. + * \retval Other errors Errors related to the other layers + * + */ + + +/** + * \ingroup grp_hci_nfc + * + * The phHciNfc_ReaderMgmt_Disable_Discovery function Disables the RF Reader + * Gates discovery . + * + * \param[in] psHciContext psHciContext is the pointer to HCI Layer + * context Structure. + * \param[in] pHwRef pHwRef is the Information of + * the Device Interface Link . + * + * \retval NFCSTATUS_PENDING Disable of the Reader RF Management gate + * Discovery is pending. + * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters + * could not be interpreted properly. + * \retval Other errors Errors related to the other layers + * + */ + +extern +NFCSTATUS +phHciNfc_ReaderMgmt_Disable_Discovery( + phHciNfc_sContext_t *psHciContext, + void *pHwRef + ); + + +/** + * \ingroup grp_hci_nfc + * + * The phHciNfc_ReaderMgmt_Info_Sequence function Gets the information + * of the Tag discovered . + * + * \param[in] psHciContext psHciContext is the pointer to HCI Layer + * context Structure. + * \param[in] pHwRef pHwRef is the Information of + * the Device Interface Link . + * + * \retval NFCSTATUS_PENDING Reception the information of the discoverd + * tag is ongoing. + * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters + * could not be interpreted properly. + * \retval Other errors Errors related to the other layers + * + */ + +extern +NFCSTATUS +phHciNfc_ReaderMgmt_Info_Sequence( + phHciNfc_sContext_t *psHciContext, + void *pHwRef + ); + +/** + * \ingroup grp_hci_nfc + * + * The phHciNfc_ReaderMgmt_Select function connects the + * the selected tag by performing certain operation. + * + * \param[in] psHciContext psHciContext is the pointer to HCI Layer + * context Structure. + * \param[in] pHwRef pHwRef is the Information of + * the Device Interface Link . + * \param[in] target_type target_type is the type of the + * Target Device to be connected . + * + * \retval NFCSTATUS_PENDING The selected tag initialisation for + * transaction ongoing. + * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters + * could not be interpreted properly. + * \retval Other errors Errors related to the other layers + * + */ + +extern +NFCSTATUS +phHciNfc_ReaderMgmt_Select( + phHciNfc_sContext_t *psHciContext, + void *pHwRef, + phHal_eRemDevType_t target_type + ); + + +/** + * \ingroup grp_hci_nfc + * + * The phHciNfc_ReaderMgmt_Reactivate function reactivates the + * the tag by performing reactivate operation. + * + * \param[in] psHciContext psHciContext is the pointer to HCI Layer + * context Structure. + * \param[in] pHwRef pHwRef is the Information of + * the Device Interface Link . + * \param[in] target_type target_type is the type of the + * Target Device to be reactivated . + * + * \retval NFCSTATUS_PENDING The tag reactivation ongoing. + * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters + * could not be interpreted properly. + * \retval Other errors Errors related to the other layers + * + */ + + +extern +NFCSTATUS +phHciNfc_ReaderMgmt_Reactivate( + phHciNfc_sContext_t *psHciContext, + void *pHwRef, + phHal_eRemDevType_t target_type + ); + +/** +* \ingroup grp_hci_nfc +* +* The phHciNfc_ReaderMgmt_Presence_Check function performs presence on ISO +* cards. +* +* \param[in] psHciContext psHciContext is the pointer to HCI Layer +* context Structure. +* \param[in] pHwRef pHwRef is the Information of +* the Device Interface Link . +* +* \retval NFCSTATUS_PENDING The presence check for tag is ongoing. +* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters +* could not be interpreted properly. +* \retval Other errors Errors related to the other layers +* +*/ + +extern +NFCSTATUS +phHciNfc_ReaderMgmt_Presence_Check( + phHciNfc_sContext_t *psHciContext, + void *pHwRef + ); + +/** +* \ingroup grp_hci_nfc +* +* The phHciNfc_ReaderMgmt_Activate_Next function activates and selects next +* tag or target present in the RF Field . +* +* \param[in] psHciContext psHciContext is the pointer to HCI Layer +* context Structure. +* \param[in] pHwRef pHwRef is the Information of +* the Device Interface Link . +* +* \retval NFCSTATUS_PENDING The activation of the next tag is ongoing. +* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters +* could not be interpreted properly. +* \retval Other errors Errors related to the other layers +* +*/ + +extern +NFCSTATUS +phHciNfc_ReaderMgmt_Activate_Next( + phHciNfc_sContext_t *psHciContext, + void *pHwRef + ); + + +/** + * \ingroup grp_hci_nfc + * + * The phHciNfc_ReaderMgmt_UICC_Dispatch function de-activates the + * the selected tag by de-selecting the tag and dispatch the Card to UICC. + * + * \param[in] psHciContext psHciContext is the pointer to HCI Layer + * context Structure. + * \param[in] pHwRef pHwRef is the Information of + * the Device Interface Link . + * \param[in] target_type target_type is the type of the + * Target Device to be de-selected . + * \param[in] re_poll If True: Start re-polling of the target + * after the Target Device is de-activated + * or else - continue discovery with next + * technology. + * + * + * \retval NFCSTATUS_PENDING Dispatching the selected tag to UICC + * is ongoing. + * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters + * could not be interpreted properly. + * \retval Other errors Errors related to the other layers + * + */ + +extern +NFCSTATUS +phHciNfc_ReaderMgmt_UICC_Dispatch( + phHciNfc_sContext_t *psHciContext, + void *pHwRef, + phHal_eRemDevType_t target_type + ); + + +/** + * \ingroup grp_hci_nfc + * + * The phHciNfc_ReaderMgmt_Deselect function de-activates the + * the selected tag by de-selecting the tag and restarting the discovery. + * + * \param[in] psHciContext psHciContext is the pointer to HCI Layer + * context Structure. + * \param[in] pHwRef pHwRef is the Information of + * the Device Interface Link . + * \param[in] target_type target_type is the type of the + * Target Device to be de-selected . + * + * \retval NFCSTATUS_PENDING Terminating the operations between selected + * tag is ongoing. + * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters + * could not be interpreted properly. + * \retval Other errors Errors related to the other layers + * + */ + +extern +NFCSTATUS +phHciNfc_ReaderMgmt_Deselect( + phHciNfc_sContext_t *psHciContext, + void *pHwRef, + phHal_eRemDevType_t target_type, + uint8_t re_poll + ); + +/** + * \ingroup grp_hci_nfc + * + * The phHciNfc_ReaderMgmt_Exchange_Data function exchanges the + * data to/from the selected tag . + * + * \param[in] psHciContext psHciContext is the pointer to HCI Layer + * context Structure. + * \param[in] pHwRef pHwRef is the Information of + * the Device Interface Link . + * \param[in] p_xchg_info The tag exchange info contains the command type, + * addr and data to be sent to the connected + * remote target device. + * + * \retval NFCSTATUS_PENDING Exchange of the data between the selected + * tag is ongoing. + * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters + * could not be interpreted properly. + * \retval Other errors Errors related to the other layers + * + */ + +extern +NFCSTATUS +phHciNfc_ReaderMgmt_Exchange_Data( + phHciNfc_sContext_t *psHciContext, + void *pHwRef, + phHciNfc_XchgInfo_t *p_xchg_info + ); + + + +/** + * \ingroup grp_hci_nfc + * + * The phHciNfc_Send_RFReader_Command function sends the HCI Reader Gate + * Specific Commands to the HCI Controller device. + * + * \param[in] psHciContext psHciContext is the context of + * the HCI Layer. + * \param[in] pHwRef pHwRef is the Information of + * the Device Interface Link . + * \param[in] pipe_id The Reader pipe to which the + * command is being sent. + * \param[in] cmd The HCI Reader Gate specific command + * sent to a Reader pipe . + * + * + * \retval NFCSTATUS_PENDING ETSI HCI RF Reader gate Command + * to be sent is pending. + * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters + * could not be interpreted properly. + * \retval Other errors Errors related to the other layers + * + */ + +extern +NFCSTATUS + phHciNfc_Send_RFReader_Command ( + phHciNfc_sContext_t *psHciContext, + void *pHwRef, + uint8_t pipe_id, + uint8_t cmd + ); + +/** + * \ingroup grp_hci_nfc + * + * The phHciNfc_Send_RFReader_Event function sends the HCI Reader Gate + * Specific Events to the HCI Controller device. + * + * \param[in] psHciContext psHciContext is the context of + * the HCI Layer. + * \param[in] pHwRef pHwRef is the Information of + * the Device Interface Link . + * \param[in] pipe_id The Reader pipe to which the + * command is being sent. + * \param[in] event The HCI Reader Gate specific event + * sent to a Reader pipe . + * + * + * \retval NFCSTATUS_PENDING ETSI HCI RF Reader gate Event + * to be sent is pending. + * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters + * could not be interpreted properly. + * \retval Other errors Errors related to the other layers + * + */ + +extern +NFCSTATUS + phHciNfc_Send_RFReader_Event ( + phHciNfc_sContext_t *psHciContext, + void *pHwRef, + uint8_t pipe_id, + uint8_t event + ); + +#endif /* PHHCINFC_RFREADER_H */ + |