nfc_hal_api.h revision 512ee63c7cc8feb016863e507a5d33cd0f4242bf
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{
35512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoi    uint16_t        event;
36512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoi    uint16_t        len;
37512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoi    uint16_t        offset;
38512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoi    uint16_t        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/*******************************************************************************
435c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen** tHAL_HCI_NETWK_CMD Definitions
445c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen*******************************************************************************/
455c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define HAL_NFC_HCI_NO_UICC_HOST    0x00
465c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define HAL_NFC_HCI_UICC0_HOST      0x01
475c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define HAL_NFC_HCI_UICC1_HOST      0x02
48a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define HAL_NFC_HCI_UICC2_HOST      0x04
495c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
505c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
51512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoitypedef uint8_t tHAL_NFC_STATUS;
52e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_NFC_STATUS_CBACK) (tHAL_NFC_STATUS status);
53512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoitypedef void (tHAL_NFC_CBACK) (uint8_t event, tHAL_NFC_STATUS status);
54512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoitypedef void (tHAL_NFC_DATA_CBACK) (uint16_t data_len, uint8_t *p_data);
55e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
56e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
57e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** tHAL_NFC_ENTRY HAL entry-point lookup table
58e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
59e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
60e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_API_INITIALIZE) (void);
61e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_API_TERMINATE) (void);
62e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_API_OPEN) (tHAL_NFC_CBACK *p_hal_cback, tHAL_NFC_DATA_CBACK *p_data_cback);
63e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_API_CLOSE) (void);
64512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoitypedef void (tHAL_API_CORE_INITIALIZED) (uint16_t data_len, uint8_t *p_core_init_rsp_params);
65512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoitypedef void (tHAL_API_WRITE) (uint16_t data_len, uint8_t *p_data);
66512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoitypedef bool    (tHAL_API_PREDISCOVER) (void);
67e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_API_CONTROL_GRANTED) (void);
68e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tHAL_API_POWER_CYCLE) (void);
69512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoitypedef uint8_t (tHAL_API_GET_MAX_NFCEE) (void);
70e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
71e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
72c6d8cda88d41587a86032d6cc778e920dab94cf8Paul Chaisson#define NFC_HAL_DM_PRE_SET_MEM_LEN  5
73c6d8cda88d41587a86032d6cc778e920dab94cf8Paul Chaissontypedef struct
74c6d8cda88d41587a86032d6cc778e920dab94cf8Paul Chaisson{
75512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoi    uint32_t        addr;
76512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoi    uint32_t        data;
77c6d8cda88d41587a86032d6cc778e920dab94cf8Paul Chaisson} tNFC_HAL_DM_PRE_SET_MEM;
78c6d8cda88d41587a86032d6cc778e920dab94cf8Paul Chaisson
795c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen/* data members for NFC_HAL-HCI */
805c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenentypedef struct
815c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen{
82512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoi    bool    nfc_hal_prm_nvm_required;       /* set nfc_hal_prm_nvm_required to TRUE, if the platform wants to abort PRM process without NVM */
83512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoi    uint16_t  nfc_hal_nfcc_enable_timeout;    /* max time to wait for RESET NTF after setting REG_PU to high */
84512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoi    uint16_t  nfc_hal_post_xtal_timeout;      /* max time to wait for RESET NTF after setting Xtal frequency */
85a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#if (defined(NFC_HAL_HCI_INCLUDED) && (NFC_HAL_HCI_INCLUDED == TRUE))
86512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoi    bool    nfc_hal_first_boot;             /* set nfc_hal_first_boot to TRUE, if platform enables NFC for the first time after bootup */
87512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoi    uint8_t 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) */
88a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#endif
895c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen} tNFC_HAL_CFG;
905c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
91e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
92e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
93e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_INITIALIZE *initialize;
94e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_TERMINATE *terminate;
95e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_OPEN *open;
96e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_CLOSE *close;
97e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_CORE_INITIALIZED *core_initialized;
98e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_WRITE *write;
99e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_PREDISCOVER *prediscover;
100e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_CONTROL_GRANTED *control_granted;
101e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tHAL_API_POWER_CYCLE *power_cycle;
102d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu    tHAL_API_GET_MAX_NFCEE *get_max_ee;
103e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
104e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
105e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tHAL_NFC_ENTRY;
106e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
107e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
108e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
109e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** HAL API Function Prototypes
110e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
111e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus
112e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern "C"
113e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
114e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
115e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
116e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Toolset-specific macro for exporting API funcitons */
117e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#if (defined(NFC_HAL_TARGET) && (NFC_HAL_TARGET == TRUE)) && (defined(_WINDLL))
118e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define EXPORT_HAL_API  __declspec(dllexport)
119e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#else
120e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define EXPORT_HAL_API
121e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
122e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
123e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
124e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
125e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcInitialize
126e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
127e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Called when HAL library is loaded.
128e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
129e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  Initialize GKI and start the HCIT task
130e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
131e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          void
132e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
133e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
134e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectEXPORT_HAL_API void HAL_NfcInitialize(void);
135e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
136e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
137e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
138e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcTerminate
139e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
140e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Called to terminate NFC HAL
141e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
142e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          void
143e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
144e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
145e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectEXPORT_HAL_API void HAL_NfcTerminate(void);
146e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
147e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
148e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
149e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcOpen
150e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
151e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Open transport and intialize the NFCC, and
152e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  Register callback for HAL event notifications,
153e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
154e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  HAL_OPEN_CPLT_EVT will notify when operation is complete.
155e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
156e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          void
157e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
158e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
159e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectEXPORT_HAL_API void HAL_NfcOpen (tHAL_NFC_CBACK *p_hal_cback, tHAL_NFC_DATA_CBACK *p_data_cback);
160e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
161e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
162e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
163e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcClose
164e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
165e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Prepare for shutdown. A HAL_CLOSE_CPLT_EVT will be
166e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  reported when complete.
167e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
168e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          void
169e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
170e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
171e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectEXPORT_HAL_API void HAL_NfcClose (void);
172e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
173e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
174e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
175e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcCoreInitialized
176e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
177e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Called after the CORE_INIT_RSP is received from the NFCC.
178e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  At this time, the HAL can do any chip-specific configuration,
179e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  and when finished signal the libnfc-nci with event
180e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  HAL_POST_INIT_CPLT_EVT.
181e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
182e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          void
183e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
184e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
185512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi KandoiEXPORT_HAL_API void HAL_NfcCoreInitialized (uint16_t data_len, uint8_t *p_core_init_rsp_params);
186e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
187e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
188e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
189e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcWrite
190e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
191e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Send an NCI control message or data packet to the
192e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  transport. If an NCI command message exceeds the transport
193e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  size, HAL is responsible for fragmenting it, Data packets
194e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  must be of the correct size.
195e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
196e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          void
197e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
198e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
199512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi KandoiEXPORT_HAL_API void HAL_NfcWrite (uint16_t data_len, uint8_t *p_data);
200e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
201e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
202e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
203e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcPreDiscover
204e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
205e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Perform any vendor-specific pre-discovery actions (if needed)
206e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  If any actions were performed TRUE will be returned, and
207e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  HAL_PRE_DISCOVER_CPLT_EVT will notify when actions are
208e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  completed.
209e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
210e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          TRUE if vendor-specific pre-discovery actions initialized
211e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  FALSE if no vendor-specific pre-discovery actions are needed.
212e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
213e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
214512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi KandoiEXPORT_HAL_API bool    HAL_NfcPreDiscover (void);
215e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
216e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
217e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
218e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcControlGranted
219e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
220e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Grant control to HAL control for sending NCI commands.
221e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
222e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  Call in response to HAL_REQUEST_CONTROL_EVT.
223e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
224e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  Must only be called when there are no NCI commands pending.
225e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
226e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  HAL_RELEASE_CONTROL_EVT will notify when HAL no longer
227e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  needs control of NCI.
228e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
229e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
230e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          void
231e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
232e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
233e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectEXPORT_HAL_API void HAL_NfcControlGranted (void);
234e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
235e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
236e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
237e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         HAL_NfcPowerCycle
238e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
239e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Restart NFCC by power cyle
240e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
241e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  HAL_OPEN_CPLT_EVT will notify when operation is complete.
242e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
243e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          void
244e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
245e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
246e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectEXPORT_HAL_API void HAL_NfcPowerCycle (void);
247e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
248d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu/*******************************************************************************
249d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu**
250d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu** Function         HAL_NfcGetMaxNfcee
251d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu**
252d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu** Description      Retrieve the maximum number of NFCEEs supported by NFCC
253d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu**
254d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu** Returns          the maximum number of NFCEEs supported by NFCC
255d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu**
256d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu*******************************************************************************/
257512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi KandoiEXPORT_HAL_API uint8_t HAL_NfcGetMaxNfcee (void);
258d23e0531b6835ab75b543dd51cfe5edec8edefe4Evan Chu
259e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
260e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus
261e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}
262e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
263e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
264e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif /* NFC_HAL_API_H  */
265