summaryrefslogtreecommitdiffstats
path: root/src/phHciNfc_SWP.h
diff options
context:
space:
mode:
authorNick Pelly <npelly@google.com>2010-09-23 12:47:58 -0700
committerNick Pelly <npelly@google.com>2010-09-23 13:53:18 -0700
commit5d9927ba30ba449badb9f6df0fbeb4d6aedc6e2a (patch)
tree190f9251c6db03d3550ec7f30b51a2561c01d9cf /src/phHciNfc_SWP.h
parent4ff7c86a2c706b150078274455406f1b04966e1a (diff)
downloadexternal_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_SWP.h')
-rw-r--r--src/phHciNfc_SWP.h355
1 files changed, 355 insertions, 0 deletions
diff --git a/src/phHciNfc_SWP.h b/src/phHciNfc_SWP.h
new file mode 100644
index 0000000..e397e36
--- /dev/null
+++ b/src/phHciNfc_SWP.h
@@ -0,0 +1,355 @@
+/*
+ * 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_SWP .h *
+* \brief HCI wired interface gate Management Routines. *
+* *
+* *
+* Project: NFC-FRI-1.1 *
+* *
+* $Date: Fri Aug 14 17:01:28 2009 $ *
+* $Author: ing04880 $ *
+* $Revision: 1.15 $ *
+* $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_SWP_H
+#define PHHCINFC_SWP_H
+/*@}*/
+/**
+ * \name HCI
+ *
+ * File: \ref phHciNfc_SWP.h
+ *
+ */
+/*@{*/
+#define PHHCINFC_SWPRED_FILEREVISION "$Revision: 1.15 $" /**< \ingroup grp_file_attributes */
+#define PHHCINFC_SWPREDINTERFACE_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 ********************************/
+
+/* Kb/sec */
+#define UICC_REF_BITRATE (106U)
+#define UICC_MAX_CONNECT_RETRY (0x02U)
+
+/* SWP switch mode event parameters */
+#define UICC_SWITCH_MODE_OFF (0x00U)
+#define UICC_SWITCH_MODE_DEFAULT (0x01U)
+#define UICC_SWITCH_MODE_ON (0x02U)
+
+/******************** Enumeration and Structure Definition ***********************/
+
+typedef enum phHciNfc_SWP_Seq{
+ SWP_INVALID_SEQUENCE = 0x00U,
+ SWP_MODE_SEQ,
+ SWP_STATUS_SEQ,
+ SWP_END_SEQ
+}phHciNfc_SWP_Seq_t;
+
+typedef enum phHciNfc_SWP_Status{
+ UICC_NOT_CONNECTED = 0x00U,
+ UICC_CONNECTION_ONGOING,
+ UICC_CONNECTED,
+ UICC_CONNECTION_LOST,
+ UICC_DISCONNECTION_ONGOING,
+ UICC_CONNECTION_FAILED
+}phHciNfc_SWP_Status_t;
+
+
+/* Information structure for SWP Gate */
+typedef struct phHciNfc_SWP_Info{
+
+ /* Pointer to SWP gate pipe information */
+ phHciNfc_Pipe_Info_t *p_pipe_info;
+ /* SWP gate pipe Identified */
+ uint8_t pipe_id;
+ /*Current internal Sequence type */
+ phHciNfc_SWP_Seq_t current_seq;
+ /*Current next Sequence ID */
+ phHciNfc_SWP_Seq_t next_seq;
+
+ phHciNfc_SWP_Status_t uicc_status;
+
+ uint8_t uicc_bitrate;
+
+} phHciNfc_SWP_Info_t;
+
+/************************ Function Prototype Declaration *************************/
+/*!
+ * \brief Allocates the resources required for SWP gate management.
+ *
+ * This function Allocates necessary resources as requiered by SWP gate management
+ *
+ * \param[in] psHciContext psHciContext is the pointer to HCI Layer
+ *
+ * \retval NFCSTATUS_SUCCESS Function execution is successful
+ *
+ * \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid
+ */
+extern
+NFCSTATUS
+phHciNfc_SWP_Init_Resources(phHciNfc_sContext_t *psHciContext);
+
+/**
+* \ingroup grp_hci_nfc
+*
+* \brief Allocates the resources required for SWP gate management.
+*
+* This function Allocates necessary resources as requiered by SWP gate management
+*
+* \param[in] psHciContext psHciContext is the pointer to HCI Layer
+*
+* \retval NFCSTATUS_SUCCESS Function execution is successful
+*
+* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid
+*/
+
+extern
+NFCSTATUS
+phHciNfc_SWPMgmt_Initialise(
+ phHciNfc_sContext_t *psHciContext,
+ void *pHwRef
+ );
+
+/**
+* \ingroup grp_hci_nfc
+*
+* \brief updates SWP gate specific pipe information .
+*
+* This function intialises gate specific informations like pipe id,
+* event handler and response handler etc.
+*
+* \param[in] psHciContext psHciContext is the pointer to HCI Layer
+* \param[in] pipeID pipeID of the SWP management Gate
+* \param[in] pPipeInfo Update the pipe Information of the SWP
+* Management Gate.
+*
+* \retval NFCSTATUS_SUCCESS Function execution is successful
+*
+* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid
+*/
+extern
+NFCSTATUS
+phHciNfc_SWP_Update_PipeInfo(
+ phHciNfc_sContext_t *psHciContext,
+ uint8_t pipeID,
+ phHciNfc_Pipe_Info_t *pPipeInfo
+ );
+/**
+* \ingroup grp_hci_nfc
+*
+* \brief updates SWP gate specific pipe information .
+*
+* This function intialises gate specific informations like pipe id,
+* event handler and response handler etc.
+*
+* \param[in] psHciContext psHciContext is the pointer to HCI Layer
+*
+* \retval NFCSTATUS_SUCCESS Function execution is successful
+*
+* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid
+*/
+
+extern
+NFCSTATUS
+phHciNfc_SWP_Get_PipeID(
+ phHciNfc_sContext_t *psHciContext,
+ uint8_t *ppipe_id
+ );
+
+/**
+* \ingroup grp_hci_nfc
+*
+* \brief Enables /disables SWP mode .
+*
+* This function enables/disables SWP link associated with UICC.
+*
+*
+* \param[in] psHciContext psHciContext is pointer to HCI Layer
+*
+* \param[in] pHwRef pHwRef is underlying Hardware context.
+*
+* \param[in] enable_type 0 means disable ,1 means enable SWP link.
+* \retval NFCSTATUS_SUCCESS Function execution is successful
+*
+* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid
+*/
+extern
+NFCSTATUS
+phHciNfc_SWP_Configure_Default(
+ void *psHciHandle,
+ void *pHwRef,
+ uint8_t enable_type
+ );
+
+/**
+* \ingroup grp_hci_nfc
+*
+* \brief Enables /disables SWP mode .
+*
+* This function enables/disables SWP link associated with UICC.
+*
+*
+* \param[in] psHciContext psHciContext is pointer to HCI Layer
+*
+* \param[in] pHwRef pHwRef is underlying Hardware context.
+*
+* \param[in] mode TRUE Enable Protection.
+* \retval NFCSTATUS_SUCCESS Function execution is successful
+*
+* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid
+*/
+extern
+NFCSTATUS
+phHciNfc_SWP_Protection(
+ void *psHciHandle,
+ void *pHwRef,
+ uint8_t mode
+ );
+
+
+/**
+* \ingroup grp_hci_nfc
+*
+* \brief To send the switch mode event
+*
+* This function send an event to change the switch mode.
+*
+*
+* \param[in] psHciContext psHciContext is pointer to HCI Layer
+*
+* \param[in] pHwRef pHwRef is underlying Hardware context.
+*
+* \param[in] uicc_mode UICC_SWITCH_MODE_OFF
+* UICC_SWITCH_MODE_DEFAULT
+* UICC_SWITCH_MODE_ON
+* \retval NFCSTATUS_SUCCESS Function execution is successful
+*
+* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid
+*/
+extern
+NFCSTATUS
+phHciNfc_SWP_Configure_Mode(
+ void *psHciHandle,
+ void *pHwRef,
+ uint8_t uicc_mode
+ );
+
+/**
+* \ingroup grp_hci_nfc
+*
+* \brief To get the status of the UICC
+*
+* This function reads the status of the UICC. The status value can be any
+* of the values present in the \ref phHciNfc_SWP_Status_t
+*
+*
+* \param[in] psHciContext psHciContext is pointer to HCI Layer
+*
+* \param[in] pHwRef pHwRef is underlying Hardware context.
+* \retval NFCSTATUS_SUCCESS Function execution is successful
+*
+* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid
+*/
+extern
+NFCSTATUS
+phHciNfc_SWP_Get_Status(
+ void *psHciHandle,
+ void *pHwRef
+ );
+
+/**
+* \ingroup grp_hci_nfc
+*
+* \brief To get the bitrate
+*
+* This function reads the bitrate
+*
+*
+* \param[in] psHciContext psHciContext is pointer to HCI Layer
+*
+* \param[in] pHwRef pHwRef is underlying Hardware context.
+* \retval NFCSTATUS_SUCCESS Function execution is successful
+*
+* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid
+*/
+extern
+NFCSTATUS
+phHciNfc_SWP_Get_Bitrate(
+ void *psHciHandle,
+ void *pHwRef
+ );
+
+/**
+* \ingroup grp_hci_nfc
+*
+* \brief To update the sequence
+*
+* This function reads the bitrate
+*
+*
+* \param[in] psHciContext psHciContext is pointer to HCI Layer
+*
+* \param[in] SWP_seq SWP sequence.
+*
+* \retval NFCSTATUS_SUCCESS Function execution is successful
+* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid
+*/
+extern
+NFCSTATUS
+phHciNfc_SWP_Update_Sequence(
+ phHciNfc_sContext_t *psHciContext,
+ phHciNfc_eSeqType_t SWP_seq
+ );
+
+/**
+* \ingroup grp_hci_nfc
+*
+* \brief To configure default mode and the default status.
+*
+* This function configures default status and default mode.
+*
+*
+* \param[in] psHciContext psHciContext is pointer to HCI Layer
+* \param[in] pHwRef pHwRef is underlying Hardware context.
+* \param[in] ps_emulation_cfg emulation configuration info.
+*
+*
+* \retval NFCSTATUS_SUCCESS Function execution is successful
+*
+* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid
+*/
+extern
+NFCSTATUS
+phHciNfc_SWP_Config_Sequence(
+ phHciNfc_sContext_t *psHciContext,
+ void *pHwRef,
+ phHal_sEmulationCfg_t *ps_emulation_cfg
+ );
+
+
+#endif /* #ifndef PHHCINFC_SWP_H */
+
+