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