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
78typedef 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
101typedef 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
128typedef 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
151typedef 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
249extern
250NFCSTATUS
251phHciNfc_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
540extern
541NFCSTATUS
542phHciNfc_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
567extern
568NFCSTATUS
569phHciNfc_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
665extern
666NFCSTATUS
667phHciNfc_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 */
697extern
698NFCSTATUS
699phHciNfc_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 */
729extern
730NFCSTATUS
731phHciNfc_System_Get_Info(
732                void                            *psHciHandle,
733                void                            *pHwRef,
734                uint32_t                        info_type,
735                uint8_t                         *p_val
736                );
737
738extern
739NFCSTATUS
740phHciNfc_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