1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
3e9629bad30a9f478b336ab46b8e6e02f7f87af46Evan Chu *  Copyright (C) 2012-2014 Broadcom Corporation
4e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
5e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the "License");
6e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  you may not use this file except in compliance with the License.
7e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  You may obtain a copy of the License at:
8e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
9e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  http://www.apache.org/licenses/LICENSE-2.0
10e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
11e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
12e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
13e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  See the License for the specific language governing permissions and
15e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  limitations under the License.
16e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
17e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/
18e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
195c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  NFC Hardware Abstraction Layer API
23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/
25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_HAL_API_H
26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_HAL_API_H
27a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#include <hardware/nfc.h>
28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "data_types.h"
29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************
31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFC_HDR header definition for NFC messages
32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/
33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    UINT16          event;
36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    UINT16          len;
37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    UINT16          offset;
38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    UINT16          layer_specific;
39e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} NFC_HDR;
40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_HDR_SIZE (sizeof (NFC_HDR))
41e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
425c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen/*******************************************************************************
43a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu** tHAL_STATUS Definitions
445c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen*******************************************************************************/
45a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define HAL_NFC_STATUS_OK               0
46a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define HAL_NFC_STATUS_FAILED           1
47a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define HAL_NFC_STATUS_ERR_TRANSPORT    2
48a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define HAL_NFC_STATUS_ERR_CMD_TIMEOUT  3
49a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define HAL_NFC_STATUS_REFUSED          4
505c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tHAL_NFC_STATUS;
52e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
535c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen/*******************************************************************************
545c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen** tHAL_HCI_NETWK_CMD Definitions
555c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen*******************************************************************************/
565c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define HAL_NFC_HCI_NO_UICC_HOST    0x00
575c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define HAL_NFC_HCI_UICC0_HOST      0x01
585c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define HAL_NFC_HCI_UICC1_HOST      0x02
59a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define HAL_NFC_HCI_UICC2_HOST      0x04
605c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
615c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen/*******************************************************************************
625c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen** tHAL_NFC_CBACK Definitions
635c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen*******************************************************************************/
645c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
65a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* tHAL_NFC_CBACK events */
66a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define HAL_NFC_OPEN_CPLT_EVT           0x00
67a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define HAL_NFC_CLOSE_CPLT_EVT          0x01
68a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define HAL_NFC_POST_INIT_CPLT_EVT      0x02
69a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define HAL_NFC_PRE_DISCOVER_CPLT_EVT   0x03
70a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define HAL_NFC_REQUEST_CONTROL_EVT     0x04
71a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define HAL_NFC_RELEASE_CONTROL_EVT     0x05
72a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define HAL_NFC_ERROR_EVT               0x06
735c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
745c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
75e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_NFC_STATUS_CBACK) (tHAL_NFC_STATUS status);
76e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_NFC_CBACK) (UINT8 event, tHAL_NFC_STATUS status);
77e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_NFC_DATA_CBACK) (UINT16 data_len, UINT8   *p_data);
78e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
79e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
80e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** tHAL_NFC_ENTRY HAL entry-point lookup table
81e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
82e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
83e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_API_INITIALIZE) (void);
84e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_API_TERMINATE) (void);
85e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_API_OPEN) (tHAL_NFC_CBACK *p_hal_cback, tHAL_NFC_DATA_CBACK *p_data_cback);
86e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_API_CLOSE) (void);
87e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_API_CORE_INITIALIZED) (UINT8 *p_core_init_rsp_params);
88e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_API_WRITE) (UINT16 data_len, UINT8 *p_data);
89e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef BOOLEAN (tHAL_API_PREDISCOVER) (void);
90e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_API_CONTROL_GRANTED) (void);
91e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_API_POWER_CYCLE) (void);
92d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chutypedef UINT8 (tHAL_API_GET_MAX_NFCEE) (void);
93e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
94e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
95c6d8cda88d41587a86032d6cc778e920dab94cf8Paul Chaisson#define NFC_HAL_DM_PRE_SET_MEM_LEN  5
96c6d8cda88d41587a86032d6cc778e920dab94cf8Paul Chaissontypedef struct
97c6d8cda88d41587a86032d6cc778e920dab94cf8Paul Chaisson{
98c6d8cda88d41587a86032d6cc778e920dab94cf8Paul Chaisson    UINT32          addr;
99c6d8cda88d41587a86032d6cc778e920dab94cf8Paul Chaisson    UINT32          data;
100c6d8cda88d41587a86032d6cc778e920dab94cf8Paul Chaisson} tNFC_HAL_DM_PRE_SET_MEM;
101c6d8cda88d41587a86032d6cc778e920dab94cf8Paul Chaisson
1025c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen/* data members for NFC_HAL-HCI */
1035c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenentypedef struct
1045c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen{
1055c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    BOOLEAN nfc_hal_prm_nvm_required;       /* set nfc_hal_prm_nvm_required to TRUE, if the platform wants to abort PRM process without NVM */
1065c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT16  nfc_hal_nfcc_enable_timeout;    /* max time to wait for RESET NTF after setting REG_PU to high */
1075c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT16  nfc_hal_post_xtal_timeout;      /* max time to wait for RESET NTF after setting Xtal frequency */
108a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#if (defined(NFC_HAL_HCI_INCLUDED) && (NFC_HAL_HCI_INCLUDED == TRUE))
109a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu    BOOLEAN nfc_hal_first_boot;             /* set nfc_hal_first_boot to TRUE, if platform enables NFC for the first time after bootup */
1105c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8   nfc_hal_hci_uicc_support;       /* set nfc_hal_hci_uicc_support to Zero, if no UICC is supported otherwise set corresponding bit(s) for every supported UICC(s) */
111a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#endif
1125c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen} tNFC_HAL_CFG;
1135c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
114e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
115e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
116e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_INITIALIZE *initialize;
117e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_TERMINATE *terminate;
118e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_OPEN *open;
119e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_CLOSE *close;
120e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_CORE_INITIALIZED *core_initialized;
121e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_WRITE *write;
122e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_PREDISCOVER *prediscover;
123e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_CONTROL_GRANTED *control_granted;
124e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_POWER_CYCLE *power_cycle;
125d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu    tHAL_API_GET_MAX_NFCEE *get_max_ee;
126e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
127e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
128e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tHAL_NFC_ENTRY;
129e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
130e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
131e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
132e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** HAL API Function Prototypes
133e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
134e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus
135e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern "C"
136e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
137e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
138e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
139e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Toolset-specific macro for exporting API funcitons */
140e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#if (defined(NFC_HAL_TARGET) && (NFC_HAL_TARGET == TRUE)) && (defined(_WINDLL))
141e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define EXPORT_HAL_API  __declspec(dllexport)
142e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#else
143e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define EXPORT_HAL_API
144e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
145e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
146e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
147e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
148e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcInitialize
149e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
150e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Called when HAL library is loaded.
151e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
152e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  Initialize GKI and start the HCIT task
153e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
154e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          void
155e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
156e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
157e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectEXPORT_HAL_API void HAL_NfcInitialize(void);
158e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
159e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
160e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
161e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcTerminate
162e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
163e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Called to terminate NFC HAL
164e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
165e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          void
166e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
167e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
168e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectEXPORT_HAL_API void HAL_NfcTerminate(void);
169e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
170e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
171e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
172e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcOpen
173e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
174e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Open transport and intialize the NFCC, and
175e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  Register callback for HAL event notifications,
176e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
177e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  HAL_OPEN_CPLT_EVT will notify when operation is complete.
178e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
179e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          void
180e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
181e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
182e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectEXPORT_HAL_API void HAL_NfcOpen (tHAL_NFC_CBACK *p_hal_cback, tHAL_NFC_DATA_CBACK *p_data_cback);
183e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
184e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
185e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
186e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcClose
187e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
188e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Prepare for shutdown. A HAL_CLOSE_CPLT_EVT will be
189e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  reported when complete.
190e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
191e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          void
192e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
193e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
194e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectEXPORT_HAL_API void HAL_NfcClose (void);
195e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
196e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
197e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
198e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcCoreInitialized
199e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
200e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Called after the CORE_INIT_RSP is received from the NFCC.
201e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  At this time, the HAL can do any chip-specific configuration,
202e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  and when finished signal the libnfc-nci with event
203e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  HAL_POST_INIT_CPLT_EVT.
204e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
205e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          void
206e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
207e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
208e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectEXPORT_HAL_API void HAL_NfcCoreInitialized (UINT8 *p_core_init_rsp_params);
209e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
210e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
211e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
212e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcWrite
213e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
214e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Send an NCI control message or data packet to the
215e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  transport. If an NCI command message exceeds the transport
216e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  size, HAL is responsible for fragmenting it, Data packets
217e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  must be of the correct size.
218e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
219e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          void
220e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
221e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
222e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectEXPORT_HAL_API void HAL_NfcWrite (UINT16 data_len, UINT8 *p_data);
223e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
224e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
225e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
226e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcPreDiscover
227e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
228e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Perform any vendor-specific pre-discovery actions (if needed)
229e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  If any actions were performed TRUE will be returned, and
230e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  HAL_PRE_DISCOVER_CPLT_EVT will notify when actions are
231e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  completed.
232e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
233e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          TRUE if vendor-specific pre-discovery actions initialized
234e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  FALSE if no vendor-specific pre-discovery actions are needed.
235e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
236e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
237e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectEXPORT_HAL_API BOOLEAN HAL_NfcPreDiscover (void);
238e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
239e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
240e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
241e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcControlGranted
242e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
243e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Grant control to HAL control for sending NCI commands.
244e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
245e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  Call in response to HAL_REQUEST_CONTROL_EVT.
246e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
247e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  Must only be called when there are no NCI commands pending.
248e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
249e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  HAL_RELEASE_CONTROL_EVT will notify when HAL no longer
250e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  needs control of NCI.
251e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
252e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
253e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          void
254e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
255e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
256e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectEXPORT_HAL_API void HAL_NfcControlGranted (void);
257e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
258e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
259e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
260e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcPowerCycle
261e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
262e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Restart NFCC by power cyle
263e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
264e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  HAL_OPEN_CPLT_EVT will notify when operation is complete.
265e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
266e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          void
267e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
268e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
269e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectEXPORT_HAL_API void HAL_NfcPowerCycle (void);
270e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
271d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu/*******************************************************************************
272d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu**
273d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu** Function         HAL_NfcGetMaxNfcee
274d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu**
275d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu** Description      Retrieve the maximum number of NFCEEs supported by NFCC
276d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu**
277d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu** Returns          the maximum number of NFCEEs supported by NFCC
278d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu**
279d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu*******************************************************************************/
280d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan ChuEXPORT_HAL_API UINT8 HAL_NfcGetMaxNfcee (void);
281d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu
282e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
283e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus
284e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}
285e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
286e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
287e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif /* NFC_HAL_API_H  */
288