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.h                                                           *
22 * \brief HCI Header for the Generic HCI Management.                           *
23 *                                                                             *
24 *                                                                             *
25 * Project: NFC-FRI-1.1                                                        *
26 *                                                                             *
27 * $Date: Mon Apr  5 14:37:06 2010 $                                           *
28 * $Author: ing04880 $                                                         *
29 * $Revision: 1.39 $                                                           *
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 /*@{*/
37 
38 #ifndef PHHCINFC_H
39 #define PHHCINFC_H
40 
41 /*@}*/
42 /**
43  *  \name HCI
44  *
45  * File: \ref phHciNfc.h
46  *
47  */
48 /*@{*/
49 #define PH_HCINFC_FILEREVISION "$Revision: 1.39 $" /**< \ingroup grp_file_attributes */
50 #define PH_HCINFC_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 ################################################################################
55 ***************************** Header File Inclusion ****************************
56 ################################################################################
57 */
58 
59 #include <phNfcStatus.h>
60 #include <phNfcInterface.h>
61 #ifdef ANDROID
62 #include <string.h>
63 #endif
64 
65 /*
66 ################################################################################
67 ****************************** Macro Definitions *******************************
68 ################################################################################
69 */
70 
71 
72 /*
73 ################################################################################
74 ******************** Enumeration and Structure Definition **********************
75 ################################################################################
76 */
77 
78 typedef enum phHciNfc_Init
79 {
80   HCI_SESSION = 0x00,
81   HCI_NFC_DEVICE_TEST,
82   HCI_CUSTOM_INIT,
83   HCI_SELF_TEST
84 }phHciNfc_Init_t;
85 
86 /** \ingroup  grp_hal_hci
87  *
88  * \if hal
89  *  \brief HCI Tag Exchange Information
90  * \else
91  *  \brief HCI-Specific
92  * \endif
93  *
94  *  The <em> Tag Exchange Info Structure </em> holds the exchange information to
95  *  the connected tag .
96  *
97  *  \note All members of this structure are in parameters [in].
98  *
99  */
100 
101 typedef struct phHciNfc_Tag_XchgInfo
102 {
103     /** \internal RF Reader Command Type */
104     uint8_t                     cmd_type;
105     /** \internal Address Field required for only Mifare
106      *  Family Proprietary Cards.
107      *  The Address Size is Valid only upto 255 Blocks limit
108      *  i:e for Mifare 4K
109      */
110     uint8_t                     addr;
111 }phHciNfc_Tag_XchgInfo_t;
112 
113 /** \ingroup  grp_hal_hci
114  *
115  * \if hal
116  *  \brief HCI NFC-IP Exchange Information
117  * \else
118  *  \brief HCI-Specific
119  * \endif
120  *
121  *  The <em> NFC-IP Exchange Info Structure </em> holds the exchange information to
122  *  the connected NFC-IP target .
123  *
124  *  \note All members of this structure are in parameters [in].
125  *
126  */
127 
128 typedef struct phHciNfc_NfcIP_XchgInfo
129 {
130     /** \internal NFC-IP DEP Meta Chining Information */
131     uint8_t                     more_info;
132 
133 }phHciNfc_NfcIP_XchgInfo_t;
134 
135 /** \ingroup  grp_hal_hci
136  *
137  * \if hal
138  *  \brief HCI Target Exchange Information
139  * \else
140  *  \brief HCI-Specific
141  * \endif
142  *
143  *  The <em> Target Exchange Info Structure </em> holds all the exchange information to
144  *  the connected target .
145  *
146  *  \note All members of this structure are in parameters [in].
147  *
148  */
149 
150 
151 typedef struct phHciNfc_XchgInfo
152 {
153     /** \internal Exchange Data/NFC-IP DEP
154      *   Exchange Buffer */
155     uint8_t                     *tx_buffer;
156     /** \internal Exchange Data/NFC-IP DEP
157      *   Exchange Buffer Length*/
158     uint16_t                     tx_length;
159 
160     union
161     {
162         phHciNfc_Tag_XchgInfo_t   tag_info;
163         phHciNfc_NfcIP_XchgInfo_t nfc_info;
164     }params;
165 
166 }phHciNfc_XchgInfo_t;
167 
168 
169 
170 /*
171 ################################################################################
172 *********************** Function Prototype Declaration *************************
173 ################################################################################
174 */
175 
176 /**
177  * \ingroup grp_hci_nfc
178  *
179  *  The phHciNfc_Initialise function initialises the HCI context and all other
180  *  resources used in the HCI Layer for the corresponding interface link.
181  *
182  *  \param[in,out]  psHciHandle         psHciHandle is the handle or the context
183  *                                      of the HCI Layer.
184  *  \param[in]  pHwRef                  pHwRef is the Information of
185  *                                      the Device Interface Link .
186  *  \param[in]  init_mode               init_mode specifies the kind of the
187  *                                      Initialisation for the HCI layer .
188  *  \param[in]  pHwConfig               pHwConfig is the Information required
189  *                                      to configure the parameters of the
190  *                                      NFC Device .
191  *  \param[in]  pHalNotify              Upper layer Notification function
192  *                                      pointer.
193  *  \param[in]  psContext               psContext is the context of
194  *                                      the Upper Layer.
195  *  \param[in]  psHciLayerCfg           Pointer to the  HCI Layer configuration
196  *                                      Structure.
197  *
198  *  \retval NFCSTATUS_PENDING           Initialisation of HCI Layer is in Progress.
199  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
200  *                                      could not be interpreted properly.
201  *  \retval Other errors                Errors related to the other layers
202  *
203  */
204 
205  extern
206  NFCSTATUS
207  phHciNfc_Initialise (
208                         void                            *psHciHandle,
209                         void                            *pHwRef,
210                         phHciNfc_Init_t                 init_mode,
211                         phHal_sHwConfig_t               *pHwConfig,
212                         pphNfcIF_Notification_CB_t       pHalNotify,
213                         void                            *psContext,
214                         phNfcLayer_sCfg_t               *psHciLayerCfg
215                      );
216 
217 /**
218  * \ingroup grp_hci_nfc
219  *
220  *  The phHciNfc_Release function releases all the resources used in the HCI
221  *  Layer for the corresponding interface link, described by the HCI handle.
222  *
223  *  \param[in]  psHciHandle             psHciHandle is the handle or the context
224  *                                      of the HCI Layer.
225  *  \param[in]  pHwRef                  pHwRef is the Information of
226  *                                      the Device Interface Link .
227  *  \param[in]  pHalReleaseCB           Upper layer release callback function
228  *                                      pointer .
229  *  \param[in]  psContext               psContext is the context of
230  *                                      the Upper Layer.
231  *
232  *  \retval NFCSTATUS_PENDING           Releasing of HCI Resources are in Progress.
233  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
234  *                                      could not be interpreted properly.
235  *  \retval Other errors                Errors related to the other layers
236  *
237  */
238 
239  extern
240  NFCSTATUS
241  phHciNfc_Release (
242                     void                            *psHciHandle,
243                     void                            *pHwRef,
244                     pphNfcIF_Notification_CB_t      pHalReleaseCB,
245                     void                            *psContext
246                   );
247 
248 
249 extern
250 NFCSTATUS
251 phHciNfc_Config_Discovery (
252                     void                            *psHciHandle,
253                     void                            *pHwRef,
254                     phHal_sADD_Cfg_t                *pPollConfig
255                     );
256 
257 
258 /**
259  * \ingroup grp_hci_nfc
260  *
261  *  The phHciNfc_Restart_Discovery function restarts the Polling Wheel.
262  *
263  *  \param[in]  psHciHandle             psHciHandle is the handle or the context
264  *                                      of the HCI Layer.
265  *  \param[in]  pHwRef                  pHwRef is the Information of
266  *                                      the Device Interface Link .
267  *  \param[in]  discovery_type                 If True: Start re-polling of the target
268  *                                      after the Target Device is de-activated
269  *                                      or else - continue discovery with next
270  *                                      technology.
271  *  \retval NFCSTATUS_PENDING           The Discovery Wheel retarted.
272  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
273  *                                      could not be interpreted properly.
274  *  \retval Other errors                Errors related to the other layers
275  *
276  */
277 
278  extern
279  NFCSTATUS
280  phHciNfc_Restart_Discovery (
281                         void                            *psHciHandle,
282                         void                            *pHwRef,
283                         uint8_t                         discovery_type
284                      );
285 
286 
287  /**
288  * \ingroup grp_hci_nfc
289  *
290  *  The phHciNfc_Start_Discovery function Starts the Polling Wheel.
291  *
292  *  \param[in]  psHciHandle             psHciHandle is the handle or the context
293  *                                      of the HCI Layer.
294  *  \param[in]  pHwRef                  pHwRef is the Information of
295  *                                      the Device Interface Link .
296  *  \retval NFCSTATUS_PENDING           The Discovery Wheel Started.
297  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
298  *                                      could not be interpreted properly.
299  *  \retval Other errors                Errors related to the other layers
300  *
301  */
302 
303  extern
304  NFCSTATUS
305  phHciNfc_Start_Discovery (
306                         void                            *psHciHandle,
307                         void                            *pHwRef
308                      );
309 
310 
311  /**
312  * \ingroup grp_hci_nfc
313  *
314  *  The phHciNfc_Stop_Discovery function Stops the Polling Wheel.
315  *
316  *  \param[in]  psHciHandle             psHciHandle is the handle or the context
317  *                                      of the HCI Layer.
318  *  \param[in]  pHwRef                  pHwRef is the Information of
319  *                                      the Device Interface Link .
320  *  \retval NFCSTATUS_PENDING           The Discovery Wheel Stopped.
321  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
322  *                                      could not be interpreted properly.
323  *  \retval Other errors                Errors related to the other layers
324  *
325  */
326 
327  extern
328  NFCSTATUS
329  phHciNfc_Stop_Discovery (
330                         void                            *psHciHandle,
331                         void                            *pHwRef
332                      );
333 
334 
335  /**
336  * \ingroup grp_hci_nfc
337  *
338  *  The phHciNfc_Configure function Configures Configures the Polling Wheel to
339  *  select the kind of Tags to be polled. This also allows to enable/disable
340  *  the Tag Emulation. This also configures the Secure elements the UICC, WI and
341  *  Target to Emulate the Tag or Target.
342  *
343  *
344  *  \param[in]  psHciHandle             psHciHandle is the handle or the context
345  *                                      of the HCI Layer.
346  *  \param[in]  pHwRef                  pHwRef is the Information of
347  *                                      the Device Interface Link .
348  *  \param[in]  config_type             config_type specifies the type of the
349  *                                      Parameter configuration.
350  *  \param[in]  pConfig                 pConfig is the Information for
351  *                                      Configuring the Device.
352  *  \retval NFCSTATUS_PENDING           The Emulation configuration pending.
353  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
354  *                                      could not be interpreted properly.
355  *  \retval Other errors                Errors related to the other layers
356  *
357  */
358 
359  extern
360  NFCSTATUS
361  phHciNfc_Configure (
362                         void                            *psHciHandle,
363                         void                            *pHwRef,
364                         phHal_eConfigType_t             config_type,
365                         phHal_uConfig_t                 *pConfig
366                      );
367 
368  /**
369  * \ingroup grp_hci_nfc
370  *
371  *  The phHciNfc_Switch_SmxMode function Switches the WI(S2C) interface
372  *  from Wired/Virtual to vice versa.
373  *
374  *
375  *  \param[in]  psHciHandle             psHciHandle is the handle or the context
376  *                                      of the HCI Layer.
377  *  \param[in]  pHwRef                  pHwRef is the Information of
378  *                                      the Device Interface Link .
379  *  \param[in]  smx_mode                smx_mode specifies the type of the switch
380  *                                      configuration.
381  *  \param[in]  pPollConfig             pPollConfig is the Information for
382  *                                      polling the SmartMX Device.
383  *  \retval NFCSTATUS_PENDING           The SmartMX Mode Switch pending.
384  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
385  *                                      could not be interpreted properly.
386  *  \retval Other errors                Errors related to the other layers
387  *
388  */
389 
390  NFCSTATUS
391  phHciNfc_Switch_SmxMode (
392                         void                            *psHciHandle,
393                         void                            *pHwRef,
394                         phHal_eSmartMX_Mode_t           smx_mode,
395                         phHal_sADD_Cfg_t                *pPollConfig
396                      );
397 
398 
399  /**
400  * \ingroup grp_hci_nfc
401  *
402  *  The phHciNfc_Switch_SwpMode function Switches the SWP Link
403  *  from On/Off to vice versa.
404  *
405  *
406  *  \param[in]  psHciHandle             psHciHandle is the handle or the context
407  *                                      of the HCI Layer.
408  *  \param[in]  pHwRef                  pHwRef is the Information of
409  *                                      the Device Interface Link .
410  *  \param[in]  swp_mode                swp_mode specifies to switch on/off the
411  *                                      SWP Link.
412  *  \retval NFCSTATUS_PENDING           The SWP Mode Switch pending.
413  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
414  *                                      could not be interpreted properly.
415  *  \retval Other errors                Errors related to the other layers
416  *
417  */
418 
419  NFCSTATUS
420  phHciNfc_Switch_SwpMode (
421                         void                            *psHciHandle,
422                         void                            *pHwRef,
423                         phHal_eSWP_Mode_t               swp_mode /* ,
424                         void                            *pSwpCfg */
425                      );
426 
427 
428 
429 /**
430  * \ingroup grp_hci_nfc
431  *
432  *  The phHciNfc_Connect function selects the discovered target to
433  *  perform the transactions on it.
434  *
435  *
436  *  \param[in]  psHciHandle             psHciHandle is the handle or the context
437  *                                      of the HCI Layer.
438  *  \param[in]  pHwRef                  pHwRef is the Information of
439  *                                      the Device Interface Link .
440  *  \param[in]  p_remote_dev_info       p_remote_dev_info is the information
441  *                                      of the Target Device to be connected .
442  *  \retval NFCSTATUS_PENDING           To select the remote target pending.
443  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
444  *                                      could not be interpreted properly.
445  *  \retval Other errors                Errors related to the other layers
446  *
447  */
448 
449  extern
450  NFCSTATUS
451  phHciNfc_Connect (
452                     void                            *psHciHandle,
453                     void                            *pHwRef,
454                     phHal_sRemoteDevInformation_t   *p_remote_dev_info
455                  );
456 
457 
458 /**
459  * \ingroup grp_hci_nfc
460  *
461  *  The phHciNfc_Reactiavte function reactivates the discovered target to
462  *  and selects that target perform the transactions on it.
463  *
464  *
465  *  \param[in]  psHciHandle             psHciHandle is the handle or the context
466  *                                      of the HCI Layer.
467  *  \param[in]  pHwRef                  pHwRef is the Information of
468  *                                      the Device Interface Link .
469  *  \param[in]  p_remote_dev_info       p_remote_dev_info is the information
470  *                                      of the Target Device to be reactivated .
471  *  \retval NFCSTATUS_PENDING           To reactivate the remote target pending.
472  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
473  *                                      could not be interpreted properly.
474  *  \retval Other errors                Errors related to the other layers
475  *
476  */
477 
478 
479  extern
480  NFCSTATUS
481  phHciNfc_Reactivate (
482                     void                            *psHciHandle,
483                     void                            *pHwRef,
484                     phHal_sRemoteDevInformation_t   *p_target_info
485                  );
486 
487 
488 /**
489  * \ingroup grp_hci_nfc
490  *
491  *  The phHciNfc_Disconnect function de-selects the selected target and
492  *  any ongoing transactions .
493  *
494  *
495  *  \param[in]  psHciHandle             psHciHandle is the handle or the context
496  *                                      of the HCI Layer.
497  *  \param[in]  pHwRef                  pHwRef is the Information of
498  *                                      the Device Interface Link .
499  *  \param[in]  discovery_type          If NFC_RF_DISCOVERY_REPOLL: Start re-polling of
500  *                                      the target after the Target Device is
501  *                                      de-activatedor if NFC_RF_DISCOVERY_CONTINUE -
502  *                                      continue discovery with next technology or
503  *                                      stop the discovery wheel.
504  *
505  *  \retval NFCSTATUS_PENDING           To De-select the remote target pending.
506  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
507  *                                      could not be interpreted properly.
508  *  \retval Other errors                Errors related to the other layers
509  *
510  */
511 
512  extern
513  NFCSTATUS
514  phHciNfc_Disconnect (
515                     void                            *psHciHandle,
516                     void                            *pHwRef,
517                     uint8_t                         discovery_type
518                  );
519 
520 
521 /**
522  * \ingroup grp_hci_nfc
523  *
524  *  The phHciNfc_Presence_Check function checks for the presence of the target
525  *  selected in the vicinity of the Reader's RF Field .
526  *
527  *
528  *  \param[in]  psHciHandle             psHciHandle is the handle or the context
529  *                                      of the HCI Layer.
530  *  \param[in]  pHwRef                  pHwRef is the Information of
531  *                                      the Device Interface Link .
532  *  \retval NFCSTATUS_PENDING           Presence Check of the remote target
533  *                                      pending.
534  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
535  *                                      could not be interpreted properly.
536  *  \retval Other errors                Errors related to the other layers
537  *
538  */
539 
540 extern
541 NFCSTATUS
542 phHciNfc_Presence_Check (
543                     void                            *psHciHandle,
544                     void                            *pHwRef
545                     );
546 
547 
548 /**
549  * \ingroup grp_hci_nfc
550  *
551  *  The phHciNfc_Select_Next_Target function selects and activates the
552  *  next target present in the the Reader's RF Field .
553  *
554  *
555  *  \param[in]  psHciHandle             psHciHandle is the handle or the
556  *                                      context of the HCI Layer.
557  *  \param[in]  pHwRef                  pHwRef is the Information of
558  *                                      the Device Interface Link .
559  *  \retval NFCSTATUS_PENDING           selection and activation of the next
560  *                                      remote target pending.
561  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
562  *                                      could not be interpreted properly.
563  *  \retval Other errors                Errors related to the other layers
564  *
565  */
566 
567 extern
568 NFCSTATUS
569 phHciNfc_Select_Next_Target (
570                     void                            *psHciHandle,
571                     void                            *pHwRef
572                     );
573 
574 
575  /**
576  * \ingroup grp_hci_nfc
577  *
578  *  The phHciNfc_Exchange_Data function exchanges the data
579  *  to/from the selected remote target device.
580  *
581  *
582  *  \param[in]  psHciHandle             psHciHandle is the handle or the context
583  *                                      of the HCI Layer.
584  *  \param[in]  pHwRef                  pHwRef is the Information of
585  *                                      the Device Interface Link .
586  *  \param[in]  p_remote_dev_info       p_remote_dev_info is the information of the
587  *                                      selected target to which data
588  *                                      should be sent.
589  *  \param[in]  p_xchg_info             The exchange info contains the command type,
590  *                                      addr and data to be sent to the connected
591  *                                      remote target device.
592  *  \retval NFCSTATUS_PENDING           Data to remote target pending.
593  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
594  *                                      could not be interpreted properly.
595  *  \retval Other errors                Errors related to the other layers
596  *
597  */
598 
599  extern
600  NFCSTATUS
601  phHciNfc_Exchange_Data (
602                     void                            *psHciHandle,
603                     void                            *pHwRef,
604                     phHal_sRemoteDevInformation_t   *p_remote_dev_info,
605                     phHciNfc_XchgInfo_t             *p_xchg_info
606                 );
607 
608  /**
609  * \ingroup grp_hci_nfc
610  *
611  *  The phHciNfc_Send_Data function Sends the data provided
612  *  to the appropriate remote target device.
613  *
614  *
615  *  \param[in]  psHciHandle             psHciHandle is the handle or the context
616  *                                      of the HCI Layer.
617  *  \param[in]  pHwRef                  pHwRef is the Information of
618  *                                      the Device Interface Link .
619  *  \param[in]  p_remote_dev_info       p_remote_dev_info is the information
620  *                                      of the selected target to which data
621  *                                      should be sent.
622  *  \param[in]  p_send_param            The send param contains the
623  *                                      data to be sent to the
624  *                                      remote device.
625  *  \retval NFCSTATUS_PENDING           Data to remote device pending.
626  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
627  *                                      could not be interpreted properly.
628  *  \retval Other errors                Errors related to the other layers
629  *
630  */
631 
632  extern
633  NFCSTATUS
634  phHciNfc_Send_Data (
635                     void                            *psHciHandle,
636                     void                            *pHwRef,
637                     phHal_sRemoteDevInformation_t   *p_remote_dev_info,
638                     phHciNfc_XchgInfo_t             *p_send_param
639                  );
640 
641  /**
642  * \ingroup grp_hci_nfc
643  *
644  *  The phHciNfc_System_Test function performs the System Management Tests
645  * provided by the NFC Peripheral device.
646  *
647  *  \param[in]  psContext               psContext is the pointer to HCI Layer
648  *                                      context Structure.
649  *  \param[in]  pHwRef                  pHwRef is the Information of
650  *                                      the Device Interface Link .
651  *  \param[in]  test_type               test_type is the type of the Self Test
652  *                                      that needs to be performed on the device.
653  *  \param[in]  test_param              test_param is the parameter for the Self Test
654  *                                      that needs to be performed on the device.
655  *
656  *
657  *  \retval NFCSTATUS_PENDING           System Test on the System Management
658  *                                      is pending.
659  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
660  *                                      could not be interpreted properly.
661  *  \retval Other errors                Errors related to the other layers
662  *
663  */
664 
665 extern
666 NFCSTATUS
667 phHciNfc_System_Test(
668                     void                            *psContext,
669                     void                            *pHwRef,
670                     uint32_t                        test_type,
671                     phNfc_sData_t                   *test_param
672                  );
673 
674  /**
675  * \ingroup grp_hci_nfc
676  *
677  *  The phHciNfc_System_Configure function performs the System Management
678  * Configuration with the value provided.
679  *
680  *  \param[in]  psContext               psContext is the pointer to HCI Layer
681  *                                      context Structure.
682  *  \param[in]  pHwRef                  pHwRef is the Information of
683  *                                      the Device Interface Link .
684  *  \param[in]  config_type             config_type is the type of the configuration
685  *                                      that needs to be performed on the device.
686  *  \param[in]  config_value            config_value is the value for the configuring
687  *                                      that needs to be performed on the device.
688  *
689  *
690  *  \retval NFCSTATUS_PENDING           Configuration of the provided information to
691  *                                      the is pending.
692  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
693  *                                      could not be interpreted properly.
694  *  \retval Other errors                Errors related to the other layers
695  *
696  */
697 extern
698 NFCSTATUS
699 phHciNfc_System_Configure (
700                 void                            *psHciHandle,
701                 void                            *pHwRef,
702                 uint32_t                        config_type,
703                 uint8_t                         config_value
704                 );
705 
706  /**
707  * \ingroup grp_hci_nfc
708  *
709  *  The phHciNfc_System_Get_Info function obtains the System Management
710  * information from the address provided.
711  *
712  *  \param[in]  psContext               psContext is the pointer to HCI Layer
713  *                                      context Structure.
714  *  \param[in]  pHwRef                  pHwRef is the Information of
715  *                                      the Device Interface Link .
716  *  \param[in]  info_type               info_type is the type of the Information
717  *                                      that needs to be obtained from the device.
718  *  \param[in,out]  p_val               p_val is the pointer to which the
719  *                                      information need to be updated.
720  *
721  *
722  *  \retval NFCSTATUS_PENDING           Get information from the NFC Device
723  *                                      is pending.
724  *  \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters
725  *                                      could not be interpreted properly.
726  *  \retval Other errors                Errors related to the other layers
727  *
728  */
729 extern
730 NFCSTATUS
731 phHciNfc_System_Get_Info(
732                 void                            *psHciHandle,
733                 void                            *pHwRef,
734                 uint32_t                        info_type,
735                 uint8_t                         *p_val
736                 );
737 
738 extern
739 NFCSTATUS
740 phHciNfc_PRBS_Test (
741                 void                            *psHciHandle,
742                 void                            *pHwRef,
743                 uint32_t                        test_type,
744                 phNfc_sData_t                   *test_param
745                 );
746 
747 #if 0
748  extern
749  NFCSTATUS
750  phHciNfc_Receive_Data (
751                     void                            *psHciHandle,
752                     void                            *pHwRef,
753                     uint8_t                         *p_data,
754                     uint8_t                         length
755                  );
756 
757 #endif
758 
759 
760 #endif
761 
762