1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 3e9629bad30a9f478b336ab46b8e6e02f7f87af46Evan Chu * Copyright (C) 2010-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 * This file contains the call-in functions for NFC HAL HCI 23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/ 25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include <string.h> 265c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#include "gki.h" 27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfc_hal_api.h" 28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfc_hal_int.h" 29a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu 30a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#if (defined(NFC_HAL_HCI_INCLUDED) && (NFC_HAL_HCI_INCLUDED == TRUE)) 31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfc_hal_nv_ci.h" 32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfc_hal_nv_co.h" 33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 365c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen** Function nfc_hal_nv_ci_read 37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description call-in function for non volatile memory read acess 39e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns none 41e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 42e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 43e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfc_hal_nv_ci_read (UINT16 num_bytes_read, tNFC_HAL_NV_CO_STATUS status, UINT8 block) 44e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 45e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFC_HAL_HCI_EVENT_DATA *p_msg; 46e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 47e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* Send message to NCIT task */ 48e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project if ((p_msg = (tNFC_HAL_HCI_EVENT_DATA *) GKI_getbuf (sizeof (tNFC_HAL_HCI_EVENT_DATA))) != NULL) 49e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project { 50e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project p_msg->nv_read.hdr.event = NFC_HAL_HCI_RSP_NV_READ_EVT; 51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project p_msg->hdr.offset = 0; 52e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project p_msg->hdr.len = sizeof (tNFC_HAL_HCI_RSP_NV_READ_EVT); 53e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project p_msg->hdr.layer_specific = 0; 54e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 55e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project if ( (status == NFC_HAL_NV_CO_OK) 56e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project &&(num_bytes_read != 0) ) 57e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project p_msg->nv_read.status = HAL_NFC_STATUS_OK; 58e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project else 59e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project p_msg->nv_read.status = HAL_NFC_STATUS_FAILED; 60e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 61e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project p_msg->nv_read.size = num_bytes_read; 62e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project p_msg->nv_read.block = block; 63e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 64e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project GKI_send_msg (NFC_HAL_TASK, NFC_HAL_TASK_MBOX, p_msg); 65e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project } 66e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} 67e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 68e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 69e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 705c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen** Function nfc_hal_nv_ci_write 71e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 72e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description call-in function for non volatile memory write acess 73e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 74e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns none 75e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 76e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 77e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfc_hal_nv_ci_write (tNFC_HAL_NV_CO_STATUS status) 78e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 79e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFC_HAL_HCI_EVENT_DATA *p_msg; 80e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 81e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project if ((p_msg = (tNFC_HAL_HCI_EVENT_DATA *) GKI_getbuf (sizeof (tNFC_HAL_HCI_EVENT_DATA))) != NULL) 82e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project { 83e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project p_msg->nv_write.hdr.event = NFC_HAL_HCI_RSP_NV_WRITE_EVT; 84e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project p_msg->nv_write.hdr.offset = 0; 85e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project p_msg->nv_write.hdr.len = sizeof (tNFC_HAL_HCI_RSP_NV_READ_EVT); 86e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project p_msg->nv_write.hdr.layer_specific = 0; 87e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project p_msg->nv_write.status = HAL_NFC_STATUS_OK; 88e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 89e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project GKI_send_msg (NFC_HAL_TASK, NFC_HAL_TASK_MBOX, p_msg); 90e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project } 91e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} 92e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 93a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#endif 94