## This file is used by NFC NXP NCI HAL(external/libnfc-nci/halimpl/pn547)
## and NFC Service Java Native Interface Extensions (packages/apps/Nfc/nci/jni/extns/pn547)
###############################################################################
# Application options
# Logging Levels
# NXPLOG_DEFAULT_LOGLEVEL    0x01
# ANDROID_LOG_DEBUG          0x03
# ANDROID_LOG_WARN           0x02
# ANDROID_LOG_ERROR          0x01
# ANDROID_LOG_SILENT         0x00
NXPLOG_EXTNS_LOGLEVEL=0x01
NXPLOG_NCIHAL_LOGLEVEL=0x01
NXPLOG_NCIX_LOGLEVEL=0x01
NXPLOG_NCIR_LOGLEVEL=0x01
NXPLOG_FWDNLD_LOGLEVEL=0x01
NXPLOG_TML_LOGLEVEL=0x01
NFC_DEBUG_ENABLED=0

###############################################################################
# Nfc Device Node name
NXP_NFC_DEV_NODE="/dev/nq-nci"

###############################################################################
# Extension for Mifare reader enable
MIFARE_READER_ENABLE=0x01

###############################################################################
# Firmware file type
#.so file   0x01
#.bin file  0x02
NXP_FW_TYPE=0x01

###############################################################################
# System clock source selection configuration
#define CLK_SRC_XTAL       1
#define CLK_SRC_PLL        2
NXP_SYS_CLK_SRC_SEL=0x01

###############################################################################
# System clock frequency selection configuration
#define CLK_FREQ_13MHZ         1
#define CLK_FREQ_19_2MHZ       2
#define CLK_FREQ_24MHZ         3
#define CLK_FREQ_26MHZ         4
#define CLK_FREQ_38_4MHZ       5
#define CLK_FREQ_52MHZ         6
NXP_SYS_CLK_FREQ_SEL=0x00

###############################################################################
# The timeout value to be used for clock request acknowledgment
# min value = 0x01 to max = 0x06
NXP_SYS_CLOCK_TO_CFG=0x01

###############################################################################
# NXP proprietary settings
NXP_ACT_PROP_EXTN={2F, 02, 00}

###############################################################################
# NFC forum profile settings
NXP_NFC_PROFILE_EXTN={20, 02, 05, 01, A0, 44, 01, 00}

###############################################################################
# NXP TVDD configurations settings
# Allow NFCC to configure External TVDD, two configurations (1 and 2) supported,
# out of them only one can be configured at a time.
NXP_EXT_TVDD_CFG=0x02

###############################################################################
#config1:SLALM, 3.3V for both RM and CM
NXP_EXT_TVDD_CFG_1={20, 02, 0F, 01, A0, 0E, 0B, 31, 01, 01, 31, 00, 00, 00, 01, 00, D0, 0C}

###############################################################################
#config2: use DCDC in CE, use Tx_Pwr_Req, set CFG2 mode, SLALM,
#monitoring 5V from DCDC, 3.3V for both RM and CM, DCDCWaitTime=4.2ms
NXP_EXT_TVDD_CFG_2={20, 02, 0F, 01, A0, 0E, 0B, 11, 01, C2, B2, 00, BA, 1E, 15, 00, D0, 0C}

###############################################################################
# NXP RF configuration ALM/PLM settings
# This section needs to be updated with the correct values based on the platform
NXP_RF_CONF_BLK_1={ 20, 02, A8, 14,
    A0, 0D, 06, 06, 37, 08, 76, 00, 00,
    A0, 38, 04, 14, 0B, 0B, 00,
    A0, 0D, 03, 24, 03, 7F,
    A0, 0D, 06, 06, 42, 00, 00, F2, F2,
    A0, 0D, 04, 32, 42, FC, 40,
    A0, 0D, 04, 46, 42, 68, 40,
    A0, 0D, 04, 56, 42, 78, 40,
    A0, 0D, 04, 5C, 42, 80, 40,
    A0, 0D, 06, 34, 44, 66, 0A, 00, 00,
    A0, 0D, 06, 48, 44, 65, 0A, 00, 00,
    A0, 0D, 06, 58, 44, 55, 08, 00, 00,
    A0, 0D, 06, 5E, 44, 55, 08, 00, 00,
    A0, 0D, 06, 34, 2D, DC, 20, 04, 00,
    A0, 0D, 06, 48, 2D, 15, 34, 1F, 01,
    A0, 0D, 06, 58, 2D, 0D, 48, 0C, 01,
    A0, 0D, 06, 5E, 2D, 0D, 5A, 0C, 01,
    A0, 0D, 06, 32, 4A, 53, 07, 00, 1B,
    A0, 0D, 06, 46, 4A, 33, 07, 00, 07,
    A0, 0D, 06, 56, 4A, 43, 07, 00, 07,
    A0, 0D, 06, 5C, 4A, 11, 07, 01, 07
}

