xref: /aosp_15_r20/system/nfc/src/include/nfc_hal_int.h (revision 7eba2f3b06c51ae21384f6a4f14577b668a869b3)
1*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************
2*7eba2f3bSAndroid Build Coastguard Worker  *
3*7eba2f3bSAndroid Build Coastguard Worker  *  Copyright (C) 2009-2014 Broadcom Corporation
4*7eba2f3bSAndroid Build Coastguard Worker  *
5*7eba2f3bSAndroid Build Coastguard Worker  *  Licensed under the Apache License, Version 2.0 (the "License");
6*7eba2f3bSAndroid Build Coastguard Worker  *  you may not use this file except in compliance with the License.
7*7eba2f3bSAndroid Build Coastguard Worker  *  You may obtain a copy of the License at:
8*7eba2f3bSAndroid Build Coastguard Worker  *
9*7eba2f3bSAndroid Build Coastguard Worker  *  http://www.apache.org/licenses/LICENSE-2.0
10*7eba2f3bSAndroid Build Coastguard Worker  *
11*7eba2f3bSAndroid Build Coastguard Worker  *  Unless required by applicable law or agreed to in writing, software
12*7eba2f3bSAndroid Build Coastguard Worker  *  distributed under the License is distributed on an "AS IS" BASIS,
13*7eba2f3bSAndroid Build Coastguard Worker  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*7eba2f3bSAndroid Build Coastguard Worker  *  See the License for the specific language governing permissions and
15*7eba2f3bSAndroid Build Coastguard Worker  *  limitations under the License.
16*7eba2f3bSAndroid Build Coastguard Worker  *
17*7eba2f3bSAndroid Build Coastguard Worker  ******************************************************************************/
18*7eba2f3bSAndroid Build Coastguard Worker 
19*7eba2f3bSAndroid Build Coastguard Worker /******************************************************************************
20*7eba2f3bSAndroid Build Coastguard Worker  *
21*7eba2f3bSAndroid Build Coastguard Worker  *  this file contains the NCI transport internal definitions and functions.
22*7eba2f3bSAndroid Build Coastguard Worker  *
23*7eba2f3bSAndroid Build Coastguard Worker  ******************************************************************************/
24*7eba2f3bSAndroid Build Coastguard Worker 
25*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_INT_H
26*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_INT_H
27*7eba2f3bSAndroid Build Coastguard Worker 
28*7eba2f3bSAndroid Build Coastguard Worker #include "gki.h"
29*7eba2f3bSAndroid Build Coastguard Worker #include "nci_defs.h"
30*7eba2f3bSAndroid Build Coastguard Worker #include "nfc_brcm_defs.h"
31*7eba2f3bSAndroid Build Coastguard Worker #include "nfc_hal_api.h"
32*7eba2f3bSAndroid Build Coastguard Worker #include "nfc_hal_int_api.h"
33*7eba2f3bSAndroid Build Coastguard Worker #include "nfc_hal_target.h"
34*7eba2f3bSAndroid Build Coastguard Worker 
35*7eba2f3bSAndroid Build Coastguard Worker using android::base::StringPrintf;
36*7eba2f3bSAndroid Build Coastguard Worker 
37*7eba2f3bSAndroid Build Coastguard Worker /* NFC HAL Task Timer events */
38*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_QUICK_TIMER_EVT_MASK
39*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_QUICK_TIMER_EVT_MASK (TIMER_0_EVT_MASK)
40*7eba2f3bSAndroid Build Coastguard Worker #endif
41*7eba2f3bSAndroid Build Coastguard Worker 
42*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_QUICK_TIMER_ID
43*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_QUICK_TIMER_ID (TIMER_0)
44*7eba2f3bSAndroid Build Coastguard Worker #endif
45*7eba2f3bSAndroid Build Coastguard Worker 
46*7eba2f3bSAndroid Build Coastguard Worker typedef uint8_t tNFC_HAL_WAIT_RSP;
47*7eba2f3bSAndroid Build Coastguard Worker 
48*7eba2f3bSAndroid Build Coastguard Worker #if (NFC_HAL_HCI_INCLUDED == TRUE)
49*7eba2f3bSAndroid Build Coastguard Worker 
50*7eba2f3bSAndroid Build Coastguard Worker #endif
51*7eba2f3bSAndroid Build Coastguard Worker 
52*7eba2f3bSAndroid Build Coastguard Worker /* NFC HAL transport configuration */
53*7eba2f3bSAndroid Build Coastguard Worker typedef struct {
54*7eba2f3bSAndroid Build Coastguard Worker   bool shared_transport; /* TRUE if using shared HCI/NCI transport */
55*7eba2f3bSAndroid Build Coastguard Worker   uint8_t userial_baud;
56*7eba2f3bSAndroid Build Coastguard Worker   uint8_t userial_fc;
57*7eba2f3bSAndroid Build Coastguard Worker } tNFC_HAL_TRANS_CFG;
58*7eba2f3bSAndroid Build Coastguard Worker 
59*7eba2f3bSAndroid Build Coastguard Worker #ifdef TESTER
60*7eba2f3bSAndroid Build Coastguard Worker /* For Insight, ncit_cfg is runtime-configurable */
61*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_TRANS_CFG_QUALIFIER
62*7eba2f3bSAndroid Build Coastguard Worker #else
63*7eba2f3bSAndroid Build Coastguard Worker /* For all other platforms, ncit_cfg is constant */
64*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_TRANS_CFG_QUALIFIER const
65*7eba2f3bSAndroid Build Coastguard Worker #endif
66*7eba2f3bSAndroid Build Coastguard Worker extern NFC_HAL_TRANS_CFG_QUALIFIER tNFC_HAL_TRANS_CFG nfc_hal_trans_cfg;
67*7eba2f3bSAndroid Build Coastguard Worker 
68*7eba2f3bSAndroid Build Coastguard Worker /****************************************************************************
69*7eba2f3bSAndroid Build Coastguard Worker ** Internal constants and definitions
70*7eba2f3bSAndroid Build Coastguard Worker ****************************************************************************/
71*7eba2f3bSAndroid Build Coastguard Worker 
72*7eba2f3bSAndroid Build Coastguard Worker typedef uint8_t tNFC_HAL_NCI_RAS;
73*7eba2f3bSAndroid Build Coastguard Worker 
74*7eba2f3bSAndroid Build Coastguard Worker typedef uint8_t tNFC_HAL_POWER_MODE;
75*7eba2f3bSAndroid Build Coastguard Worker 
76*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_SAVED_HDR_SIZE (2)
77*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_SAVED_CMD_SIZE (2)
78*7eba2f3bSAndroid Build Coastguard Worker 
79*7eba2f3bSAndroid Build Coastguard Worker #ifndef NFC_HAL_DEBUG
80*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_DEBUG TRUE
81*7eba2f3bSAndroid Build Coastguard Worker #endif
82*7eba2f3bSAndroid Build Coastguard Worker 
83*7eba2f3bSAndroid Build Coastguard Worker #if (NFC_HAL_DEBUG == TRUE)
84*7eba2f3bSAndroid Build Coastguard Worker extern const char* const nfc_hal_init_state_str[];
85*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_SET_INIT_STATE(state)                                     \
86*7eba2f3bSAndroid Build Coastguard Worker   LOG(VERBOSE) << StringPrintf("init state: %d->%d(%s)",                    \
87*7eba2f3bSAndroid Build Coastguard Worker                              nfc_hal_cb.dev_cb.initializing_state, state, \
88*7eba2f3bSAndroid Build Coastguard Worker                              nfc_hal_init_state_str[state]);              \
89*7eba2f3bSAndroid Build Coastguard Worker   nfc_hal_cb.dev_cb.initializing_state = state;
90*7eba2f3bSAndroid Build Coastguard Worker #else
91*7eba2f3bSAndroid Build Coastguard Worker #define NFC_HAL_SET_INIT_STATE(state) \
92*7eba2f3bSAndroid Build Coastguard Worker   nfc_hal_cb.dev_cb.initializing_state = state;
93*7eba2f3bSAndroid Build Coastguard Worker #endif
94*7eba2f3bSAndroid Build Coastguard Worker 
95*7eba2f3bSAndroid Build Coastguard Worker typedef uint8_t tNFC_HAL_INIT_STATE;
96*7eba2f3bSAndroid Build Coastguard Worker 
97*7eba2f3bSAndroid Build Coastguard Worker typedef uint8_t tNFC_HAL_DM_CONFIG;
98*7eba2f3bSAndroid Build Coastguard Worker 
99*7eba2f3bSAndroid Build Coastguard Worker /* callback function prototype */
100*7eba2f3bSAndroid Build Coastguard Worker typedef struct {
101*7eba2f3bSAndroid Build Coastguard Worker   uint16_t opcode;
102*7eba2f3bSAndroid Build Coastguard Worker   uint16_t param_len;
103*7eba2f3bSAndroid Build Coastguard Worker   uint8_t* p_param_buf;
104*7eba2f3bSAndroid Build Coastguard Worker } tNFC_HAL_BTVSC_CPLT;
105*7eba2f3bSAndroid Build Coastguard Worker 
106*7eba2f3bSAndroid Build Coastguard Worker #if (NFC_HAL_HCI_INCLUDED == TRUE)
107*7eba2f3bSAndroid Build Coastguard Worker 
108*7eba2f3bSAndroid Build Coastguard Worker /* data type for NFC_HAL_HCI_RSP_NV_READ_EVT */
109*7eba2f3bSAndroid Build Coastguard Worker typedef struct {
110*7eba2f3bSAndroid Build Coastguard Worker   NFC_HDR hdr;
111*7eba2f3bSAndroid Build Coastguard Worker   uint8_t block;
112*7eba2f3bSAndroid Build Coastguard Worker   uint16_t size;
113*7eba2f3bSAndroid Build Coastguard Worker   tHAL_NFC_STATUS status;
114*7eba2f3bSAndroid Build Coastguard Worker } tNFC_HAL_HCI_RSP_NV_READ_EVT;
115*7eba2f3bSAndroid Build Coastguard Worker 
116*7eba2f3bSAndroid Build Coastguard Worker /* data type for NFC_HAL_HCI_RSP_NV_WRITE_EVT */
117*7eba2f3bSAndroid Build Coastguard Worker typedef struct {
118*7eba2f3bSAndroid Build Coastguard Worker   NFC_HDR hdr;
119*7eba2f3bSAndroid Build Coastguard Worker   tHAL_NFC_STATUS status;
120*7eba2f3bSAndroid Build Coastguard Worker } tNFC_HAL_HCI_RSP_NV_WRITE_EVT;
121*7eba2f3bSAndroid Build Coastguard Worker 
122*7eba2f3bSAndroid Build Coastguard Worker /* union of all event data types */
123*7eba2f3bSAndroid Build Coastguard Worker typedef union {
124*7eba2f3bSAndroid Build Coastguard Worker   NFC_HDR hdr;
125*7eba2f3bSAndroid Build Coastguard Worker   /* Internal events */
126*7eba2f3bSAndroid Build Coastguard Worker   tNFC_HAL_HCI_RSP_NV_READ_EVT nv_read;
127*7eba2f3bSAndroid Build Coastguard Worker   tNFC_HAL_HCI_RSP_NV_WRITE_EVT nv_write;
128*7eba2f3bSAndroid Build Coastguard Worker } tNFC_HAL_HCI_EVENT_DATA;
129*7eba2f3bSAndroid Build Coastguard Worker 
130*7eba2f3bSAndroid Build Coastguard Worker #endif
131*7eba2f3bSAndroid Build Coastguard Worker /*****************************************************************************
132*7eba2f3bSAndroid Build Coastguard Worker ** Control block for NFC HAL
133*7eba2f3bSAndroid Build Coastguard Worker *****************************************************************************/
134*7eba2f3bSAndroid Build Coastguard Worker 
135*7eba2f3bSAndroid Build Coastguard Worker /* Information about current patch in NVM */
136*7eba2f3bSAndroid Build Coastguard Worker typedef struct {
137*7eba2f3bSAndroid Build Coastguard Worker   uint16_t project_id; /* Current project_id of patch in nvm       */
138*7eba2f3bSAndroid Build Coastguard Worker   uint16_t ver_major;  /* Current major version of patch in nvm    */
139*7eba2f3bSAndroid Build Coastguard Worker   uint16_t ver_minor;  /* Current minor version of patch in nvm    */
140*7eba2f3bSAndroid Build Coastguard Worker   uint16_t fpm_size;   /* Current size of FPM patch in nvm         */
141*7eba2f3bSAndroid Build Coastguard Worker   uint16_t lpm_size;   /* Current size of LPM patch in nvm         */
142*7eba2f3bSAndroid Build Coastguard Worker   uint8_t flags;       /* See NFC_HAL_NVM_FLAGS_* flag definitions */
143*7eba2f3bSAndroid Build Coastguard Worker   uint8_t nvm_type;    /* Current NVM Type - UICC/EEPROM           */
144*7eba2f3bSAndroid Build Coastguard Worker   uint8_t chip_ver[NFC_HAL_PRM_MAX_CHIP_VER_LEN]; /* patch chip version       */
145*7eba2f3bSAndroid Build Coastguard Worker } tNFC_HAL_NVM;
146*7eba2f3bSAndroid Build Coastguard Worker 
147*7eba2f3bSAndroid Build Coastguard Worker /* Patch for I2C fix */
148*7eba2f3bSAndroid Build Coastguard Worker typedef struct {
149*7eba2f3bSAndroid Build Coastguard Worker   uint8_t* p_patch;      /* patch for i2c fix                */
150*7eba2f3bSAndroid Build Coastguard Worker   uint32_t prei2c_delay; /* the dealy after preI2C patch */
151*7eba2f3bSAndroid Build Coastguard Worker   uint16_t len;          /* i2c patch length                 */
152*7eba2f3bSAndroid Build Coastguard Worker } tNFC_HAL_PRM_I2C_FIX_CB;
153*7eba2f3bSAndroid Build Coastguard Worker 
154*7eba2f3bSAndroid Build Coastguard Worker /* Control block for NCI transport */
155*7eba2f3bSAndroid Build Coastguard Worker typedef struct {
156*7eba2f3bSAndroid Build Coastguard Worker   uint8_t nci_ctrl_size; /* Max size for NCI messages */
157*7eba2f3bSAndroid Build Coastguard Worker   uint8_t rcv_state;     /* current rx state */
158*7eba2f3bSAndroid Build Coastguard Worker   uint16_t rcv_len; /* bytes remaining to be received in current rx state     */
159*7eba2f3bSAndroid Build Coastguard Worker   NFC_HDR* p_rcv_msg;  /* buffer to receive NCI message */
160*7eba2f3bSAndroid Build Coastguard Worker   NFC_HDR* p_frag_msg; /* fragmented NCI message; waiting for last fragment */
161*7eba2f3bSAndroid Build Coastguard Worker   NFC_HDR*
162*7eba2f3bSAndroid Build Coastguard Worker       p_pend_cmd; /* pending NCI message; waiting for NFCC state to be free */
163*7eba2f3bSAndroid Build Coastguard Worker   tNFC_HAL_NCI_RAS nci_ras; /* nci reassembly error status */
164*7eba2f3bSAndroid Build Coastguard Worker   TIMER_LIST_ENT
165*7eba2f3bSAndroid Build Coastguard Worker   nci_wait_rsp_timer; /* Timer for waiting for nci command response */
166*7eba2f3bSAndroid Build Coastguard Worker   tNFC_HAL_WAIT_RSP nci_wait_rsp; /* nci wait response flag */
167*7eba2f3bSAndroid Build Coastguard Worker   uint8_t
168*7eba2f3bSAndroid Build Coastguard Worker       last_hdr[NFC_HAL_SAVED_HDR_SIZE]; /* part of last NCI command header */
169*7eba2f3bSAndroid Build Coastguard Worker   uint8_t
170*7eba2f3bSAndroid Build Coastguard Worker       last_cmd[NFC_HAL_SAVED_CMD_SIZE]; /* part of last NCI command payload */
171*7eba2f3bSAndroid Build Coastguard Worker   void* p_vsc_cback; /* the callback function for last VSC command */
172*7eba2f3bSAndroid Build Coastguard Worker } tNFC_HAL_NCIT_CB;
173*7eba2f3bSAndroid Build Coastguard Worker 
174*7eba2f3bSAndroid Build Coastguard Worker /* Control block for device initialization */
175*7eba2f3bSAndroid Build Coastguard Worker typedef struct {
176*7eba2f3bSAndroid Build Coastguard Worker   tNFC_HAL_INIT_STATE initializing_state; /* state of initializing NFCC */
177*7eba2f3bSAndroid Build Coastguard Worker 
178*7eba2f3bSAndroid Build Coastguard Worker   uint32_t brcm_hw_id; /* BRCM NFCC HW ID                          */
179*7eba2f3bSAndroid Build Coastguard Worker   tNFC_HAL_DM_CONFIG next_dm_config; /* next config in post initialization */
180*7eba2f3bSAndroid Build Coastguard Worker   uint8_t next_startup_vsc; /* next start-up VSC offset in post init    */
181*7eba2f3bSAndroid Build Coastguard Worker 
182*7eba2f3bSAndroid Build Coastguard Worker   tNFC_HAL_POWER_MODE power_mode; /* NFCC power mode                          */
183*7eba2f3bSAndroid Build Coastguard Worker   uint8_t snooze_mode;            /* current snooze mode                      */
184*7eba2f3bSAndroid Build Coastguard Worker   uint8_t new_snooze_mode;        /* next snooze mode after receiving cmpl    */
185*7eba2f3bSAndroid Build Coastguard Worker   uint8_t nfc_wake_active_mode;   /* NFC_HAL_LP_ACTIVE_LOW/HIGH               */
186*7eba2f3bSAndroid Build Coastguard Worker   TIMER_LIST_ENT lp_timer;        /* timer for low power mode                 */
187*7eba2f3bSAndroid Build Coastguard Worker 
188*7eba2f3bSAndroid Build Coastguard Worker   tHAL_NFC_STATUS_CBACK*
189*7eba2f3bSAndroid Build Coastguard Worker       p_prop_cback; /* callback to notify complete of proprietary update */
190*7eba2f3bSAndroid Build Coastguard Worker } tNFC_HAL_DEV_CB;
191*7eba2f3bSAndroid Build Coastguard Worker 
192*7eba2f3bSAndroid Build Coastguard Worker #if (NFC_HAL_HCI_INCLUDED == TRUE)
193*7eba2f3bSAndroid Build Coastguard Worker 
194*7eba2f3bSAndroid Build Coastguard Worker /* data members for NFC_HAL-HCI */
195*7eba2f3bSAndroid Build Coastguard Worker typedef struct {
196*7eba2f3bSAndroid Build Coastguard Worker   TIMER_LIST_ENT
197*7eba2f3bSAndroid Build Coastguard Worker   hci_timer; /* Timer to avoid indefinitely waiting for response */
198*7eba2f3bSAndroid Build Coastguard Worker   uint8_t*
199*7eba2f3bSAndroid Build Coastguard Worker       p_hci_netwk_info_buf; /* Buffer for reading HCI Network information */
200*7eba2f3bSAndroid Build Coastguard Worker   uint8_t* p_hci_netwk_dh_info_buf; /* Buffer for reading HCI Network DH
201*7eba2f3bSAndroid Build Coastguard Worker                                        information */
202*7eba2f3bSAndroid Build Coastguard Worker   uint8_t hci_netwk_config_block;  /* Rsp awaiting for hci network configuration
203*7eba2f3bSAndroid Build Coastguard Worker                                       block */
204*7eba2f3bSAndroid Build Coastguard Worker   bool b_wait_hcp_conn_create_rsp; /* Waiting for hcp connection create response
205*7eba2f3bSAndroid Build Coastguard Worker                                     */
206*7eba2f3bSAndroid Build Coastguard Worker   bool clear_all_pipes_to_uicc1;   /* UICC1 was restarted for patch download */
207*7eba2f3bSAndroid Build Coastguard Worker   bool update_session_id; /* Next response from NFCC is to Get Session id cmd */
208*7eba2f3bSAndroid Build Coastguard Worker   bool hci_fw_workaround; /* HAL HCI Workaround need */
209*7eba2f3bSAndroid Build Coastguard Worker   bool hci_fw_validate_netwk_cmd; /* Flag to indicate if hci network ntf to
210*7eba2f3bSAndroid Build Coastguard Worker                                      validate */
211*7eba2f3bSAndroid Build Coastguard Worker   uint8_t hcp_conn_id;            /* NCI Connection id for HCP */
212*7eba2f3bSAndroid Build Coastguard Worker   uint8_t dh_session_id[1];       /* Byte 0 of DH Session ID */
213*7eba2f3bSAndroid Build Coastguard Worker } tNFC_HAL_HCI_CB;
214*7eba2f3bSAndroid Build Coastguard Worker 
215*7eba2f3bSAndroid Build Coastguard Worker #endif
216*7eba2f3bSAndroid Build Coastguard Worker 
217*7eba2f3bSAndroid Build Coastguard Worker typedef uint8_t tNFC_HAL_FLAGS;
218*7eba2f3bSAndroid Build Coastguard Worker 
219*7eba2f3bSAndroid Build Coastguard Worker typedef struct {
220*7eba2f3bSAndroid Build Coastguard Worker   tHAL_NFC_CBACK* p_stack_cback;     /* Callback for HAL event notification  */
221*7eba2f3bSAndroid Build Coastguard Worker   tHAL_NFC_DATA_CBACK* p_data_cback; /* Callback for data event notification  */
222*7eba2f3bSAndroid Build Coastguard Worker 
223*7eba2f3bSAndroid Build Coastguard Worker   TIMER_LIST_Q quick_timer_queue; /* timer list queue                 */
224*7eba2f3bSAndroid Build Coastguard Worker   TIMER_LIST_ENT timer;           /* timer for NCI transport task     */
225*7eba2f3bSAndroid Build Coastguard Worker 
226*7eba2f3bSAndroid Build Coastguard Worker   tNFC_HAL_NCIT_CB ncit_cb; /* NCI transport */
227*7eba2f3bSAndroid Build Coastguard Worker   tNFC_HAL_DEV_CB dev_cb;   /* device initialization */
228*7eba2f3bSAndroid Build Coastguard Worker   tNFC_HAL_NVM nvm_cb;      /* Information about current patch in NVM */
229*7eba2f3bSAndroid Build Coastguard Worker 
230*7eba2f3bSAndroid Build Coastguard Worker   /* Patchram control block */
231*7eba2f3bSAndroid Build Coastguard Worker   tNFC_HAL_PRM_CB prm;
232*7eba2f3bSAndroid Build Coastguard Worker   tNFC_HAL_PRM_I2C_FIX_CB prm_i2c;
233*7eba2f3bSAndroid Build Coastguard Worker 
234*7eba2f3bSAndroid Build Coastguard Worker #if (NFC_HAL_HCI_INCLUDED == TRUE)
235*7eba2f3bSAndroid Build Coastguard Worker   /* data members for NFC_HAL-HCI */
236*7eba2f3bSAndroid Build Coastguard Worker   tNFC_HAL_HCI_CB hci_cb;
237*7eba2f3bSAndroid Build Coastguard Worker #endif
238*7eba2f3bSAndroid Build Coastguard Worker 
239*7eba2f3bSAndroid Build Coastguard Worker   uint8_t pre_discover_done; /* TRUE, when the prediscover config is complete */
240*7eba2f3bSAndroid Build Coastguard Worker   tNFC_HAL_FLAGS hal_flags;
241*7eba2f3bSAndroid Build Coastguard Worker   uint8_t pre_set_mem_idx;
242*7eba2f3bSAndroid Build Coastguard Worker 
243*7eba2f3bSAndroid Build Coastguard Worker   uint8_t max_rf_credits; /* NFC Max RF data credits */
244*7eba2f3bSAndroid Build Coastguard Worker   uint8_t max_ee;         /* NFC Max number of NFCEE supported by NFCC */
245*7eba2f3bSAndroid Build Coastguard Worker } tNFC_HAL_CB;
246*7eba2f3bSAndroid Build Coastguard Worker 
247*7eba2f3bSAndroid Build Coastguard Worker /* Global NCI data */
248*7eba2f3bSAndroid Build Coastguard Worker extern tNFC_HAL_CB nfc_hal_cb;
249*7eba2f3bSAndroid Build Coastguard Worker 
250*7eba2f3bSAndroid Build Coastguard Worker extern uint8_t* p_nfc_hal_pre_discover_cfg;
251*7eba2f3bSAndroid Build Coastguard Worker 
252*7eba2f3bSAndroid Build Coastguard Worker /****************************************************************************
253*7eba2f3bSAndroid Build Coastguard Worker ** Internal nfc functions
254*7eba2f3bSAndroid Build Coastguard Worker ****************************************************************************/
255*7eba2f3bSAndroid Build Coastguard Worker 
256*7eba2f3bSAndroid Build Coastguard Worker #if (NFC_HAL_HCI_INCLUDED == TRUE)
257*7eba2f3bSAndroid Build Coastguard Worker /* nfc_hal_hci.c */
258*7eba2f3bSAndroid Build Coastguard Worker void nfc_hal_hci_enable(void);
259*7eba2f3bSAndroid Build Coastguard Worker void nfc_hal_hci_evt_hdlr(tNFC_HAL_HCI_EVENT_DATA* p_evt_data);
260*7eba2f3bSAndroid Build Coastguard Worker 
261*7eba2f3bSAndroid Build Coastguard Worker void nfc_hal_hci_handle_build_info(uint8_t chipverlen, uint8_t* p_chipverstr);
262*7eba2f3bSAndroid Build Coastguard Worker #else
263*7eba2f3bSAndroid Build Coastguard Worker #define nfc_hal_hci_enable() NFC_HAL_SET_INIT_STATE(NFC_HAL_INIT_STATE_IDLE);
264*7eba2f3bSAndroid Build Coastguard Worker #define nfc_hal_hci_handle_build_info(p, a)
265*7eba2f3bSAndroid Build Coastguard Worker #define nfc_hal_hci_evt_hdlr(p) ;
266*7eba2f3bSAndroid Build Coastguard Worker #endif
267*7eba2f3bSAndroid Build Coastguard Worker 
268*7eba2f3bSAndroid Build Coastguard Worker #endif /* NFC_HAL_INT_H */
269