###################### Start of libnfc-brcm-common.conf #######################

###############################################################################
# Application options
APPL_TRACE_LEVEL=0x01
PROTOCOL_TRACE_LEVEL=0x00000000

###############################################################################
# performance measurement
# Change this setting to control how often USERIAL log the performance (throughput)
# data on read/write/poll
# defailt is to log performance dara for every 100 read or write
#REPORT_PERFORMANCE_MEASURE=100

###############################################################################
# File used for NFA storage
NFA_STORAGE="/data/nfc"

###############################################################################
# Snooze Mode Settings
#
#  By default snooze mode is enabled.  Set SNOOZE_MODE_CFG byte[0] to 0
#  to disable.
#
#  If SNOOZE_MODE_CFG is not provided, the default settings are used:
#  They are as follows:
#       8             Sleep Mode (0=Disabled 1=UART 8=SPI/I2C)
#       0             Idle Threshold Host
#       0             Idle Threshold HC
#       0             NFC Wake active mode (0=ActiveLow 1=ActiveHigh)
#       1             Host Wake active mode (0=ActiveLow 1=ActiveHigh)
#
#SNOOZE_MODE_CFG={08:00:00:00:01}

###############################################################################
# Insert a delay in milliseconds after NFC_WAKE and before write to NFCC
NFC_WAKE_DELAY=20

###############################################################################
# Various Delay settings (in ms) used in USERIAL
#  POWER_ON_DELAY
#    Delay after turning on chip, before writing to transport (default 300)
#  PRE_POWER_OFF_DELAY
#    Delay after deasserting NFC-Wake before turn off chip (default 0)
#  POST_POWER_OFF_DELAY
#    Delay after turning off chip, before USERIAL_close returns (default 0)
#
POWER_ON_DELAY=300
PRE_POWER_OFF_DELAY=10
#POST_POWER_OFF_DELAY=0

###############################################################################
# Maximum time (ms) to wait for RESET NTF after setting REG_PU to high
# The default is 1000.
NFCC_ENABLE_TIMEOUT=0

###############################################################################
# LPTD mode configuration
#  byte[0] is the length of the remaining bytes in this value
#     if set to 0, LPTD params will NOT be sent to NFCC (i.e. disabled).
#  byte[1] is the param id it should be set to B9.
#  byte[2] is the length of the LPTD parameters
#  byte[3] indicates if LPTD is enabled
#     if set to 0, LPTD will be disabled (parameters will still be sent).
#  byte[4-n] are the LPTD parameters.
#  By default, LPTD is enabled and default settings are used.
#  See nfc_hal_dm_cfg.c for defaults
LPTD_CFG={23:B9:21:01:02:FF:FF:04:A0:0F:40:00:80:02:02:10:00:00:00:31:0E:30:00:00:00:00:00:00:00:00:00:00:00:00:00:00}

###############################################################################
# Startup Configuration (100 bytes maximum)
#
# For the 0xCA parameter, byte[9] (marked by 'AA') is for UICC0, and byte[10] (marked by BB) is
#    for UICC1.  The values are defined as:
#   0 : UICCx only supports ISO_DEP in low power mode.
#   2 : UICCx only supports Mifare in low power mode.
#   3 : UICCx supports both ISO_DEP and Mifare in low power mode.
#
#                                                                          AA BB
NFA_DM_START_UP_CFG={2E:CB:01:01:A5:01:01:CA:14:00:00:00:00:06:E8:03:00:00:00:00:00:00:00:00:00:00:00:00:00:80:01:01:C2:08:61:40:82:04:40:4B:4C:00:B5:03:01:02:FF}

###############################################################################
# Startup Vendor Specific Configuration (100 bytes maximum);
#  byte[0] TLV total len = 0x5
#  byte[1] NCI_MTS_CMD|NCI_GID_PROP = 0x2f
#  byte[2] NCI_MSG_FRAME_LOG = 0x9
#  byte[3] 2
#  byte[4] 0=turn off RF frame logging; 1=turn on
#  byte[5] 0=turn off SWP frame logging; 1=turn on
#  NFA_DM_START_UP_VSC_CFG={05:2F:09:02:01:01}