###############################################################################
# NXP RF configuration ALM/PLM settings
# This section needs to be updated with the correct values based on the platform
NXP_RF_CONF_BLK_2={ 20, 02, 26, 02,
    A0, 3A, 08, 0E, 01, 0E, 01, 0E, 01, 0E, 01,
    A0, 29, 17, 1C, 02, 00, 1F, 00, 02, 00, 1F, 00, 02, 00, 40, F3, F3, 00, 43, F3, F3, 38, 70, 00, 00, 01
}

###############################################################################
# NXP RF configuration ALM/PLM settings
# This section needs to be updated with the correct values based on the platform
NXP_RF_CONF_BLK_3={20, 02, D6, 01,
    A0, 34, D2, 23, 04, 18,
    07,
    40,
    00, 20, 40, 00,
    2D, 20, 40, 00,
    32, 20, 40, 00,
    3B, 20, 40, 00,
    5C, 20, 40, 00,
    9A, 00, 60, 00,
    AE, 00, 70, 00,
    00, 00, 08, 02,
    00, 00, 08, 02,
    00, 00, 08, 02,
    00, 00, 08, 02,
    00, 00, 08, 02,
    00, 00, 08, 02,
    00, 00, 48, 01,
    00, 00, 08, 03,
    00, 00, 08, 01,
    00, 00, C8, 02,
    00, 00, C8, 00,
    00, 00, 88, 02,
    00, 00, 48, 02,
    00, 00, B8, 00,
    00, 00, 68, 00,
    00, 00, 18, 00,
    00, 00, 08, 02,
    00, 00, 00, 00,
    00, 00, 00, 00,
    07,
    00, 20, 40, 00,
    2D, 20, 40, 00,
    32, 20, 40, 00,
    3B, 20, 40, 00,
    5C, 20, 40, 00,
    9A, 00, 60, 00,
    AE, 00, 70, 00,
    00, 00, 08, 02,
    00, 00, 08, 02,
    00, 00, 08, 02,
    00, 00, 08, 02,
    00, 00, 08, 02,
    00, 00, 08, 02,
    00, 00, 48, 01,
    00, 00, 08, 03,
    00, 00, 08, 01,
    00, 00, C8, 02,
    00, 00, C8, 00,
    00, 00, 88, 02,
    00, 00, 48, 02,
    00, 00, B8, 00,
    00, 00, 68, 00,
    00, 00, 18, 00,
    00, 00, 08, 02,
    00, 00, 00, 00
}

###############################################################################
# NXP RF configuration ALM/PLM settings
# This section needs to be updated with the correct values based on the platform
NXP_RF_CONF_BLK_4={ 20, 02, 5B, 01,
    A0, 0B, 57, 05, 85, 90, 78, 0F, 4E, 00, 3D, 95,
    00, 00, 3D, 9F, 00, 00, 50, 9F, 00, 00, 59, 9F, 00,
    00, 5A, 9F, 00, 00, 64, 9F, 00, 00, 65, 1F, 00, 00,
    6E, 1F, 00, 00, 72, 1F, 00, 00, 79, 1F, 00, 00, 7B,
    1F, 00, 00, 84, 1F, 00, 00, 86, 1F, 00, 00, 8F, 1F,
    00, 00, 91, 1F, 00, 00, 9A, 1F, 00, 00, A1, 1F, 00,
    00, A7, 1F, 00, 00, B0, 1F, 00, 00, B9, 1F, 00, 00
}

###############################################################################
# NXP RF configuration ALM/PLM settings
# This section needs to be updated with the correct values based on the platform
#NXP_RF_CONF_BLK_5={
#}

###############################################################################
# NXP RF configuration ALM/PLM settings
# This section needs to be updated with the correct values based on the platform
#NXP_RF_CONF_BLK_6={
#}

