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