summaryrefslogtreecommitdiffstats
path: root/src/phHciNfc_RFReader.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/phHciNfc_RFReader.h')
-rw-r--r--src/phHciNfc_RFReader.h558
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 */
+