###############################################################################
# Core configuration extensions
# It includes
# Wired mode settings A0ED, A0EE
# Tag Detector A040, A041, A043
# Low Power mode A007
# Clock settings A002, A003
# PbF settings A008
# Clock timeout settings A004
# eSE (SVDD) PWR REQ settings A0F2
# Window size A0D8
# DWP Speed   A0D5
# How eSE connected to PN553 A012
# UICC2 bit rate A0D1
# SWP1A interface A0D4
# DWP intf behavior config, SVDD Load activated by default if set to 0x31 A037
NXP_CORE_CONF_EXTN={20, 02, 32, 0C,
    A0, EC, 01, 01,
    A0, ED, 01, 01,
    A0, 5E, 01, 01,
    A0, 12, 01, 02,
    A0, 40, 01, 05,
    A0, 41, 01, 05,
    A0, 43, 01, 04,
    A0, D1, 01, 02,
    A0, D4, 01, 00,
    A0, DD, 01, 2D,
    A0, 37, 01, 35,
    A0, 08, 02, 00, 81
   }
#       A0, F2, 01, 01,
#       A0, 40, 01, 01,
#       A0, 41, 01, 02,
#       A0, 43, 01, 04,
#       A0, 02, 01, 01,
#       A0, 03, 01, 11,
#       A0, 07, 01, 03,
#       A0, 08, 01, 01
#       }

###############################################################################
# Core configuration rf field filter settings to enable set to 01 to disable set
# to 00 last bit
NXP_CORE_RF_FIELD={ 20, 02, 05, 01, A0, 62, 01, 00 }

###############################################################################
# To enable i2c fragmentation set i2c fragmentation enable 0x01 to disable set
# to 0x00
NXP_I2C_FRAGMENTATION_ENABLED=0x00

###############################################################################
# Core configuration settings
NXP_CORE_CONF={ 20, 02, 31, 0F,
        85, 01, 01,
        28, 01, 00,
        21, 01, 00,
        30, 01, 08,
        31, 01, 03,
        32, 01, 60,
        38, 01, 01,
        33, 04, 01, 02, 03, 04,
        54, 01, 06,
        50, 01, 02,
        5B, 01, 00,
        80, 01, 01,
        81, 01, 01,
        82, 01, 0E,
        18, 01, 01
        }

###############################################################################
#Enable SWP full power mode when phone is power off
NXP_SWP_FULL_PWR_ON=0x00

###############################################################################
#Set the default Felica T3T System Code OffHost route Location :
# host  0x00
# eSE   0x01
# UICC  0x02
# UICC2 0x03
DEFAULT_SYS_CODE_ROUTE=0x00

###############################################################################
#Set the default Felica T3T System Code :
DEFAULT_SYS_CODE={FE,FF}

###############################################################################
# AID Matching platform options
# AID_MATCHING_L 0x01
# AID_MATCHING_K 0x02
AID_MATCHING_PLATFORM=0x01

###############################################################################
#CHINA_TIANJIN_RF_SETTING
#Enable  0x01
#Disable  0x00
NXP_CHINA_TIANJIN_RF_ENABLED=0x01

###############################################################################
#SWP_SWITCH_TIMEOUT_SETTING
# Allowed range of swp timeout setting is 0x00 to 0x3C [0 - 60].
# Timeout in milliseconds, for example
# No Timeout  0x00
# 10 millisecond timeout 0x0A
NXP_SWP_SWITCH_TIMEOUT=0x0A

##############################################################################
# Extended APDU length for ISO_DEP
ISO_DEP_MAX_TRANSCEIVE=0xFEFF

###############################################################################
# Vendor Specific Proprietary Protocol & Discovery Configuration
# Set to 0xFF if unsupported
#  byte[0] NCI_PROTOCOL_18092_ACTIVE
#  byte[1] NCI_PROTOCOL_B_PRIME
#  byte[2] NCI_PROTOCOL_DUAL
#  byte[3] NCI_PROTOCOL_15693
#  byte[4] NCI_PROTOCOL_KOVIO
#  byte[5] NCI_PROTOCOL_MIFARE
#  byte[6] NCI_DISCOVERY_TYPE_POLL_KOVIO
#  byte[7] NCI_DISCOVERY_TYPE_POLL_B_PRIME
#  byte[8] NCI_DISCOVERY_TYPE_LISTEN_B_PRIME
NFA_PROPRIETARY_CFG={05, FF, FF, 06, 81, 80, 70, FF, FF}

###############################################################################
# Choose the presence-check algorithm for type-4 tag.  If not defined, the default value is 1.
# 0  NFA_RW_PRES_CHK_DEFAULT; Let stack selects an algorithm
# 1  NFA_RW_PRES_CHK_I_BLOCK; ISO-DEP protocol's empty I-block
# 2 NFA_RW_PRES_CHK_ISO_DEP_NAK; Type - 4 tag protocol iso-dep nak presence check
#    command is sent waiting for rsp and ntf.
PRESENCE_CHECK_ALGORITHM=2

###############################################################################
