blob: 6ab2f5c72bda1cf53376bcf0337821edf7e5eca7 [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_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 */
58typedef enum phHciNfc_WI_Events{
59 eDisableEvents,
60 eEnableEvents
61} phHciNfc_WI_Events_t;
62
63typedef 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 */
70typedef 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 */
99extern
100NFCSTATUS
101phHciNfc_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
117extern
118NFCSTATUS
119phHciNfc_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*/
136extern
137NFCSTATUS
138phHciNfc_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*/
157extern
158NFCSTATUS
159phHciNfc_WI_Configure_Mode(
160 void *psHciHandle,
161 void *pHwRef,
162 phHal_eSmartMX_Mode_t cfg_Mode
163 );
164
165extern
166NFCSTATUS
167phHciNfc_WI_Configure_Notifications(
168 void *psHciHandle,
169 void *pHwRef,
170 phHciNfc_WI_Events_t eNotification
171 );
172
173extern
174NFCSTATUS
175phHciNfc_WI_Get_PipeID(
176 phHciNfc_sContext_t *psHciContext,
177 uint8_t *ppipe_id
178 );
179
180extern
181NFCSTATUS
182phHciNfc_WI_Configure_Default(
183 void *psHciHandle,
184 void *pHwRef,
185 uint8_t enable_type
186 );
187
188extern
189NFCSTATUS
190phHciNfc_WI_Get_Default(
191 void *psHciHandle,
192 void *pHwRef
193 );
194
195
196#endif /* #ifndef PHHCINFC_WI_H */
197