phHciNfc_SWP.h revision 5d9927ba30ba449badb9f6df0fbeb4d6aedc6e2a
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_SWP .h * 22* \brief HCI wired interface gate Management Routines. * 23* * 24* * 25* Project: NFC-FRI-1.1 * 26* * 27* $Date: Fri Aug 14 17:01:28 2009 $ * 28* $Author: ing04880 $ * 29* $Revision: 1.15 $ * 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#ifndef PHHCINFC_SWP_H 35#define PHHCINFC_SWP_H 36/*@}*/ 37/** 38 * \name HCI 39 * 40 * File: \ref phHciNfc_SWP.h 41 * 42 */ 43/*@{*/ 44#define PHHCINFC_SWPRED_FILEREVISION "$Revision: 1.15 $" /**< \ingroup grp_file_attributes */ 45#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 */ 46/*@}*/ 47 48/****************************** Header File Inclusion *****************************/ 49#include <phHciNfc_Generic.h> 50 51/******************************* Macro Definitions ********************************/ 52 53/* Kb/sec */ 54#define UICC_REF_BITRATE (106U) 55#define UICC_MAX_CONNECT_RETRY (0x02U) 56 57/* SWP switch mode event parameters */ 58#define UICC_SWITCH_MODE_OFF (0x00U) 59#define UICC_SWITCH_MODE_DEFAULT (0x01U) 60#define UICC_SWITCH_MODE_ON (0x02U) 61 62/******************** Enumeration and Structure Definition ***********************/ 63 64typedef enum phHciNfc_SWP_Seq{ 65 SWP_INVALID_SEQUENCE = 0x00U, 66 SWP_MODE_SEQ, 67 SWP_STATUS_SEQ, 68 SWP_END_SEQ 69}phHciNfc_SWP_Seq_t; 70 71typedef enum phHciNfc_SWP_Status{ 72 UICC_NOT_CONNECTED = 0x00U, 73 UICC_CONNECTION_ONGOING, 74 UICC_CONNECTED, 75 UICC_CONNECTION_LOST, 76 UICC_DISCONNECTION_ONGOING, 77 UICC_CONNECTION_FAILED 78}phHciNfc_SWP_Status_t; 79 80 81/* Information structure for SWP Gate */ 82typedef struct phHciNfc_SWP_Info{ 83 84 /* Pointer to SWP gate pipe information */ 85 phHciNfc_Pipe_Info_t *p_pipe_info; 86 /* SWP gate pipe Identified */ 87 uint8_t pipe_id; 88 /*Current internal Sequence type */ 89 phHciNfc_SWP_Seq_t current_seq; 90 /*Current next Sequence ID */ 91 phHciNfc_SWP_Seq_t next_seq; 92 93 phHciNfc_SWP_Status_t uicc_status; 94 95 uint8_t uicc_bitrate; 96 97} phHciNfc_SWP_Info_t; 98 99/************************ Function Prototype Declaration *************************/ 100/*! 101 * \brief Allocates the resources required for SWP gate management. 102 * 103 * This function Allocates necessary resources as requiered by SWP gate management 104 * 105 * \param[in] psHciContext psHciContext is the pointer to HCI Layer 106 * 107 * \retval NFCSTATUS_SUCCESS Function execution is successful 108 * 109 * \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid 110 */ 111extern 112NFCSTATUS 113phHciNfc_SWP_Init_Resources(phHciNfc_sContext_t *psHciContext); 114 115/** 116* \ingroup grp_hci_nfc 117* 118* \brief Allocates the resources required for SWP gate management. 119* 120* This function Allocates necessary resources as requiered by SWP gate management 121* 122* \param[in] psHciContext psHciContext is the pointer to HCI Layer 123* 124* \retval NFCSTATUS_SUCCESS Function execution is successful 125* 126* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid 127*/ 128 129extern 130NFCSTATUS 131phHciNfc_SWPMgmt_Initialise( 132 phHciNfc_sContext_t *psHciContext, 133 void *pHwRef 134 ); 135 136/** 137* \ingroup grp_hci_nfc 138* 139* \brief updates SWP gate specific pipe information . 140* 141* This function intialises gate specific informations like pipe id, 142* event handler and response handler etc. 143* 144* \param[in] psHciContext psHciContext is the pointer to HCI Layer 145* \param[in] pipeID pipeID of the SWP management Gate 146* \param[in] pPipeInfo Update the pipe Information of the SWP 147* Management Gate. 148* 149* \retval NFCSTATUS_SUCCESS Function execution is successful 150* 151* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid 152*/ 153extern 154NFCSTATUS 155phHciNfc_SWP_Update_PipeInfo( 156 phHciNfc_sContext_t *psHciContext, 157 uint8_t pipeID, 158 phHciNfc_Pipe_Info_t *pPipeInfo 159 ); 160/** 161* \ingroup grp_hci_nfc 162* 163* \brief updates SWP gate specific pipe information . 164* 165* This function intialises gate specific informations like pipe id, 166* event handler and response handler etc. 167* 168* \param[in] psHciContext psHciContext is the pointer to HCI Layer 169* 170* \retval NFCSTATUS_SUCCESS Function execution is successful 171* 172* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid 173*/ 174 175extern 176NFCSTATUS 177phHciNfc_SWP_Get_PipeID( 178 phHciNfc_sContext_t *psHciContext, 179 uint8_t *ppipe_id 180 ); 181 182/** 183* \ingroup grp_hci_nfc 184* 185* \brief Enables /disables SWP mode . 186* 187* This function enables/disables SWP link associated with UICC. 188* 189* 190* \param[in] psHciContext psHciContext is pointer to HCI Layer 191* 192* \param[in] pHwRef pHwRef is underlying Hardware context. 193* 194* \param[in] enable_type 0 means disable ,1 means enable SWP link. 195* \retval NFCSTATUS_SUCCESS Function execution is successful 196* 197* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid 198*/ 199extern 200NFCSTATUS 201phHciNfc_SWP_Configure_Default( 202 void *psHciHandle, 203 void *pHwRef, 204 uint8_t enable_type 205 ); 206 207/** 208* \ingroup grp_hci_nfc 209* 210* \brief Enables /disables SWP mode . 211* 212* This function enables/disables SWP link associated with UICC. 213* 214* 215* \param[in] psHciContext psHciContext is pointer to HCI Layer 216* 217* \param[in] pHwRef pHwRef is underlying Hardware context. 218* 219* \param[in] mode TRUE Enable Protection. 220* \retval NFCSTATUS_SUCCESS Function execution is successful 221* 222* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid 223*/ 224extern 225NFCSTATUS 226phHciNfc_SWP_Protection( 227 void *psHciHandle, 228 void *pHwRef, 229 uint8_t mode 230 ); 231 232 233/** 234* \ingroup grp_hci_nfc 235* 236* \brief To send the switch mode event 237* 238* This function send an event to change the switch mode. 239* 240* 241* \param[in] psHciContext psHciContext is pointer to HCI Layer 242* 243* \param[in] pHwRef pHwRef is underlying Hardware context. 244* 245* \param[in] uicc_mode UICC_SWITCH_MODE_OFF 246* UICC_SWITCH_MODE_DEFAULT 247* UICC_SWITCH_MODE_ON 248* \retval NFCSTATUS_SUCCESS Function execution is successful 249* 250* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid 251*/ 252extern 253NFCSTATUS 254phHciNfc_SWP_Configure_Mode( 255 void *psHciHandle, 256 void *pHwRef, 257 uint8_t uicc_mode 258 ); 259 260/** 261* \ingroup grp_hci_nfc 262* 263* \brief To get the status of the UICC 264* 265* This function reads the status of the UICC. The status value can be any 266* of the values present in the \ref phHciNfc_SWP_Status_t 267* 268* 269* \param[in] psHciContext psHciContext is pointer to HCI Layer 270* 271* \param[in] pHwRef pHwRef is underlying Hardware context. 272* \retval NFCSTATUS_SUCCESS Function execution is successful 273* 274* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid 275*/ 276extern 277NFCSTATUS 278phHciNfc_SWP_Get_Status( 279 void *psHciHandle, 280 void *pHwRef 281 ); 282 283/** 284* \ingroup grp_hci_nfc 285* 286* \brief To get the bitrate 287* 288* This function reads the bitrate 289* 290* 291* \param[in] psHciContext psHciContext is pointer to HCI Layer 292* 293* \param[in] pHwRef pHwRef is underlying Hardware context. 294* \retval NFCSTATUS_SUCCESS Function execution is successful 295* 296* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid 297*/ 298extern 299NFCSTATUS 300phHciNfc_SWP_Get_Bitrate( 301 void *psHciHandle, 302 void *pHwRef 303 ); 304 305/** 306* \ingroup grp_hci_nfc 307* 308* \brief To update the sequence 309* 310* This function reads the bitrate 311* 312* 313* \param[in] psHciContext psHciContext is pointer to HCI Layer 314* 315* \param[in] SWP_seq SWP sequence. 316* 317* \retval NFCSTATUS_SUCCESS Function execution is successful 318* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid 319*/ 320extern 321NFCSTATUS 322phHciNfc_SWP_Update_Sequence( 323 phHciNfc_sContext_t *psHciContext, 324 phHciNfc_eSeqType_t SWP_seq 325 ); 326 327/** 328* \ingroup grp_hci_nfc 329* 330* \brief To configure default mode and the default status. 331* 332* This function configures default status and default mode. 333* 334* 335* \param[in] psHciContext psHciContext is pointer to HCI Layer 336* \param[in] pHwRef pHwRef is underlying Hardware context. 337* \param[in] ps_emulation_cfg emulation configuration info. 338* 339* 340* \retval NFCSTATUS_SUCCESS Function execution is successful 341* 342* \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid 343*/ 344extern 345NFCSTATUS 346phHciNfc_SWP_Config_Sequence( 347 phHciNfc_sContext_t *psHciContext, 348 void *pHwRef, 349 phHal_sEmulationCfg_t *ps_emulation_cfg 350 ); 351 352 353#endif /* #ifndef PHHCINFC_SWP_H */ 354 355 356