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