###############################################################################
# Antenna Configuration - This data is used when setting 0xC8 config item
# at startup (before discovery is started).  If not used, no value is sent.
#
# The settings for this value are documented here:
# http://wcgbu.broadcom.com/wpan/PM/Project%20Document%20Library/bcm20791B0/
#   Design/Doc/PHY%20register%20settings/BCM20791-B2-1027-02_PHY_Recommended_Reg_Settings.xlsx
# This document is maintained by Paul Forshaw.
#
# The values marked as ?? should be tweaked per antenna or customer/app:
# {20:C8:1E:06:??:00:??:??:??:00:??:24:00:1C:00:75:00:77:00:76:00:1C:00:03:00:0A:00:??:01:00:00:40:04}
# array[0] = 0x20 is length of the payload from array[1] to the end
# array[1] = 0xC8 is PREINIT_DSP_CFG
PREINIT_DSP_CFG={20:C8:1E:06:1F:00:0A:03:30:00:04:24:00:1C:00:75:00:77:00:76:00:1C:00:03:00:0A:00:4C:01:00:00:40:04}

###############################################################################
# Configure crystal frequency when internal LPO can't detect the frequency.
#XTAL_FREQUENCY=0

###############################################################################
# Use Nexus S NXP RC work to allow our stack/firmware to work with a retail
# Nexus S that causes IOP issues.  Note, this will not pass conformance and
# should be removed for production.
USE_NXP_P2P_RC_WORKAROUND=1

###############################################################################
# Configure the default Destination Gate used by HCI (the default is 4, which
# is the ETSI loopback gate.
#NFA_HCI_DEFAULT_DEST_GATE=0x04

###############################################################################
# Override the stack default for NFA_EE_MAX_EE_SUPPORTED set in nfc_target.h.
# The value is set to 3 by default as it assumes we will discover 0xF2,
# 0xF3, and 0xF4. If a platform will exclude and SE, this value can be reduced
# so that the stack will not wait any longer than necessary.
#NFA_MAX_EE_SUPPORTED=3

###############################################################################
# Configure the single default SE to use.  The default is to use the first
# SE that is detected by the stack.  This value might be used when the phone
# supports multiple SE (e.g. 0xF3 and 0xF4) but you want to force it to use
# one of them (e.g. 0xF4).
ACTIVE_SE=0xF4

###############################################################################
# Configure the default NfcA/IsoDep techology and protocol route. Can be
# either a secure element (e.g. 0xF4) or the host (0x00)
DEFAULT_ISODEP_ROUTE=0x00

###############################################################################
# Configure the NFC Extras to open and use a static pipe.  If the value is
# not set or set to 0, then the default is use a dynamic pipe based on a
# destination gate (see NFA_HCI_DEFAULT_DEST_GATE).  Note there is a value
# for each UICC (where F3="UICC0" and F4="UICC1")
#NFA_HCI_STATIC_PIPE_ID_F3=0x70
NFA_HCI_STATIC_PIPE_ID_F4=0x71

###############################################################################
# When disconnecting from Oberthur secure element, perform a warm-reset of
# the secure element to deselect the applet.
# The default hex value of the command is 0x3.  If this variable is undefined,
# then this feature is not used.
OBERTHUR_WARM_RESET_COMMAND=0x03

###############################################################################
# Force UICC to only listen to the following technology(s).
# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_B.
UICC_LISTEN_TECH_MASK=0x01

###############################################################################
# Allow UICC to be powered off if there is no traffic.
# Timeout is in ms. If set to 0, then UICC will not be powered off.
#UICC_IDLE_TIMEOUT=30000

###############################################################################
# AID for Empty Select command
# If specified, this AID will be substituted when an Empty SELECT command is
# detected.  The first byte is the length of the AID.  Maximum length is 16.
AID_FOR_EMPTY_SELECT={08:A0:00:00:01:51:00:00:00}

###############################################################################
# Force tag polling for the following technology(s).
# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_B |
#            NFA_TECHNOLOGY_MASK_F | NFA_TECHNOLOGY_MASK_ISO15693 |
#            NFA_TECHNOLOGY_MASK_B_PRIME | NFA_TECHNOLOGY_MASK_A_ACTIVE |
#            NFA_TECHNOLOGY_MASK_F_ACTIVE.
#
# Notable bits:
#   NFA_TECHNOLOGY_MASK_KOVIO	    0x20
#   NFA_TECHNOLOGY_MASK_A_ACTIVE    0x40
#   NFA_TECHNOLOGY_MASK_F_ACTIVE    0x80
POLLING_TECH_MASK=0xFF

