Home | History | Annotate | Download | only in inc
      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  * \file  phNfcHalTypes.h
     19  * \brief Structure declarations/type definitions belonging to the HAL subsystem.
     20  *
     21  * Project: NFC MW / HAL
     22  *
     23  * $Date: Thu Apr  8 17:11:39 2010 $
     24  * $Author: ing04880 $
     25  * $Revision: 1.106 $
     26  * $Aliases: NFC_FRI1.1_WK1007_SDK,NFC_FRI1.1_WK1017_PREP1,NFC_FRI1.1_WK1017_R34_1,NFC_FRI1.1_WK1017_R34_2,NFC_FRI1.1_WK1023_R35_1 $
     27  *
     28  */
     29 
     30 
     31 #ifndef PHNFCHALTYPES_H /* */
     32 #define PHNFCHALTYPES_H /* */
     33 
     34 /**
     35  *  \name HAL Types
     36  *
     37  * File: \ref phNfcHalTypes.h
     38  *
     39  * Developed By: Ravindra U.
     40  *
     41  */
     42 
     43 /*@{*/
     44 #define PHNFCHALTYPES_FILEREVISION "$Revision: 1.106 $" /**< \ingroup grp_file_attributes */
     45 #define PHNFCHALTYPES_FILEALIASES  "$Aliases: NFC_FRI1.1_WK1007_SDK,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 #include <phNfcTypes.h>
     49 #include <phNfcCompId.h>
     50 #include <phNfcConfig.h>
     51 
     52 #ifndef NXP_HAL_MEM_INFO_SIZE
     53 #define NXP_HAL_MEM_INFO_SIZE           0x01U
     54 #endif
     55 
     56 #if (NXP_HAL_MEM_INFO_SIZE > 0x01)
     57 #define NXP_FW_UPLOAD_PROGRESS          0x965AU
     58 #define NXP_FW_UPLOAD_SUCCESS           0x0000U
     59 #else
     60 #define NXP_FW_UPLOAD_PROGRESS          0x5AU
     61 #define NXP_FW_UPLOAD_SUCCESS           0x00U
     62 #endif
     63 
     64 
     65 typedef struct phHal_sMemInfo
     66 {
     67     uint16_t            fw_magic;
     68     uint16_t            fw_rfu;
     69     uint32_t            hal_version;
     70 }phHal_sMemInfo_t;
     71 
     72 
     73 /** \ingroup  grp_hal_common
     74  *
     75  * \if hal
     76  *  \brief Protocol Support Information
     77  * \else
     78  *  \brief HAL-Specific
     79  * \endif
     80  *
     81  *  The <em> Supported Protocols Structure </em> holds all protocol supported by the current NFC
     82  *  device.
     83  *
     84  *  \note All members of this structure are output parameters [out].
     85  *
     86  */
     87 typedef phNfc_sSupProtocol_t phHal_sSupProtocol_t;
     88 
     89 
     90 /** \ingroup grp_hal_common
     91  *
     92  *
     93  * \if hal
     94  *  \brief Information related to the NFC Device
     95  * \else
     96  *  \brief HAL-Specific
     97  * \endif
     98  *
     99  *  The <em> Device Information Structure </em> holds information
    100  *  related to the NFC IC read during initialization time.
    101  *  It allows the caller firware, hardware version, the model id,
    102  *  HCI verison supported and vendor name. Refer to the NFC Device
    103  *  User Manual on how to interpret each of the values. In addition
    104  *  it also contains capabilities of the NFC Device such as the
    105  *  protocols supported in Reader and emulation mode
    106  *
    107  */
    108 
    109 typedef phNfc_sDeviceCapabilities_t phHal_sDeviceCapabilities_t;
    110 
    111 
    112 /**
    113  * \ingroup grp_hal_common
    114  *
    115  * \if hal
    116  *  \brief Hardware Reference - The Peripheral Representation
    117  * \else
    118  *  \brief HAL-Specific
    119  * \endif
    120  *
    121  *  The Hardware Reference structure is filled as part of the open function and
    122  *  contains information regarding connected peripheral NFC device. It also
    123  *  stores the refernce to the communication driver passed by the HAL client
    124  *  for usage during communication with the NFC Device
    125  *
    126  * \note The caller can consider this structure atomic, no interpretation is required
    127  *       for HAL operation.
    128  *
    129  * \sa phHal4Nfc_Open .
    130  *
    131  */
    132 
    133 /**
    134  * \ingroup grp_hal_common
    135  *
    136  *  \brief Hardware Reference - The Peripheral Representation
    137  *
    138  *  The Hardware Reference structure is filled as part of the open function and
    139  *  contains information regarding connected peripheral NFC device. It also
    140  *  stores the refernce to the communication driver passed by the HAL client
    141  *  for usage during communication with the NFC Device
    142  *
    143  * \note The caller can consider this structure atomic, no interpretation is required
    144  *       for HAL operation.
    145  *
    146  */
    147 typedef struct phHal_sHwReference
    148 {
    149     /**<  Will be usable/valid after the Open function. */
    150     void                            *p_board_driver;
    151     /**<  Session Identifier for the established session */
    152     uint8_t                         session_id[SESSIONID_SIZE];
    153     /**<  SMX  Connected TRUE/FALSE */
    154     uint8_t                         smx_connected;
    155     /**<  UICC  Connected TRUE/FALSE */
    156     uint8_t                         uicc_connected;
    157     /**<  UICC  Reader Mode is Active TRUE/FALSE */
    158     uint8_t                         uicc_rdr_active;
    159     /**<  Device information. */
    160     phNfc_sDeviceCapabilities_t     device_info;
    161     /**<  Context of the HAL Layer */
    162     void                            *hal_context;
    163     /**<  Context of the DAL Layer */
    164     void                            *dal_context;
    165 } phHal_sHwReference_t;
    166 
    167 
    168 /** \ingroup grp_hal_common
    169  *
    170  * \if hal
    171  * \brief Hardware configuration - Configuration Parameters for the NFC Device
    172  * \else
    173  * \brief HAL-Specific
    174  * \endif
    175  *
    176  *  The parameters used to configure the device during the initialisation.
    177  *  This structure is used internally by the HAL implementation and is filled
    178  *  up based on various configuration parameters from the config file
    179  * \note None.
    180  *
    181  */
    182 
    183 typedef struct phHal_sHwConfig
    184 {
    185 
    186     uint8_t             session_id[SESSIONID_SIZE]; /**<  Session Identifier for
    187                                                      the established session */
    188 
    189     uint8_t             clk_req; /**<  Clock Request Setting */
    190 
    191     uint8_t             input_clk; /**<  Input Clock Setting */
    192 
    193 } phHal_sHwConfig_t;
    194 
    195 
    196 
    197 /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
    198 
    199 /* This data structure is not used anymore and will be removed in subsequent
    200    release */
    201 typedef struct phHal_sDepFlags
    202 {
    203    unsigned int MetaChaining : 1;
    204    unsigned int NADPresent   : 1;
    205 } phHal_sDepFlags_t;
    206 
    207 /* This data structure is not used anymore and will be removed in subsequent
    208    release */
    209 
    210 typedef struct phHal_sDepAdditionalInfo
    211 {
    212     phHal_sDepFlags_t DepFlags;
    213     uint8_t NAD;
    214 } phHal_sDepAdditionalInfo_t;
    215 
    216 
    217 /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
    218 
    219 
    220 
    221 /** \ingroup grp_hal_common
    222  *
    223  * \if hal
    224  *  \brief Enumerated MIFARE Commands
    225  * \else
    226  *  \brief HAL-Specific
    227  * \endif
    228  *
    229  *  The <em> Mifare Command List Enumerator </em> lists all available Mifare native commands.
    230  *
    231  * \note None.
    232  *
    233  */
    234 
    235 typedef phNfc_eMifareCmdList_t phHal_eMifareCmdList_t;
    236 
    237 #define    phHal_eMifareRaw        phNfc_eMifareRaw
    238 #define    phHal_eMifareAuthentA   phNfc_eMifareAuthentA
    239 #define    phHal_eMifareAuthentB   phNfc_eMifareAuthentB
    240 #define    phHal_eMifareRead16     phNfc_eMifareRead16
    241 #define    phHal_eMifareRead       phNfc_eMifareRead
    242 #define    phHal_eMifareWrite16    phNfc_eMifareWrite16
    243 #define    phHal_eMifareWrite4     phNfc_eMifareWrite4
    244 #define    phHal_eMifareInc        phNfc_eMifareInc
    245 #define    phHal_eMifareDec        phNfc_eMifareDec
    246 #define    phHal_eMifareTransfer   phNfc_eMifareTransfer
    247 #define    phHal_eMifareRestore    phNfc_eMifareRestore
    248 #define    phHal_eMifareReadSector phNfc_eMifareReadSector
    249 #define    phHal_eMifareWriteSector phNfc_eMifareWriteSector
    250 #define    phHal_eMifareInvalidCmd phNfc_eMifareInvalidCmd
    251 
    252 
    253 /** \ingroup grp_hal_common
    254  *
    255  *  The <em> T=Cl Command List Enumerator </em> lists all available T=Cl Commands.
    256  *
    257  * \note None.
    258  *
    259  */
    260 typedef phNfc_eIso14443_4_CmdList_t phHal_eIso14443_4_CmdList_t;
    261 
    262 #define    phHal_eIso14443_4_Raw    phNfc_eIso14443_4_Raw
    263 
    264 
    265 /** \ingroup grp_hal_common
    266  *
    267  *  The <em> NFCIP1 Command List Enumerator </em> lists all available NFCIP1 Commands.
    268  *
    269  * \note None.
    270  *
    271  */
    272 typedef phNfc_eNfcIP1CmdList_t phHal_eNfcIP1CmdList_t;
    273 
    274 #define       phHal_eNfcIP1_Raw             phNfc_eNfcIP1_Raw
    275 
    276 
    277 /** \ingroup grp_hal_common
    278  *
    279  *  The <em> ISO15693 Command List Enumerator </em> lists all available ISO15693 Commands.
    280  *
    281  * \note None.
    282  *
    283  */
    284 
    285 typedef phNfc_eIso15693_CmdList_t phHal_eIso15693_CmdList_t;
    286 
    287 #if 0
    288 #define    phHal_eIso15693_Raw             phNfc_eIso15693_Raw
    289 #endif
    290 #define    phHal_eIso15693_Cmd             phNfc_eIso15693_Cmd
    291 #define    phHal_eIso15693_Invalid         phNfc_eIso15693_Invalid
    292 
    293 /** \ingroup grp_hal_common
    294  *
    295  *  The <em> Felica Command List Enumerator </em> lists all available Felica Commands.
    296  *
    297  * \note None.
    298  *
    299  */
    300 
    301 typedef enum phHal_eFelicaCmdList
    302 {
    303     phHal_eFelica_Raw             = 0xF0U, /**< Felica Raw command:\n
    304                                                  - This command sends the data buffer directly
    305                                                  to the remote device */
    306     phHal_eFelica_Check           = 0x00, /**< Felica Check command:\n
    307                                                  - This command checks the data from the Felica
    308                                                   remote device */
    309     phHal_eFelica_Update          = 0x01, /**< Felica Update command:\n
    310                                                  - This command updates the data onto the Felica
    311                                                   remote device */
    312     phHal_eFelica_Invalid         = 0xFFU      /**< Invalid Command */
    313 } phHal_eFelicaCmdList_t;
    314 
    315 
    316 typedef enum phHal_eJewelCmdList
    317 {
    318     phHal_eJewel_Raw            = 0x00U, /**< Jewel command:\n
    319                                                  - This command sends the data buffer directly
    320                                                  to the remote device */
    321     phHal_eJewel_Invalid        = 0xFFU  /**< Invalid jewel command */
    322 }phHal_eJewelCmdList_t;
    323 
    324 
    325 
    326 /** \ingroup grp_hal_nfci
    327 *
    328 * \if hal
    329 *  \brief Remote Device Reader A RF Gate Information Container
    330 * \else
    331 *  \brief HAL-Specific
    332 * \endif
    333 *
    334 *  The <em> Reader A structure </em> includes the available information
    335 *  related to the discovered ISO14443A remote device. This information
    336 *  is updated for every device discovery.
    337 *  \note None.
    338 *
    339 */
    340 typedef phNfc_sIso14443AInfo_t phHal_sIso14443AInfo_t;
    341 
    342 /** \ingroup grp_hal_nfci
    343 *
    344 * \if hal
    345 *  \brief Remote Device Reader B RF Gate Information Container
    346 * \else
    347 *  \brief HAL-Specific
    348 * \endif
    349 *
    350 *  The <em> Reader B structure </em> includes the available information
    351 *  related to the discovered ISO14443B remote device. This information
    352 *  is updated for every device discovery.
    353 *  \note None.
    354 *
    355 */
    356 
    357 typedef phNfc_sIso14443BInfo_t phHal_sIso14443BInfo_t;
    358 
    359 typedef phNfc_sIso14443BPrimeInfo_t phHal_sIso14443BPrimeInfo;
    360 
    361 
    362 /** \ingroup grp_hal_nfci
    363 *
    364 * \if hal
    365 *  \brief Remote Device Jewel Reader RF Gate Information Container
    366 * \else
    367 *  \brief HAL-Specific
    368 * \endif
    369 *
    370 *  The <em> Jewel Reader structure </em> includes the available information
    371 *  related to the discovered Jewel remote device. This information
    372 *  is updated for every device discovery.
    373 *  \note None.
    374 *
    375 */
    376 
    377 
    378 typedef phNfc_sJewelInfo_t phHal_sJewelInfo_t;
    379 
    380 /** \ingroup grp_hal_nfci
    381 *
    382 * \if hal
    383 *  \brief Remote Device Felica Reader RF Gate Information Container
    384 * \else
    385 *  \brief HAL-Specific
    386 * \endif
    387 *
    388 *  The <em> Felica Reader structure </em> includes the available information
    389 *  related to the discovered Felica remote device. This information
    390 *  is updated for every device discovery.
    391 *  \note None.
    392 *
    393 */
    394 
    395 typedef phNfc_sFelicaInfo_t phHal_sFelicaInfo_t;
    396 
    397 
    398 /** \ingroup grp_hal_nfci
    399 *
    400 * \if hal
    401 *  \brief Remote Device Reader 15693 RF Gate Information Container
    402 * \else
    403 *  \brief HAL-Specific
    404 * \endif
    405 *
    406 *  The <em> Reader A structure </em> includes the available information
    407 *  related to the discovered ISO15693 remote device. This information
    408 *  is updated for every device discovery.
    409 *  \note None.
    410 *
    411 */
    412 
    413 typedef phNfc_sIso15693Info_t phHal_sIso15693Info_t;
    414 
    415 
    416 /** \ingroup grp_hal_nfci
    417 *
    418 * \if hal
    419 *  \brief NFC Data Rate Supported between the Reader and the Target
    420 * \else
    421 *  \brief HAL-Specific
    422 * \endif
    423 *
    424 *  The <em> \ref phHalNfc_eDataRate enum </em> lists all the Data Rate
    425 *  values to be used to determine the rate at which the data is transmitted
    426 *  to the target.
    427 *
    428 *  \note None.
    429 */
    430 
    431 
    432 typedef phNfc_eDataRate_t phHalNfc_eDataRate_t;
    433 
    434 
    435 /** \ingroup grp_hal_nfci
    436 *
    437 * \if hal
    438 *  \brief NFCIP1 Gate Information Container
    439 * \else
    440 *  \brief HAL-Specific
    441 * \endif
    442 *
    443 *  The <em> NFCIP1 structure </em> includes the available information
    444 *  related to the discovered NFCIP1 remote device. This information
    445 *  is updated for every device discovery.
    446 *  \note None.
    447 *
    448 */
    449 
    450 typedef phNfc_sNfcIPInfo_t phHal_sNfcIPInfo_t;
    451 
    452 
    453 /** \ingroup grp_hal_nfci
    454 *
    455 * \if hal
    456 *  \brief Remote Device Specific Information Container
    457 * \else
    458 *  \brief HAL-Specific
    459 * \endif
    460 *
    461 *  The <em> Remote Device Information Union </em> includes the available Remote Device Information
    462 *  structures. Following the device detected, the corresponding data structure is used.
    463 *
    464 *  \note None.
    465 *
    466 */
    467 
    468 typedef phNfc_uRemoteDevInfo_t phHal_uRemoteDevInfo_t;
    469 
    470 /** \ingroup grp_hal_nfci
    471 *
    472 * \if hal
    473 *  \brief RF Device Type Listing
    474 * \else
    475 *  \brief HAL-Specific
    476 * \endif
    477 *
    478 *  The <em> RF Device Type List </em> is used to identify the type of
    479 *  remote device that is discovered/connected. There seperate
    480 *  types to identify a Remote Reader (denoted by _PCD) and
    481 *  Remote Tag (denoted by _PICC)
    482 *  \note None.
    483 *
    484 */
    485 
    486 typedef phNfc_eRFDevType_t phHal_eRFDevType_t;
    487 
    488 #define    phHal_eUnknown_DevType phNfc_eUnknown_DevType
    489 
    490     /* Specific PCD Devices */
    491 #define    phHal_eISO14443_A_PCD phNfc_eISO14443_A_PCD
    492 #define    phHal_eISO14443_B_PCD phNfc_eISO14443_B_PCD
    493 #define    phHal_eISO14443_BPrime_PCD phNfc_eISO14443_BPrime_PCD
    494 #define    phHal_eFelica_PCD phNfc_eFelica_PCD
    495 #define    phHal_eJewel_PCD phNfc_eJewel_PCD
    496 #define    phHal_eISO15693_PCD phNfc_eISO15693_PCD
    497     /* Generic PCD Type */
    498 #define    phHal_ePCD_DevType phNfc_ePCD_DevType
    499 
    500     /* Generic PICC Type */
    501 #define    phHal_ePICC_DevType phNfc_ePICC_DevType
    502     /* Specific PICC Devices */
    503 #define    phHal_eISO14443_A_PICC phNfc_eISO14443_A_PICC
    504 #define    phHal_eISO14443_4A_PICC phNfc_eISO14443_4A_PICC
    505 #define    phHal_eISO14443_3A_PICC phNfc_eISO14443_3A_PICC
    506 #define    phHal_eMifare_PICC phNfc_eMifare_PICC
    507 #define    phHal_eISO14443_B_PICC phNfc_eISO14443_B_PICC
    508 #define    phHal_eISO14443_4B_PICC phNfc_eISO14443_4B_PICC
    509 #define    phHal_eISO14443_BPrime_PICC phNfc_eISO14443_BPrime_PICC
    510 #define    phHal_eFelica_PICC phNfc_eFelica_PICC
    511 #define    phHal_eJewel_PICC phNfc_eJewel_PICC
    512 #define    phHal_eISO15693_PICC phNfc_eISO15693_PICC
    513 
    514     /* NFC-IP1 Device Types */
    515 #define    phHal_eNfcIP1_Target phNfc_eNfcIP1_Target
    516 #define    phHal_eNfcIP1_Initiator phNfc_eNfcIP1_Initiator
    517 
    518     /* Other Sources */
    519 #define    phHal_eInvalid_DevType phNfc_eInvalid_DevType
    520 
    521 /** \ingroup grp_hal_nfci
    522 *
    523 * \if hal
    524 *  \brief Remote Device Type Listing
    525 * \else
    526 *  \brief HAL-Specific
    527 * \endif
    528 *
    529 *  The <em> Remote Device Type List </em> is used to identify the type of
    530 *  remote device that is discovered/connected
    531 *  \note This is same as RF Device Type List.
    532 *
    533 */
    534 typedef phNfc_eRemDevType_t phHal_eRemDevType_t;
    535 
    536 /** \ingroup grp_hal_common
    537  *
    538  *
    539  * \if hal
    540  *  \brief Common Command Attribute
    541  * \else
    542  *  \brief HAL-Specific
    543  * \endif
    544  *
    545  *  The <em> Hal Command Union </em> includes each available type of Commands.
    546  *
    547  * \note None.
    548  *
    549  */
    550 
    551 typedef phNfc_uCmdList_t phHal_uCmdList_t;
    552 
    553 
    554 /** \ingroup grp_hal_nfci
    555  *
    556  * \if hal
    557  *  \brief Remote Device Information Structure
    558  * \else
    559  *  \brief HAL-Specific
    560  * \endif
    561  *
    562  *  The <em> Remote Device Information Structure </em> holds information about one single Remote
    563  *  Device detected by the polling function .\n
    564  *  It lists parameters common to all supported remote devices.
    565  *
    566  *  \note
    567  *
    568  *  \if hal
    569  *   \sa \ref phHal4Nfc_ConfigureDiscovery and \ref phHal4Nfc_Connect
    570  *  \else
    571  *   \sa
    572  *  \endif
    573  *
    574  */
    575 
    576 typedef phNfc_sRemoteDevInformation_t phHal_sRemoteDevInformation_t;
    577 
    578 
    579 
    580 /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
    581 
    582 /* This data structure is not used anymore and will be removed in subsequent
    583    release */
    584 
    585 typedef struct phHal_sDevInputParam
    586 {
    587     uint8_t FelicaPollPayload[5];
    588 
    589 
    590     uint8_t NfcPollPayload[5];
    591 
    592 
    593     uint8_t NFCIDAuto;
    594 
    595 
    596     uint8_t NFCID3i[PHHAL_NFCID_LENGTH];
    597 
    598 
    599 
    600     uint8_t DIDiUsed;
    601 
    602     uint8_t CIDiUsed;
    603 
    604     uint8_t NfcNADiUsed;
    605 
    606     /*+ MantisId : 31 - JP - 09-01-2006 */
    607         /*uint8_t TClNADiUsed; */
    608 
    609     /*- MantisId : 31 - JP - 09-01-2006 */
    610     uint8_t GeneralByte[48];
    611 
    612 
    613     uint8_t GeneralByteLength;
    614 
    615 
    616     uint8_t ISO14443_4B_AFI;
    617 
    618 } phHal_sDevInputParam_t;
    619 
    620 
    621 
    622 
    623 /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
    624 
    625 
    626 /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
    627 /*    TARGET STRUCTURES */
    628 
    629 
    630 /** \ingroup  grp_hal_common
    631  *
    632  * \if hal
    633  *  \brief Transceive Information Data Structure for sending commands/response
    634  *         to the remote device
    635  * \else
    636  *  \brief HAL-Specific
    637  * \endif
    638  *
    639  *  The <em> Transceive Information Data Structure </em> is used to pass the
    640  *  Command, Address (only required for MIFARE) and the send and receive data
    641  *  data structure (buffer and length) for communication with remote device
    642  *
    643  *
    644  */
    645 
    646 typedef phNfc_sTransceiveInfo_t phHal_sTransceiveInfo_t;
    647 
    648 
    649 /** \ingroup grp_hal_nfci
    650 *
    651 * \if hal
    652 *  \brief Input information for the Type A tags
    653 * \else
    654 *  \brief HAL-Specific
    655 * \endif
    656 *
    657 *  The <em> \ref phHal_sIso14443ACfg structure </em> holds the information
    658 *  required for the NFC device to be used during ISO14443A target discovery
    659 *
    660 *  \note None.
    661 */
    662 typedef struct phHal_sIso14443ACfg
    663 {
    664     uint8_t     Auto_Activation;       /**< Enable Auto Activation for
    665                                     Technology A \n
    666                                     If set to 0, the activation procedure will stop
    667                                     after Select (SAK has been received).
    668                                     The host could evaluate SAK value and then decide:
    669                                         - to start communicating with the remote card
    670                                           using proprietary commands (see NXP_MIFARE_RAW
    671                                           and NXP_MIFARE_CMD)
    672                                     or
    673                                         - to activate the remote card up to ISO14443-4
    674                                           level (RATS and PPS) using
    675                                           CONTINUE ACTIVATION command
    676                                     If set to 1, activation follows the flow described in
    677                                     ETSI HCI specification (restrict detection to
    678                                     ISO14443-4 compliant cards).
    679                                     */
    680 }phHal_sIso14443ACfg_t;
    681 
    682 
    683 /** \ingroup grp_hal_nfci
    684 *
    685 * \if hal
    686 *  \brief Input information for the Type B tags
    687 * \else
    688 *  \brief HAL-Specific
    689 * \endif
    690 *
    691 *  The <em> \ref phHal_sIso14443BCfg structure </em> holds the information
    692 *  required for the NFC device to be used during ISO14443B target discovery
    693 *
    694 *  \note None.
    695 */
    696 typedef struct phHal_sIso14443BCfg
    697 {
    698     uint8_t     AppFamily_ID;       /**< Application Family Identifier for
    699                                     Technology B, 0x00 means all application */
    700 }phHal_sIso14443BCfg_t;
    701 
    702 /** \ingroup grp_hal_nfci
    703 *
    704 * \if hal
    705 *  \brief Input information for the Felica tags
    706 * \else
    707 *  \brief HAL-Specific
    708 * \endif
    709 *
    710 *  The <em> \ref phHal_sFelicaCfg_t structure </em> holds the information
    711 *  required for the NFC device to be used during Felica target discovery
    712 *
    713 *  \note None.
    714 */
    715 
    716 typedef struct phHal_sFelicaCfg
    717 {
    718     uint8_t     SystemCode[PHHAL_FEL_SYS_CODE_LEN];     /**< System code for Felica tags */
    719 
    720 }phHal_sFelicaCfg_t;
    721 
    722 
    723 /** \ingroup grp_hal_nfci
    724 *
    725 * \if hal
    726 *  \brief Poll Device Information for conifiguring the discovery wheel
    727           Reader and Card Emulation Phases
    728 * \else
    729 *  \brief HAL-Specific
    730 * \endif
    731 *
    732 *  The <em> \ref phHal_sPollDevInfo_t enum </em> is used to enable/disable
    733 *  phases of the discovery wheel related to specific reader types and
    734 *  card emulation phase
    735 *  \note Enabling specific Reader technology when NFCIP1 speed is set in the
    736 *        phNfc_sADD_Cfg_t is implicitly done in HAL. Use this structure to only
    737 *        enable/disable Card Reader Functionality
    738 */
    739 typedef phNfc_sPollDevInfo_t phHal_sPollDevInfo_t;
    740 
    741 
    742 /** \ingroup grp_hal_common
    743 *
    744 * \if hal
    745 *  \brief Identifies Type of Host
    746 * \else
    747 *  \brief HAL-Specific
    748 * \endif
    749 *
    750 *  This enumeration is used to identify the type of the host providing the
    751 *  information or the notification to the Terminal host.
    752 *  \note None.
    753 */
    754 
    755 typedef enum phHal_HostType {
    756     /*
    757      * This type identifies the host controller
    758      * in the NFC device
    759      */
    760     phHal_eHostController       = 0x00U,
    761     /*
    762      * This type identifies the Host Device
    763      * controlling the NFC device.
    764      */
    765     phHal_eTerminalHost         = 0x01U,
    766     /*
    767      * This type identifies the uicc host
    768      * connnected to the NFC device
    769      */
    770     phHal_eUICCHost             = 0x02U,
    771     /* Host type is unknown */
    772     phHal_eUnknownHost          = 0xFFU
    773 }phHal_HostType_t;
    774 
    775 
    776 /** \ingroup grp_hal_nfci
    777 *
    778 * \if hal
    779 *  \brief P2P speed for the Initiator
    780 * \else
    781 *  \brief HAL-Specific
    782 * \endif
    783 *
    784 *  The <em> \ref phHal_eP2PMode enum </em> lists all the NFCIP1 speeds
    785 *  to be used for configuring the NFCIP1 discovery
    786 *
    787 *  \note None.
    788 */
    789 
    790 #define    phHal_eDefaultP2PMode  phNfc_eDefaultP2PMode
    791 #define    phHal_ePassive106 phNfc_ePassive106
    792 #define    phHal_ePassive212 phNfc_ePassive212
    793 #define    phHal_ePassive424 phNfc_ePassive424
    794 #define    phHal_eActive  phNfc_eActive
    795 #define    phHal_eP2P_ALL    phNfc_eP2P_ALL
    796 #define    phHal_eInvalidP2PMode phNfc_eInvalidP2PMode
    797 
    798 
    799 /** \ingroup grp_hal_common
    800 *
    801 * \if hal
    802 *  \brief Identities the type of Notification
    803 * \else
    804 *  \brief HAL-Specific
    805 * \endif
    806 *
    807 *  This enumeration is used to specify the type of notification notified
    808 *  to the upper layer. This classifies the notification into two types
    809 *  one for the discovery notifications and the other for all the remaining
    810 *  event notifications
    811 *  \note None.
    812 */
    813 
    814 
    815 typedef phNfc_eNotificationType_t phHal_eNotificationType_t;
    816 
    817 
    818 /** \ingroup grp_hal_common
    819 *
    820 * \if hal
    821 *  \brief Identifies the type of event notification
    822 * \else
    823 *  \brief HAL-Specific
    824 * \endif
    825 *
    826 *  This enumeration is used to identify the type of the event notified
    827 *  to the Terminal host.
    828 *  \note None.
    829 */
    830 
    831 typedef enum phHal_Event {
    832 
    833 
    834     /* Transaction Events */
    835     NFC_EVT_END_OF_TRANSACTION   = 0x11U ,
    836     NFC_EVT_TRANSACTION          = 0x12U ,
    837     NFC_EVT_START_OF_TRANSACTION = 0x20U ,
    838 
    839     /* Field Events */
    840     NFC_EVT_FIELD_ON             = 0x31U,
    841     NFC_EVT_FIELD_OFF            = 0x34U,
    842 
    843     /* Card/Target Activation Events */
    844     NFC_EVT_ACTIVATED           = 0x33U,
    845     NFC_EVT_DEACTIVATED         = 0x32U,
    846 
    847     NFC_EVT_PROTECTED           = 0x24U ,
    848 
    849     /* Reader Phases configuration request by UICC */
    850     NFC_UICC_RDPHASES_ACTIVATE_REQ = 0x43U,
    851     NFC_UICC_RDPHASES_DEACTIVATE_REQ = 0x44U,
    852 
    853     /* Connectivity and Triggering Events - Future Use */
    854     NFC_EVT_CONNECTIVITY         = 0x10U ,
    855     NFC_EVT_OPERATION_ENDED      = 0x13U ,
    856 
    857     /* NXP Specific System Information Events */
    858     NFC_INFO_TXLDO_OVERCUR       = 0x71U,
    859     NFC_INFO_MEM_VIOLATION       = 0x73U,
    860     NFC_INFO_TEMP_OVERHEAT       = 0x74U,
    861     NFC_INFO_LLC_ERROR           = 0x75U,
    862 
    863     /* NXP EVENTS */
    864     NFC_EVT_MIFARE_ACCESS          = 0x35,
    865     NFC_EVT_APDU_RECEIVED          = 0x36,
    866     NFC_EVT_EMV_CARD_REMOVAL       = 0x37
    867 
    868 }phHal_Event_t;
    869 
    870 typedef phNfc_sUiccInfo_t phHal_sUiccInfo_t;
    871 
    872 /** \ingroup grp_hal_common
    873 *
    874 * \if hal
    875 *  \brief Event notification Information
    876 * \else
    877 *  \brief HAL-Specific
    878 * \endif
    879 *
    880 *  This structure provides the information about the event notified
    881 *  to the terminal host.
    882 *  \note None.
    883 */
    884 
    885 typedef struct phHal_sEventInfo
    886 {
    887     /* Type of the host issuing the event */
    888     phHal_HostType_t    eventHost;
    889     /* Type of the source issuing the event */
    890     phHal_eRFDevType_t  eventSource;
    891     /* Type of the source issuing the event */
    892     phHal_Event_t       eventType;
    893     union   uEventInfo
    894     {
    895         /* Parameter information Information is obtained if the eventType is
    896          * NFC_EVT_TRANSACTION for UICC.
    897          */
    898         phHal_sUiccInfo_t       uicc_info;
    899         /* AID Information is obtained if the eventType is
    900          * NFC_EVT_TRANSACTION.
    901          */
    902         phNfc_sData_t           aid;
    903         /* Overheat Status Information is obtained if the eventType is
    904          * NFC_INFO_TEMP_OVERHEAT.
    905          */
    906         uint8_t                 overheat_status;
    907         /* rd_phases Information is obtained if the eventType is
    908          * NFC_UICC_RDPHASES_ACTIVATE_REQ.
    909          */
    910         uint8_t                 rd_phases;
    911         /* Remote Device Information is obtained if the eventType is
    912          * NFC_EVT_ACTIVATED.
    913          */
    914         phHal_sRemoteDevInformation_t *pRemoteDevInfo;
    915     }eventInfo;
    916 }phHal_sEventInfo_t;
    917 
    918 
    919 /** \ingroup grp_hal_common
    920 *
    921 * \if hal
    922 *  \brief Information for the Host/Uicc Emulation Support
    923 * \else
    924 *  \brief HAL-Specific
    925 * \endif
    926 *
    927 *  The <em> \ref phHal_sEmuSupport structure </em> holds the type
    928 *   of the target emulation supported.
    929 *
    930 *  \note None.
    931 */
    932 
    933 typedef struct phHal_sEmuSupport
    934 {
    935     unsigned int TypeA:1;
    936     unsigned int TypeB:1;
    937     unsigned int TypeBPrime:1;
    938     unsigned int TypeFelica:1;
    939     unsigned int TypeMifare:1;
    940     unsigned int TypeNfcIP1:1;
    941     unsigned int RFU:2;
    942 
    943 }phHal_sEmuSupport_t;
    944 
    945 
    946 /** \ingroup grp_hal_nfci
    947 *
    948 * \if hal
    949 *  \brief P2P Information for the Initiator
    950 * \else
    951 *  \brief HAL-Specific
    952 * \endif
    953 *
    954 *  The <em> \ref phHal_sNfcIPCfg </em> holds the P2P related information
    955 *  use by the NFC Device during P2P Discovery and connection
    956 *
    957 *  \note None.
    958 */
    959 
    960 typedef phNfc_sNfcIPCfg_t phHal_sNfcIPCfg_t;
    961 
    962 /** \ingroup grp_hal_common
    963 *
    964 * \if hal
    965 *  \brief Enumeration used to choose which type of parameters
    966 *         are to be configured
    967 * \else
    968 *  \brief HAL-Specific
    969 * \endif
    970 *
    971 *
    972 *  \note None.
    973 */
    974 typedef enum phHal_eConfigType
    975 {
    976     NFC_INVALID_CONFIG  =   0x00U, /**< Invalid Configuration */
    977     NFC_RF_READER_CONFIG, /**< Reader Parmaeters */
    978     NFC_P2P_CONFIG,       /**< NFCIP1 Parameters */
    979     NFC_SE_PROTECTION_CONFIG, /**< Secure Element
    980                                    Protection Cofiguration */
    981     NFC_EMULATION_CONFIG  /**< Emulation Parameters */
    982 }phHal_eConfigType_t;
    983 
    984 /** \ingroup grp_hal_common
    985 *
    986 * \if hal
    987 *  \brief Discovery Configuration Mode
    988 * \else
    989 *  \brief HAL-Specific
    990 * \endif
    991 *
    992 *  This enumeration is used to choose the Discovery Configuration
    993 *  Mode :- Configure and Start, Stop or Start with last set
    994 *  configuration
    995 *  \note None.
    996 */
    997 
    998 typedef phNfc_eDiscoveryConfigMode_t phHal_eDiscoveryConfigMode_t;
    999 
   1000 
   1001 /** \ingroup grp_hal_common
   1002 *
   1003 * \if hal
   1004 *  \brief Target or Tag Release Mode
   1005 * \else
   1006 *  \brief HAL-Specific
   1007 * \endif
   1008 *
   1009 *  This enumeration defines various modes of releasing an acquired target
   1010 *  or tag.
   1011 *  \note None.
   1012 */
   1013 typedef phNfc_eReleaseType_t phHal_eReleaseType_t;
   1014 
   1015 
   1016 /** \ingroup grp_hal_common
   1017 *
   1018 * \if hal
   1019 *  \brief Configuration of specific Emulation Feature
   1020 * \else
   1021 *  \brief HAL-Specific
   1022 * \endif
   1023 *
   1024 *  This enumeration is used to choose configuration for a specific
   1025 *  emulation feature.
   1026 *  \note None.
   1027 */
   1028 
   1029 typedef enum phHal_eEmulationType
   1030 {
   1031     NFC_UNKNOWN_EMULATION       = 0x00U, /**< Invalid Configuration */
   1032     NFC_HOST_CE_A_EMULATION     = 0x01U, /**< Configure parameters for Type A
   1033                                               card emulation from host */
   1034     NFC_HOST_CE_B_EMULATION     = 0x02U, /**< Configure parameters for Type B
   1035                                               card emulation from host */
   1036     NFC_B_PRIME_EMULATION       = 0x03U, /**< Configure parameters for Type B'
   1037                                               card emulation from host */
   1038     NFC_FELICA_EMULATION        = 0x04U, /**< Configure parameters for Type F
   1039                                               card emulation from host */
   1040     NFC_MIFARE_EMULATION        = 0x06U, /**< Configure parameters for MIFARE
   1041                                               card emulation - For Future Use */
   1042     NFC_SMARTMX_EMULATION       = 0x07U, /**< Configure parameters for SmartMX
   1043                                             */
   1044     NFC_UICC_EMULATION          = 0x08U  /**< Configure parameters for UICC
   1045                                             emulation */
   1046 }phHal_eEmulationType_t;
   1047 
   1048 #if 0
   1049 /** \ingroup grp_hal_nfct
   1050  *
   1051  * \if hal
   1052  *  \brief Information for Target Mode Start-Up
   1053  * \else
   1054  *  \brief HAL-Specific
   1055  * \endif
   1056  *
   1057  *  The <em> Target Information Structure </em> required to start Target mode.
   1058  *  It contains all the information for the Target mode.
   1059  *
   1060  *  \note None.
   1061  *
   1062  */
   1063 
   1064 typedef struct phHal_sTargetInfo
   1065 {
   1066     uint8_t                 enableEmulation;
   1067     phHal_sNfcIPCfg_t       targetConfig;
   1068 } phHal_sTargetInfo_t;
   1069 #endif
   1070 
   1071 
   1072 /** \ingroup grp_hal_common
   1073 *
   1074 * \if hal
   1075 *  \brief Mode of operation for SmartMX
   1076 * \else
   1077 *  \brief HAL-Specific
   1078 * \endif
   1079 *
   1080 *  This enumeration is used to choose the mode of operation for the SmartMx Module.
   1081 *  Default static configuration at initialization time.
   1082 *  \note None.
   1083 */
   1084 
   1085 typedef enum phHal_eSmartMX_Mode{
   1086     eSmartMx_Wired      = 0x00U, /* SmartMX is in Wired Mode */
   1087     eSmartMx_Default,            /* SmartMX is in Default Configuration Mode */
   1088     eSmartMx_Virtual,            /* SmartMx in the Virutal Mode */
   1089     eSmartMx_Off                 /* SmartMx Feature is Switched off */
   1090 } phHal_eSmartMX_Mode_t;
   1091 
   1092 
   1093 /** \ingroup grp_hal_common
   1094 *
   1095 * \if hal
   1096 *  \brief Mode of operation for SWP
   1097 * \else
   1098 *  \brief HAL-Specific
   1099 * \endif
   1100 *
   1101 *  This enumeration is used to choose the mode of operation for the SWP Link
   1102 *  for UICC Module. Default static configuration at initialization time.
   1103 *  \note None.
   1104 */
   1105 
   1106 typedef enum phHal_eSWP_Mode{
   1107     eSWP_Switch_Off      = 0x00U,   /* SWP Link is Switched off */
   1108     eSWP_Switch_Default,            /* SWP is in Default Configuration Mode */
   1109     eSWP_Switch_On                  /* SWP Link is Switched on */
   1110 } phHal_eSWP_Mode_t;
   1111 
   1112 
   1113 /** \ingroup grp_hal_common
   1114 *
   1115 * \if hal
   1116 *  \brief Information for the Configuring the SmartMX
   1117 * \else
   1118 *  \brief HAL-Specific
   1119 * \endif
   1120 *
   1121 *  The <em> \ref phHal_sSmartMX_Cfg structure </em> holds the information
   1122 *   to configure the SmartMX Module in the NFC Device.
   1123 *
   1124 *  \note None.
   1125 */
   1126 
   1127 
   1128 typedef struct phHal_sSmartMX_Cfg
   1129 {
   1130     uint8_t                 enableEmulation;
   1131     uint8_t                 lowPowerMode;
   1132     phHal_eSmartMX_Mode_t   smxMode;
   1133 }phHal_sSmartMX_Cfg_t;
   1134 
   1135 
   1136 /** \ingroup grp_hal_common
   1137 *
   1138 * \if hal
   1139 *  \brief Information for the Configuring the UICC
   1140 * \else
   1141 *  \brief HAL-Specific
   1142 * \endif
   1143 *
   1144 *  The <em> \ref phHal_sUiccEmuCfg structure </em> holds the information
   1145 *   to configure the UICC Host.
   1146 *
   1147 *  \note None.
   1148 */
   1149 
   1150 
   1151 typedef struct phHal_sUiccEmuCfg
   1152 {
   1153     uint8_t             enableUicc;
   1154     uint8_t             uiccEmuSupport;
   1155     uint8_t             uiccReaderSupport;
   1156     uint8_t             lowPowerMode;
   1157     /* TODO: This will be updated later */
   1158 }phHal_sUiccEmuCfg_t;
   1159 
   1160 /** \ingroup grp_hal_common
   1161 *
   1162 * \if hal
   1163 *  \brief Information for the Configuring the Type A Host Emulation Feature
   1164 * \else
   1165 *  \brief HAL-Specific
   1166 * \endif
   1167 *
   1168 *  The <em> \ref phHal_sHostEmuCfg_A structure </em> holds the information
   1169 *   to configure the Host Emulation for Type A.
   1170 *
   1171 *  \note None.
   1172 */
   1173 
   1174 typedef struct phHal_sHostEmuCfg_A
   1175 {
   1176     uint8_t                 enableEmulation;
   1177     phNfc_sIso14443AInfo_t  hostEmuCfgInfo;
   1178     uint8_t                 enableCID;
   1179 }phHal_sHostEmuCfg_A_t;
   1180 
   1181 
   1182 /** \ingroup grp_hal_common
   1183 *
   1184 * \if hal
   1185 *  \brief Information for the Configuring the Type B Host Emulation Feature
   1186 * \else
   1187 *  \brief HAL-Specific
   1188 * \endif
   1189 *
   1190 *  The <em> \ref phHal_sHostEmuCfg_B structure </em> holds the information
   1191 *   to configure the Host Emulation for Type B.
   1192 *
   1193 *  \note None.
   1194 */
   1195 
   1196 typedef struct phHal_sHostEmuCfg_B
   1197 {
   1198     uint8_t                 enableEmulation;
   1199     phNfc_sIso14443BInfo_t  hostEmuCfgInfo;
   1200 }phHal_sHostEmuCfg_B_t;
   1201 
   1202 /** \ingroup grp_hal_common
   1203 *
   1204 * \if hal
   1205 *  \brief Information for the Configuring the Felica Host Emulation Feature
   1206 * \else
   1207 *  \brief HAL-Specific
   1208 * \endif
   1209 *
   1210 *  The <em> \ref phHal_sHostEmuCfg_F structure </em> holds the information
   1211 *   to configure the Felica Host Emulation.
   1212 *
   1213 *  \note None.
   1214 */
   1215 
   1216 
   1217 typedef struct phHal_sHostEmuCfg_F
   1218 {
   1219     uint8_t                 enableEmulation;
   1220 }phHal_sHostEmuCfg_F_t;
   1221 
   1222 
   1223 /** \ingroup grp_hal_common
   1224 *
   1225 * \if hal
   1226 *  \brief Information for the Configuring the Emulation
   1227 * \else
   1228 *  \brief HAL-Specific
   1229 * \endif
   1230 *
   1231 *  The <em> \ref phHal_sEmulationCfg structure </em> holds the information
   1232 *   required for the device to act as a Tag or NFCIP1 Target.
   1233 *
   1234 *  \note phHal_sHostEmuCfg_F_t Type F emulation is not presently supported
   1235 *  is reserved for future use.
   1236 */
   1237 
   1238 typedef struct phHal_sEmulationCfg
   1239 {
   1240     phHal_HostType_t        hostType;
   1241     phHal_eEmulationType_t  emuType;
   1242     union phHal_uEmuConfig
   1243     {
   1244         phHal_sSmartMX_Cfg_t    smartMxCfg;
   1245         phHal_sHostEmuCfg_A_t   hostEmuCfg_A;
   1246         phHal_sHostEmuCfg_B_t   hostEmuCfg_B;
   1247         phHal_sHostEmuCfg_F_t   hostEmuCfg_F;
   1248         phHal_sUiccEmuCfg_t     uiccEmuCfg;
   1249     }config;
   1250 }phHal_sEmulationCfg_t;
   1251 
   1252 /** \ingroup grp_hal_common
   1253 *
   1254 * \if hal
   1255 *  \brief Information for the Configuring the Reader parameters
   1256 * \else
   1257 *  \brief HAL-Specific
   1258 * \endif
   1259 *
   1260 *  The <em> \ref phHal_sReaderCfg structure </em> holds the information
   1261 *   to configure the Reader A or Reader B parameters.
   1262 *
   1263 *  \note None.
   1264 */
   1265 
   1266 typedef struct phHal_sReaderCfg
   1267 {
   1268     phHal_eRFDevType_t    readerType;
   1269     union phHal_uReaderCfg
   1270     {
   1271         phHal_sIso14443ACfg_t       Iso14443ACfg;
   1272         phHal_sIso14443BCfg_t       Iso14443BCfg;
   1273     }config;
   1274 }phHal_sReaderCfg_t;
   1275 
   1276 
   1277 /** \ingroup grp_hal_common
   1278 *
   1279 * \if hal
   1280 *  \brief Information for Configuring the Protected Mode for
   1281 *  the Secure Elements.
   1282 * \else
   1283 *  \brief HAL-Specific
   1284 * \endif
   1285 *
   1286 *  The <em> \ref phHal_sSEProtectionCfg structure </em> holds the
   1287 *  information to configure the Secure Element Protection configuration.
   1288 *
   1289 *  \note None.
   1290 */
   1291 
   1292 typedef struct phHal_sSEProtectionCfg
   1293 {
   1294     uint8_t         mode;
   1295 }phHal_sSEProtectionCfg_t;
   1296 
   1297 
   1298 /** \ingroup  grp_hal_common
   1299 *
   1300 * \if hal
   1301 *  \brief Poll configuration structure
   1302 * \else
   1303 *  \brief HAL-Specific
   1304 * \endif
   1305 *
   1306 *  The <em> Poll configuration structure </em> holds information about the
   1307 *  enabling the the type of discovery required by the application. This
   1308 *  structure is the input parameter for the discovery call
   1309 *
   1310 *  \note All members of this structure are input parameters [out].
   1311 *
   1312 *  \if hal
   1313 *   \sa \ref phHal4Nfc_Connect, \ref phHal4Nfc_ConfigParameters,
   1314 *            \ref phHal_eP2PMode_t and \ref phHal4Nfc_Disconnect.
   1315 *  \endif
   1316 *
   1317 */
   1318 
   1319 typedef phNfc_sADD_Cfg_t phHal_sADD_Cfg_t;
   1320 
   1321 
   1322 /** \ingroup grp_hal_common
   1323 *
   1324 * \if hal
   1325 *  \brief Configuration information.
   1326 * \else
   1327 *  \brief HAL-Specific
   1328 * \endif
   1329 *
   1330 *  The <em> \ref phHal_uConfig structure </em> holds the information
   1331 *   required for Configuring the Device.
   1332 *
   1333 *  \note None.
   1334 */
   1335 
   1336 
   1337 typedef union phHal_uConfig
   1338 {
   1339     phHal_sEmulationCfg_t emuConfig;
   1340     phHal_sNfcIPCfg_t     nfcIPConfig;    /**< Gives the information about
   1341                                            *  the General Bytes for NFC-IP
   1342                                            *  Communication.
   1343                                            */
   1344     phHal_sReaderCfg_t       readerConfig;
   1345     phHal_sSEProtectionCfg_t protectionConfig;
   1346 }phHal_uConfig_t;
   1347 
   1348 
   1349 #endif
   1350 
   1351 /* EOF */
   1352