blob: d6fb8493cda842b3cf71da4ffe511bc2cc9b1310 [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_NfcIPMgmt.h *
22* \brief HCI NFCIP-1 Management Routines. *
23* *
24* *
25* Project: NFC-FRI-1.1 *
26* *
27* $Date: Tue Jun 30 17:09:29 2009 $ *
28* $Author: ing04880 $ *
29* $Revision: 1.1 $ *
30* $Aliases: 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
35#ifndef PHHCINFC_ISO15693_H
36#define PHHCINFC_ISO15693_H
37
38/*@}*/
39
40
41/**
42* \name HCI
43*
44* File: \ref phHciNfc_ISO15693.h
45*
46*/
47/*@{*/
48#define PHHCINFC_ISO15693_FILEREVISION "$Revision: 1.1 $" /**< \ingroup grp_file_attributes */
49#define PHHCINFC_ISO15693_FILEALIASES "$Aliases: 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 */
50/*@}*/
51
52/*
53***************************** Header File Inclusion ****************************
54*/
55
56#include <phHciNfc_Generic.h>
57
58/*
59****************************** Macro Definitions *******************************
60*/
61/* Enable the ISO 15693 */
62#define HCI_ISO_15693_ENABLE 0x01U
63#define HCI_ISO_15693_INFO_SEQ 0x02U
64
65#define NXP_ISO15693_CMD 0x20U
66
67
68/*
69******************** Enumeration and Structure Definition **********************
70*/
71
72typedef enum phHciNfc_ISO15693_Seq{
73 ISO15693_INVENTORY,
74 ISO15693_AFI,
75 ISO15693_END_SEQUENCE,
76 ISO15693_INVALID_SEQ
77} phHciNfc_ISO15693_Seq_t;
78
79typedef struct phHciNfc_ISO15693_Info{
80 phHciNfc_ISO15693_Seq_t current_seq;
81 phHciNfc_ISO15693_Seq_t next_seq;
82 phHciNfc_Pipe_Info_t *ps_15693_pipe_info;
83 uint8_t pipe_id;
84 uint8_t multiple_tgts_found;
85 phHal_sRemoteDevInformation_t iso15693_info;
86 uint8_t enable_iso_15693_gate;
87}phHciNfc_ISO15693_Info_t;
88
89
90/*
91*********************** Function Prototype Declaration *************************
92*/
93
94/*!
95* \brief Allocates the resources of ISO15693 management gate.
96*
97* This function Allocates the resources of the ISO15693 management
98* gate Information Structure.
99*
100*/
101extern
102NFCSTATUS
103phHciNfc_ISO15693_Init_Resources(
104 phHciNfc_sContext_t *psHciContext
105 );
106
107/**
108* \ingroup grp_hci_nfc
109*
110* The phHciNfc_ISO15693_Get_PipeID function gives the pipe id of the ISO15693
111* gate
112*
113* \param[in] psHciContext psHciContext is the pointer to HCI Layer
114* context Structure.
115* \param[in] pHwRef pHwRef is the Information of
116* the Device Interface Link
117*
118* \retval NFCSTATUS_SUCCESS Function execution is successful.
119* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
120* could not be interpreted properly.
121*
122*/
123extern
124NFCSTATUS
125phHciNfc_ISO15693_Get_PipeID(
126 phHciNfc_sContext_t *psHciContext,
127 uint8_t *ppipe_id
128 );
129
130/**
131* \ingroup grp_hci_nfc
132*
133* The phHciNfc_ISO15693_Update_PipeInfo function updates the pipe_id of the ISO15693
134* gate management Structure.
135*
136* \param[in] psHciContext psHciContext is the pointer to HCI Layer
137* context Structure.
138* \param[in] pipeID pipeID of the ISO15693 gate
139* \param[in] pPipeInfo Update the pipe Information of the ISO15693
140* gate
141*
142* \retval NFCSTATUS_SUCCESS Function execution is successful.
143* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
144* could not be interpreted properly.
145*
146*/
147
148extern
149NFCSTATUS
150phHciNfc_ISO15693_Update_PipeInfo(
151 phHciNfc_sContext_t *psHciContext,
152 uint8_t pipeID,
153 phHciNfc_Pipe_Info_t *pPipeInfo
154 );
155
156/**
157* \ingroup grp_hci_nfc
158*
159* The phHciNfc_ISO15693_Update_Info function stores the data sent by the
160* upper layer.
161*
162* \param[in] psHciContext psHciContext is the pointer to HCI Layer
163* context Structure.
164* \param[in] infotype To enable the ISO 15693 gate
165* \param[in] iso_15693_info ISO 15693 gate info
166*
167* \retval NFCSTATUS_SUCCESS Function execution is successful.
168* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
169* could not be interpreted properly.
170*
171*/
172extern
173NFCSTATUS
174phHciNfc_ISO15693_Update_Info(
175 phHciNfc_sContext_t *psHciContext,
176 uint8_t infotype,
177 void *iso_15693_info
178 );
179
180/**
181* \ingroup grp_hci_nfc
182*
183* The phHciNfc_ISO15693_Sequence function executes the sequence of operations, to
184* get the NXP_ISO15693_INVENTORY, NXP_ISO15693_AFI.
185*
186* \param[in] psHciContext psHciContext is the pointer to HCI Layer
187* context Structure.
188* \param[in] pHwRef pHwRef is the Information of
189* the Device Interface Link
190*
191* \retval NFCSTATUS_SUCCESS Function execution is successful.
192* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
193* could not be interpreted properly.
194*
195*/
196extern
197NFCSTATUS
198phHciNfc_ISO15693_Info_Sequence (
199 void *psHciHandle,
200 void *pHwRef
201 );
202
203/**
204* \ingroup grp_hci_nfc
205*
206* The phHciNfc_Send_ISO15693_Command function executes the command sent by the
207* upper layer, depending on the commands defined.
208*
209* \param[in] psContext psContext is the pointer to HCI Layer
210* context Structure.
211* \param[in] pHwRef pHwRef is the Information of
212* the Device Interface Link
213* \param[in] pipe_id pipeID of the ISO 15693 gate
214* \param[in] cmd command that needs to be sent to the device
215*
216* \retval NFCSTATUS_SUCCESS Function execution is successful.
217* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
218* could not be interpreted properly.
219*
220*/
221extern
222NFCSTATUS
223phHciNfc_Send_ISO15693_Command(
224 phHciNfc_sContext_t *psHciContext,
225 void *pHwRef,
226 uint8_t pipe_id,
227 uint8_t cmd
228 );
229
230/**
231* \ingroup grp_hci_nfc
232*
233* The phHciNfc_ISO15693_Set_AFI function updates the AFI value
234*
235* \param[in] psHciContext psHciContext is the pointer to HCI Layer
236* context Structure.
237* \param[in] pipeID pipeID of the ISO 15693 gate
238* \param[in] pPipeInfo Update the pipe Information of the ISO
239* 15693 gate
240*
241* \retval NFCSTATUS_SUCCESS Function execution is successful.
242* \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
243* could not be interpreted properly.
244*
245*/
246extern
247NFCSTATUS
248phHciNfc_ISO15693_Set_AFI(
249 void *psContext,
250 void *pHwRef,
251 uint8_t afi_value
252 );
253
254#endif /* #ifndef PHHCINFC_ISO15693_H */
255
256