Home | History | Annotate | Download | only in src
      1 /*
      2  * Copyright (C) 2010 NXP Semiconductors
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 /*!
     18 * =========================================================================== *
     19 *                                                                             *
     20 *                                                                             *
     21 * \file  phHciNfc_WI .h                                                       *
     22 * \brief HCI wired interface gate Management Routines.                        *
     23 *                                                                             *
     24 *                                                                             *
     25 * Project: NFC-FRI-1.1                                                        *
     26 *                                                                             *
     27 * $Date: Fri Jan 16 10:33:47 2009 $                                           *
     28 * $Author: ravindrau $                                                         *
     29 * $Revision: 1.11 $                                                            *
     30 * $Aliases: NFC_FRI1.1_WK904_PREP1,NFC_FRI1.1_WK904_R17_1,NFC_FRI1.1_WK906_R18_1,NFC_FRI1.1_WK908_PREP1,NFC_FRI1.1_WK908_R19_1,NFC_FRI1.1_WK910_PREP1,NFC_FRI1.1_WK910_R20_1,NFC_FRI1.1_WK912_PREP1,NFC_FRI1.1_WK912_R21_1,NFC_FRI1.1_WK914_PREP1,NFC_FRI1.1_WK914_R22_1,NFC_FRI1.1_WK914_R22_2,NFC_FRI1.1_WK916_R23_1,NFC_FRI1.1_WK918_R24_1,NFC_FRI1.1_WK920_PREP1,NFC_FRI1.1_WK920_R25_1,NFC_FRI1.1_WK922_PREP1,NFC_FRI1.1_WK922_R26_1,NFC_FRI1.1_WK924_PREP1,NFC_FRI1.1_WK924_R27_1,NFC_FRI1.1_WK926_R28_1,NFC_FRI1.1_WK926_R28_2,NFC_FRI1.1_WK926_R28_3,NFC_FRI1.1_WK928_R29_1,NFC_FRI1.1_WK930_R30_1,NFC_FRI1.1_WK934_R31_1,NFC_FRI1.1_WK941_PREP1,NFC_FRI1.1_WK941_PREP2,NFC_FRI1.1_WK941_1,NFC_FRI1.1_WK943_R32_1,NFC_FRI1.1_WK949_PREP1,NFC_FRI1.1_WK943_R32_10,NFC_FRI1.1_WK943_R32_13,NFC_FRI1.1_WK943_R32_14,NFC_FRI1.1_WK1007_R33_1,NFC_FRI1.1_WK1007_R33_4,NFC_FRI1.1_WK1017_PREP1,NFC_FRI1.1_WK1017_R34_1,NFC_FRI1.1_WK1017_R34_2,NFC_FRI1.1_WK1023_R35_1 $                                                                *
     31 *                                                                             *
     32 * =========================================================================== *
     33 */
     34 #ifndef PHHCINFC_WI_H
     35 #define PHHCINFC_WI_H
     36 /*@}*/
     37 /**
     38  *  \name HCI
     39  *
     40  * File: \ref phHciNfc_WI.h
     41  *
     42  */
     43 /*@{*/
     44 #define PHHCINFC_WIRED_FILEREVISION "$Revision: 1.11 $" /**< \ingroup grp_file_attributes */
     45 #define PHHCINFC_WIREDINTERFACE_FILEALIASES  "$Aliases: NFC_FRI1.1_WK904_PREP1,NFC_FRI1.1_WK904_R17_1,NFC_FRI1.1_WK906_R18_1,NFC_FRI1.1_WK908_PREP1,NFC_FRI1.1_WK908_R19_1,NFC_FRI1.1_WK910_PREP1,NFC_FRI1.1_WK910_R20_1,NFC_FRI1.1_WK912_PREP1,NFC_FRI1.1_WK912_R21_1,NFC_FRI1.1_WK914_PREP1,NFC_FRI1.1_WK914_R22_1,NFC_FRI1.1_WK914_R22_2,NFC_FRI1.1_WK916_R23_1,NFC_FRI1.1_WK918_R24_1,NFC_FRI1.1_WK920_PREP1,NFC_FRI1.1_WK920_R25_1,NFC_FRI1.1_WK922_PREP1,NFC_FRI1.1_WK922_R26_1,NFC_FRI1.1_WK924_PREP1,NFC_FRI1.1_WK924_R27_1,NFC_FRI1.1_WK926_R28_1,NFC_FRI1.1_WK926_R28_2,NFC_FRI1.1_WK926_R28_3,NFC_FRI1.1_WK928_R29_1,NFC_FRI1.1_WK930_R30_1,NFC_FRI1.1_WK934_R31_1,NFC_FRI1.1_WK941_PREP1,NFC_FRI1.1_WK941_PREP2,NFC_FRI1.1_WK941_1,NFC_FRI1.1_WK943_R32_1,NFC_FRI1.1_WK949_PREP1,NFC_FRI1.1_WK943_R32_10,NFC_FRI1.1_WK943_R32_13,NFC_FRI1.1_WK943_R32_14,NFC_FRI1.1_WK1007_R33_1,NFC_FRI1.1_WK1007_R33_4,NFC_FRI1.1_WK1017_PREP1,NFC_FRI1.1_WK1017_R34_1,NFC_FRI1.1_WK1017_R34_2,NFC_FRI1.1_WK1023_R35_1 $"   /**< \ingroup grp_file_attributes */
     46 /*@}*/
     47 
     48 /****************************** Header File Inclusion *****************************/
     49 #include <phHciNfc_Generic.h>
     50 #include <phHciNfc_Emulation.h>
     51 
     52 /******************************* Macro Definitions ********************************/
     53 
     54 /******************** Enumeration and Structure Definition ***********************/
     55 
     56 
     57 /* enable /disable notifications */
     58 typedef enum phHciNfc_WI_Events{
     59     eDisableEvents,
     60     eEnableEvents
     61 } phHciNfc_WI_Events_t;
     62 
     63 typedef enum phHciNfc_WI_Seq{
     64     eWI_PipeOpen        = 0x00U,
     65     eWI_SetDefaultMode,
     66     eWI_PipeClose
     67 } phHciNfc_WI_Seq_t;
     68 
     69 /* Information structure for  WI  Gate */
     70 typedef struct phHciNfc_WI_Info{
     71 
     72     /* Pointer to WI gate pipe information */
     73     phHciNfc_Pipe_Info_t            *p_pipe_info;
     74     /*  WI gate pipe Identifier */
     75     uint8_t                         pipe_id;
     76     /*  Application ID of the Transaction performed */
     77     uint8_t                         aid[MAX_AID_LEN];
     78     /*  Default info */
     79     uint8_t                         default_type;
     80     /* Current WI gate Internal Sequence type   */
     81     phHciNfc_WI_Seq_t               current_seq;
     82     /*Current WI gate next Sequence ID          */
     83     phHciNfc_WI_Seq_t               next_seq;
     84 
     85 } phHciNfc_WI_Info_t;
     86 
     87 /************************ Function Prototype Declaration *************************/
     88 /*!
     89  * \brief Allocates the resources required for  WI gate management.
     90  *
     91  * This function Allocates necessary resources as requiered by WI gate management
     92  *
     93  * \param[in]  psHciContext            psHciContext is the pointer to HCI Layer
     94  *
     95  * \retval NFCSTATUS_SUCCESS           Function execution is successful
     96  *
     97  * \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid
     98  */
     99 extern
    100 NFCSTATUS
    101 phHciNfc_WI_Init_Resources(phHciNfc_sContext_t   *psHciContext);
    102 
    103 /**
    104 * \ingroup grp_hci_nfc
    105 *
    106 * \brief Allocates the resources required for  WI gate management.
    107 *
    108 * This function Allocates necessary resources as requiered by WI gate management
    109 *
    110 * \param[in]  psHciContext            psHciContext is the pointer to HCI Layer
    111 *
    112 * \retval NFCSTATUS_SUCCESS           Function execution is successful
    113 *
    114 * \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid
    115 */
    116 
    117 extern
    118 NFCSTATUS
    119 phHciNfc_WIMgmt_Initialise(
    120                                 phHciNfc_sContext_t     *psHciContext,
    121                                 void                    *pHwRef
    122                          );
    123 /**
    124 * \ingroup grp_hci_nfc
    125 *
    126 * \brief Allocates the resources required for  WI gate management.
    127 *
    128 * This function Allocates necessary resources as requiered by WI gate management
    129 *
    130 * \param[in]  psHciContext            psHciContext is the pointer to HCI Layer
    131 *
    132 * \retval NFCSTATUS_SUCCESS           Function execution is successful
    133 *
    134 * \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid
    135 */
    136 extern
    137 NFCSTATUS
    138 phHciNfc_WI_Update_PipeInfo(
    139                                   phHciNfc_sContext_t     *psHciContext,
    140                                   uint8_t                 pipeID,
    141                                   phHciNfc_Pipe_Info_t    *pPipeInfo
    142                                   );
    143 
    144 /**
    145 * \ingroup grp_hci_nfc
    146 *
    147 * \brief Allocates the resources required for  WI gate management.
    148 *
    149 * This function Allocates necessary resources as requiered by WI gate management
    150 *
    151 * \param[in]  psHciContext            psHciContext is the pointer to HCI Layer
    152 *
    153 * \retval NFCSTATUS_SUCCESS           Function execution is successful
    154 *
    155 * \retval NFCSTATUS_INVALID_PARAMETER One or more of the given inputs are not valid
    156 */
    157 extern
    158 NFCSTATUS
    159 phHciNfc_WI_Configure_Mode(
    160                                   void                *psHciHandle,
    161                                   void                *pHwRef,
    162                                   phHal_eSmartMX_Mode_t   cfg_Mode
    163                           );
    164 
    165 extern
    166 NFCSTATUS
    167 phHciNfc_WI_Configure_Notifications(
    168                                     void        *psHciHandle,
    169                                     void        *pHwRef,
    170                                     phHciNfc_WI_Events_t eNotification
    171                                 );
    172 
    173 extern
    174 NFCSTATUS
    175 phHciNfc_WI_Get_PipeID(
    176                        phHciNfc_sContext_t        *psHciContext,
    177                        uint8_t                    *ppipe_id
    178                    );
    179 
    180 extern
    181 NFCSTATUS
    182 phHciNfc_WI_Configure_Default(
    183                               void                  *psHciHandle,
    184                               void                  *pHwRef,
    185                               uint8_t               enable_type
    186                           );
    187 
    188 extern
    189 NFCSTATUS
    190 phHciNfc_WI_Get_Default(
    191                         void                  *psHciHandle,
    192                         void                  *pHwRef
    193                         );
    194 
    195 
    196 #endif /* #ifndef PHHCINFC_WI_H */
    197 
    198