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_AdminMgmt.h                                                 *
22 * \brief HCI Header for the Admin Gate Management.                            *
23 *                                                                             *
24 *                                                                             *
25 * Project: NFC-FRI-1.1                                                        *
26 *                                                                             *
27 * $Date: Mon Mar 29 17:34:48 2010 $                                           *
28 * $Author: ing04880 $                                                         *
29 * $Revision: 1.7 $                                                            *
30 * $Aliases: 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 
35 
36 #ifndef PHHCINFC_ADMINMGMT_H
37 #define PHHCINFC_ADMINMGMT_H
38 
39 /*@}*/
40 
41 
42 /**
43  *  \name HCI
44  *
45  * File: \ref phHciNfc_AdminMgmt.h
46  *
47  */
48 /*@{*/
49 #define PHHCINFC_ADMINMGMT_FILEREVISION "$Revision: 1.7 $" /**< \ingroup grp_file_attributes */
50 #define PHHCINFC_ADMINMGMT_FILEALIASES  "$Aliases: 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 */
51 /*@}*/
52 
53 /*
54 ***************************** Header File Inclusion ****************************
55 */
56 
57 #include <phHciNfc_Generic.h>
58 
59 /*
60 ****************************** Macro Definitions *******************************
61 */
62 
63 #define EVT_HOT_PLUG    0x03
64 
65 /*
66 ******************** Enumeration and Structure Definition **********************
67 */
68 
69 /** \defgroup grp_hci_nfc HCI Component
70  *
71  *
72  */
73 
74 
75 /*
76 *********************** Function Prototype Declaration *************************
77 */
78 
79 /**
80  * \ingroup grp_hci_nfc
81  *
82  *  The phHciNfc_Admin_Initialise function Initialises the AdminGate and opens the
83  *  Admin Gate pipe
84  *
85  *  \param[in]  psHciContext            psHciContext is the pointer to HCI Layer
86  *                                      context Structure.
87  *  \param[in]  pHwRef                  pHwRef is the Information of
88  *                                      the Device Interface Link .
89  *
90  *  \retval NFCSTATUS_PENDING           AdminGate Initialisation is pending.
91  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
92  *                                      could not be interpreted properly.
93  *  \retval Other errors                Errors related to the other layers
94  *
95  */
96 
97 extern
98 NFCSTATUS
99 phHciNfc_Admin_Initialise(
100                                 phHciNfc_sContext_t     *psHciContext,
101                                 void                    *pHwRef
102                          );
103 
104 /**
105  * \ingroup grp_hci_nfc
106  *
107  *  The phHciNfc_Admin_Release function closes the opened pipes between
108  *  the Host Controller Device and the NFC Device.
109  *
110  *  \param[in]  psHciContext            psHciContext is the pointer to HCI Layer
111  *                                      context Structure.
112  *  \param[in]  pHwRef                  pHwRef is the Information of
113  *                                      the Device Interface Link .
114  *  \param[in]  host_type               host_type is the type of the host
115  *                                      to be released.
116  *
117  *  \retval NFCSTATUS_PENDING           Release of the Admingate resources are
118  *                                      pending.
119  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
120  *                                      could not be interpreted properly.
121  *  \retval Other errors                Errors related to the other layers
122  *
123  */
124 
125 extern
126 NFCSTATUS
127 phHciNfc_Admin_Release(
128                                 phHciNfc_sContext_t     *psHciContext,
129                                 void                    *pHwRef,
130                                 phHciNfc_HostID_t        host_type
131                      );
132 
133 
134 /**
135  * \ingroup grp_hci_nfc
136  *
137  *  The phHciNfc_Send_Admin_Cmd function Sends the Particular AdminGate
138  *  command to the Host Controller Device.
139  *
140  *  \param[in]  psHciContext            psHciContext is the pointer to HCI Layer
141  *                                      context Structure.
142  *  \param[in]  pHwRef                  pHwRef is the Information of
143  *                                      the Device Interface Link .
144  *  \param[in]  cmd                     cmd to be sent to the Admin gate of the
145  *                                      Host controller.
146  *  \param[in]  length                  Size of the data sent in the parameter.
147  *  \param[in,out]  params              params contains the parameters that are
148  *                                      required by the particular HCI command.
149  *
150  *  \retval None
151  *
152  */
153 
154 extern
155 NFCSTATUS
156 phHciNfc_Send_Admin_Cmd (
157                             phHciNfc_sContext_t     *psHciContext,
158                             void                    *pHwRef,
159                             uint8_t                 cmd,
160                             uint8_t                 length,
161                             void                    *params
162                         );
163 
164 
165 /**
166  * \ingroup grp_hci_nfc
167  *
168  *  The phHciNfc_Send_Admin_Cmd function Sends the Particular AdminGate
169  *  command to the Host Controller Device.
170  *
171  *  \param[in]  psHciContext            psHciContext is the pointer to HCI Layer
172  *                                      context Structure.
173  *  \param[in]  pHwRef                  pHwRef is the Information of
174  *                                      the Device Interface Link .
175  *  \param[in]  Event                   Event to be sent to the Admin gate of the
176  *                                      Host controller.
177  *  \param[in]  length                  Size of the data sent in the parameter.
178  *  \param[in,out]  params              params contains the parameters that are
179  *                                      required by the particular HCI command.
180  *
181  *  \retval None
182  *
183  */
184 
185 extern
186 NFCSTATUS
187 phHciNfc_Send_Admin_Event (
188                     phHciNfc_sContext_t   *psHciContext,
189                     void                  *pHwRef,
190                     uint8_t               event,
191                     uint8_t               length,
192                     void                  *params
193                     );
194 
195 extern
196 NFCSTATUS
197 phHciNfc_Admin_CE_Init(
198                             phHciNfc_sContext_t     *psHciContext,
199                             void                    *pHwRef,
200                             phHciNfc_GateID_t       ce_gate
201                         );
202 
203 
204 #endif
205 
206