Add support for target-customized NFC stack configuration

This patch allows inclusion of target-customized configuration
of NFC stack.

The target-specific configuration will be stored in a header file,
outside of AOSP. To have it icluded, define TARGET_HAS_NFC_CUSTOM_CONFIG
macro and export your header file using BUILD_COPY_HEADERS macro.

Change-Id: Ifa2d08c2ae8860c3f0690a04c517025892bd4c16
Author: Sebastian Niciarz <sebastian.niciarz@intel.com>
Signed-off-by: Sebastian Niciarz <sebastian.niciarz@intel.com>
Singed-off-by: Shuo Gao <shuo.gao@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 23071
diff --git a/Android.mk b/Android.mk
index b45f78b..bed9e07 100644
--- a/Android.mk
+++ b/Android.mk
@@ -106,6 +106,11 @@
 
 LOCAL_CFLAGS += -DNXP_MESSAGING -DANDROID -DNFC_TIMER_CONTEXT -fno-strict-aliasing
 
+ifeq ($(TARGET_HAS_NFC_CUSTOM_CONFIG),true)
+LOCAL_CFLAGS += -DNFC_CUSTOM_CONFIG_INCLUDE
+LOCAL_CFLAGS += -I$(TARGET_OUT_HEADERS)/libnfc-nxp
+endif
+
 # Uncomment for Chipset command/responses
 # Or use "setprop debug.nfc.LOW_LEVEL_TRACES" at run-time
 # LOCAL_CFLAGS += -DLOW_LEVEL_TRACES
diff --git a/inc/nfc_custom_config.h b/inc/nfc_custom_config_example.h
similarity index 89%
rename from inc/nfc_custom_config.h
rename to inc/nfc_custom_config_example.h
index 0b4455a..d400bcc 100644
--- a/inc/nfc_custom_config.h
+++ b/inc/nfc_custom_config_example.h
@@ -20,7 +20,7 @@
 * \brief HAL Custom Configurations
 *
 *
-* \note This is the configuration header file of the HAL 4.0. custom configurable 
+* \note This is the configuration header file of the HAL 4.0. custom configurable
 *       parameters of the HAL 4.0 are provided in this file
 *
 * Project: NFC-FRI-1.1 / HAL4.0
@@ -39,7 +39,7 @@
 /*@}*/
 
 
-/** 
+/**
 *  \name Hal
 *
 * File: \ref nfc_custom_config.h
@@ -60,15 +60,15 @@
 /**< Default Session ID for Initialisation */
 #define DEFAULT_SESSION "NXP-NFC2"
 
-/** Resolution value for the timer, here the 
+/** Resolution value for the timer, here the
     timer resolution is 100 milliseconds */
 #define TIMER_RESOLUTION                100U
 
-/**< Defines connection time out value for LLC timer, 
+/**< Defines connection time out value for LLC timer,
     500 is in milliseconds */
 #define LINK_CONNECTION_TIMEOUT         500U
 
-/**< Defines guard time out value for LLC timer, 
+/**< Defines guard time out value for LLC timer,
     250 is in milliseconds */
 #define LINK_GUARD_TIMEOUT              250U
 
@@ -76,14 +76,14 @@
  * Initialisation */
 
 
-/* PLEASE NOTE: This Macro should be only enabled if there is a SMART_MX 
+/* PLEASE NOTE: This Macro should be only enabled if there is a SMART_MX
  * Chip attached to the PN544.
  */
 /* #define NXP_HAL_ENABLE_SMX */
 
 
 
-/* PLEASE NOTE: Kindly change the DEFAULT_SESSION Macro for each of the 
+/* PLEASE NOTE: Kindly change the DEFAULT_SESSION Macro for each of the
  * configuration change done for the below Macros
  */
 
@@ -108,12 +108,12 @@
 
 #define NFC_DEV_HWCONF_DEFAULT          0xBCU
 
-/**<  TX LDO Configuration 
+/**<  TX LDO Configuration
        0x00 -> 00b     3.0 V,
        0x01 -> 01b     3.0 V,
        0x02 -> 10b     2.7 V,
        0x03 -> 11b     3.3 V,
-      
+
       */
 #define NXP_DEFAULT_TX_LDO              0x00U
 
@@ -134,17 +134,17 @@
 #define NXP_UICC_BIT_RATE               0x08U
 
 /**<  Indicates PN544 Power Modes Configuration for the NFC Device,
-      0x00U -> PN544 stays in active bat mode 
+      0x00U -> PN544 stays in active bat mode
                (except when generating RF field)
-      0x01U -> PN544 goes in standby when possible otherwise 
+      0x01U -> PN544 goes in standby when possible otherwise
                stays in active bat mode
-      0x02U -> PN544 goes in idle mode as soon as it can 
+      0x02U -> PN544 goes in idle mode as soon as it can
                (otherwise it is in active bat except when generating RF field)
-      0x03U -> PN544 goes in standby when possible otherwise goes in idle mode 
-               as soon as it can (otherwise it is in active bat except when 
+      0x03U -> PN544 goes in standby when possible otherwise goes in idle mode
+               as soon as it can (otherwise it is in active bat except when
                generating RF field)
       */
-	  
+
 #define NXP_SYSTEM_PWR_STATUS           0x01U
 
 
@@ -169,10 +169,10 @@
 
 
 /* Reset the Default values of Host Link Timers */
-/* Macro to Enable the Host Side Link Timeout Configuration 
+/* Macro to Enable the Host Side Link Timeout Configuration
  * 0x00 ----> Default Pre-defined Configuration;
  * 0x01 ----> Update only the Host Link Guard Timeout Configuration;
- * 0x03 ----> Update Both the Host Link Guard Timeout 
+ * 0x03 ----> Update Both the Host Link Guard Timeout
               and ACK Timeout Configuration;
  */
 #define HOST_LINK_TIMEOUT              0x00U
@@ -184,7 +184,7 @@
 #define NXP_NFC_LINK_ACK_CFG_DEFAULT   0x0005U
 
 
-/* Macro to Enable the Interface Character Timeout Configuration 
+/* Macro to Enable the Interface Character Timeout Configuration
  * 0x00 ----> Default Pre-defined Configuration;
  * 0x01 ----> Update the IFC Timeout Default Configuration;
  */
@@ -198,4 +198,3 @@
 
 
 #endif /* NFC_CUSTOM_CONFIG_H */
-