###############################################################################
# Force P2P to only listen for the following technology(s).
# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_F |
#            NFA_TECHNOLOGY_MASK_A_ACTIVE | NFA_TECHNOLOGY_MASK_F_ACTIVE
P2P_LISTEN_TECH_MASK=0xC5

###############################################################################
# Maximum Number of Credits to be allowed by the NFCC
#   This value overrides what the NFCC specifices allowing the host to have
#   the control to work-around transport limitations.  If this value does
#   not exist or is set to 0, the NFCC will provide the number of credits.
#MAX_RF_DATA_CREDITS=1

###############################################################################
# This setting allows you to disable registering the T4t Virtual SE that causes
# the NFCC to send PPSE requests to the DH.
# The default setting is enabled (i.e. T4t Virtual SE is registered).
#REGISTER_VIRTUAL_SE=1

###############################################################################
# When screen is turned off, specify the desired power state of the controller.
# 0: power-off-sleep state; DEFAULT
# 1: full-power state
# 2: screen-off card-emulation (CE4/CE3/CE1 modes are used)
#SCREEN_OFF_POWER_STATE=0

###############################################################################
# Firmware patch file
#  If the value is not set then patch download is disabled.
FW_PATCH="/vendor/firmware/bcm2079x_firmware.ncd"

###############################################################################
# Firmware pre-patch file (sent before the above patch file)
#  If the value is not set then pre-patch is not used.
FW_PRE_PATCH="/vendor/firmware/bcm2079x_pre_firmware.ncd"

###############################################################################
# Firmware patch format
#   1 = HCD
#   2 = NCD (default)
#NFA_CONFIG_FORMAT=2

###############################################################################
# SPD Debug mode
#  If set to 1, any failure of downloading a patch will trigger a hard-stop
#SPD_DEBUG=0

###############################################################################
# SPD Max Retry Count
#  The number of attempts to download a patch before giving up (defualt is 3).
#  Note, this resets after a power-cycle.
#SPD_MAX_RETRY_COUNT=3

###############################################################################
# transport driver
#
# TRANSPORT_DRIVER=<driver>
#
#  where <driver> can be, for example:
#    "/dev/ttyS"        (UART)
#    "/dev/bcmi2cnfc"   (I2C)
#    "hwtun"            (HW Tunnel)
#    "/dev/bcmspinfc"   (SPI)
#    "/dev/btusb0"      (BT USB)
TRANSPORT_DRIVER="/dev/bcm2079x-i2c"

###############################################################################
# power control driver
# Specify a kernel driver that support ioctl commands to control NFC_EN and
# NFC_WAKE gpio signals.
#
# POWER_CONTRL_DRIVER=<driver>
#  where <driver> can be, for example:
#    "/dev/nfcpower"
#    "/dev/bcmi2cnfc"   (I2C)
#    "/dev/bcmspinfc"   (SPI)
#    i2c and spi driver may be used to control NFC_EN and NFC_WAKE signal
POWER_CONTROL_DRIVER="/dev/bcm2079x-i2c"

###############################################################################
# I2C transport driver options
# Mako does not support 10-bit I2C addresses
# Revert to 7-bit address
BCMI2CNFC_ADDRESS=0x77

###############################################################################
# I2C transport driver try to read multiple packets in read() if data is available
# remove the comment below to enable this feature
#READ_MULTIPLE_PACKETS=1

###############################################################################
# SPI transport driver options
#SPI_NEGOTIATION={0A:F0:00:01:00:00:00:FF:FF:00:00}

###############################################################################
# UART transport driver options
#
# PORT=1,2,3,...
# BAUD=115200, 19200, 9600, 4800,
# DATABITS=8, 7, 6, 5
# PARITY="even" | "odd" | "none"
# STOPBITS="0" | "1" | "1.5" | "2"

#UART_PORT=2
#UART_BAUD=115200
#UART_DATABITS=8
#UART_PARITY="none"
#UART_STOPBITS="1"

###############################################################################
# Insert a delay in microseconds per byte after a write to NFCC.
# after writing a block of data to the NFCC, delay this an amopunt of time before
# writing next block of data.  the delay is calculated as below
#   NFC_WRITE_DELAY * (number of byte written) / 1000 milliseconds
# e.g. after 259 bytes is written, delay (259 * 20 / 1000) 5 ms before next write
NFC_WRITE_DELAY=20

###############################################################################
# Default poll duration (in ms)
#  The defualt is 500ms if not set (see nfc_target.h)
#NFA_DM_DISC_DURATION_POLL=333
