1b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu/****************************************************************************** 2b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 3b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * Copyright (C) 2010-2012 Broadcom Corporation 4b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 5b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * Licensed under the Apache License, Version 2.0 (the "License"); 6b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * you may not use this file except in compliance with the License. 7b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * You may obtain a copy of the License at: 8b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 9b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * http://www.apache.org/licenses/LICENSE-2.0 10b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 11b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * Unless required by applicable law or agreed to in writing, software 12b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * distributed under the License is distributed on an "AS IS" BASIS, 13b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * See the License for the specific language governing permissions and 15b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * limitations under the License. 16b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 17b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu ******************************************************************************/ 18b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu 19b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu/****************************************************************************** 20b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 21b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * This file contains the call-in functions for NFC HAL HCI 22b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 23b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu ******************************************************************************/ 24eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu#include <string.h> 25eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu#include "nfc_hal_api.h" 26eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu#include "nfc_hal_int.h" 27eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu#include "nfc_hal_nv_ci.h" 28eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu#include "nfc_hal_nv_co.h" 29eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu 30eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu/******************************************************************************* 31eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu** 32eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu** Function nfa_nv_ci_read 33eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu** 34eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu** Description call-in function for non volatile memory read acess 35eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu** 36eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu** Returns none 37eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu** 38eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu*******************************************************************************/ 39eb190654c5fbaea2f396bb5523f57062f291879aEvan Chuvoid nfc_hal_nv_ci_read (UINT16 num_bytes_read, tNFC_HAL_NV_CO_STATUS status, UINT8 block) 40eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu{ 41eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu tNFC_HAL_HCI_EVENT_DATA *p_msg; 42eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu 43eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu /* Send message to NCIT task */ 44eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu if ((p_msg = (tNFC_HAL_HCI_EVENT_DATA *) GKI_getbuf (sizeof (tNFC_HAL_HCI_EVENT_DATA))) != NULL) 45eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu { 46eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu p_msg->nv_read.hdr.event = NFC_HAL_HCI_RSP_NV_READ_EVT; 47eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu p_msg->hdr.offset = 0; 48eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu p_msg->hdr.len = sizeof (tNFC_HAL_HCI_RSP_NV_READ_EVT); 49eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu p_msg->hdr.layer_specific = 0; 50eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu 51eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu if ( (status == NFC_HAL_NV_CO_OK) 52eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu &&(num_bytes_read != 0) ) 53eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu p_msg->nv_read.status = HAL_NFC_STATUS_OK; 54eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu else 55eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu p_msg->nv_read.status = HAL_NFC_STATUS_FAILED; 56eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu 57ba4c17ee1d31e1b9f396292711f1414d449dd361Evan Chu p_msg->nv_read.size = num_bytes_read; 58eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu p_msg->nv_read.block = block; 59eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu 60eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu GKI_send_msg (NFC_HAL_TASK, NFC_HAL_TASK_MBOX, p_msg); 61eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu } 62eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu} 63eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu 64eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu/******************************************************************************* 65eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu** 66eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu** Function nfa_nv_ci_write 67eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu** 68eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu** Description call-in function for non volatile memory write acess 69eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu** 70eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu** Returns none 71eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu** 72eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu*******************************************************************************/ 73eb190654c5fbaea2f396bb5523f57062f291879aEvan Chuvoid nfc_hal_nv_ci_write (tNFC_HAL_NV_CO_STATUS status) 74eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu{ 75eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu tNFC_HAL_HCI_EVENT_DATA *p_msg; 76eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu 77eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu if ((p_msg = (tNFC_HAL_HCI_EVENT_DATA *) GKI_getbuf (sizeof (tNFC_HAL_HCI_EVENT_DATA))) != NULL) 78eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu { 79eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu p_msg->nv_write.hdr.event = NFC_HAL_HCI_RSP_NV_WRITE_EVT; 80eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu p_msg->nv_write.hdr.offset = 0; 81eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu p_msg->nv_write.hdr.len = sizeof (tNFC_HAL_HCI_RSP_NV_READ_EVT); 82eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu p_msg->nv_write.hdr.layer_specific = 0; 83eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu p_msg->nv_write.status = HAL_NFC_STATUS_OK; 84eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu 85eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu GKI_send_msg (NFC_HAL_TASK, NFC_HAL_TASK_MBOX, p_msg); 86eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu } 87eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu} 88eb190654c5fbaea2f396bb5523f57062f291879aEvan Chu 89