blob: 6e251e81f4c4a5e091d5b7cc2ed425700ba492c9 [file] [log] [blame]
Nick Pelly5d9927b2010-09-23 12:47:58 -07001/*
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_PollingLoop.h *
22* \brief HCI Header for the Polling loop Management. *
23* *
24* *
25* Project: NFC-FRI-1.1 *
26* *
27* $Date: Mon Mar 29 17:34:49 2010 $ *
28* $Author: ing04880 $ *
29* $Revision: 1.6 $ *
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_POLLINGLOOP_H
37#define PHHCINFC_POLLINGLOOP_H
38
39/*@}*/
40
41
42/**
43 * \name HCI
44 *
45 * File: \ref phHciNfc_PollingLoop.h
46 *
47 */
48/*@{*/
49#define PHHCINFC_POLLINGLOOP_FILEREVISION "$Revision: 1.6 $" /**< \ingroup grp_file_attributes */
50#define PHHCINFC_POLLINGLOOP_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#define PL_DURATION 0x00U
63#define PL_RD_PHASES 0x01U
64#define PL_DISABLE_TARGET 0x02U
65
66
67
68#define PL_RD_PHASES_DISABLE 0x80U
69
70/*
71******************** Enumeration and Structure Definition **********************
72*/
73
74/** \defgroup grp_hci_nfc HCI Component
75 *
76 *
77 */
78
79
80/*
81*********************** Function Prototype Declaration *************************
82*/
83
84/**
85 * \ingroup grp_hci_nfc
86 *
87 * The phHciNfc_PollLoop_Initialise function Initialises the polling loop and opens the
88 * polling loop pipe
89 *
90 * \param[in] psHciContext psHciContext is the pointer to HCI Layer
91 * context Structure.
92 * \param[in] pHwRef pHwRef is the Information of
93 * the Device Interface Link .
94 *
95 * \retval NFCSTATUS_PENDING Polling loop gate Initialisation is pending.
96 * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
97 * could not be interpreted properly.
98 * \retval Other errors Errors related to the other layers
99 *
100 */
101
102extern
103NFCSTATUS
104phHciNfc_PollLoop_Initialise(
105 phHciNfc_sContext_t *psHciContext,
106 void *pHwRef
107 );
108
109/**
110 * \ingroup grp_hci_nfc
111 *
112 * The phHciNfc_PollLoop_Release function closes the polling loop gate pipe
113 * between the Host Controller Device and the NFC Device.
114 *
115 * \param[in] psHciContext psHciContext is the pointer to HCI Layer
116 * context Structure.
117 * \param[in] pHwRef pHwRef is the Information of
118 * the Device Interface Link .
119 *
120 * \retval NFCSTATUS_PENDING Release of the Polling loop gate resources are
121 * pending.
122 * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
123 * could not be interpreted properly.
124 * \retval Other errors Errors related to the other layers
125 *
126 */
127
128extern
129NFCSTATUS
130phHciNfc_PollLoop_Release(
131 phHciNfc_sContext_t *psHciContext,
132 void *pHwRef
133 );
134
135
136/**
137 * \ingroup grp_hci_nfc
138 *
139 * The phHciNfc_PollLoop_Update_PipeInfo function updates the pipe_id of the polling
140 * loop gate Managment Struction.
141 *
142 * \param[in] psHciContext psHciContext is the pointer to HCI Layer
143 * context Structure.
144 * \param[in] pHwRef pHwRef is the Information of
145 * the Device Interface Link
146 * \param[in] cfg_type Poll configuration type
147 *
148 * \param[in] pcfg_info Poll configuration info.
149 *
150 * \retval NFCSTATUS_SUCCESS Polling loop gate Response received Successfully.
151 * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
152 * could not be interpreted properly.
153 *
154 */
155extern
156NFCSTATUS
157phHciNfc_PollLoop_Cfg (
158 void *psHciHandle,
159 void *pHwRef,
160 uint8_t cfg_type,
161 void *pcfg_info
162 );
163
164/**
165 * \ingroup grp_hci_nfc
166 *
167 * The phHciNfc_PollLoop_Update_PipeInfo function updates the pipe_id of the polling
168 * loop gate management structure. This function is used by the pipe management to
169 * update the pipe id
170 *
171 * \param[in] psHciContext psHciContext is the pointer to HCI Layer
172 * context Structure.
173 * \param[in] pipeID pipeID of the polling loop gate
174 * \param[in] pPipeInfo Update the pipe Information of the polling loop
175 * gate.
176 *
177 * \retval NFCSTATUS_SUCCESS Polling loop gate Response received Successfully.
178 * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
179 * could not be interpreted properly.
180 *
181 */
182
183extern
184NFCSTATUS
185phHciNfc_PollLoop_Update_PipeInfo(
186 phHciNfc_sContext_t *psHciContext,
187 uint8_t pipeID,
188 phHciNfc_Pipe_Info_t *pPipeInfo
189 );
190
191
192/*!
193 * \brief Allocates the resources of Polling loop Managment Gate.
194 *
195 * This function Allocates the resources of the Polling loop management
196 * gate Information Structure.
197 *
198 */
199extern
200NFCSTATUS
201phHciNfc_PollLoop_Init_Resources(
202 phHciNfc_sContext_t *psHciContext
203 );
204
205
206/*!
207 * \brief Get the pipe_id of Polling loop managment Gate.
208 *
209 * This function Get the pipe_id of Polling loop managment Gate.
210 *
211 */
212
213extern
214NFCSTATUS
215phHciNfc_PollLoop_Get_PipeID(
216 phHciNfc_sContext_t *psHciContext,
217 uint8_t *ppipe_id
218 );
219
220#endif /* PHHCINFC_POLLINGLOOP_H */
221
222