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