diff options
Diffstat (limited to 'nci/jni/extns/pn54x/inc/phNxpExtns_Custom.h')
-rwxr-xr-x | nci/jni/extns/pn54x/inc/phNxpExtns_Custom.h | 264 |
1 files changed, 264 insertions, 0 deletions
diff --git a/nci/jni/extns/pn54x/inc/phNxpExtns_Custom.h b/nci/jni/extns/pn54x/inc/phNxpExtns_Custom.h new file mode 100755 index 00000000..a9d10c8d --- /dev/null +++ b/nci/jni/extns/pn54x/inc/phNxpExtns_Custom.h @@ -0,0 +1,264 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef _PHNXPEXTNS_CUSTOM_H_ +#define _PHNXPEXTNS_CUSTOM_H_ + +#include <nfa_api.h> +#include <sys/types.h> +#include <errno.h> +#include <phNfcStatus.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * TLV structure + * For simple TLV, type[0] == 0x00 + * For extended TLV, type[0] == 0xA0 + */ +typedef struct { + uint8_t type[2]; + uint8_t len; + uint8_t *val; +} tlv_t; + +typedef enum { + passive_106 = 0x01, + passive_212 = 0x02, + passive_424 = 0x04, + active_106 = 0x10, + active_212 = 0x20, + active_424 = 0x40, +} p2p_speed_t; + +typedef enum { + NO_SE, + UICC, + eSE, +} SE_t; + +typedef enum { + ReaderMode = 0x01, + P2PMode = 0x02, + CEMode = 0x04, +} PollMode_t; + +/******************************************************************************* + ** + ** Function phNxpExtns_get_version + ** + ** Description Function to get the HW, FW and SW versions. + ** + ** Returns NFCSTATUS_SUCCESS if successful,otherwise NFCSTATUS_FAILED. + ** + ** NOTE: Internally this function will use phNxpNciHal_get_version from HAL. + *******************************************************************************/ + +NFCSTATUS phNxpExtns_get_version (uint32_t *hw_ver, uint32_t *fw_ver, uint32_t *sw_ver); + +/******************************************************************************* + ** + ** Function phNxpNciHal_read_tlv + ** + ** Description Function to read simple TLV and extended TLV. + ** Memory for TLV and fields are allocated and freed by calling + ** function. Input is type and len. Response is provied in *val. + ** + ** Returns NFCSTATUS_SUCCESS if successful,otherwise NFCSTATUS_FAILED. + ** + ** NOTE: Internally this function will use NFA_GetConfig for simple TLV. + ** For extended TLV, it will use NFA_SendRawFrame. + *******************************************************************************/ + +NFCSTATUS phNxpNciHal_read_tlv (tlv_t *tlv); + +/******************************************************************************* + ** + ** Function phNxpNciHal_write_tlv + ** + ** Description Function to write simple TLV and extended TLV. + ** Memory for TLV and fields are allocated and freed by calling + ** function. Input is type, len, *val. + ** + ** Returns NFCSTATUS_SUCCESS if successful,otherwise NFCSTATUS_FAILED. + ** + ** NOTE: Internally this function will use NFA_SetConfig for simple TLV. + ** For extended TLV, it will use NFA_SendRawFrame. + *******************************************************************************/ + +NFCSTATUS phNxpNciHal_write_tlv (tlv_t *tlv); + +/******************************************************************************* + ** + ** Function phNxpExtns_select_poll_tech + ** + ** Description This function selects the polling technology for starting + ** polling loop. This function does not start polling loop. + ** It is just a setting for polling technology. + ** + ** Returns NFCSTATUS_SUCCESS if operation successful, + ** otherwise NFCSTATUS_FAILED. + ** + ** NOTE: Internally this function is using NFA_EnablePolling function. + *******************************************************************************/ + +NFCSTATUS phNxpExtns_select_poll_tech (tNFA_TECHNOLOGY_MASK tech_mask); + +/******************************************************************************* + ** + ** Function phNxpExtns_select_ce_listen_tech + ** + ** Description This function set the listen tech for card emulation. + ** This function does not include routing. + ** This function does not start polling loop. + ** + ** Returns NFCSTATUS_SUCCESS if operation successful, + ** otherwise NFCSTATUS_FAILED. + ** + ** NOTE: Internally this function is using NFA_CeConfigureUiccListenTech. + ** Not sure which handle to use, from UICC or eSE. + *******************************************************************************/ + +NFCSTATUS phNxpExtns_select_ce_listen_tech (tNFA_TECHNOLOGY_MASK tech_mask); + +/******************************************************************************* + ** + ** Function phNxpExtns_select_p2p_poll_speed + ** + ** Description This function will select the P2P polling speed. + ** phNxpExtns_select_poll_tech overwrite the settings of poll if + ** reader mode is enabled. + ** There is only one active poll phase but device can use one + ** active speed and can move to higher speed if target supports. + ** + ** Returns NFCSTATUS_SUCCESS if operation successful, + ** otherwise NFCSTATUS_FAILED. + ** + ** NOTE: Internally this function will use NFA_EnablePolling and NFA_SetConfig + *******************************************************************************/ + +NFCSTATUS phNxpExtns_select_p2p_poll_speed (p2p_speed_t p2p_initiator_speed); + +/******************************************************************************* + ** + ** Function phNxpExtns_select_p2p_listen_speed + ** + ** Description This function will select the listen mode + ** This function does not include routing. + ** This function does not start polling loop. + ** + ** Returns NFCSTATUS_SUCCESS if operation successful, + ** otherwise NFCSTATUS_FAILED. + ** + ** NOTE: Internally this function will use NFA_SetP2pListenTech and NFA_SetConfig + *******************************************************************************/ + +NFCSTATUS phNxpExtns_select_p2p_listen_speed (p2p_speed_t p2p_target_speed); + +/******************************************************************************* + ** + ** Function phNxpExtns_select_se + ** + ** Description This function will set the routing of the traffic to selected + ** SE. This function also does not start polling loop. + ** + ** Returns NFCSTATUS_SUCCESS if operation successful, + ** otherwise NFCSTATUS_FAILED. + ** + ** NOTE: + *******************************************************************************/ + +NFCSTATUS phNxpExtns_select_se (SE_t se); + +/******************************************************************************* + ** + ** Function phNxpExtns_set_poll_mode + ** + ** Description This function selects which mode to enable for polling loop. + ** This function do not start polling loop. + ** + ** Returns NFCSTATUS_SUCCESS if operation successful, + ** otherwise NFCSTATUS_FAILED. + ** + ** NOTE: + *******************************************************************************/ + +NFCSTATUS phNxpExtns_set_poll_mode (PollMode_t poll_mode); + +/******************************************************************************* + ** + ** Function phNxpExtns_start_poll + ** + ** Description This function starts polling loop based on the configuration + ** of the previous calls. If no configuration done through other + ** function call then it uses the default configuration from + ** configuration files. + ** This function internally stops the polling loop if it is + ** already running. + ** + ** Returns NFCSTATUS_SUCCESS if operation successful, + ** otherwise NFCSTATUS_FAILED. + ** + ** NOTE: Internally this function uses NFA_StartRfDiscovery. + *******************************************************************************/ + +NFCSTATUS phNxpExtns_start_poll (void); + +/******************************************************************************* + ** + ** Function phNxpExtns_stop_poll + ** + ** Description This function stops the polling loop if it is running. + ** + ** Returns NFCSTATUS_SUCCESS if operation successful, + ** otherwise NFCSTATUS_FAILED. + ** + ** NOTE:Internally this function uses NFA_StopRfDiscovery. + *******************************************************************************/ + +NFCSTATUS phNxpExtns_stop_poll (void); + +/******************************************************************************* + ** + ** Function phNxpExtns_enable_Felica_CLT + ** + ** Description This function enables or disable Felica CLT feature. + ** + ** Returns NFCSTATUS_SUCCESS if operation successful, + ** otherwise NFCSTATUS_FAILED. + ** + ** NOTE: + *******************************************************************************/ + +NFCSTATUS phNxpExtns_enable_Felica_CLT (bool enable); + +/******************************************************************************* + ** + ** Function phNxpExtns_enable_Mifare_CLT + ** + ** Description This function enables or disable Mifare CLT feature. + ** + ** Returns NFCSTATUS_SUCCESS if operation successful, + ** otherwise NFCSTATUS_FAILED. + ** + ** NOTE: + *******************************************************************************/ + +NFCSTATUS phNxpExtns_enable_Mifare_CLT (bool enable); + +#endif /* _PHNXPEXTNS_CUSTOM_H_ */ |