summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x[-rw-r--r--]device.mk9
-rwxr-xr-xnfc/libnfc-brcm-20795a10.conf57
-rwxr-xr-xnfc/libnfc-brcm.conf254
-rwxr-xr-x[-rw-r--r--]ueventd.shamu.rc2
4 files changed, 321 insertions, 1 deletions
diff --git a/device.mk b/device.mk
index d40296f0..854f68cb 100644..100755
--- a/device.mk
+++ b/device.mk
@@ -222,6 +222,15 @@ PRODUCT_PACKAGES += \
NfcNci \
Tag
+PRODUCT_COPY_FILES += \
+ frameworks/native/data/etc/com.android.nfc_extras.xml:system/etc/permissions/com.android.nfc_extras.xml \
+ frameworks/native/data/etc/android.hardware.nfc.xml:system/etc/permissions/android.hardware.nfc.xml \
+ frameworks/native/data/etc/android.hardware.nfc.hce.xml:system/etc/permissions/android.hardware.nfc.hce.xml \
+ device/moto/shamu/nfc/libnfc-brcm.conf:system/etc/libnfc-brcm.conf \
+ device/moto/shamu/nfc/libnfc-brcm-20795a10.conf:system/etc/libnfc-brcm-20795a10.conf
+
+$(call inherit-product-if-exists, vendor/broadcom/nfc/Firmware.mk)
+
# setup dalvik vm configs.
$(call inherit-product, frameworks/native/build/phone-xhdpi-2048-dalvik-heap.mk)
diff --git a/nfc/libnfc-brcm-20795a10.conf b/nfc/libnfc-brcm-20795a10.conf
new file mode 100755
index 00000000..a37c3119
--- /dev/null
+++ b/nfc/libnfc-brcm-20795a10.conf
@@ -0,0 +1,57 @@
+###############################################################################
+# Firmware patch file
+# If the value is not set then patch download is disabled.
+FW_PATCH="/vendor/firmware/bcm20795_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=""
+
+###############################################################################
+# 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 - during LPTD tuning the following parameters are changed
+# byte[13 - 16] = vector threshold
+# byte[17 - 20] = upper power threshold
+# byte[21 - 24] = lower power threshold
+# byte[25] = threshold mode (0=vector, 4=power, 8= vector AND power, c = vector OR power)
+# byte[83] = tuning mode (1 = enable LPTD diagnostics for tuning, 4= Enable statistics command, 5 = both)
+# By default, LPTD is enabled and default settings are used.
+# 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23x24x25 26 27 28x29x30 31 32x33x34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79x80x81 82 83 84 85 86 87 88 89 90 91 92 93
+#LPTD_CFG={66:B9:64:01:00:FF:FF:40:00:8B:13:00:10:00:04:00:00:00:00:03:00:00:00:03:00:0C:00:04:00:00:00:00:03:00:00:00:03:00:0C:00:00:0D:00:00:00:00:00:00:00:00:00:00:33:23:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:03:00:02:53:3B:0F:00:00:00:00:00:00:00:00:00:00:00:00:04:00:00:00:0E:00:00:00}
+LPTD_CFG={03:B9:01:00}
+
+###############################################################################
+# Startup Configuration (256 bytes maximum)
+#
+# This is applied at stack startup.
+NFA_DM_START_UP_CFG={71:80:01:01:B0:05:01:03:03:03:08:B5:03:01:03:FF:C9:0D:24:00:00:00:01:00:BB:00:E4:00:0A:01:02:D6:0D:00:02:00:00:00:00:00:01:00:01:5A:00:8A:B2:02:E8:03:C8:1E:06:1F:00:0A:02:30:00:04:24:00:1C:00:75:00:77:00:76:00:1C:00:03:00:0A:00:56:01:00:00:40:04:D7:01:03:DD:14:00:00:00:0E:22:48:48:06:04:83:C2:00:17:27:0A:67:20:00:52:20:CA:05:00:00:00:00:08}
+
+###############################################################################
+# 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:00:00:04:40:4B:4C:00}
+
+###############################################################################
+# 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
new file mode 100755
index 00000000..ec1077c6
--- /dev/null
+++ b/nfc/libnfc-brcm.conf
@@ -0,0 +1,254 @@
+###############################################################################
+# Application options
+APPL_TRACE_LEVEL=0xFF
+PROTOCOL_TRACE_LEVEL=0xFFFFFFFF
+
+###############################################################################
+# 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"
+
+###############################################################################
+# 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=50
+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
+
+###############################################################################
+# Device Manager Config
+#
+# If NFA_DM_CFG is not provided, stack default settings are
+# used (see nfa_dm_cfg.c). They are as follows:
+# 0 (FALSE) Automatic NDEF detection when background polling
+# 0 (FALSE) Automatic NDEF read when background polling
+#
+#NFA_DM_CFG={00:00}
+
+###############################################################################
+# Default poll duration (in ms)
+# The defualt is 500ms if not set (see nfc_target.h)
+#NFA_DM_DISC_DURATION_POLL=500
+
+###############################################################################
+# 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}
+
+###############################################################################
+# 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 an SE, this value can be reduced
+# so that the stack will not wait any longer than necessary. It can be set to
+# 0 to disable EE and HCI sub-systems (i.e. if there are no SE on the system).
+# Note, if set to 0, the ACTIVE_SE setting should also be set to 0.
+NFA_MAX_EE_SUPPORTED=0
+
+###############################################################################
+# 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). This can be set to 0 if there are no SE on the
+# system in order to skip SE initialization.
+ACTIVE_SE=0
+
+###############################################################################
+# 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
+
+###############################################################################
+# 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_A 0x01
+# NFA_TECHNOLOGY_MASK_B 0x02
+# NFA_TECHNOLOGY_MASK_F 0x04
+# NFA_TECHNOLOGY_MASK_ISO15693 0x08
+# NFA_TECHNOLOGY_MASK_B_PRIME 0x10
+# NFA_TECHNOLOGY_MASK_KOVIO 0x20
+# NFA_TECHNOLOGY_MASK_A_ACTIVE 0x40
+# NFA_TECHNOLOGY_MASK_F_ACTIVE 0x80
+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
+
+###############################################################################
+# 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
+
+###############################################################################
+# 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
+
+###############################################################################
+# 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
+# BCMI2CNFC_ADDRESS=0
+
+###############################################################################
+# 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
+
+###############################################################################
+# Configuration for the RF discovery frequency for each technology. The values mean
+# frequency for NFC Technology A
+# Technology B
+# Technology F
+# Proprietary Technology/15693
+# Proprietary Technology/B-Prime
+# Proprietary Technology/Kovio
+# Technology A active mode
+# Technology F active mode
+#POLL_FREQUENCY={01:01:01:01:01:01:01:01}
+
+###############################################################################
+# Define the following variables to override the NFC stack's crystal
+# frequency selection algorithm.
+#XTAL_HARDWARE_ID=0x20791000: Controller's hardware ID.
+#XTAL_FREQUENCY=26000: Controller's crystal frequency.
+#XTAL_FREQ_INDEX=5: Controller's crystal frequency index.
+
+###############################################################################
+# 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
+
diff --git a/ueventd.shamu.rc b/ueventd.shamu.rc
index 9088a3f6..2104b32f 100644..100755
--- a/ueventd.shamu.rc
+++ b/ueventd.shamu.rc
@@ -49,7 +49,7 @@
/dev/qseecom 0660 system drmrpc
/dev/video32 0660 system camera
/dev/video33 0660 system camera
-/dev/bcm2079x 0660 nfc nfc
+/dev/bcm2079x-i2c 0660 nfc nfc
/dev/jpeg0 0660 system camera
/dev/jpeg1 0660 system camera
/dev/jpeg2 0660 system camera