summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRashed Abdel-Tawab <rashed@linux.com>2015-01-20 21:05:58 -0500
committerRashed Abdel-Tawab <rashed@linux.com>2015-05-31 16:31:01 -0400
commit8160c59a6fccf15e06e4e8338653361c17ddbb7b (patch)
tree90965b3b23f81f176002f8b53cceff7ecdbbbe55
parentb32145a10bf692f022d56b2a3a60736c5235ae1b (diff)
vs980: Update NFC from lollipop release
Change-Id: I2cb6512edc6cff9b2c37cfb9f4cc804a37eb83cd
-rw-r--r--device.mk5
-rw-r--r--nfc/libnfc-brcm-20791b05.conf66
-rw-r--r--nfc/libnfc-brcm.conf93
3 files changed, 121 insertions, 43 deletions
diff --git a/device.mk b/device.mk
index d226e8b..3be08d3 100644
--- a/device.mk
+++ b/device.mk
@@ -29,9 +29,10 @@ PRODUCT_COPY_FILES += \
PRODUCT_PACKAGES += \
nfc_nci.bcm2079x.default
-# NFC config
+# NFC configs
PRODUCT_COPY_FILES += \
- $(LOCAL_PATH)/nfc/libnfc-brcm.conf:system/etc/libnfc-brcm.conf
+ $(LOCAL_PATH)/nfc/libnfc-brcm.conf:system/etc/libnfc-brcm.conf \
+ $(LOCAL_PATH)/nfc/libnfc-brcm-20791b05.conf:system/etc/libnfc-brcm-20791b05.conf
# GPS
PRODUCT_COPY_FILES += \
diff --git a/nfc/libnfc-brcm-20791b05.conf b/nfc/libnfc-brcm-20791b05.conf
new file mode 100644
index 0000000..2cf9181
--- /dev/null
+++ b/nfc/libnfc-brcm-20791b05.conf
@@ -0,0 +1,66 @@
+###############################################################################
+# Firmware patch file
+# If the value is not set then patch download is disabled.
+FW_PATCH="/vendor/firmware/BCM20791B5_002.006.013.0011.0054_Generic_I2C_NCD_Signed_configdata.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/BCM20791B5_002.006.013.0011.0054_Generic_PreI2C_NCD_Signed_configdata.ncd"
+
+###############################################################################
+# 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={38:B9:36:01:00:FF:FF:04:00:00:00:A0:0F:40:00:00:12:02:10:00:00:00:2D:0B:30:00:00:00:00:00:00:00:00:00:00:00:00:00:00:03:00:D0:07:00:00:08:07:00:00:C8:00:00:00:00:00:00:00}
+
+###############################################################################
+# Startup Configuration (256 bytes maximum)
+#
+# This is applied at stack startup.
+#
+NFA_DM_START_UP_CFG={44:CB:01:09:A5:01:01:CA:1A:00:00:00:00:0E:F0:55:00:00:0F:00:00:00:00:A0:25:26:00:14:00:00:00:10:B8:0B:06:B5:03:01:02:FF:80:01:01:C9:03:03:0F:AB:5B:01:02:B2:04:E8:03:00:00:CF:02:02:08:B1:06:00:20:00:00:45:12}
+
+###############################################################################
+# Pre-Discovery Startup Configuration (256 bytes maximum)
+#
+# This is applied before starting Discovery the first time.
+NFA_DM_PRE_DISCOVERY_CFG={0A:C2:08:01:08:00:04:80:C3:C9: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
+#
+# 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:0C:01:00:00:40:04}
+
+###############################################################################
+# 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}
+
diff --git a/nfc/libnfc-brcm.conf b/nfc/libnfc-brcm.conf
index 6f2a7c1..34b6de3 100644
--- a/nfc/libnfc-brcm.conf
+++ b/nfc/libnfc-brcm.conf
@@ -1,9 +1,13 @@
-###################### Start of libnfc-brcm-common.conf #######################
-
+###############################################################################
+# v2.1 : 2014-02-17
+# Workaround Patch for SWP Current Consumption Issue
+# POWER_SAVER_WORKAROUND_1=0xf3
+# v2.0
+#
###############################################################################
# Application options
-APPL_TRACE_LEVEL=0x01
-PROTOCOL_TRACE_LEVEL=0x00000000
+APPL_TRACE_LEVEL=0xFF
+PROTOCOL_TRACE_LEVEL=0xFFFFFFFF
###############################################################################
# performance measurement
@@ -16,6 +20,8 @@ PROTOCOL_TRACE_LEVEL=0x00000000
# File used for NFA storage
NFA_STORAGE="/data/nfc"
+PRESERVE_STORAGE=1
+
###############################################################################
# Insert a delay in milliseconds after NFC_WAKE and before write to NFCC
NFC_WAKE_DELAY=20
@@ -28,10 +34,15 @@ NFC_WAKE_DELAY=20
# 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)
+# CE3_PRE_POWER_OFF_DELAY
+# Delay after deasserting NFC-Wake before turn off chip (default 1000)
+# when going to CE3 Switch Off mode
#
-POWER_ON_DELAY=0
+#POWER_ON_DELAY=300
PRE_POWER_OFF_DELAY=10
#POST_POWER_OFF_DELAY=0
+#CE3_PRE_POWER_OFF_DELAY=1500
+CE3_PRE_POWER_OFF_DELAY=400
###############################################################################
# Maximum time (ms) to wait for RESET NTF after setting REG_PU to high
@@ -61,7 +72,7 @@ NFCC_ENABLE_TIMEOUT=1000
# 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}
+#NFA_DM_START_UP_VSC_CFG={05:2F:09:02:01:01}
###############################################################################
# Configure the default Destination Gate used by HCI (the default is 4, which
@@ -73,12 +84,7 @@ NFCC_ENABLE_TIMEOUT=1000
# 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.
-#
-# Use for Host based CE
-NFA_MAX_EE_SUPPORTED=0
-
-# Use for UICC support
-# NFA_MAX_EE_SUPPORTED=3
+#NFA_MAX_EE_SUPPORTED=3
###############################################################################
# Configure the single default SE to use. The default is to use the first
@@ -86,14 +92,18 @@ NFA_MAX_EE_SUPPORTED=0
# supports multiple SE (e.g. 0xF3 and 0xF4) but you want to force it to use
# one of them (e.g. 0xF4). This can be set to 0 if there are no SE on the
# system in order to skip SE initialization.
-#
-# Use for Host based CE
-ACTIVE_SE=0x0
-
-# Use for UICC support
#ACTIVE_SE=0xF3
###############################################################################
+# 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=0xF3
+
+###############################################################################
+# Configure the default "off-host" AID route. The default is 0xF4
+DEFAULT_OFFHOST_ROUTE=0xF3
+
+###############################################################################
# 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
@@ -106,13 +116,26 @@ NFA_HCI_STATIC_PIPE_ID_F4=0x71
# 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
+#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
+# If variable is not defined, code will detect UICC's technologies.
+#UICC_LISTEN_TECH_MASK=0x03
+
+GCF_LISTEN_TECH_MASK=0x03
+
+# Workaround patch for Current Consumption
+POWER_SAVER_WORKAROUND_1=0xF3
+
+###############################################################################
+# Exclude some technologies when establishing the listen mask. This is handy
+# when UICC_LISTEN_TECH_MASK is not specified and the mask is based on what is
+# discovered in the UICC. This provides a method to remove certain techs.
+# Default is 0x00 (i.e. don't exclude any technology).
+UICC_LISTEN_TECH_EXCLUDE_MASK=0x10
###############################################################################
# AID for Empty Select command
@@ -129,17 +152,19 @@ AID_FOR_EMPTY_SELECT={08:A0:00:00:01:51:00:00:00}
# NFA_TECHNOLOGY_MASK_F_ACTIVE.
#
# Notable bits:
-# NFA_TECHNOLOGY_MASK_KOVIO 0x20
+# NFA_TECHNOLOGY_MASK_KOVIO 0x20
# NFA_TECHNOLOGY_MASK_A_ACTIVE 0x40
# NFA_TECHNOLOGY_MASK_F_ACTIVE 0x80
-POLLING_TECH_MASK=0xFF
+#POLLING_TECH_MASK=0x3F
+POLLING_TECH_MASK=0xEF
###############################################################################
# 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
+#P2P_LISTEN_TECH_MASK=0x05
+P2P_LISTEN_TECH_MASK=0xC4
###############################################################################
# Maximum Number of Credits to be allowed by the NFCC
@@ -149,17 +174,11 @@ POLLING_TECH_MASK=0xFF
#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 (note: this is still low-power ("snooze") on BRCM devices.
+# 1: full-power state
# 2: screen-off card-emulation (CE4/CE3/CE1 modes are used)
-SCREEN_OFF_POWER_STATE=1
+SCREEN_OFF_POWER_STATE=2
###############################################################################
# SPD Debug mode
@@ -200,7 +219,9 @@ POWER_CONTROL_DRIVER="/dev/bcm2079x"
###############################################################################
# I2C transport driver options
-# BCMI2CNFC_ADDRESS=0
+# 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
@@ -245,13 +266,3 @@ NFC_WRITE_DELAY=20
# Technology A active mode
# Technology F active mode
#POLL_FREQUENCY={01:01:01:01:01:01:01:01}
-
-###############################################################################
-# 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_RESET; Deactivate to Sleep, then re-activate
-# 3 NFA_RW_PRES_CHK_RB_CH0; Type-4 tag protocol's ReadBinary command on channel 0
-# 4 NFA_RW_PRES_CHK_RB_CH3; Type-4 tag protocol's ReadBinary command on channel 3
-PRESENCE_CHECK_ALGORITHM=1