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 19e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * NFC Hardware Abstraction Layer API 22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/ 24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_HAL_API_H 25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_HAL_API_H 26a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#include <hardware/nfc.h> 27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "data_types.h" 28a6eddd86a10fc3d7e72e589f874bffdfab6d6933Ruchi Kandoi#include "nfc_hal_target.h" 29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 30512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoitypedef uint8_t tHAL_NFC_STATUS; 316fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef void(tHAL_NFC_STATUS_CBACK)(tHAL_NFC_STATUS status); 326fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef void(tHAL_NFC_CBACK)(uint8_t event, tHAL_NFC_STATUS status); 336fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef void(tHAL_NFC_DATA_CBACK)(uint16_t data_len, uint8_t* p_data); 34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** tHAL_NFC_ENTRY HAL entry-point lookup table 37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 396fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef void(tHAL_API_INITIALIZE)(void); 406fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef void(tHAL_API_TERMINATE)(void); 416fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef void(tHAL_API_OPEN)(tHAL_NFC_CBACK* p_hal_cback, 426fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tHAL_NFC_DATA_CBACK* p_data_cback); 436fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef void(tHAL_API_CLOSE)(void); 446fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef void(tHAL_API_CORE_INITIALIZED)(uint16_t data_len, 456fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t* p_core_init_rsp_params); 466fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef void(tHAL_API_WRITE)(uint16_t data_len, uint8_t* p_data); 476fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef bool(tHAL_API_PREDISCOVER)(void); 486fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef void(tHAL_API_CONTROL_GRANTED)(void); 496fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef void(tHAL_API_POWER_CYCLE)(void); 506fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef uint8_t(tHAL_API_GET_MAX_NFCEE)(void); 516fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi 526fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 536fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tHAL_API_INITIALIZE* initialize; 546fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tHAL_API_TERMINATE* terminate; 556fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tHAL_API_OPEN* open; 566fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tHAL_API_CLOSE* close; 576fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tHAL_API_CORE_INITIALIZED* core_initialized; 586fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tHAL_API_WRITE* write; 596fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tHAL_API_PREDISCOVER* prediscover; 606fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tHAL_API_CONTROL_GRANTED* control_granted; 616fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tHAL_API_POWER_CYCLE* power_cycle; 626fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tHAL_API_GET_MAX_NFCEE* get_max_ee; 63e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 64e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tHAL_NFC_ENTRY; 65e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 66e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 67e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** HAL API Function Prototypes 68e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 69e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 70e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif /* NFC_HAL_API_H */ 71