[SINGLE_BINARY] : Single binary Implementation.
diff --git a/Android.bp b/Android.bp
index 803fefd..746ecad 100644
--- a/Android.bp
+++ b/Android.bp
@@ -12,6 +12,7 @@
         "halimpl/pn54x/tml/*.c",
         "halimpl/pn54x/utils/*.c",
         "halimpl/pn54x/utils/*.cpp",
+        "halimpl/pn54x/configs/*.cpp",
         "halimpl/pn54x/nfc_nci.c"
     ],
     shared_libs: [
@@ -31,6 +32,7 @@
         "halimpl/pn54x/self-test",
         "halimpl/pn54x/tml",
         "halimpl/pn54x/utils",
+        "halimpl/pn54x/configs",
         "src/hal/include",
         "src/hal/int",
         "src/nfc/include",
diff --git a/halimpl/pn54x/common/phNfcStatus.h b/halimpl/pn54x/common/phNfcStatus.h
index d9be5c4..4af591f 100644
--- a/halimpl/pn54x/common/phNfcStatus.h
+++ b/halimpl/pn54x/common/phNfcStatus.h
@@ -299,8 +299,6 @@
 /* No registry node matches the specified input data. */
 #define NFCSTATUS_NODE_NOT_FOUND (0x0017)
 
-#if (NFC_NXP_ESE == TRUE)
-
 #define NFCSTATUS_SMX_SPI_STATE (0x00F0)
 
 /* The current module is free ; one might use it */
@@ -312,11 +310,9 @@
 /* The current module is free ; one might use it */
 #define NFCSTATUS_NFCC_DWNLD_STATE (0x00F4)
 
-#else
 /* The current module is busy ; one might retry later */
 #define NFCSTATUS_SMX_BAD_STATE (0x00F0)
 
-#endif
 
 /* The Abort mechanism has failed for unexpected reason: user can try again*/
 #define NFCSTATUS_ABORT_FAILED (0x00F2)
diff --git a/halimpl/pn54x/common/phNfcTypes.h b/halimpl/pn54x/common/phNfcTypes.h
index bd8b255..3a0baf9 100644
--- a/halimpl/pn54x/common/phNfcTypes.h
+++ b/halimpl/pn54x/common/phNfcTypes.h
@@ -23,6 +23,7 @@
 #include <stdlib.h>
 #include <unistd.h>
 #include <stdbool.h>
+#include "Nxp_Features.h"
 
 #ifndef true
 #define true (0x01) /* Logical True Value */
@@ -304,7 +305,7 @@
                        */
   uint8_t bWordCount;  /* Number of words to be read or written */
 } phNfc_sTransceiveInfo_t;
-#if ((NFC_NXP_ESE == TRUE) && (NXP_EXTNS == TRUE))
+#if (NXP_EXTNS == TRUE)
 typedef enum p61_access_state {
   P61_STATE_INVALID = 0x0000,
   P61_STATE_IDLE = 0x0100,         /* p61 is free to use */
diff --git a/halimpl/pn54x/configs/NxpNfcCapability.cpp b/halimpl/pn54x/configs/NxpNfcCapability.cpp
new file mode 100644
index 0000000..7a0f6cc
--- /dev/null
+++ b/halimpl/pn54x/configs/NxpNfcCapability.cpp
@@ -0,0 +1,84 @@
+/******************************************************************************
+ *
+ *  Copyright (C) 2015 NXP Semiconductors
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ ******************************************************************************/
+#include "NxpNfcCapability.h"
+#include <phNxpLog.h>
+
+capability* capability::instance = NULL;
+tNFC_chipType capability::chipType = pn80T;
+
+capability::capability(){}
+
+capability* capability::getInstance() {
+    if (NULL != instance) {
+        instance = new capability();
+    }
+    return instance;
+}
+
+tNFC_chipType capability::processChipType(uint8_t* init_rsp, uint16_t rsp_len) {
+    if(offsetHwVersion < rsp_len) {
+        ALOGD ("%s HwVersion : 0x%02x", __func__,init_rsp[offsetHwVersion]);
+        switch(init_rsp[offsetHwVersion]){
+
+        case 0x40 : //PN553 A0
+        case 0x41 : //PN553 B0
+            chipType = pn553;
+            break;
+
+        case 0x50 : //PN553 A0 + P73
+        case 0x51 : //PN553 B0 + P73
+            chipType = pn80T;
+            break;
+
+        case 0x98 :
+            chipType = pn551;
+            break;
+
+        case 0xA8 :
+            chipType = pn67T;
+            break;
+
+        case 0x28 :
+            chipType = pn548C2;
+            break;
+
+        case 0x18 :
+            chipType = pn66T;
+            break;
+
+        default :
+            chipType = pn80T;
+        }
+    }
+    else {
+        ALOGD ("%s Wrong rsp_len. Setting Default ChiptType pn80T",__func__);
+        chipType = pn80T;
+    }
+    return chipType;
+}
+
+extern "C" tNFC_chipType configChipType(uint8_t* init_rsp, uint16_t rsp_len) {
+    return pConfigFL->processChipType(init_rsp,rsp_len);
+}
+
+extern "C" tNFC_chipType getChipType() {
+    ALOGD ("%s", __FUNCTION__);
+    return capability::chipType;
+}
+
+
diff --git a/halimpl/pn54x/configs/NxpNfcCapability.h b/halimpl/pn54x/configs/NxpNfcCapability.h
new file mode 100644
index 0000000..1015484
--- /dev/null
+++ b/halimpl/pn54x/configs/NxpNfcCapability.h
@@ -0,0 +1,66 @@
+/******************************************************************************
+ *
+ *  Copyright (C) 2015 NXP Semiconductors
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ ******************************************************************************/
+#include "Nxp_Features.h"
+#ifndef __CAP_H__
+#define __CAP_H__
+#define pConfigFL       (capability::getInstance())
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*******************************************************************************
+**
+** Function         getChipType
+**
+** Description      Gets the chipType which is configured during bootup
+**
+** Parameters       none
+**
+** Returns          chipType
+*******************************************************************************/
+tNFC_chipType getChipType ();
+
+/*******************************************************************************
+**
+** Function         configChipType
+**
+** Description      Finds chiptType by processing buffer
+**
+** Parameters       buffer, buffer length
+**
+** Returns          chipType
+*******************************************************************************/
+tNFC_chipType configChipType(uint8_t* init_rsp, uint16_t rsp_len);
+#ifdef __cplusplus
+};
+
+class capability {
+private:
+    static capability* instance;
+    const uint16_t offsetHwVersion = 24;
+    capability();
+public:
+    static tNFC_chipType chipType;
+    static capability* getInstance();
+    tNFC_chipType processChipType(uint8_t* init_rsp, uint16_t rsp_len);
+};
+
+#endif
+
+#endif
+
diff --git a/halimpl/pn54x/dnld/phDnldNfc.c b/halimpl/pn54x/dnld/phDnldNfc.c
index b97c747..748e77d 100644
--- a/halimpl/pn54x/dnld/phDnldNfc.c
+++ b/halimpl/pn54x/dnld/phDnldNfc.c
@@ -29,9 +29,7 @@
     pFwLibHandle;    /* Global firmware lib handle used in this file only */
 uint16_t wMwVer = 0; /* Middleware version no */
 uint16_t wFwVer = 0; /* Firmware version no */
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 uint8_t gRecFWDwnld; /* flag set to true to indicate dummy FW download */
-#endif
 static pphDnldNfc_DlContext_t gpphDnldContext = NULL; /* Download contex */
 static pphDnldNfc_RspCb_t UserCb; /* Upper layer call back function */
 static void* UserCtxt;            /* Pointer to upper layer context */
@@ -250,18 +248,16 @@
       wStatus = PHNFCSTVAL(CID_NFC_DNLD, NFCSTATUS_BUSY);
     } else {
       if ((PHDNLDNFC_HWVER_MRA2_1 == bChipVer) ||
-          (PHDNLDNFC_HWVER_MRA2_2 == bChipVer)
-#if (NFC_NXP_CHIP_TYPE == PN551)
-          || (PHDNLDNFC_HWVER_PN551_MRA1_0 == bChipVer) ||
-          (PHDNLDNFC_HWVER_PN553_MRA1_0 == bChipVer)
-#elif(NFC_NXP_CHIP_TYPE == PN548C2)
-          || (PHDNLDNFC_HWVER_PN548AD_MRA1_0 == bChipVer)
-#elif(NFC_NXP_CHIP_TYPE == PN553 || NFC_NXP_CHIP_TYPE == PN557)
-          || (PHDNLDNFC_HWVER_PN553_MRA1_0 == bChipVer) ||
-          (PHDNLDNFC_HWVER_PN553_MRA1_0_UPDATED & bChipVer) ||
-	  (PHDNLDNFC_HWVER_PN557_MRA1_0 ==  bChipVer)
-#endif
-              ) {
+           (PHDNLDNFC_HWVER_MRA2_2 == bChipVer) ||
+           ((nfcFL.chipType == pn551) &&
+                   ((PHDNLDNFC_HWVER_PN551_MRA1_0 == bChipVer) ||
+           (PHDNLDNFC_HWVER_PN553_MRA1_0 == bChipVer))) ||
+            ((nfcFL.chipType == pn548C2) &&
+                    (PHDNLDNFC_HWVER_PN548AD_MRA1_0 == bChipVer)) ||
+            (((nfcFL.chipType == pn553) || (nfcFL.chipType == pn557)) &&
+               ((PHDNLDNFC_HWVER_PN553_MRA1_0 == bChipVer) ||
+            (PHDNLDNFC_HWVER_PN553_MRA1_0_UPDATED & bChipVer) ||
+            (PHDNLDNFC_HWVER_PN557_MRA1_0 == bChipVer)))) {
         (gpphDnldContext->FrameInp.Type) = phDnldNfc_ChkIntg;
       } else {
         (gpphDnldContext->FrameInp.Type) = phDnldNfc_FTNone;
@@ -761,13 +757,11 @@
   }
 
 /* load the library and get the image info pointer */
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-  if (gRecFWDwnld == true)
+  if ((nfcFL.chipType != pn547C2) && (gRecFWDwnld == true)) {
     wStatus = phDnldNfc_LoadRecoveryFW(pathName, &pImageInfo, &ImageInfoLen);
-  else
-/* else condition */
-#endif
+  } else {
     wStatus = phDnldNfc_LoadFW(pathName, &pImageInfo, &ImageInfoLen);
+  }
 
   NXPLOG_FWDNLD_D("FW Image Length - ImageInfoLen %d", ImageInfoLen);
   NXPLOG_FWDNLD_D("FW Image Info Pointer - pImageInfo %p", pImageInfo);
@@ -835,13 +829,14 @@
   /* if memory is not allocated then allocate memory for donwload context
    * structure */
   phDnldNfc_SetHwDevHandle();
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-  if (gRecFWDwnld == true)
-    wStatus =
-        phDnldNfc_LoadRecoveryFW(PLATFORM_LIB_PATH, &pImageInfo, &ImageInfoLen);
-  else
-#endif
-    wStatus = phDnldNfc_LoadFW(PLATFORM_LIB_PATH, &pImageInfo, &ImageInfoLen);
+  if ((nfcFL.chipType != pn547C2) && (gRecFWDwnld == true)) {
+      wStatus =
+              phDnldNfc_LoadRecoveryFW(PLATFORM_LIB_PATH,
+                      &pImageInfo, &ImageInfoLen);
+  } else {
+      wStatus = phDnldNfc_LoadFW(PLATFORM_LIB_PATH,
+              &pImageInfo, &ImageInfoLen);
+  }
   if ((pImageInfo == NULL) || (ImageInfoLen == 0)) {
     NXPLOG_FWDNLD_E(
         "Image extraction Failed - invalid imginfo or imginfolen!!");
@@ -894,13 +889,14 @@
   phDnldNfc_SetHwDevHandle();
 
 /* load the PKU image library */
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-  if (gRecFWDwnld == true)
-    wStatus =
-        phDnldNfc_LoadRecoveryFW(PKU_LIB_PATH, &pImageInfo, &ImageInfoLen);
-  else
-#endif
-    wStatus = phDnldNfc_LoadFW(PKU_LIB_PATH, &pImageInfo, &ImageInfoLen);
+  if ((nfcFL.chipType != pn547C2) && (gRecFWDwnld == true)) {
+      wStatus =
+              phDnldNfc_LoadRecoveryFW(PKU_LIB_PATH,
+                      &pImageInfo, &ImageInfoLen);
+  } else {
+      wStatus = phDnldNfc_LoadFW(PKU_LIB_PATH,
+              &pImageInfo, &ImageInfoLen);
+  }
   if ((pImageInfo == NULL) || (ImageInfoLen == 0)) {
     NXPLOG_FWDNLD_E(
         "Image extraction Failed - invalid imginfo or imginfolen!!");
@@ -972,17 +968,15 @@
   void* pImageInfo = NULL;
   void* pImageInfoLen = NULL;
   if (pathName == NULL) {
-#if (NFC_NXP_CHIP_TYPE == PN548C2)
-    pathName = "/system/vendor/firmware/libpn548ad_fw.so";
-#elif(NFC_NXP_CHIP_TYPE == PN551)
-    pathName = "/system/vendor/firmware/libpn551_fw.so";
-#elif(NFC_NXP_CHIP_TYPE == PN553)
-    pathName = "/system/vendor/firmware/libpn553_fw.so";
-#elif(NFC_NXP_CHIP_TYPE == PN557)
-    pathName = "/system/vendor/firmware/libpn557_fw.so";
-#else
-    pathName = "/system/vendor/firmware/libpn547_fw.so";
-#endif
+      if(nfcFL.chipType == pn548C2) {
+          pathName = "/system/vendor/firmware/libpn548ad_fw.so";
+      } else if(nfcFL.chipType == pn551) {
+          pathName = "/system/vendor/firmware/libpn551_fw.so";
+      } else if(nfcFL.chipType == pn553) {
+          pathName = "/system/vendor/firmware/libpn553_fw.so";
+      } else {
+          pathName = "/system/vendor/firmware/libpn547_fw.so";
+      }
   }
 
   /* check if the handle is not NULL then free the library */
@@ -1024,7 +1018,6 @@
   return NFCSTATUS_SUCCESS;
 }
 
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 /*******************************************************************************
 **
 ** Function         phDnldNfc_LoadRecoveryFW
@@ -1047,17 +1040,15 @@
 
   /* check for path name */
   if (pathName == NULL) {
-#if (NFC_NXP_CHIP_TYPE == PN548C2)
-    pathName = "/system/vendor/firmware/libpn548ad_fw.so";
-#elif(NFC_NXP_CHIP_TYPE == PN551)
-    pathName = "/system/vendor/firmware/libpn551_fw.so";
-#elif(NFC_NXP_CHIP_TYPE == PN553)
-    pathName = "/system/vendor/firmware/libpn553_fw.so";
-#elif(NFC_NXP_CHIP_TYPE == PN557)
-    pathName = "/system/vendor/firmware/libpn557_fw.so";
-#else
-    pathName = "/system/vendor/firmware/libpn547_fw.so";
-#endif
+      if(nfcFL.chipType == pn548C2) {
+          pathName = "/system/vendor/firmware/libpn548ad_fw.so";
+      } else if(nfcFL.chipType == pn551) {
+          pathName = "/system/vendor/firmware/libpn551_fw.so";
+      } else if(nfcFL.chipType == pn553) {
+          pathName = "/system/vendor/firmware/libpn553_fw.so";
+      } else {
+          pathName = "/system/vendor/firmware/libpn547_fw.so";
+      }
   }
   /* check if the handle is not NULL then free the library */
   if (pFwLibHandle != NULL) {
@@ -1096,7 +1087,6 @@
 
   return NFCSTATUS_SUCCESS;
 }
-#endif
 /*******************************************************************************
 **
 ** Function         phDnldNfc_UnloadFW
diff --git a/halimpl/pn54x/dnld/phDnldNfc.h b/halimpl/pn54x/dnld/phDnldNfc.h
index a849ae5..59bb756 100644
--- a/halimpl/pn54x/dnld/phDnldNfc.h
+++ b/halimpl/pn54x/dnld/phDnldNfc.h
@@ -134,10 +134,8 @@
 extern void phDnldNfc_CloseFwLibHandle(void);
 extern NFCSTATUS phDnldNfc_LoadFW(const char* pathName, uint8_t** pImgInfo,
                                   uint16_t* pImgInfoLen);
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 extern NFCSTATUS phDnldNfc_LoadRecoveryFW(const char* pathName,
                                           uint8_t** pImgInfo,
                                           uint16_t* pImgInfoLen);
-#endif
 extern NFCSTATUS phDnldNfc_UnloadFW(void);
 #endif /* PHDNLDNFC_H */
diff --git a/halimpl/pn54x/dnld/phDnldNfc_Internal.c b/halimpl/pn54x/dnld/phDnldNfc_Internal.c
index a989832..516489e 100644
--- a/halimpl/pn54x/dnld/phDnldNfc_Internal.c
+++ b/halimpl/pn54x/dnld/phDnldNfc_Internal.c
@@ -72,33 +72,6 @@
 #define PHDNLDNFC_USERDATA_EEPROM_OFFSET (0x003CU)
 /* 16 bits length of user data area */
 #define PHDNLDNFC_USERDATA_EEPROM_LEN (0x0DC0U)
-#else
-
-#if ((NFC_NXP_CHIP_TYPE == PN548C2))
-/* EEPROM offset and length value for PN548AD */
-/* 16 bits offset indicating user data area start location */
-#define PHDNLDNFC_USERDATA_EEPROM_OFFSET (0x02BCU)
-/* 16 bits length of user data area */
-#define PHDNLDNFC_USERDATA_EEPROM_LEN (0x0C00U)
-#elif(NFC_NXP_CHIP_TYPE == PN551)
-/* EEPROM offset and length value for PN551 */
-/* 16 bits offset indicating user data area start location */
-#define PHDNLDNFC_USERDATA_EEPROM_OFFSET (0x02BCU)
-/* 16 bits length of user data area */
-#define PHDNLDNFC_USERDATA_EEPROM_LEN (0x0C00U)
-#elif(NFC_NXP_CHIP_TYPE == PN553 || NFC_NXP_CHIP_TYPE == PN557)
-/* EEPROM offset and length value for PN553/PN557 */
-/* 16 bits offset indicating user data area start location */
-#define PHDNLDNFC_USERDATA_EEPROM_OFFSET (0x02BCU)
-/* 16 bits length of user data area */
-#define PHDNLDNFC_USERDATA_EEPROM_LEN (0x0BC0U)
-#else
-/* EEPROM offset and length value for PN547C2 */
-/* 16 bits offset indicating user data area start location */
-#define PHDNLDNFC_USERDATA_EEPROM_OFFSET (0x023CU)
-/* 16 bits length of user data area */
-#define PHDNLDNFC_USERDATA_EEPROM_LEN (0x0C80U)
-#endif
 
 #endif
 #define PH_LIBNFC_VEN_RESET_ON_DOWNLOAD_TIMEOUT (1)
@@ -715,13 +688,21 @@
       (pDlContext->tCmdRspFrameInfo.dwSendlength) += PHDNLDNFC_MIN_PLD_LEN;
     } else if (phDnldNfc_ChkIntg == (pDlContext->FrameInp.Type)) {
       (pDlContext->tCmdRspFrameInfo.dwSendlength) += PHDNLDNFC_MIN_PLD_LEN;
-
+#ifdef NXP_PN547C1_DOWNLOAD
       wChkIntgVal = PHDNLDNFC_USERDATA_EEPROM_OFFSET;
+#else
+      wChkIntgVal = nfcFL.nfcMwFL._PHDNLDNFC_USERDATA_EEPROM_OFFSET;
+#endif
+
       memcpy(&(pDlContext->tCmdRspFrameInfo
                    .aFrameBuff[PHDNLDNFC_FRAME_RDDATA_OFFSET]),
              &wChkIntgVal, sizeof(wChkIntgVal));
 
+#ifdef NXP_PN547C1_DOWNLOAD
       wChkIntgVal = PHDNLDNFC_USERDATA_EEPROM_LEN;
+#else
+      wChkIntgVal = nfcFL.nfcMwFL._PHDNLDNFC_USERDATA_EEPROM_LEN;
+#endif
       memcpy(&(pDlContext->tCmdRspFrameInfo
                    .aFrameBuff[PHDNLDNFC_FRAME_RDDATA_OFFSET +
                                PHDNLDNFC_USERDATA_EEPROM_OFFSIZE]),
diff --git a/halimpl/pn54x/dnld/phNxpNciHal_Dnld.c b/halimpl/pn54x/dnld/phNxpNciHal_Dnld.c
index c6654da..2e9b30e 100644
--- a/halimpl/pn54x/dnld/phNxpNciHal_Dnld.c
+++ b/halimpl/pn54x/dnld/phNxpNciHal_Dnld.c
@@ -35,10 +35,8 @@
 /* External global variable to get FW version */
 extern uint16_t wFwVer;
 extern uint16_t wMwVer;
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 extern uint8_t
     gRecFWDwnld; /* flag  set to true to  indicate dummy FW download */
-#endif
 /* RF Configuration structure */
 typedef struct phLibNfc_IoctlSetRfConfig {
   uint8_t bNumOfParams;   /* Number of Rf configurable parameters to be set */
@@ -190,7 +188,6 @@
     phNxpNciHal_fw_dnld_get_sessn_state, phNxpNciHal_fw_dnld_get_version,
     phNxpNciHal_fw_dnld_log, phNxpNciHal_fw_dnld_chk_integrity, NULL};
 
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 /* Array of pointers to start dummy fw download seq */
 static NFCSTATUS (*phNxpNciHal_dummy_rec_dwnld_seqhandler[])(void* pContext,
                                                              NFCSTATUS status,
@@ -199,7 +196,6 @@
     phNxpNciHal_fw_dnld_get_sessn_state, phNxpNciHal_fw_dnld_get_version,
     phNxpNciHal_fw_dnld_log_read,        phNxpNciHal_fw_dnld_write,
     NULL};
-#endif
 /* Download Recovery Sequence */
 static NFCSTATUS (*phNxpNciHal_dwnld_rec_seqhandler[])(void* pContext,
                                                        NFCSTATUS status,
@@ -532,24 +528,21 @@
       bHwVer &= 0x0F; /* 0x0F is the mask to extract chip version */
 
       if ((PHDNLDNFC_HWVER_MRA2_1 == bHwVer) ||
-          (PHDNLDNFC_HWVER_MRA2_2 == bHwVer)
-#if (NFC_NXP_CHIP_TYPE == PN551)
-          || (PHDNLDNFC_HWVER_PN551_MRA1_0 == bHwVer) ||
-          (PHDNLDNFC_HWVER_PN553_MRA1_0 == bHwVer)
-#elif(NFC_NXP_CHIP_TYPE == PN548C2)
-          || (PHDNLDNFC_HWVER_PN548AD_MRA1_0 == bHwVer)
-#elif(NFC_NXP_CHIP_TYPE == PN553 || NFC_NXP_CHIP_TYPE == PN557)
-          || (PHDNLDNFC_HWVER_PN553_MRA1_0 == bHwVer ||
-              PHDNLDNFC_HWVER_PN553_MRA1_0_UPDATED & pRespBuff->pBuff[0])
-#endif
-              ) {
+              (PHDNLDNFC_HWVER_MRA2_2 == bHwVer) ||
+               ((nfcFL.chipType == pn551) &&
+                       ((PHDNLDNFC_HWVER_PN551_MRA1_0 == bHwVer) ||
+              (PHDNLDNFC_HWVER_PN553_MRA1_0 == bHwVer))) ||
+              ((nfcFL.chipType == pn548C2) &&
+                    (PHDNLDNFC_HWVER_PN548AD_MRA1_0 == bHwVer)) ||
+              (((nfcFL.chipType == pn553) || (nfcFL.chipType == pn557)) &&
+                     ((PHDNLDNFC_HWVER_PN553_MRA1_0 == bHwVer ||
+              PHDNLDNFC_HWVER_PN553_MRA1_0_UPDATED & pRespBuff->pBuff[0])))) {
         bExpectedLen = PHLIBNFC_IOCTL_DNLD_GETVERLEN_MRA2_1;
         (gphNxpNciHal_fw_IoctlCtx.bChipVer) = bHwVer;
-#if (NFC_NXP_CHIP_TYPE == PN553)
-        if (PHDNLDNFC_HWVER_PN553_MRA1_0_UPDATED & pRespBuff->pBuff[0]) {
-          (gphNxpNciHal_fw_IoctlCtx.bChipVer) = pRespBuff->pBuff[0];
+        if ((nfcFL.chipType == pn553) &&
+                (PHDNLDNFC_HWVER_PN553_MRA1_0_UPDATED & pRespBuff->pBuff[0])) {
+            (gphNxpNciHal_fw_IoctlCtx.bChipVer) = pRespBuff->pBuff[0];
         }
-#endif
 
       } else if ((bHwVer >= PHDNLDNFC_HWVER_MRA1_0) &&
                  (bHwVer <= PHDNLDNFC_HWVER_MRA2_0)) {
@@ -602,13 +595,13 @@
         wStatus = NFCSTATUS_SUCCESS;
 #if (PH_LIBNFC_ENABLE_FORCE_DOWNLOAD == 0)
         NXPLOG_FWDNLD_D("Version Already UpToDate!!\n");
-#if (NXP_NFCC_FORCE_FW_DOWNLOAD == true)
-        if ((gphNxpNciHal_fw_IoctlCtx.bForceDnld) == false) {
-          (gphNxpNciHal_fw_IoctlCtx.bSkipSeq) = true;
+        if ((nfcFL.nfccFL._NFCC_FORCE_FW_DOWNLOAD == true) &&
+                ((gphNxpNciHal_fw_IoctlCtx.bForceDnld) == false)) {
+            (gphNxpNciHal_fw_IoctlCtx.bSkipSeq) = true;
         }
-#else
-        (gphNxpNciHal_fw_IoctlCtx.bSkipSeq) = true;
-#endif
+        else {
+            (gphNxpNciHal_fw_IoctlCtx.bSkipSeq) = true;
+        }
 #else
         (gphNxpNciHal_fw_IoctlCtx.bForceDnld) = true;
 #endif
@@ -1014,11 +1007,9 @@
     NXPLOG_FWDNLD_E("phNxpNciHal_fw_dnld_write cb_data creation failed");
     return NFCSTATUS_FAILED;
   }
-#if (NXP_NFCC_FORCE_FW_DOWNLOAD == true)
-/* if(false == (gphNxpNciHal_fw_IoctlCtx.bForceDnld)) */
-#else
-  if (false == (gphNxpNciHal_fw_IoctlCtx.bForceDnld))
-#endif
+
+  if ((nfcFL.nfccFL._NFCC_FORCE_FW_DOWNLOAD == false) &&
+          (false == (gphNxpNciHal_fw_IoctlCtx.bForceDnld)))
   {
     NXPLOG_FWDNLD_D("phNxpNciHal_fw_dnld_write - Incrementing NumDnldTrig..");
     (gphNxpNciHal_fw_IoctlCtx.bDnldInitiated) = true;
@@ -1703,12 +1694,8 @@
 ** Returns          NFCSTATUS_SUCCESS if success
 **
 *******************************************************************************/
-#if (NXP_NFCC_FORCE_FW_DOWNLOAD == true)
 NFCSTATUS phNxpNciHal_fw_download_seq(uint8_t bClkSrcVal, uint8_t bClkFreqVal,
                                       uint8_t force_fwDnld_Req)
-#else
-NFCSTATUS phNxpNciHal_fw_download_seq(uint8_t bClkSrcVal, uint8_t bClkFreqVal)
-#endif
 {
   NFCSTATUS status = NFCSTATUS_FAILED;
   phDnldNfc_Buff_t pInfo;
@@ -1730,20 +1717,16 @@
   (gphNxpNciHal_fw_IoctlCtx.bClkSrcVal) = bClkSrcVal;
   (gphNxpNciHal_fw_IoctlCtx.bClkFreqVal) = bClkFreqVal;
 
-#if (NXP_NFCC_FORCE_FW_DOWNLOAD == true)
-  if (force_fwDnld_Req) {
+  if (nfcFL.nfccFL._NFCC_FORCE_FW_DOWNLOAD && force_fwDnld_Req) {
     (gphNxpNciHal_fw_IoctlCtx.bForceDnld) = true;
   }
-#endif
   /* Get firmware version */
   if (NFCSTATUS_SUCCESS == phDnldNfc_InitImgInfo()) {
     NXPLOG_FWDNLD_D("phDnldNfc_InitImgInfo:SUCCESS");
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-    if (gRecFWDwnld == true) {
+    if ((nfcFL.chipType != pn547C2) && (gRecFWDwnld == true)) {
       status =
           phNxpNciHal_fw_seq_handler(phNxpNciHal_dummy_rec_dwnld_seqhandler);
     } else
-#endif
     {
       status = phNxpNciHal_fw_seq_handler(phNxpNciHal_dwnld_seqhandler);
     }
@@ -1766,14 +1749,15 @@
 }
 
 static NFCSTATUS phLibNfc_VerifyCrcStatus(uint8_t bCrcStatus) {
-#if ((NFC_NXP_CHIP_TYPE == PN551) || (NFC_NXP_CHIP_TYPE == PN553)\
-    || (NFC_NXP_CHIP_TYPE == PN557))
-  uint8_t bBitPos = 1;
-  uint8_t bShiftVal = 2;
-#else
-  uint8_t bBitPos = 0;
-  uint8_t bShiftVal = 1;
-#endif
+    uint8_t bBitPos;
+    uint8_t bShiftVal;
+    if((nfcFL.chipType == pn551) || (nfcFL.chipType == pn553)) {
+        bBitPos = 1;
+        bShiftVal = 2;
+    } else {
+        bBitPos = 0;
+        bShiftVal = 1;
+    }
   NFCSTATUS wStatus = NFCSTATUS_SUCCESS;
   while (bBitPos < 7) {
     if (!(bCrcStatus & bShiftVal)) {
diff --git a/halimpl/pn54x/dnld/phNxpNciHal_Dnld.h b/halimpl/pn54x/dnld/phNxpNciHal_Dnld.h
index 1491072..dcd3c0d 100644
--- a/halimpl/pn54x/dnld/phNxpNciHal_Dnld.h
+++ b/halimpl/pn54x/dnld/phNxpNciHal_Dnld.h
@@ -19,11 +19,7 @@
 #include <phNfcTypes.h>
 #include <phNfcStatus.h>
 
-#if (NXP_NFCC_FORCE_FW_DOWNLOAD == true)
 NFCSTATUS phNxpNciHal_fw_download_seq(uint8_t bClkSrcVal, uint8_t bClkFreqVal,
                                       uint8_t force_fwDnld_Req);
-#else
-NFCSTATUS phNxpNciHal_fw_download_seq(uint8_t bClkSrcVal, uint8_t bClkFreqVal);
-#endif
 
 #endif /* _PHNXPNCIHAL_DNLD_H_ */
diff --git a/halimpl/pn54x/hal/phNxpNciHal.c b/halimpl/pn54x/hal/phNxpNciHal.c
index 052a602..3973216 100644
--- a/halimpl/pn54x/hal/phNxpNciHal.c
+++ b/halimpl/pn54x/hal/phNxpNciHal.c
@@ -37,29 +37,12 @@
 #endif
 #endif
 
-/* FW Mobile major number */
-#define FW_MOBILE_MAJOR_NUMBER_PN553 0x01
-#define FW_MOBILE_MAJOR_NUMBER_PN551 0x05
-#define FW_MOBILE_MAJOR_NUMBER_PN48AD 0x01
-#define FW_MOBILE_MAJOR_NUMBER_PN557 0x00
-
-#if (NFC_NXP_CHIP_TYPE == PN551)
-#define FW_MOBILE_MAJOR_NUMBER FW_MOBILE_MAJOR_NUMBER_PN551
-#elif(NFC_NXP_CHIP_TYPE == PN553)
-#define FW_MOBILE_MAJOR_NUMBER FW_MOBILE_MAJOR_NUMBER_PN553
-#elif(NFC_NXP_CHIP_TYPE == PN557)
-#define FW_MOBILE_MAJOR_NUMBER FW_MOBILE_MAJOR_NUMBER_PN553 /*Update during bring-up*/
-#else
-#define FW_MOBILE_MAJOR_NUMBER FW_MOBILE_MAJOR_NUMBER_PN48AD
-#endif
 
 /* Processing of ISO 15693 EOF */
 extern uint8_t icode_send_eof;
 extern uint8_t icode_detected;
 static uint8_t cmd_icode_eof[] = {0x00, 0x00, 0x00};
-#if (NXP_NFCC_I2C_READ_WRITE_IMPROVEMENT == true)
 static uint8_t read_failed_disable_nfc = false;
-#endif
 static uint8_t pwr_link_required = false;
 static uint8_t config_access = false;
 static uint8_t config_success = true;
@@ -80,12 +63,8 @@
 extern int phNxpNciHal_CheckFwRegFlashRequired(uint8_t* fw_update_req,
                                                uint8_t* rf_update_req);
 phNxpNci_getCfg_info_t* mGetCfg_info = NULL;
-#if (NXP_ESE_SVDD_SYNC == true)
 uint32_t gSvddSyncOff_Delay = 10;
-#endif
-#if (NXP_NFCC_FORCE_FW_DOWNLOAD == true)
 bool_t force_fw_download_req = false;
-#endif
 /* global variable to get FW version from NCI response*/
 uint32_t wFwVerRsp;
 /* External global variable to get FW version */
@@ -96,11 +75,9 @@
 extern int send_to_upper_kovio;
 extern int kovio_detected;
 extern int disable_kovio;
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 extern uint8_t
     gRecFWDwnld; /* flag  set to true to  indicate dummy FW download */
 static uint8_t gRecFwRetryCount;  // variable to hold dummy FW recovery count
-#endif
 static uint8_t write_unlocked_status = NFCSTATUS_SUCCESS;
 static uint8_t Rx_data[NCI_MAX_DATA_LEN];
 uint32_t timeoutTimerId = 0;
@@ -138,12 +115,12 @@
 static NFCSTATUS phNxpNciHal_set_Boot_Mode(uint8_t mode);
 NFCSTATUS phNxpNciHal_check_clock_config(void);
 NFCSTATUS phNxpNciHal_set_china_region_configs(void);
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 static NFCSTATUS phNxpNciHalRFConfigCmdRecSequence();
 static NFCSTATUS phNxpNciHal_CheckRFCmdRespStatus();
-#endif
 int check_config_parameter();
 static NFCSTATUS phNxpNciHal_uicc_baud_rate();
+
+//static tNfc_featureList phNxpNciHal_getFeatureList();
 /******************************************************************************
  * Function         phNxpNciHal_client_thread
  *
@@ -310,14 +287,16 @@
     /* Set the obtained device handle to download module */
     phDnldNfc_SetHwDevHandle();
     NXPLOG_NCIHAL_D("Calling Seq handler for FW Download \n");
-#if (NXP_NFCC_FORCE_FW_DOWNLOAD == true)
+if(nfcFL.nfccFL._NFCC_FORCE_FW_DOWNLOAD) {
     status = phNxpNciHal_fw_download_seq(nxpprofile_ctrl.bClkSrcVal,
                                          nxpprofile_ctrl.bClkFreqVal,
                                          force_fw_download_req);
-#else
+}
+else {
     status = phNxpNciHal_fw_download_seq(nxpprofile_ctrl.bClkSrcVal,
-                                         nxpprofile_ctrl.bClkFreqVal);
-#endif
+                                         nxpprofile_ctrl.bClkFreqVal,
+                                         false);
+}
     phDnldNfc_ReSetHwDevHandle();
     /* call read pending */
     wConfigStatus = phTmlNfc_Read(
@@ -359,7 +338,7 @@
 
   NXPLOG_NCIHAL_D("%s current_major_no = 0x%x", __func__, ufw_current_major_no);
 
-  if ( ufw_current_major_no == FW_MOBILE_MAJOR_NUMBER) {
+  if (ufw_current_major_no == nfcFL.nfcMwFL._FW_MOBILE_MAJOR_NUMBER) {
     status = NFCSTATUS_SUCCESS;
   } else if (ufw_current_major_no == sfw_infra_major_no) {
         if(rom_version == FW_MOBILE_ROM_VERSION_PN553 || rom_version == FW_MOBILE_ROM_VERSION_PN557) {
@@ -392,11 +371,9 @@
     }
   }
   }
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-  else if (gRecFWDwnld == true) {
+  else if ((nfcFL.chipType != pn547C2) && (gRecFWDwnld == true)) {
     status = NFCSTATUS_SUCCESS;
   }
-#endif
   else if (wFwVerRsp == 0) {
     NXPLOG_NCIHAL_E(
         "FW Version not received by NCI command >>> Force Firmware download");
@@ -684,8 +661,6 @@
   }
   /* reset config cache */
   resetNxpConfig();
-
-  /* initialize trace level */
   phNxpLog_InitializeLogLevel();
 
   /*Create the timer for extns write response*/
@@ -736,7 +711,6 @@
         "/dev/pn54x");
     strcpy((char*)nfc_dev_node, "/dev/pn54x");
   }
-
   /* Configure hardware link */
   nxpncihal_ctrl.gDrvCfg.nClientId = phDal4Nfc_msgget(0, 0600);
   nxpncihal_ctrl.gDrvCfg.nLinkType = ENUM_LINK_TYPE_I2C; /* For PN54X */
@@ -756,7 +730,6 @@
       nfc_dev_node = NULL;
     }
   }
-
   /* Create the client thread */
   pthread_attr_t attr;
   pthread_attr_init(&attr);
@@ -771,7 +744,6 @@
   }
 
   CONCURRENCY_UNLOCK();
-
   /* call read pending */
   status = phTmlNfc_Read(
       nxpncihal_ctrl.p_cmd_data, NCI_MAX_DATA_LEN,
@@ -851,7 +823,6 @@
   /* Report error status */
   (*nxpncihal_ctrl.p_nfc_stack_cback)(HAL_NFC_OPEN_CPLT_EVT,
                                       HAL_NFC_STATUS_FAILED);
-
   nxpncihal_ctrl.p_nfc_stack_cback = NULL;
   nxpncihal_ctrl.p_nfc_stack_data_cback = NULL;
   phNxpNciHal_cleanup_monitor();
@@ -869,22 +840,22 @@
  *
  ******************************************************************************/
 int phNxpNciHal_fw_mw_ver_check() {
-  NFCSTATUS status = NFCSTATUS_FAILED;
+    NFCSTATUS status = NFCSTATUS_FAILED;
 
-  if ((!(strcmp(COMPILATION_MW, "PN553")) && (rom_version == 0x11) &&
-       (fw_maj_ver == 0x01))) {
-    status = NFCSTATUS_SUCCESS;
-  } else if ((!(strcmp(COMPILATION_MW, "PN551")) && (rom_version == 0x10) &&
-              (fw_maj_ver == 0x05))) {
-    status = NFCSTATUS_SUCCESS;
-  } else if ((!(strcmp(COMPILATION_MW, "PN548C2")) && (rom_version == 0x10) &&
-              (fw_maj_ver == 0x01))) {
-    status = NFCSTATUS_SUCCESS;
-  } else if ((!(strcmp(COMPILATION_MW, "PN547C2")) && (rom_version == 0x08) &&
-              (fw_maj_ver == 0x01))) {
-    status = NFCSTATUS_SUCCESS;
-  }
-  return status;
+    if (((nfcFL.chipType == pn553)||(nfcFL.chipType == pn80T)) &&
+            (rom_version == 0x11) && (fw_maj_ver == 0x01)) {
+        status = NFCSTATUS_SUCCESS;
+    } else if (((nfcFL.chipType == pn551)||(nfcFL.chipType == pn67T)) &&
+            (rom_version == 0x10) && (fw_maj_ver == 0x05)) {
+        status = NFCSTATUS_SUCCESS;
+    } else if (((nfcFL.chipType == pn548C2)||(nfcFL.chipType == pn66T)) &&
+            (rom_version == 0x10) && (fw_maj_ver == 0x01)) {
+        status = NFCSTATUS_SUCCESS;
+    } else if (((nfcFL.chipType == pn547C2)||(nfcFL.chipType == pn65T)) &&
+            (rom_version == 0x08) && (fw_maj_ver == 0x01)) {
+        status = NFCSTATUS_SUCCESS;
+    }
+    return status;
 }
 /******************************************************************************
  * Function         phNxpNciHal_open_complete
@@ -1037,13 +1008,13 @@
     if (nxpncihal_ctrl.retry_cnt++ < MAX_RETRY_COUNT) {
       NXPLOG_NCIHAL_E(
           "write_unlocked failed - PN54X Maybe in Standby Mode - Retry");
-#if (NXP_NFCC_I2C_READ_WRITE_IMPROVEMENT == true)
-      /* 5ms delay to give NFCC wake up delay */
-      usleep(5000);
-#else
-      /* 1ms delay to give NFCC wake up delay */
-      usleep(1000);
-#endif
+      if(nfcFL.nfccFL._NFCC_I2C_READ_WRITE_IMPROVEMENT) {
+          /* 5ms delay to give NFCC wake up delay */
+          usleep(5000);
+      } else {
+          /* 1ms delay to give NFCC wake up delay */
+          usleep(1000);
+}
       goto retry;
     } else {
       NXPLOG_NCIHAL_E(
@@ -1131,17 +1102,17 @@
   if (nxpncihal_ctrl.read_retry_cnt == 1) {
     nxpncihal_ctrl.read_retry_cnt = 0;
   }
-#if (NXP_NFCC_I2C_READ_WRITE_IMPROVEMENT == true)
-  if (pInfo->wStatus == NFCSTATUS_READ_FAILED) {
-    if (nxpncihal_ctrl.p_nfc_stack_cback != NULL) {
-      read_failed_disable_nfc = true;
-      /* Send the event */
-      (*nxpncihal_ctrl.p_nfc_stack_cback)(HAL_NFC_ERROR_EVT,
-                                          HAL_NFC_STATUS_ERR_CMD_TIMEOUT);
-    }
-    return;
+  if (nfcFL.nfccFL._NFCC_I2C_READ_WRITE_IMPROVEMENT &&
+          (pInfo->wStatus == NFCSTATUS_READ_FAILED)) {
+      if (nxpncihal_ctrl.p_nfc_stack_cback != NULL) {
+          read_failed_disable_nfc = true;
+          /* Send the event */
+          (*nxpncihal_ctrl.p_nfc_stack_cback)(HAL_NFC_ERROR_EVT,
+                  HAL_NFC_STATUS_ERR_CMD_TIMEOUT);
+      }
+      return;
   }
-#endif
+
   if (pInfo->wStatus == NFCSTATUS_SUCCESS) {
     NXPLOG_NCIHAL_D("read successful status = 0x%x", pInfo->wStatus);
 
@@ -1275,16 +1246,13 @@
   long retlen = 0;
   unsigned long num = 0;
   phNxpNci_EEPROM_info_t mEEPROM_info = {.request_mode = 0};
-#if (NXP_NFCC_AID_MATCHING_PLATFORM_CONFIG == true)
   static uint8_t android_l_aid_matching_mode_on_cmd[] = {
       0x20, 0x02, 0x05, 0x01, 0xA0, 0x91, 0x01, 0x01};
-#endif
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
   /*initialize dummy FW recovery variables*/
-  gRecFwRetryCount = 0;
-  gRecFWDwnld = false;
-#endif
-
+  if(nfcFL.chipType != pn547C2) {
+      gRecFwRetryCount = 0;
+      gRecFWDwnld = false;
+  }
   if (nxpncihal_ctrl.halStatus != HAL_STATUS_OPEN) {
     return NFCSTATUS_FAILED;
   }
@@ -1303,15 +1271,14 @@
       buffer = NULL;
     }
     if (retry_core_init_cnt > 3) {
-#if (NXP_NFCC_I2C_READ_WRITE_IMPROVEMENT == true)
-      if (nxpncihal_ctrl.p_nfc_stack_cback != NULL) {
-        NXPLOG_NCIHAL_D("Posting Core Init Failed\n");
-        read_failed_disable_nfc = true;
-        (*nxpncihal_ctrl.p_nfc_stack_cback)(HAL_NFC_ERROR_EVT,
-                                            HAL_NFC_STATUS_ERR_CMD_TIMEOUT);
-      }
-#endif
-      return NFCSTATUS_FAILED;
+        if (nfcFL.nfccFL._NFCC_I2C_READ_WRITE_IMPROVEMENT &&
+                (nxpncihal_ctrl.p_nfc_stack_cback != NULL)) {
+            NXPLOG_NCIHAL_D("Posting Core Init Failed\n");
+            read_failed_disable_nfc = true;
+            (*nxpncihal_ctrl.p_nfc_stack_cback)(HAL_NFC_ERROR_EVT,
+                    HAL_NFC_STATUS_ERR_CMD_TIMEOUT);
+        }
+        return NFCSTATUS_FAILED;
     }
 
     status = phTmlNfc_IoCtl(phTmlNfc_e_ResetDevice);
@@ -1321,11 +1288,13 @@
       NXPLOG_NCIHAL_D("PN54X Reset - FAILED\n");
     }
 
-#if (NXP_NFCC_FORCE_NCI1_0_INIT == true)
-    status = phNxpNciHal_send_ext_cmd_ntf(sizeof(cmd_reset_nci), cmd_reset_nci);
-#else
-    status = phNxpNciHal_send_ext_cmd(sizeof(cmd_reset_nci), cmd_reset_nci);
-#endif
+    if(nfcFL.nfccFL._NFCC_FORCE_NCI1_0_INIT) {
+        status = phNxpNciHal_send_ext_cmd_ntf(sizeof(cmd_reset_nci), cmd_reset_nci);
+    }
+    else {
+        status = phNxpNciHal_send_ext_cmd(sizeof(cmd_reset_nci), cmd_reset_nci);
+    }
+
     if ((status != NFCSTATUS_SUCCESS) &&
         (nxpncihal_ctrl.retry_cnt >= MAX_RETRY_COUNT)) {
       NXPLOG_NCIHAL_E(
@@ -1393,17 +1362,18 @@
       goto retry_core_init;
     }
   }
-#if (NXP_ESE_SVDD_SYNC == true)
-  if (GetNxpNumValue(NAME_NXP_SVDD_SYNC_OFF_DELAY, (void*)&gSvddSyncOff_Delay,
-                     sizeof(gSvddSyncOff_Delay))) {
-    if (gSvddSyncOff_Delay > 20) gSvddSyncOff_Delay = 10;
-    NXPLOG_NCIHAL_E("NAME_NXP_SVDD_SYNC_OFF_DELAY success value = %d",
-                    gSvddSyncOff_Delay);
-  } else {
-    NXPLOG_NCIHAL_E("NAME_NXP_SVDD_SYNC_OFF_DELAY failed");
-    gSvddSyncOff_Delay = 10;
+
+  if(nfcFL.eseFL._ESE_SVDD_SYNC) {
+      if (GetNxpNumValue(NAME_NXP_SVDD_SYNC_OFF_DELAY, (void*)&gSvddSyncOff_Delay,
+              sizeof(gSvddSyncOff_Delay))) {
+          if (gSvddSyncOff_Delay > 20) gSvddSyncOff_Delay = 10;
+          NXPLOG_NCIHAL_E("NAME_NXP_SVDD_SYNC_OFF_DELAY success value = %d",
+                  gSvddSyncOff_Delay);
+      } else {
+          NXPLOG_NCIHAL_E("NAME_NXP_SVDD_SYNC_OFF_DELAY failed");
+          gSvddSyncOff_Delay = 10;
+      }
   }
-#endif
   config_access = false;
   phNxpNciHal_check_factory_reset();
 
@@ -1416,50 +1386,49 @@
 #endif
 
 
-#if (NFC_NXP_CHIP_TYPE != PN547C2 && (NXP_NFCC_ROUTING_BLOCK_BIT_PROP == true))
-  if (isNxpConfigModified() || (fw_dwnld_flag == 0x01)) {
-    uint8_t value;
-    retlen = 0;
-    if (GetNxpNumValue(NAME_NXP_PROP_BLACKLIST_ROUTING, (void*)&retlen,
-                       sizeof(retlen))) {
-      if (retlen == 0x00 || retlen == 0x01) {
-        value = (uint8_t)retlen;
-        mEEPROM_info.buffer = &value;
-        mEEPROM_info.bufflen = sizeof(value);
-        mEEPROM_info.request_type = EEPROM_PROP_ROUTING;
-        mEEPROM_info.request_mode = SET_EEPROM_DATA;
-        status = request_EEPROM(&mEEPROM_info);
+  if((nfcFL.chipType != pn547C2) && nfcFL.nfccFL._NFCC_ROUTING_BLOCK_BIT_PROP) {
+      if (isNxpConfigModified() || (fw_dwnld_flag == 0x01)) {
+          uint8_t value;
+          retlen = 0;
+          if (GetNxpNumValue(NAME_NXP_PROP_BLACKLIST_ROUTING,
+                  (void*)&retlen, sizeof(retlen))) {
+              if (retlen == 0x00 || retlen == 0x01) {
+                  value = (uint8_t)retlen;
+                  mEEPROM_info.buffer = &value;
+                  mEEPROM_info.bufflen = sizeof(value);
+                  mEEPROM_info.request_type = EEPROM_PROP_ROUTING;
+                  mEEPROM_info.request_mode = SET_EEPROM_DATA;
+                  status = request_EEPROM(&mEEPROM_info);
+              }
+          }
       }
-    }
-  }
-#endif
+}
 
-#if ((NFC_NXP_CHIP_TYPE != PN547C2) && \
-     (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME))
-  {
-    uint8_t resume_timeout_buf[NXP_WIREDMODE_RESUME_TIMEOUT_LEN];
-    mEEPROM_info.request_mode = GET_EEPROM_DATA;
-    NXPLOG_NCIHAL_D("Timeout value");
-    if (isNxpConfigModified() || (fw_dwnld_flag == 0x01)) {
-      NXPLOG_NCIHAL_D("Timeout value - 1");
-      if (GetNxpByteArrayValue(NAME_NXP_WIREDMODE_RESUME_TIMEOUT, (char*)buffer,
-                               bufflen, &retlen)) {
-        NXPLOG_NCIHAL_D("Time out value %x %x %x %x retlen=%ld", buffer[0],
-                        buffer[1], buffer[2], buffer[3], retlen);
-        if (retlen >= NXP_WIREDMODE_RESUME_TIMEOUT_LEN) {
-          memcpy(&resume_timeout_buf, buffer, NXP_STAG_TIMEOUT_BUF_LEN);
-          mEEPROM_info.request_mode = SET_EEPROM_DATA;
-        }
+  if((nfcFL.chipType != pn547C2) && (nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+          nfcFL.eseFL._ESE_WIRED_MODE_RESUME)) {
+      uint8_t resume_timeout_buf[NXP_WIREDMODE_RESUME_TIMEOUT_LEN];
+      mEEPROM_info.request_mode = GET_EEPROM_DATA;
+      NXPLOG_NCIHAL_D("Timeout value");
+      if (isNxpConfigModified() || (fw_dwnld_flag == 0x01)) {
+          NXPLOG_NCIHAL_D("Timeout value - 1");
+          if (GetNxpByteArrayValue(NAME_NXP_WIREDMODE_RESUME_TIMEOUT, (char*)buffer,
+                  bufflen, &retlen)) {
+              NXPLOG_NCIHAL_D("Time out value %x %x %x %x retlen=%ld", buffer[0],
+                      buffer[1], buffer[2], buffer[3], retlen);
+              if (retlen >= NXP_WIREDMODE_RESUME_TIMEOUT_LEN) {
+                  memcpy(&resume_timeout_buf, buffer, NXP_STAG_TIMEOUT_BUF_LEN);
+                  mEEPROM_info.request_mode = SET_EEPROM_DATA;
+              }
+          }
       }
-    }
-    mEEPROM_info.buffer = resume_timeout_buf;
-    mEEPROM_info.bufflen = sizeof(resume_timeout_buf);
-    mEEPROM_info.request_type = EEPROM_WIREDMODE_RESUME_TIMEOUT;
-    request_EEPROM(&mEEPROM_info);
+      mEEPROM_info.buffer = resume_timeout_buf;
+      mEEPROM_info.bufflen = sizeof(resume_timeout_buf);
+      mEEPROM_info.request_type = EEPROM_WIREDMODE_RESUME_TIMEOUT;
+      request_EEPROM(&mEEPROM_info);
   }
-#endif
 
-#if ((NXP_EXTNS == TRUE) && (NXP_ESE_POWER_MODE == true))
+#if (NXP_EXTNS == TRUE)
+  if(nfcFL.eseFL._ESE_POWER_MODE)
   {
     uint8_t value;
     retlen = 0;
@@ -1596,75 +1565,72 @@
     }
 
     retlen = 0;
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-    NXPLOG_NCIHAL_D("Performing TVDD Settings");
-    /*TVDD settings commented for PN553 bringup FW  */
-    isfound = GetNxpNumValue(NAME_NXP_EXT_TVDD_CFG, &num, sizeof(num));
-    if (isfound > 0) {
-      if (num == 1) {
-        isfound = GetNxpByteArrayValue(NAME_NXP_EXT_TVDD_CFG_1, (char*)buffer,
-                                       bufflen, &retlen);
-        if (retlen > 0) {
-          status = phNxpNciHal_send_ext_cmd(retlen, buffer);
-          if (status != NFCSTATUS_SUCCESS) {
-            NXPLOG_NCIHAL_E("EXT TVDD CFG 1 Settings failed");
-            retry_core_init_cnt++;
-            goto retry_core_init;
-          }
+    if(nfcFL.chipType != pn547C2) {
+        NXPLOG_NCIHAL_D("Performing TVDD Settings");
+        /*TVDD settings commented for PN553 bringup FW  */
+        isfound = GetNxpNumValue(NAME_NXP_EXT_TVDD_CFG, &num, sizeof(num));
+        if (isfound > 0) {
+            if (num == 1) {
+                isfound = GetNxpByteArrayValue(NAME_NXP_EXT_TVDD_CFG_1, (char*)buffer,
+                        bufflen, &retlen);
+                if (retlen > 0) {
+                    status = phNxpNciHal_send_ext_cmd(retlen, buffer);
+                    if (status != NFCSTATUS_SUCCESS) {
+                        NXPLOG_NCIHAL_E("EXT TVDD CFG 1 Settings failed");
+                        retry_core_init_cnt++;
+                        goto retry_core_init;
+                    }
+                }
+            } else if (num == 2) {
+                isfound = GetNxpByteArrayValue(NAME_NXP_EXT_TVDD_CFG_2, (char*)buffer,
+                        bufflen, &retlen);
+                if (retlen > 0) {
+                    status = phNxpNciHal_send_ext_cmd(retlen, buffer);
+                    if (status != NFCSTATUS_SUCCESS) {
+                        NXPLOG_NCIHAL_E("EXT TVDD CFG 2 Settings failed");
+                        retry_core_init_cnt++;
+                        goto retry_core_init;
+                    }
+                }
+            } else if (num == 3) {
+                isfound = GetNxpByteArrayValue(NAME_NXP_EXT_TVDD_CFG_3, (char*)buffer,
+                        bufflen, &retlen);
+                if (retlen > 0) {
+                    status = phNxpNciHal_send_ext_cmd(retlen, buffer);
+                    if (status != NFCSTATUS_SUCCESS) {
+                        NXPLOG_NCIHAL_E("EXT TVDD CFG 3 Settings failed");
+                        retry_core_init_cnt++;
+                        goto retry_core_init;
+                    }
+                }
+            } else {
+                NXPLOG_NCIHAL_E("Wrong Configuration Value %ld", num);
+            }
         }
-      } else if (num == 2) {
-        isfound = GetNxpByteArrayValue(NAME_NXP_EXT_TVDD_CFG_2, (char*)buffer,
-                                       bufflen, &retlen);
-        if (retlen > 0) {
-          status = phNxpNciHal_send_ext_cmd(retlen, buffer);
-          if (status != NFCSTATUS_SUCCESS) {
-            NXPLOG_NCIHAL_E("EXT TVDD CFG 2 Settings failed");
-            retry_core_init_cnt++;
-            goto retry_core_init;
-          }
-        }
-      } else if (num == 3) {
-        isfound = GetNxpByteArrayValue(NAME_NXP_EXT_TVDD_CFG_3, (char*)buffer,
-                                       bufflen, &retlen);
-        if (retlen > 0) {
-          status = phNxpNciHal_send_ext_cmd(retlen, buffer);
-          if (status != NFCSTATUS_SUCCESS) {
-            NXPLOG_NCIHAL_E("EXT TVDD CFG 3 Settings failed");
-            retry_core_init_cnt++;
-            goto retry_core_init;
-          }
-        }
-      } else {
-        NXPLOG_NCIHAL_E("Wrong Configuration Value %ld", num);
-      }
-    }
-#endif
+}
 
     retlen = 0;
 
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-    config_access = false;
-#endif
+    if(nfcFL.chipType != pn547C2) {
+        config_access = false;
+    }
     NXPLOG_NCIHAL_D("Performing RF Settings BLK 1");
     isfound = GetNxpByteArrayValue(NAME_NXP_RF_CONF_BLK_1, (char*)buffer,
                                    bufflen, &retlen);
     if (retlen > 0) {
       status = phNxpNciHal_send_ext_cmd(retlen, buffer);
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-      if (status == NFCSTATUS_SUCCESS) {
-        status = phNxpNciHal_CheckRFCmdRespStatus();
-        /*STATUS INVALID PARAM 0x09*/
-        if (status == 0x09) {
-          phNxpNciHalRFConfigCmdRecSequence();
+      if ((nfcFL.chipType != pn547C2) && (status == NFCSTATUS_SUCCESS)) {
+          status = phNxpNciHal_CheckRFCmdRespStatus();
+          /*STATUS INVALID PARAM 0x09*/
+          if (status == 0x09) {
+              phNxpNciHalRFConfigCmdRecSequence();
+              retry_core_init_cnt++;
+              goto retry_core_init;
+          }
+      } else if (status != NFCSTATUS_SUCCESS) {
+          NXPLOG_NCIHAL_E("RF Settings BLK 1 failed");
           retry_core_init_cnt++;
           goto retry_core_init;
-        }
-      } else
-#endif
-          if (status != NFCSTATUS_SUCCESS) {
-        NXPLOG_NCIHAL_E("RF Settings BLK 1 failed");
-        retry_core_init_cnt++;
-        goto retry_core_init;
       }
     }
     retlen = 0;
@@ -1674,18 +1640,15 @@
                                    bufflen, &retlen);
     if (retlen > 0) {
       status = phNxpNciHal_send_ext_cmd(retlen, buffer);
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-      if (status == NFCSTATUS_SUCCESS) {
-        status = phNxpNciHal_CheckRFCmdRespStatus();
-        /*STATUS INVALID PARAM 0x09*/
-        if (status == 0x09) {
-          phNxpNciHalRFConfigCmdRecSequence();
-          retry_core_init_cnt++;
-          goto retry_core_init;
-        }
-      } else
-#endif
-          if (status != NFCSTATUS_SUCCESS) {
+      if ((nfcFL.chipType != pn547C2) && (status == NFCSTATUS_SUCCESS)) {
+          status = phNxpNciHal_CheckRFCmdRespStatus();
+          /*STATUS INVALID PARAM 0x09*/
+          if (status == 0x09) {
+              phNxpNciHalRFConfigCmdRecSequence();
+              retry_core_init_cnt++;
+              goto retry_core_init;
+          }
+      } else if (status != NFCSTATUS_SUCCESS) {
         NXPLOG_NCIHAL_E("RF Settings BLK 2 failed");
         retry_core_init_cnt++;
         goto retry_core_init;
@@ -1698,21 +1661,18 @@
                                    bufflen, &retlen);
     if (retlen > 0) {
       status = phNxpNciHal_send_ext_cmd(retlen, buffer);
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-      if (status == NFCSTATUS_SUCCESS) {
-        status = phNxpNciHal_CheckRFCmdRespStatus();
-        /*STATUS INVALID PARAM 0x09*/
-        if (status == 0x09) {
-          phNxpNciHalRFConfigCmdRecSequence();
+      if ((nfcFL.chipType != pn547C2) && (status == NFCSTATUS_SUCCESS)) {
+          status = phNxpNciHal_CheckRFCmdRespStatus();
+          /*STATUS INVALID PARAM 0x09*/
+          if (status == 0x09) {
+              phNxpNciHalRFConfigCmdRecSequence();
+              retry_core_init_cnt++;
+              goto retry_core_init;
+          }
+      } else if (status != NFCSTATUS_SUCCESS) {
+          NXPLOG_NCIHAL_E("RF Settings BLK 3 failed");
           retry_core_init_cnt++;
           goto retry_core_init;
-        }
-      } else
-#endif
-          if (status != NFCSTATUS_SUCCESS) {
-        NXPLOG_NCIHAL_E("RF Settings BLK 3 failed");
-        retry_core_init_cnt++;
-        goto retry_core_init;
       }
     }
     retlen = 0;
@@ -1722,21 +1682,18 @@
                                    bufflen, &retlen);
     if (retlen > 0) {
       status = phNxpNciHal_send_ext_cmd(retlen, buffer);
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-      if (status == NFCSTATUS_SUCCESS) {
-        status = phNxpNciHal_CheckRFCmdRespStatus();
-        /*STATUS INVALID PARAM 0x09*/
-        if (status == 0x09) {
-          phNxpNciHalRFConfigCmdRecSequence();
+      if ((nfcFL.chipType != pn547C2) && (status == NFCSTATUS_SUCCESS)) {
+          status = phNxpNciHal_CheckRFCmdRespStatus();
+          /*STATUS INVALID PARAM 0x09*/
+          if (status == 0x09) {
+              phNxpNciHalRFConfigCmdRecSequence();
+              retry_core_init_cnt++;
+              goto retry_core_init;
+          }
+      } else if (status != NFCSTATUS_SUCCESS) {
+          NXPLOG_NCIHAL_E("RF Settings BLK 4 failed");
           retry_core_init_cnt++;
           goto retry_core_init;
-        }
-      } else
-#endif
-          if (status != NFCSTATUS_SUCCESS) {
-        NXPLOG_NCIHAL_E("RF Settings BLK 4 failed");
-        retry_core_init_cnt++;
-        goto retry_core_init;
       }
     }
     retlen = 0;
@@ -1746,21 +1703,18 @@
                                    bufflen, &retlen);
     if (retlen > 0) {
       status = phNxpNciHal_send_ext_cmd(retlen, buffer);
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-      if (status == NFCSTATUS_SUCCESS) {
-        status = phNxpNciHal_CheckRFCmdRespStatus();
-        /*STATUS INVALID PARAM 0x09*/
-        if (status == 0x09) {
-          phNxpNciHalRFConfigCmdRecSequence();
+      if ((nfcFL.chipType != pn547C2) && (status == NFCSTATUS_SUCCESS)) {
+          status = phNxpNciHal_CheckRFCmdRespStatus();
+          /*STATUS INVALID PARAM 0x09*/
+          if (status == 0x09) {
+              phNxpNciHalRFConfigCmdRecSequence();
+              retry_core_init_cnt++;
+              goto retry_core_init;
+          }
+      } else if (status != NFCSTATUS_SUCCESS) {
+          NXPLOG_NCIHAL_E("RF Settings BLK 5 failed");
           retry_core_init_cnt++;
           goto retry_core_init;
-        }
-      } else
-#endif
-          if (status != NFCSTATUS_SUCCESS) {
-        NXPLOG_NCIHAL_E("RF Settings BLK 5 failed");
-        retry_core_init_cnt++;
-        goto retry_core_init;
       }
     }
     retlen = 0;
@@ -1770,27 +1724,25 @@
                                    bufflen, &retlen);
     if (retlen > 0) {
       status = phNxpNciHal_send_ext_cmd(retlen, buffer);
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-      if (status == NFCSTATUS_SUCCESS) {
-        status = phNxpNciHal_CheckRFCmdRespStatus();
-        /*STATUS INVALID PARAM 0x09*/
-        if (status == 0x09) {
-          phNxpNciHalRFConfigCmdRecSequence();
+      if ((nfcFL.chipType != pn547C2) && (status == NFCSTATUS_SUCCESS)) {
+          status = phNxpNciHal_CheckRFCmdRespStatus();
+          /*STATUS INVALID PARAM 0x09*/
+          if (status == 0x09) {
+              phNxpNciHalRFConfigCmdRecSequence();
+              retry_core_init_cnt++;
+              goto retry_core_init;
+          }
+      } else if (status != NFCSTATUS_SUCCESS) {
+          NXPLOG_NCIHAL_E("RF Settings BLK 6 failed");
           retry_core_init_cnt++;
           goto retry_core_init;
-        }
-      } else
-#endif
-          if (status != NFCSTATUS_SUCCESS) {
-        NXPLOG_NCIHAL_E("RF Settings BLK 6 failed");
-        retry_core_init_cnt++;
-        goto retry_core_init;
       }
     }
     retlen = 0;
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-    config_access = true;
-#endif
+    if (nfcFL.chipType != pn547C2) {
+        config_access = true;
+    }
+
     NXPLOG_NCIHAL_D("Performing NAME_NXP_CORE_CONF_EXTN Settings");
     isfound = GetNxpByteArrayValue(NAME_NXP_CORE_CONF_EXTN, (char*)buffer,
                                    bufflen, &retlen);
@@ -1804,52 +1756,52 @@
       }
     }
 
-#if (NFC_NXP_ESE_ETSI12_PROP_INIT == true)
-    uint8_t swp_info_buff[2];
-    uint8_t swp_intf_status = 0x00;
-    uint8_t swp1A_intf_status = 0x00;
-    NFCSTATUS status = NFCSTATUS_FAILED;
-    phNxpNci_EEPROM_info_t swp_intf_info;
+    if(nfcFL.eseFL._ESE_ETSI12_PROP_INIT) {
+        uint8_t swp_info_buff[2];
+        uint8_t swp_intf_status = 0x00;
+        uint8_t swp1A_intf_status = 0x00;
+        NFCSTATUS status = NFCSTATUS_FAILED;
+        phNxpNci_EEPROM_info_t swp_intf_info;
 
-    memset(swp_info_buff, 0, sizeof(swp_info_buff));
-    /*Read SWP1 data*/
-    memset(&swp_intf_info, 0, sizeof(swp_intf_info));
-    swp_intf_info.request_mode = GET_EEPROM_DATA;
-    swp_intf_info.request_type = EEPROM_SWP1_INTF;
-    swp_intf_info.buffer = &swp_intf_status;
-    swp_intf_info.bufflen = sizeof(uint8_t);
-    status = request_EEPROM(&swp_intf_info);
-    if (status == NFCSTATUS_OK)
-      swp_info_buff[0] = swp_intf_status;
-    else {
-      NXPLOG_NCIHAL_E("request_EEPROM error occured %d", status);
-      retry_core_init_cnt++;
-      goto retry_core_init;
-    }
-#if (NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH == true)
-    /*Read SWP1A data*/
-    memset(&swp_intf_info, 0, sizeof(swp_intf_info));
-    swp_intf_info.request_mode = GET_EEPROM_DATA;
-    swp_intf_info.request_type = EEPROM_SWP1A_INTF;
-    swp_intf_info.buffer = &swp1A_intf_status;
-    swp_intf_info.bufflen = sizeof(uint8_t);
-    status = request_EEPROM(&swp_intf_info);
-    if (status == NFCSTATUS_OK)
-      swp_info_buff[1] = swp1A_intf_status;
-    else {
-      NXPLOG_NCIHAL_E("request_EEPROM error occured %d", status);
-      retry_core_init_cnt++;
-      goto retry_core_init;
-    }
-#endif
-    phNxpNci_EEPROM_info_t mEEPROM_info = {.request_mode = 0};
-    mEEPROM_info.buffer = swp_info_buff;
-    mEEPROM_info.bufflen= sizeof(swp_info_buff);
-    mEEPROM_info.request_type = EEPROM_RF_CFG;
-    mEEPROM_info.request_mode = SET_EEPROM_DATA;
-    status = request_EEPROM(&mEEPROM_info);
-    NXPLOG_NCIHAL_D("Setting value %d %d", swp_info_buff[1], swp_info_buff[0]);
-#endif  // END_OF_NFC_NXP_ESE_ETSI12_PROP_INIT
+        memset(swp_info_buff, 0, sizeof(swp_info_buff));
+        /*Read SWP1 data*/
+        memset(&swp_intf_info, 0, sizeof(swp_intf_info));
+        swp_intf_info.request_mode = GET_EEPROM_DATA;
+        swp_intf_info.request_type = EEPROM_SWP1_INTF;
+        swp_intf_info.buffer = &swp_intf_status;
+        swp_intf_info.bufflen = sizeof(uint8_t);
+        status = request_EEPROM(&swp_intf_info);
+        if (status == NFCSTATUS_OK)
+            swp_info_buff[0] = swp_intf_status;
+        else {
+            NXPLOG_NCIHAL_E("request_EEPROM error occured %d", status);
+            retry_core_init_cnt++;
+            goto retry_core_init;
+        }
+        if(nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH) {
+            /*Read SWP1A data*/
+            memset(&swp_intf_info, 0, sizeof(swp_intf_info));
+            swp_intf_info.request_mode = GET_EEPROM_DATA;
+            swp_intf_info.request_type = EEPROM_SWP1A_INTF;
+            swp_intf_info.buffer = &swp1A_intf_status;
+            swp_intf_info.bufflen = sizeof(uint8_t);
+            status = request_EEPROM(&swp_intf_info);
+            if (status == NFCSTATUS_OK)
+                swp_info_buff[1] = swp1A_intf_status;
+            else {
+                NXPLOG_NCIHAL_E("request_EEPROM error occured %d", status);
+                retry_core_init_cnt++;
+                goto retry_core_init;
+            }
+        }
+        phNxpNci_EEPROM_info_t mEEPROM_info = {.request_mode = 0};
+        mEEPROM_info.buffer = swp_info_buff;
+        mEEPROM_info.bufflen= sizeof(swp_info_buff);
+        mEEPROM_info.request_type = EEPROM_RF_CFG;
+        mEEPROM_info.request_mode = SET_EEPROM_DATA;
+        status = request_EEPROM(&mEEPROM_info);
+        NXPLOG_NCIHAL_D("Setting value %d %d", swp_info_buff[1], swp_info_buff[0]);
+    }  // END_OF_NFC_NXP_ESE_ETSI12_PROP_INIT
 
     NXPLOG_NCIHAL_D("Performing NAME_NXP_CORE_CONF Settings");
     retlen = 0;
@@ -1879,80 +1831,79 @@
     }
 
     retlen = 0;
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-    config_access = false;
-#endif
+    if (nfcFL.chipType != pn547C2) {
+        config_access = false;
+    }
     isfound = GetNxpByteArrayValue(NAME_NXP_CORE_RF_FIELD, (char*)buffer,
                                    bufflen, &retlen);
     if (retlen > 0) {
-      /* NXP ACT Proprietary Ext */
-      status = phNxpNciHal_send_ext_cmd(retlen, buffer);
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-      if (status == NFCSTATUS_SUCCESS) {
-        status = phNxpNciHal_CheckRFCmdRespStatus();
-        /*STATUS INVALID PARAM 0x09*/
-        if (status == 0x09) {
-          phNxpNciHalRFConfigCmdRecSequence();
-          retry_core_init_cnt++;
-          goto retry_core_init;
+        /* NXP ACT Proprietary Ext */
+        status = phNxpNciHal_send_ext_cmd(retlen, buffer);
+        if ((nfcFL.chipType != pn547C2) && (status == NFCSTATUS_SUCCESS)) {
+            status = phNxpNciHal_CheckRFCmdRespStatus();
+            /*STATUS INVALID PARAM 0x09*/
+            if (status == 0x09) {
+                phNxpNciHalRFConfigCmdRecSequence();
+                retry_core_init_cnt++;
+                goto retry_core_init;
+            }
+        } else if (status != NFCSTATUS_SUCCESS) {
+            NXPLOG_NCIHAL_E("Setting NXP_CORE_RF_FIELD status failed");
+            retry_core_init_cnt++;
+            goto retry_core_init;
         }
-      } else
-#endif
-          if (status != NFCSTATUS_SUCCESS) {
-        NXPLOG_NCIHAL_E("Setting NXP_CORE_RF_FIELD status failed");
-        retry_core_init_cnt++;
-        goto retry_core_init;
-      }
     }
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-    config_access = true;
-#endif
+    if (nfcFL.chipType != pn547C2) {
+        config_access = true;
+    }
     num = 0;
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-    /* NXP SWP switch timeout Setting*/
-    if (GetNxpNumValue(NAME_NXP_SWP_SWITCH_TIMEOUT, (void*)&num, sizeof(num))) {
-      // Check the permissible range [0 - 60]
-      if (num <= 60) {
-        if (0 < num) {
-          uint16_t timeout = num * 1000;
-          unsigned int timeoutHx = 0x0000;
 
-          uint8_t tmpbuffer[10];
-          snprintf((char*)tmpbuffer, 10, "%04x", timeout);
-          sscanf((const char*)tmpbuffer, "%x", (unsigned int*)&timeoutHx);
+    if (nfcFL.chipType != pn547C2) {
+        /* NXP SWP switch timeout Setting*/
+        if (GetNxpNumValue(NAME_NXP_SWP_SWITCH_TIMEOUT, (void*)&num, sizeof(num))) {
+            // Check the permissible range [0 - 60]
+            if (num <= 60) {
+                if (0 < num) {
+                    uint16_t timeout = num * 1000;
+                    unsigned int timeoutHx = 0x0000;
 
-          swp_switch_timeout_cmd[7] = (timeoutHx & 0xFF);
-          swp_switch_timeout_cmd[8] = ((timeoutHx & 0xFF00) >> 8);
+                    uint8_t tmpbuffer[10];
+                    snprintf((char*)tmpbuffer, 10, "%04x", timeout);
+                    sscanf((const char*)tmpbuffer, "%x", (unsigned int*)&timeoutHx);
+
+                    swp_switch_timeout_cmd[7] = (timeoutHx & 0xFF);
+                    swp_switch_timeout_cmd[8] = ((timeoutHx & 0xFF00) >> 8);
+                }
+
+                status = phNxpNciHal_send_ext_cmd(sizeof(swp_switch_timeout_cmd),
+                        swp_switch_timeout_cmd);
+                if (status != NFCSTATUS_SUCCESS) {
+                    NXPLOG_NCIHAL_E("SWP switch timeout Setting Failed");
+                    retry_core_init_cnt++;
+                    goto retry_core_init;
+                }
+            } else {
+                NXPLOG_NCIHAL_E("SWP switch timeout Setting Failed - out of range!");
+            }
         }
-
-        status = phNxpNciHal_send_ext_cmd(sizeof(swp_switch_timeout_cmd),
-                                          swp_switch_timeout_cmd);
+    }
+    if (nfcFL.chipType != pn547C2) {
+        status = phNxpNciHal_set_china_region_configs();
         if (status != NFCSTATUS_SUCCESS) {
-          NXPLOG_NCIHAL_E("SWP switch timeout Setting Failed");
-          retry_core_init_cnt++;
-          goto retry_core_init;
+            NXPLOG_NCIHAL_E("phNxpNciHal_set_china_region_configs failed");
+            retry_core_init_cnt++;
+            goto retry_core_init;
         }
-      } else {
-        NXPLOG_NCIHAL_E("SWP switch timeout Setting Failed - out of range!");
-      }
     }
-#endif
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-    status = phNxpNciHal_set_china_region_configs();
-    if (status != NFCSTATUS_SUCCESS) {
-      NXPLOG_NCIHAL_E("phNxpNciHal_set_china_region_configs failed");
-      retry_core_init_cnt++;
-      goto retry_core_init;
+
+    if (nfcFL.chipType == pn547C2) {
+        status = phNxpNciHal_uicc_baud_rate();
+        if (status != NFCSTATUS_SUCCESS) {
+            NXPLOG_NCIHAL_E("Setting NXP_CORE_RF_FIELD status failed");
+            retry_core_init_cnt++;
+            goto retry_core_init;
+        }
     }
-#endif
-#if (NFC_NXP_CHIP_TYPE == PN547C2)
-    status = phNxpNciHal_uicc_baud_rate();
-    if (status != NFCSTATUS_SUCCESS) {
-      NXPLOG_NCIHAL_E("Setting NXP_CORE_RF_FIELD status failed");
-      retry_core_init_cnt++;
-      goto retry_core_init;
-    }
-#endif
 
     config_access = false;
     // if recovery mode and length of last command is 0 then only reset the P2P
@@ -1992,32 +1943,33 @@
         }
       }
     }
-#if (NXP_NFCC_AID_MATCHING_PLATFORM_CONFIG == true)
-    num = 0;
-    /* Android L AID Matching Platform Setting*/
-    if (GetNxpNumValue(NAME_AID_MATCHING_PLATFORM, (void*)&num, sizeof(num))) {
-      if (1 == num) {
-        status =
-            phNxpNciHal_send_ext_cmd(sizeof(android_l_aid_matching_mode_on_cmd),
-                                     android_l_aid_matching_mode_on_cmd);
-        if (status != NFCSTATUS_SUCCESS) {
-          NXPLOG_NCIHAL_E("Android L AID Matching Platform Setting Failed");
-          retry_core_init_cnt++;
-          goto retry_core_init;
+    if(nfcFL.nfccFL._NFCC_AID_MATCHING_PLATFORM_CONFIG == true) {
+        num = 0;
+        /* Android L AID Matching Platform Setting*/
+        if (GetNxpNumValue(NAME_AID_MATCHING_PLATFORM, (void*)&num, sizeof(num))) {
+            if (1 == num) {
+                status =
+                        phNxpNciHal_send_ext_cmd(sizeof(android_l_aid_matching_mode_on_cmd),
+                                android_l_aid_matching_mode_on_cmd);
+                if (status != NFCSTATUS_SUCCESS) {
+                    NXPLOG_NCIHAL_E("Android L AID Matching Platform Setting Failed");
+                    retry_core_init_cnt++;
+                    goto retry_core_init;
+                }
+            } else if (2 == num) {
+                android_l_aid_matching_mode_on_cmd[7] = 0x00;
+                status =
+                        phNxpNciHal_send_ext_cmd(sizeof(android_l_aid_matching_mode_on_cmd),
+                                android_l_aid_matching_mode_on_cmd);
+                if (status != NFCSTATUS_SUCCESS) {
+                    NXPLOG_NCIHAL_E("Android L AID Matching Platform Setting Failed");
+                    retry_core_init_cnt++;
+                    goto retry_core_init;
+                }
+            }
         }
-      } else if (2 == num) {
-        android_l_aid_matching_mode_on_cmd[7] = 0x00;
-        status =
-            phNxpNciHal_send_ext_cmd(sizeof(android_l_aid_matching_mode_on_cmd),
-                                     android_l_aid_matching_mode_on_cmd);
-        if (status != NFCSTATUS_SUCCESS) {
-          NXPLOG_NCIHAL_E("Android L AID Matching Platform Setting Failed");
-          retry_core_init_cnt++;
-          goto retry_core_init;
-        }
-      }
     }
-#endif
+
     NXPLOG_NCIHAL_E("Resetting FW Dnld flag");
     fw_dwnld_flag = 0x00;
 
@@ -2037,14 +1989,14 @@
 
   config_access = false;
   if (!((*p_core_init_rsp_params > 0) && (*p_core_init_rsp_params < 4))) {
-#if (NFC_NXP_ESE == TRUE)
-    status = phNxpNciHal_check_eSE_Session_Identity();
-    if (status != NFCSTATUS_SUCCESS) {
-      NXPLOG_NCIHAL_E("Session id/ SWP intf reset Failed");
-      retry_core_init_cnt++;
-      goto retry_core_init;
-    }
-#endif
+      if(nfcFL.nfcNxpEse == true) {
+          status = phNxpNciHal_check_eSE_Session_Identity();
+          if (status != NFCSTATUS_SUCCESS) {
+              NXPLOG_NCIHAL_E("Session id/ SWP intf reset Failed");
+              retry_core_init_cnt++;
+              goto retry_core_init;
+          }
+      }
     status = phNxpNciHal_send_ext_cmd(sizeof(cmd_reset_nci), cmd_reset_nci);
     if (status == NFCSTATUS_SUCCESS) {
         if (nxpncihal_ctrl.nci_info.nci_version == NCI_VERSION_2_0) {
@@ -2065,21 +2017,22 @@
     }
   }
 
-#if (NXP_WIRED_MODE_STANDBY == true)
-  if (nxpncihal_ctrl.hal_boot_mode == NFC_OSU_BOOT_MODE) {
-    status = phNxpNciHal_send_nfcee_pwr_cntl_cmd(POWER_ALWAYS_ON);
-    if (status == NFCSTATUS_SUCCESS) {
-      NXPLOG_NCIHAL_E("Send nfcee_pwrcntl cmd SUCCESS");
-    } else {
-      NXPLOG_NCIHAL_E("Send nfcee_pwrcntl cmd FAILED");
-    }
+  if(nfcFL.eseFL._WIRED_MODE_STANDBY == true) {
+      if (nxpncihal_ctrl.hal_boot_mode == NFC_OSU_BOOT_MODE) {
+          status = phNxpNciHal_send_nfcee_pwr_cntl_cmd(POWER_ALWAYS_ON);
+          if (status == NFCSTATUS_SUCCESS) {
+              NXPLOG_NCIHAL_E("Send nfcee_pwrcntl cmd SUCCESS");
+          } else {
+              NXPLOG_NCIHAL_E("Send nfcee_pwrcntl cmd FAILED");
+          }
+      }
+
+      if (pwr_link_required == true) {
+          phNxpNciHal_send_nfcee_pwr_cntl_cmd(POWER_ALWAYS_ON | LINK_ALWAYS_ON);
+          pwr_link_required = false;
+      }
   }
 
-  if (pwr_link_required == true) {
-    phNxpNciHal_send_nfcee_pwr_cntl_cmd(POWER_ALWAYS_ON | LINK_ALWAYS_ON);
-    pwr_link_required = false;
-  }
-#endif
   if ((*p_core_init_rsp_params > 0) && (*p_core_init_rsp_params < 4)) {
     static phLibNfc_Message_t msg;
     uint16_t tmp_len = 0;
@@ -2260,11 +2213,12 @@
     buffer = NULL;
   }
   config_access = false;
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
+
+  if(nfcFL.chipType != pn547C2) {
   // initialize dummy FW recovery variables
   gRecFWDwnld = false;
   gRecFwRetryCount = 0;
-#endif
+}
   if (!((*p_core_init_rsp_params > 0) && (*p_core_init_rsp_params < 4)))
     phNxpNciHal_core_initialized_complete(status);
   else {
@@ -2304,13 +2258,10 @@
   uint8_t default_session[8] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
   uint8_t swp2_intf_status = 0x00;
   long retlen = 0;
-#if (NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH == true)
-  static uint8_t disable_swp_intf[] = {0x20, 0x02, 0x09, 0x02, 0xA0, 0xEC,
+  static uint8_t disable_dual_swp_intf[] = {0x20, 0x02, 0x09, 0x02, 0xA0, 0xEC,
                                        0x01, 0x00, 0xA0, 0xD4, 0x01, 0x00};
-#else
   static uint8_t disable_swp_intf[] = {0x20, 0x02, 0x05, 0x01,
                                        0xA0, 0xEC, 0x01, 0x00};
-#endif
 
   phNxpNci_EEPROM_info_t swp_intf_info;
   uint8_t swp_info_buff[32] = {0};
@@ -2349,8 +2300,14 @@
 
   if (status == NFCSTATUS_FAILED) {
     /*Disable SWP1 and 1A interfaces*/
-    status =
-        phNxpNciHal_send_ext_cmd(sizeof(disable_swp_intf), disable_swp_intf);
+      if(nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH) {
+          status = phNxpNciHal_send_ext_cmd(sizeof(disable_dual_swp_intf),
+                  disable_dual_swp_intf);
+      }
+      else {
+          status = phNxpNciHal_send_ext_cmd(sizeof(disable_swp_intf),
+                  disable_swp_intf);
+      }
     if (status != NFCSTATUS_SUCCESS) {
       NXPLOG_NCIHAL_E("NXP disable SWP interface_set command failed");
     }
@@ -2359,7 +2316,6 @@
   return status;
 }
 
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 /******************************************************************************
  * Function         phNxpNciHal_CheckRFCmdRespStatus
  *
@@ -2372,6 +2328,11 @@
  *
  ******************************************************************************/
 NFCSTATUS phNxpNciHal_CheckRFCmdRespStatus() {
+    NXPLOG_NCIHAL_D("phNxpNciHal_CheckRFCmdRespStatus () Enter");
+    if(nfcFL.chipType == pn547C2) {
+        NXPLOG_NCIHAL_D("chipType : pn547C2. Not allowed. Returning");
+        return NFCSTATUS_FAILED;
+    }
   NFCSTATUS status = NFCSTATUS_SUCCESS;
   static uint16_t INVALID_PARAM = 0x09;
   if ((nxpncihal_ctrl.rx_data_len > 0) && (nxpncihal_ctrl.p_rx_data[2] > 0)) {
@@ -2403,21 +2364,26 @@
  *
  ******************************************************************************/
 NFCSTATUS phNxpNciHalRFConfigCmdRecSequence() {
+    NXPLOG_NCIHAL_D("phNxpNciHalRFConfigCmdRecSequence () Enter");
+    if(nfcFL.chipType == pn547C2) {
+        NXPLOG_NCIHAL_D("chipType : pn547C2. Not allowed. Returning");
+        return NFCSTATUS_FAILED;
+    }
   NFCSTATUS status = NFCSTATUS_SUCCESS;
   uint16_t recFWState = 1;
-#if (NXP_NFCC_FORCE_FW_DOWNLOAD == true)
-  gRecFWDwnld = false;
-  force_fw_download_req = true;
-#else
-  gRecFWDwnld = true;
-#endif
+  if(nfcFL.nfccFL._NFCC_FORCE_FW_DOWNLOAD == true) {
+      gRecFWDwnld = false;
+      force_fw_download_req = true;
+  } else {
+      gRecFWDwnld = true;
+  }
   gRecFwRetryCount++;
   if (gRecFwRetryCount > 0x03) {
     NXPLOG_NCIHAL_D("Max retry count for RF config FW recovery exceeded ");
     gRecFWDwnld = false;
-#if (NXP_NFCC_FORCE_FW_DOWNLOAD == true)
-    force_fw_download_req = false;
-#endif
+    if(nfcFL.nfccFL._NFCC_FORCE_FW_DOWNLOAD == true) {
+        force_fw_download_req = false;
+    }
     return NFCSTATUS_FAILED;
   }
   do {
@@ -2442,13 +2408,12 @@
     gRecFWDwnld = false;
   } while (recFWState--);
   gRecFWDwnld = false;
-#if (NXP_NFCC_FORCE_FW_DOWNLOAD == true)
-  force_fw_download_req = false;
-#endif
+  if(nfcFL.nfccFL._NFCC_FORCE_FW_DOWNLOAD == true) {
+      force_fw_download_req = false;
+  }
   return status;
 }
-#endif
-#if (NFC_NXP_CHIP_TYPE == PN547C2)
+
 /******************************************************************************
  * Function         phNxpNciHal_uicc_baud_rate
  *
@@ -2459,6 +2424,11 @@
  *
  ******************************************************************************/
 static NFCSTATUS phNxpNciHal_uicc_baud_rate() {
+    NXPLOG_NCIHAL_D("phNxpNciHal_uicc_baud_rate () Enter");
+    if(nfcFL.chipType != pn547C2) {
+        NXPLOG_NCIHAL_D("chipType != pn547C2. Not allowed. Returning");
+        return NFCSTATUS_FAILED;
+    }
   unsigned long configValue = 0x00;
   uint16_t bitRateCmdLen = 0x04;  // HDR + LEN + PARAMS   2 + 1 + 1
   uint8_t uiccTypeAValue = 0x00;  // read uicc type A value
@@ -2537,7 +2507,7 @@
   }
   return status;
 }
-#endif
+
 /******************************************************************************
  * Function         phNxpNciHal_core_initialized_complete
  *
@@ -2688,12 +2658,12 @@
   }
 
   CONCURRENCY_LOCK();
-#if (NXP_NFCC_I2C_READ_WRITE_IMPROVEMENT == true)
-  if (read_failed_disable_nfc) {
-    read_failed_disable_nfc = false;
-    goto close_and_return;
+  if (nfcFL.nfccFL._NFCC_I2C_READ_WRITE_IMPROVEMENT &&
+          read_failed_disable_nfc) {
+      read_failed_disable_nfc = false;
+      goto close_and_return;
   }
-#endif
+
   if (write_unlocked_status == NFCSTATUS_FAILED) {
     NXPLOG_NCIHAL_D("phNxpNciHal_close i2c write failed .Clean and Return");
     goto close_and_return;
@@ -2990,78 +2960,93 @@
   NFCSTATUS fm_mw_ver_check = NFCSTATUS_FAILED;
 
   switch (arg) {
-#if (NFC_NXP_ESE == TRUE)
     case HAL_NFC_IOCTL_P61_IDLE_MODE:
-      status = phTmlNfc_IoCtl(phTmlNfc_e_SetP61IdleMode);
-      if (NFCSTATUS_FAILED != status) {
-        if (NULL != p_data) pInpOutData->out.data.status = (uint16_t)status;
-        ret = 0;
-      }
+        if(nfcFL.nfcNxpEse) {
+            status = phTmlNfc_IoCtl(phTmlNfc_e_SetP61IdleMode);
+            if (NFCSTATUS_FAILED != status) {
+                if (NULL != p_data) pInpOutData->out.data.status = (uint16_t)status;
+                ret = 0;
+            }
+        }
       break;
     case HAL_NFC_IOCTL_P61_WIRED_MODE:
-      status = phTmlNfc_IoCtl(phTmlNfc_e_SetP61WiredMode);
-      if (NFCSTATUS_FAILED != status) {
-        if (NULL != p_data) pInpOutData->out.data.status = (uint16_t)status;
-        ret = 0;
-      }
+        if(nfcFL.nfcNxpEse) {
+            status = phTmlNfc_IoCtl(phTmlNfc_e_SetP61WiredMode);
+            if (NFCSTATUS_FAILED != status) {
+                if (NULL != p_data) pInpOutData->out.data.status = (uint16_t)status;
+                ret = 0;
+            }
+        }
       break;
     case HAL_NFC_IOCTL_P61_PWR_MODE:
-      status = phTmlNfc_IoCtl(phTmlNfc_e_GetP61PwrMode);
-      if (NFCSTATUS_FAILED != status) {
-        if (NULL != p_data)
-          pInpOutData->out.data.p61CurrentState = (uint16_t)status;
-        ret = 0;
-      }
+        if(nfcFL.nfcNxpEse) {
+            status = phTmlNfc_IoCtl(phTmlNfc_e_GetP61PwrMode);
+            if (NFCSTATUS_FAILED != status) {
+                if (NULL != p_data)
+                    pInpOutData->out.data.p61CurrentState = (uint16_t)status;
+                ret = 0;
+            }
+        }
       break;
     case HAL_NFC_IOCTL_P61_ENABLE_MODE:
-      status = phTmlNfc_IoCtl(phTmlNfc_e_SetP61EnableMode);
-      if (NFCSTATUS_FAILED != status) {
-        if (NULL != p_data) pInpOutData->out.data.status = (uint16_t)status;
-        ret = 0;
-      }
+        if(nfcFL.nfcNxpEse) {
+            status = phTmlNfc_IoCtl(phTmlNfc_e_SetP61EnableMode);
+            if (NFCSTATUS_FAILED != status) {
+                if (NULL != p_data) pInpOutData->out.data.status = (uint16_t)status;
+                ret = 0;
+            }
+        }
       break;
     case HAL_NFC_IOCTL_P61_DISABLE_MODE:
-      status = phTmlNfc_IoCtl(phTmlNfc_e_SetP61DisableMode);
-      if (NFCSTATUS_FAILED != status) {
-        if (NULL != p_data) pInpOutData->out.data.status = (uint16_t)status;
-        ret = 0;
-      }
+        if(nfcFL.nfcNxpEse) {
+            status = phTmlNfc_IoCtl(phTmlNfc_e_SetP61DisableMode);
+            if (NFCSTATUS_FAILED != status) {
+                if (NULL != p_data) pInpOutData->out.data.status = (uint16_t)status;
+                ret = 0;
+            }
+        }
       break;
     case HAL_NFC_IOCTL_P61_GET_ACCESS:
-      NXPLOG_NCIHAL_D("HAL_NFC_IOCTL_P61_GET_ACCESS timeoutInMillisec = %d",
-                      pInpOutData->inp.data.timeoutMilliSec);
-      status = phTmlNfc_get_ese_access(gpphTmlNfc_Context->pDevHandle,
-                                       pInpOutData->inp.data.timeoutMilliSec);
-      if (NFCSTATUS_SUCCESS == status) {
-        ret = 0;
-      }
+        if(nfcFL.nfcNxpEse) {
+            NXPLOG_NCIHAL_D("HAL_NFC_IOCTL_P61_GET_ACCESS timeoutInMillisec = %d",
+                    pInpOutData->inp.data.timeoutMilliSec);
+            status = phTmlNfc_get_ese_access(gpphTmlNfc_Context->pDevHandle,
+                    pInpOutData->inp.data.timeoutMilliSec);
+            if (NFCSTATUS_SUCCESS == status) {
+                ret = 0;
+            }
+        }
       break;
     case HAL_NFC_IOCTL_P61_REL_ACCESS:
-      status = phTmlNfc_IoCtl(phTmlNfc_e_RelP61Access);
-      NXPLOG_NCIHAL_D("HAL_NFC_IOCTL_P61_REL_ACCESS retval = %d\n", status);
-      pInpOutData->out.data.status = status;
-      if (NFCSTATUS_SUCCESS == status) {
-        ret = 0;
-      }
+        if(nfcFL.nfcNxpEse) {
+            status = phTmlNfc_IoCtl(phTmlNfc_e_RelP61Access);
+            NXPLOG_NCIHAL_D("HAL_NFC_IOCTL_P61_REL_ACCESS retval = %d\n", status);
+            pInpOutData->out.data.status = status;
+            if (NFCSTATUS_SUCCESS == status) {
+                ret = 0;
+            }
+        }
       break;
     case HAL_NFC_IOCTL_ESE_CHIP_RST:
-      status = phTmlNfc_IoCtl(phTmlNfc_e_eSEChipRstMode);
-      if (NFCSTATUS_FAILED != status) {
-        if (NULL != p_data) pInpOutData->out.data.status = (uint16_t)status;
-        ret = 0;
-      }
+        if(nfcFL.nfcNxpEse) {
+            status = phTmlNfc_IoCtl(phTmlNfc_e_eSEChipRstMode);
+            if (NFCSTATUS_FAILED != status) {
+                if (NULL != p_data) pInpOutData->out.data.status = (uint16_t)status;
+                ret = 0;
+            }
+        }
       break;
-#if (NXP_ESE_SVDD_SYNC == true)
     case HAL_NFC_IOCTL_REL_SVDD_WAIT:
-      status = phTmlNfc_rel_svdd_wait(gpphTmlNfc_Context->pDevHandle);
-      NXPLOG_NCIHAL_D("HAL_NFC_IOCTL_P61_REL_SVDD_WAIT retval = %d\n", status);
-      pInpOutData->out.data.status = status;
-      if (NFCSTATUS_SUCCESS == status) {
-        ret = 0;
-      }
+        if(nfcFL.nfcNxpEse && nfcFL.eseFL._ESE_SVDD_SYNC) {
+            status = phTmlNfc_rel_svdd_wait(gpphTmlNfc_Context->pDevHandle);
+            NXPLOG_NCIHAL_D("HAL_NFC_IOCTL_P61_REL_SVDD_WAIT retval = %d\n", status);
+            pInpOutData->out.data.status = status;
+            if (NFCSTATUS_SUCCESS == status) {
+                ret = 0;
+            }
+        }
       break;
-#endif
-#endif
+
     case HAL_NFC_IOCTL_SET_BOOT_MODE:
       if (NULL != p_data) {
         status = phNxpNciHal_set_Boot_Mode(pInpOutData->inp.data.bootMode);
@@ -3071,24 +3056,27 @@
         }
       }
       break;
-#if (NXP_ESE_JCOP_DWNLD_PROTECTION == true)
     case HAL_NFC_IOCTL_SET_JCP_DWNLD_ENABLE:
-      NXPLOG_NCIHAL_D("HAL_NFC_IOCTL_SET_JCP_DWNLD_ENABLE: \n");
-      status = phTmlNfc_IoCtl(phTmlNfc_e_SetJcopDwnldEnable);
-      if (NFCSTATUS_FAILED != status) {
-        if (NULL != p_data) pInpOutData->out.data.status = (uint16_t)status;
-        ret = 0;
-      }
+        if(nfcFL.eseFL._ESE_JCOP_DWNLD_PROTECTION) {
+            NXPLOG_NCIHAL_D("HAL_NFC_IOCTL_SET_JCP_DWNLD_ENABLE: \n");
+            status = phTmlNfc_IoCtl(phTmlNfc_e_SetJcopDwnldEnable);
+            if (NFCSTATUS_FAILED != status) {
+                if (NULL != p_data) pInpOutData->out.data.status = (uint16_t)status;
+                ret = 0;
+            }
+        }
       break;
     case HAL_NFC_IOCTL_SET_JCP_DWNLD_DISABLE:
-      NXPLOG_NCIHAL_D("HAL_NFC_IOCTL_SET_JCP_DWNLD_DISABLE: \n");
-      status = phTmlNfc_IoCtl(phTmlNfc_e_SetJcopDwnldDisable);
-      if (NFCSTATUS_FAILED != status) {
-        if (NULL != p_data) pInpOutData->out.data.status = (uint16_t)status;
-        ret = 0;
-      }
+        if(nfcFL.eseFL._ESE_JCOP_DWNLD_PROTECTION) {
+            NXPLOG_NCIHAL_D("HAL_NFC_IOCTL_SET_JCP_DWNLD_DISABLE: \n");
+            status = phTmlNfc_IoCtl(phTmlNfc_e_SetJcopDwnldDisable);
+            if (NFCSTATUS_FAILED != status) {
+                if (NULL != p_data) pInpOutData->out.data.status = (uint16_t)status;
+                ret = 0;
+            }
+        }
       break;
-#endif
+
     case HAL_NFC_IOCTL_GET_CONFIG_INFO:
       if (mGetCfg_info) {
         memcpy(pInpOutData->out.data.nxpNciAtrInfo, mGetCfg_info,
@@ -3116,9 +3104,9 @@
       if (NFCSTATUS_SUCCESS == status) {
         ret = 0;
       }
-#if (NXP_NFCC_FORCE_FW_DOWNLOAD == true)
-      force_fw_download_req = false;
-#endif
+      if(nfcFL.nfccFL._NFCC_FORCE_FW_DOWNLOAD) {
+          force_fw_download_req = false;
+      }
       break;
     case HAL_NFC_IOCTL_FW_MW_VER_CHECK:
       fm_mw_ver_check = phNxpNciHal_fw_mw_ver_check();
@@ -3157,6 +3145,10 @@
         ret = 0;
       }
       break;
+    case HAL_NFC_IOCTL_GET_FEATURE_LIST:
+        pInpOutData->out.data.chipType = (uint8_t)phNxpNciHal_getChipType();
+        ret = 0;
+        break;
     default:
       NXPLOG_NCIHAL_E("%s : Wrong arg = %ld", __func__, arg);
       break;
@@ -3183,12 +3175,15 @@
   if (nxpprofile_ctrl.bClkSrcVal == CLK_SRC_PLL) {
     static uint8_t set_clock_cmd[] = {0x20, 0x02, 0x09, 0x02, 0xA0, 0x03,
                                       0x01, 0x11, 0xA0, 0x04, 0x01, 0x01};
-#if (NFC_NXP_CHIP_TYPE == PN553 || NFC_NXP_CHIP_TYPE == PN557)
-    uint8_t param_clock_src = 0x00;
-#else
-    uint8_t param_clock_src = CLK_SRC_PLL;
-    param_clock_src = param_clock_src << 3;
-#endif
+    uint8_t param_clock_src;
+
+    if((nfcFL.chipType == pn553) || (nfcFL.chipType == pn557)) {
+        param_clock_src = 0x00;
+    }
+    else {
+        param_clock_src = CLK_SRC_PLL;
+        param_clock_src = param_clock_src << 3;
+    }
 
     if (nxpprofile_ctrl.bClkFreqVal == CLK_FREQ_13MHZ) {
       param_clock_src |= 0x00;
@@ -3204,11 +3199,13 @@
       param_clock_src |= 0x05;
     } else {
       NXPLOG_NCIHAL_E("Wrong clock freq, send default PLL@19.2MHz");
-#if (NFC_NXP_CHIP_TYPE == PN553 || NFC_NXP_CHIP_TYPE == PN557)
-      param_clock_src = 0x01;
-#else
-      param_clock_src = 0x11;
-#endif
+
+      if((nfcFL.chipType == pn553) || (nfcFL.chipType == pn557)) {
+          param_clock_src = 0x01;
+      }
+      else {
+          param_clock_src = 0x11;
+      }
     }
 
     set_clock_cmd[7] = param_clock_src;
@@ -3324,29 +3321,28 @@
   isfound = (GetNxpNumValue(NAME_NXP_CHINA_TIANJIN_RF_ENABLED,
                             (void*)&rf_enable, sizeof(rf_enable)));
   if (isfound > 0) {
-    enable_bit = rf_val & 0x40;
-#if (NXP_NFCC_MIFARE_TIANJIN == true)
-    if ((enable_bit != 0x40) && (rf_enable == 1)) {
-      phNxpNciRfSet.p_rx_data[10] |= 0x40;  // Enable if it is disabled
-    } else if ((enable_bit == 0x40) && (rf_enable == 0)) {
-      phNxpNciRfSet.p_rx_data[10] &= 0xBF;  // Disable if it is Enabled
-    } else {
-      flag_send_tianjin_config = false;  // No need to change in RF setting
-    }
-#else
-    {
-      enable_bit = phNxpNciRfSet.p_rx_data[11] & 0x10;
-      if ((rf_enable == 1) && (enable_bit != 0x10)) {
-        NXPLOG_NCIHAL_E("Setting Non-Mifare reader for china tianjin");
-        phNxpNciRfSet.p_rx_data[11] |= 0x10;
-      } else if ((rf_enable == 0) && (enable_bit == 0x10)) {
-        NXPLOG_NCIHAL_E("Setting Non-Mifare reader for china tianjin");
-        phNxpNciRfSet.p_rx_data[11] &= 0xEF;
-      } else {
-        flag_send_tianjin_config = false;
+      enable_bit = rf_val & 0x40;
+      if(nfcFL.nfccFL._NFCC_MIFARE_TIANJIN) {
+          if ((enable_bit != 0x40) && (rf_enable == 1)) {
+              phNxpNciRfSet.p_rx_data[10] |= 0x40;  // Enable if it is disabled
+          } else if ((enable_bit == 0x40) && (rf_enable == 0)) {
+              phNxpNciRfSet.p_rx_data[10] &= 0xBF;  // Disable if it is Enabled
+          } else {
+              flag_send_tianjin_config = false;  // No need to change in RF setting
+          }
       }
-    }
-#endif
+      else {
+          enable_bit = phNxpNciRfSet.p_rx_data[11] & 0x10;
+          if ((rf_enable == 1) && (enable_bit != 0x10)) {
+              NXPLOG_NCIHAL_E("Setting Non-Mifare reader for china tianjin");
+              phNxpNciRfSet.p_rx_data[11] |= 0x10;
+          } else if ((rf_enable == 0) && (enable_bit == 0x10)) {
+              NXPLOG_NCIHAL_E("Setting Non-Mifare reader for china tianjin");
+              phNxpNciRfSet.p_rx_data[11] &= 0xEF;
+          } else {
+              flag_send_tianjin_config = false;
+          }
+      }
   }
   /*check if china block number check is required*/
   rf_val = phNxpNciRfSet.p_rx_data[8];
@@ -3383,26 +3379,26 @@
   NFCSTATUS status = NFCSTATUS_FAILED;
   uint8_t param_clock_src = CLK_SRC_PLL;
   if (nxpprofile_ctrl.bClkSrcVal == CLK_SRC_PLL) {
-#if (NFC_NXP_CHIP_TYPE != PN553 && NFC_NXP_CHIP_TYPE != PN557)
-    param_clock_src = param_clock_src << 3;
-#endif
+      if((nfcFL.chipType != pn553) || (nfcFL.chipType != pn557)){
+          param_clock_src = param_clock_src << 3;
+      }
 
-    if (nxpprofile_ctrl.bClkFreqVal == CLK_FREQ_13MHZ) {
-      param_clock_src |= 0x00;
-    } else if (nxpprofile_ctrl.bClkFreqVal == CLK_FREQ_19_2MHZ) {
-      param_clock_src |= 0x01;
-    } else if (nxpprofile_ctrl.bClkFreqVal == CLK_FREQ_24MHZ) {
-      param_clock_src |= 0x02;
-    } else if (nxpprofile_ctrl.bClkFreqVal == CLK_FREQ_26MHZ) {
-      param_clock_src |= 0x03;
-    } else if (nxpprofile_ctrl.bClkFreqVal == CLK_FREQ_38_4MHZ) {
-      param_clock_src |= 0x04;
-    } else if (nxpprofile_ctrl.bClkFreqVal == CLK_FREQ_52MHZ) {
-      param_clock_src |= 0x05;
-    } else {
-      NXPLOG_NCIHAL_E("Wrong clock freq, send default PLL@19.2MHz");
-      param_clock_src = 0x11;
-    }
+      if (nxpprofile_ctrl.bClkFreqVal == CLK_FREQ_13MHZ) {
+          param_clock_src |= 0x00;
+      } else if (nxpprofile_ctrl.bClkFreqVal == CLK_FREQ_19_2MHZ) {
+          param_clock_src |= 0x01;
+      } else if (nxpprofile_ctrl.bClkFreqVal == CLK_FREQ_24MHZ) {
+          param_clock_src |= 0x02;
+      } else if (nxpprofile_ctrl.bClkFreqVal == CLK_FREQ_26MHZ) {
+          param_clock_src |= 0x03;
+      } else if (nxpprofile_ctrl.bClkFreqVal == CLK_FREQ_38_4MHZ) {
+          param_clock_src |= 0x04;
+      } else if (nxpprofile_ctrl.bClkFreqVal == CLK_FREQ_52MHZ) {
+          param_clock_src |= 0x05;
+      } else {
+          NXPLOG_NCIHAL_E("Wrong clock freq, send default PLL@19.2MHz");
+          param_clock_src = 0x11;
+      }
   } else if (nxpprofile_ctrl.bClkSrcVal == CLK_SRC_XTAL) {
     param_clock_src = 0x08;
 
@@ -3505,22 +3501,20 @@
   int ret = 0;
   NFCSTATUS status = NFCSTATUS_FAILED;
   const char config_eseinfo_path[] = "/data/vendor/nfc/nfaStorage.bin1";
-#if (NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH == true || \
-     NXP_NFCC_DYNAMIC_DUAL_UICC == true)
-  static uint8_t reset_ese_session_identity_set[] = {
-      0x20, 0x02, 0x22, 0x03, 0xA0, 0xEA, 0x08, 0xFF, 0xFF, 0xFF,
-      0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x1E, 0x08, 0xFF, 0xFF,
-      0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0xEB, 0x08, 0xFF,
-      0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
-#else
-  static uint8_t reset_ese_session_identity_set[] = {
-      0x20, 0x02, 0x17, 0x02, 0xA0, 0xEA, 0x08, 0xFF, 0xFF,
-      0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0xEB, 0x08,
-      0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
-#endif
+
+  static uint8_t reset_session_identity_set[] = {
+          0x20, 0x02, 0x22, 0x03, 0xA0, 0xEA, 0x08, 0xFF, 0xFF, 0xFF,
+          0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x1E, 0x08, 0xFF, 0xFF,
+          0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0xEB, 0x08, 0xFF,
+          0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
+
+  static uint8_t reset_session_identity_set_stat[] = {
+          0x20, 0x02, 0x17, 0x02, 0xA0, 0xEA, 0x08, 0xFF, 0xFF,
+          0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0xEB, 0x08,
+          0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
 
 #ifdef PN547C2_FACTORY_RESET_DEBUG
-  static uint8_t reset_ese_session_identity[] = {0x20, 0x03, 0x05, 0x02,
+  static uint8_t reset_session_identity[] = {0x20, 0x03, 0x05, 0x02,
                                                  0xA0, 0xEA, 0xA0, 0xEB};
 #endif
   if (stat(config_eseinfo_path, &st) == -1) {
@@ -3533,21 +3527,28 @@
   if (ret == -1) {
 #ifdef PN547C2_FACTORY_RESET_DEBUG
     /* NXP ACT Proprietary Ext */
-    status = phNxpNciHal_send_ext_cmd(sizeof(reset_ese_session_identity),
-                                      reset_ese_session_identity);
+    status = phNxpNciHal_send_ext_cmd(sizeof(reset_session_identity),
+            reset_session_identity);
     if (status != NFCSTATUS_SUCCESS) {
-      NXPLOG_NCIHAL_E("NXP reset_ese_session_identity command failed");
+      NXPLOG_NCIHAL_E("NXP reset_session_identity command failed");
     }
 #endif
-    status = phNxpNciHal_send_ext_cmd(sizeof(reset_ese_session_identity_set),
-                                      reset_ese_session_identity_set);
+    if((nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH) &&
+            (nfcFL.nfccFL._NFCC_DYNAMIC_DUAL_UICC)) {
+        status = phNxpNciHal_send_ext_cmd(sizeof(reset_session_identity_set),
+                reset_session_identity_set);
+    }
+    else {
+        status = phNxpNciHal_send_ext_cmd(sizeof(reset_session_identity_set_stat),
+                reset_session_identity_set_stat);
+    }
     if (status != NFCSTATUS_SUCCESS) {
-      NXPLOG_NCIHAL_E("NXP reset_ese_session_identity_set command failed");
+      NXPLOG_NCIHAL_E("NXP reset_session_identity_set command failed");
     }
 #ifdef PN547C2_FACTORY_RESET_DEBUG
     /* NXP ACT Proprietary Ext */
-    status = phNxpNciHal_send_ext_cmd(sizeof(reset_ese_session_identity),
-                                      reset_ese_session_identity);
+    status = phNxpNciHal_send_ext_cmd(sizeof(reset_session_identity),
+            reset_session_identity);
     if (status != NFCSTATUS_SUCCESS) {
       NXPLOG_NCIHAL_E("NXP reset_ese_session_identity command failed");
     }
@@ -3704,3 +3705,37 @@
 
   return status;
 }
+
+/*******************************************************************************
+**
+** Function         phNxpNciHal_configFeatureList
+**
+** Description      Configures the featureList based on chip type
+**                  HW Version information number will provide chipType.
+**                  HW Version can be obtained from CORE_INIT_RESPONSE(NCI 1.0)
+**
+** Parameters       CORE_INIT_RESPONSE, len
+**
+** Returns          none
+*******************************************************************************/
+void phNxpNciHal_configFeatureList(uint8_t* init_rsp, uint16_t rsp_len) {
+    tNFC_chipType chipType = 0;
+    chipType = configChipType(init_rsp,rsp_len);
+    CONFIGURE_FEATURELIST(chipType);
+    NXPLOG_NCIHAL_D("NFC_GetFeatureList ()chipType = %d", chipType);
+}
+
+/*******************************************************************************
+**
+** Function         phNxpNciHal_getChipType
+**
+** Description      Gets the chipType which is configured during bootup
+**
+** Parameters       none
+**
+** Returns          chipType
+*******************************************************************************/
+tNFC_chipType phNxpNciHal_getChipType() {
+    return getChipType();
+}
+
diff --git a/halimpl/pn54x/hal/phNxpNciHal.h b/halimpl/pn54x/hal/phNxpNciHal.h
index 7f1dc30..00c0742 100644
--- a/halimpl/pn54x/hal/phNxpNciHal.h
+++ b/halimpl/pn54x/hal/phNxpNciHal.h
@@ -21,6 +21,7 @@
 #include <NXP_ESE_Features.h>
 #ifndef NXP_NFCC_FEATURES_H
 #include <NXP_NFCC_Features.h>
+#include "NxpNfcCapability.h"
 #endif
 #include "nfc_hal_api.h"
 
@@ -222,4 +223,30 @@
 static int phNxpNciHal_fw_mw_ver_check();
 NFCSTATUS request_EEPROM(phNxpNci_EEPROM_info_t* mEEPROM_info);
 NFCSTATUS phNxpNciHal_send_nfcee_pwr_cntl_cmd(uint8_t type);
+
+/*******************************************************************************
+**
+** Function         phNxpNciHal_configFeatureList
+**
+** Description      Configures the featureList based on chip type
+**                  HW Version information number will provide chipType.
+**                  HW Version can be obtained from CORE_INIT_RESPONSE(NCI 1.0)
+**
+** Parameters       CORE_INIT_RESPONSE, len
+**
+** Returns          none
+*******************************************************************************/
+void phNxpNciHal_configFeatureList(uint8_t* init_rsp, uint16_t rsp_len);
+
+/*******************************************************************************
+**
+** Function         phNxpNciHal_getChipType
+**
+** Description      Gets the chipType which is configured during bootup
+**
+** Parameters       none
+**
+** Returns          chipType
+*******************************************************************************/
+tNFC_chipType phNxpNciHal_getChipType();
 #endif /* _PHNXPNCIHAL_H_ */
diff --git a/halimpl/pn54x/hal/phNxpNciHal_Kovio.c b/halimpl/pn54x/hal/phNxpNciHal_Kovio.c
index 4c6ecc7..7cd95de 100644
--- a/halimpl/pn54x/hal/phNxpNciHal_Kovio.c
+++ b/halimpl/pn54x/hal/phNxpNciHal_Kovio.c
@@ -152,13 +152,11 @@
 
   send_to_upper_kovio = 1;
   if ((p_ntf[0] == 0x61) && (p_ntf[1] == 0x05)) {
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-    if ((p_ntf[5] == 0x81) && (p_ntf[6] == 0x70))
-#else
-    if ((p_ntf[5] == 0x8A) && (p_ntf[6] == 0x77))
-#endif
-    {
-      if (kovio_detected == 0) {
+      if (((nfcFL.chipType != pn547C2) &&
+              ((p_ntf[5] == 0x81) && (p_ntf[6] == 0x70))) ||
+              ((nfcFL.chipType != pn547C2)
+                      && ((p_ntf[5] == 0x8A) && (p_ntf[6] == 0x77)))) {
+          if (kovio_detected == 0) {
         if ((*p_len - 9) < KOVIO_ACT_NTF_TEMP_BUFF_LEN) {
           p_ntf[2] += 1;
           memcpy(tBuff, &p_ntf[9], *p_len - 9);
diff --git a/halimpl/pn54x/hal/phNxpNciHal_ext.c b/halimpl/pn54x/hal/phNxpNciHal_ext.c
index 3f43a98..291bb79 100644
--- a/halimpl/pn54x/hal/phNxpNciHal_ext.c
+++ b/halimpl/pn54x/hal/phNxpNciHal_ext.c
@@ -61,9 +61,9 @@
 static uint32_t iCoreRstNtfLen;
 
 extern uint32_t timeoutTimerId;
-#if (NXP_ESE_SVDD_SYNC == true)
 extern uint32_t gSvddSyncOff_Delay; /*default delay*/
-#endif
+tNfc_featureList nfcFL;
+
 extern NFCSTATUS read_retry();
 /************** HAL extension functions ***************************************/
 static void hal_extns_write_rsp_timeout_cb(uint32_t TimerId, void* pContext);
@@ -192,11 +192,8 @@
       case 0x80:
         NXPLOG_NCIHAL_D("NxpNci: Protocol = MIFARE");
         break;
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
       case 0x81:
-#else
       case 0x8A:
-#endif
         NXPLOG_NCIHAL_D("NxpNci: Protocol = Kovio");
         break;
       default:
@@ -223,11 +220,8 @@
       case 0x06:
         NXPLOG_NCIHAL_D("NxpNci: Mode = 15693 Passive Poll");
         break;
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
       case 0x70:
-#else
       case 0x77:
-#endif
         NXPLOG_NCIHAL_D("NxpNci: Mode = Kovio");
         break;
       case 0x80:
@@ -293,10 +287,10 @@
     p_ntf[4] = 0x00;
     *p_len = 5;
   }
-#if (NXP_NFCC_FORCE_NCI1_0_INIT == true)
+if(nfcFL.nfccFL._NFCC_FORCE_NCI1_0_INIT == true) {
   /*Handle NFCC2.0 in NCI2.0 Boot sequence*/
   /*After TML sent Hard Reset, we may or may not receive this notification*/
-  else if (p_ntf[0] == 0x60 && p_ntf[1] == 0x00 && p_ntf[2] == 0x09 &&
+  if (p_ntf[0] == 0x60 && p_ntf[1] == 0x00 && p_ntf[2] == 0x09 &&
            p_ntf[3] == 0x01) {
     NXPLOG_NCIHAL_D("CORE_RESET_NTF 2 reason NFCC Powered ON received !");
   } else if (p_ntf[0] == 0x40 && p_ntf[1] == 0x00 && p_ntf[2] == 0x03 &&
@@ -337,87 +331,92 @@
              nxpncihal_ctrl.is_wait_for_ce_ntf) {
     NXPLOG_NCIHAL_D("CORE_INIT_RSP 2 received !");
   }
-  /*Handle NFCC2.0 in NCI1.0 Boot sequence*/
-  else if ((p_ntf[0] == 0x40) && (p_ntf[1] == 0x01) &&
-           !nxpncihal_ctrl.is_wait_for_ce_ntf) {
-#else
-  else if ((p_ntf[0] == 0x40) && (p_ntf[1] == 0x01)) {
-#endif
+}
+/*Handle NFCC2.0 in NCI1.0 Boot sequence*/
+if (((nfcFL.nfccFL._NFCC_FORCE_NCI1_0_INIT) &&
+        ((p_ntf[0] == 0x40) && (p_ntf[1] == 0x01) &&
+                !nxpncihal_ctrl.is_wait_for_ce_ntf)) ||
+        ((!nfcFL.nfccFL._NFCC_FORCE_NCI1_0_INIT) &&
+                ((p_ntf[0] == 0x40) && (p_ntf[1] == 0x01)))) {
     if (nxpncihal_ctrl.nci_info.nci_version == NCI_VERSION_2_0) {
-      NXPLOG_NCIHAL_D("CORE_INIT_RSP NCI2.0 received !");
+        NXPLOG_NCIHAL_D("CORE_INIT_RSP NCI2.0 received !");
     } else {
-    NXPLOG_NCIHAL_D("CORE_INIT_RSP 1 received !");
-    int len = p_ntf[2] + 2; /*include 2 byte header*/
-    wFwVerRsp = (((uint32_t)p_ntf[len - 2]) << 16U) |
+        NXPLOG_NCIHAL_D("CORE_INIT_RSP 1 received !");
+
+        if(!nxpncihal_ctrl.hal_open_status) {
+            phNxpNciHal_configFeatureList(p_ntf,*p_len);
+        }
+        int len = p_ntf[2] + 2; /*include 2 byte header*/
+        wFwVerRsp = (((uint32_t)p_ntf[len - 2]) << 16U) |
                 (((uint32_t)p_ntf[len - 1]) << 8U) | p_ntf[len];
-    if (wFwVerRsp == 0) status = NFCSTATUS_FAILED;
-    iCoreInitRspLen = *p_len;
-    memcpy(bCoreInitRsp, p_ntf, *p_len);
-    NXPLOG_NCIHAL_D("NxpNci> FW Version: %x.%x.%x", p_ntf[len - 2],
-                    p_ntf[len - 1], p_ntf[len]);
-    NXPLOG_NCIHAL_D("NxpNci> Model id: %x", p_ntf[len - 3] >> 4);
-    fw_maj_ver = p_ntf[len - 1];
-    rom_version = p_ntf[len - 2];
-    /* Before FW version: 10.01.12, products are PN548c2(for model id = 0) and
-     * PN66T(for model id = 1)*/
-    if (p_ntf[len - 2] == 0x10) {
-      if ((p_ntf[len - 1] < 0x01) |
-          ((p_ntf[len - 1] == 0x01) &&
-           (p_ntf[len] <= 0x11)))  // for FW < 10.01.12
-      {
-        NXPLOG_NCIHAL_D("NxpNci> Model ID: %x", p_ntf[len - 3] >> 4);
-        if (0x01 == (p_ntf[len - 3] >> 4)) {
-          NXPLOG_NCIHAL_D("NxpNci> Product: PN66T");
+        if (wFwVerRsp == 0) status = NFCSTATUS_FAILED;
+        iCoreInitRspLen = *p_len;
+        memcpy(bCoreInitRsp, p_ntf, *p_len);
+        NXPLOG_NCIHAL_D("NxpNci> FW Version: %x.%x.%x", p_ntf[len - 2],
+                p_ntf[len - 1], p_ntf[len]);
+        NXPLOG_NCIHAL_D("NxpNci> Model id: %x", p_ntf[len - 3] >> 4);
+        fw_maj_ver = p_ntf[len - 1];
+        rom_version = p_ntf[len - 2];
+        /* Before FW version: 10.01.12, products are PN548c2(for model id = 0) and
+         * PN66T(for model id = 1)*/
+        if (p_ntf[len - 2] == 0x10) {
+            if ((p_ntf[len - 1] < 0x01) |
+                    ((p_ntf[len - 1] == 0x01) &&
+                            (p_ntf[len] <= 0x11)))  // for FW < 10.01.12
+            {
+                NXPLOG_NCIHAL_D("NxpNci> Model ID: %x", p_ntf[len - 3] >> 4);
+                if (0x01 == (p_ntf[len - 3] >> 4)) {
+                    NXPLOG_NCIHAL_D("NxpNci> Product: PN66T");
+                } else {
+                    NXPLOG_NCIHAL_D("NxpNci> Product: PN548C2");
+                }
+            } else if ((p_ntf[len - 1] == 0x01) &&
+                    (p_ntf[len] >= 0x12))  // for FW >= 10.01.12
+            {
+                NXPLOG_NCIHAL_D("NxpNci> Model ID: %x", p_ntf[len - 3] >> 4);
+                /* From FW version: 10.01.12, product names based on Hardware Version
+                 * number */
+                switch (p_ntf[len - 3]) {
+                case 0x08:
+                    NXPLOG_NCIHAL_D("NxpNci> Product: PN546");
+                    break;
+                case 0x18:
+                    NXPLOG_NCIHAL_D("NxpNci> Product: PN66T");
+                    break;
+                case 0x28:
+                    NXPLOG_NCIHAL_D("NxpNci> Product: PN548C2");
+                    break;
+                case 0x38:
+                    NXPLOG_NCIHAL_D("NxpNci> Product: PN66U");
+                    break;
+                case 0x48:
+                    NXPLOG_NCIHAL_D("NxpNci> Product: NQ210");
+                    break;
+                case 0x58:
+                    NXPLOG_NCIHAL_D("NxpNci> Product: NQ220");
+                    break;
+                case 0x68:
+                    NXPLOG_NCIHAL_D("NxpNci> Product: NPC300");
+                    break;
+                case 0x78:
+                    NXPLOG_NCIHAL_D("NxpNci> Product: NPC320");
+                    break;
+                case 0x88:
+                    NXPLOG_NCIHAL_D("NxpNci> Product: PN7150");
+                    break;
+                case 0x98:
+                    NXPLOG_NCIHAL_D("NxpNci> Product: PN548C3");
+                    break;
+                default:
+                    NXPLOG_NCIHAL_D("NxpNci> Product: Invalid");
+                    break;
+                }
+            }
         } else {
-          NXPLOG_NCIHAL_D("NxpNci> Product: PN548C2");
+            /* Do Nothing */
         }
-      } else if ((p_ntf[len - 1] == 0x01) &&
-                 (p_ntf[len] >= 0x12))  // for FW >= 10.01.12
-      {
-        NXPLOG_NCIHAL_D("NxpNci> Model ID: %x", p_ntf[len - 3] >> 4);
-        /* From FW version: 10.01.12, product names based on Hardware Version
-         * number */
-        switch (p_ntf[len - 3]) {
-          case 0x08:
-            NXPLOG_NCIHAL_D("NxpNci> Product: PN546");
-            break;
-          case 0x18:
-            NXPLOG_NCIHAL_D("NxpNci> Product: PN66T");
-            break;
-          case 0x28:
-            NXPLOG_NCIHAL_D("NxpNci> Product: PN548C2");
-            break;
-          case 0x38:
-            NXPLOG_NCIHAL_D("NxpNci> Product: PN66U");
-            break;
-          case 0x48:
-            NXPLOG_NCIHAL_D("NxpNci> Product: NQ210");
-            break;
-          case 0x58:
-            NXPLOG_NCIHAL_D("NxpNci> Product: NQ220");
-            break;
-          case 0x68:
-            NXPLOG_NCIHAL_D("NxpNci> Product: NPC300");
-            break;
-          case 0x78:
-            NXPLOG_NCIHAL_D("NxpNci> Product: NPC320");
-            break;
-          case 0x88:
-            NXPLOG_NCIHAL_D("NxpNci> Product: PN7150");
-            break;
-          case 0x98:
-            NXPLOG_NCIHAL_D("NxpNci> Product: PN548C3");
-            break;
-          default:
-            NXPLOG_NCIHAL_D("NxpNci> Product: Invalid");
-            break;
-        }
-      }
-    } else {
-      /* Do Nothing */
     }
-  }
-  }
+}
 
   else if (p_ntf[0] == 0x42 && p_ntf[1] == 0x00 && ee_disc_done == 0x01) {
     NXPLOG_NCIHAL_D(
@@ -447,18 +446,17 @@
     status = NFCSTATUS_FAILED;
     return status;
   }
-#if (NFC_NXP_CHIP_TYPE == PN547C2)
-  else if (p_ntf[0] == 0x61 && p_ntf[1] == 0x05 && p_ntf[4] == 0x02 &&
-           p_ntf[5] == 0x80 && p_ntf[6] == 0x00) {
-    NXPLOG_NCIHAL_D(
-        "Going through the iso-dep interface mifare protocol with sak value "
-        "not equal to 0x20");
-    rf_technology_length_param = p_ntf[9];
-    if ((p_ntf[9 + rf_technology_length_param] & 0x20) != 0x20) {
-      p_ntf[4] = 0x80;
-    }
+  else if ((nfcFL.chipType == pn547C2) &&
+          (p_ntf[0] == 0x61 && p_ntf[1] == 0x05 && p_ntf[4] == 0x02 &&
+                  p_ntf[5] == 0x80 && p_ntf[6] == 0x00)) {
+      NXPLOG_NCIHAL_D(
+              "Going through the iso-dep interface mifare protocol with sak value "
+              "not equal to 0x20");
+      rf_technology_length_param = p_ntf[9];
+      if ((p_ntf[9 + rf_technology_length_param] & 0x20) != 0x20) {
+          p_ntf[4] = 0x80;
+      }
   }
-#endif
   /*
   else if(p_ntf[0] == 0x61 && p_ntf[1] == 0x05 && p_ntf[4] == 0x01 && p_ntf[5]
   == 0x00 && p_ntf[6] == 0x01)
@@ -488,6 +486,7 @@
 ******************************************************************************/
 static NFCSTATUS phNxpNciHal_ext_process_nfc_init_rsp(uint8_t* p_ntf, uint16_t* p_len) {
    NFCSTATUS status = NFCSTATUS_SUCCESS;
+   uint8_t nfcdep_detected = 0x00;
     /* Parsing CORE_RESET_RSP and CORE_RESET_NTF to update NCI version.*/
     if(p_ntf == NULL || *p_len == 0x00) {
       return NFCSTATUS_FAILED;
@@ -514,16 +513,16 @@
           rom_version = p_ntf[len - 2];
           NXPLOG_NCIHAL_D ("NxpNci> FW Version: %x.%x.%x", p_ntf[len-2], p_ntf[len-1], p_ntf[len]);
           }else {
-#if (NFC_NXP_CHIP_TYPE == PN548C2)
-          if (nfcdep_detected &&
-          !(p_ntf[2] == 0x06 && p_ntf[3] == 0xA0 && p_ntf[4] == 0x00 &&
-          ((p_ntf[5] == 0xC9 && p_ntf[6] == 0x95 && p_ntf[7] == 0x00 &&
-          p_ntf[8] == 0x00) ||
-          (p_ntf[5] == 0x07 && p_ntf[6] == 0x39 && p_ntf[7] == 0xF2 &&
-          p_ntf[8] == 0x00)))) {
-          nfcdep_detected = 0x00;
-        }
-#endif
+              if(nfcFL.chipType == pn548C2) {
+                  if (nfcdep_detected &&
+                          !(p_ntf[2] == 0x06 && p_ntf[3] == 0xA0 && p_ntf[4] == 0x00 &&
+                                  ((p_ntf[5] == 0xC9 && p_ntf[6] == 0x95 && p_ntf[7] == 0x00 &&
+                                          p_ntf[8] == 0x00) ||
+                                          (p_ntf[5] == 0x07 && p_ntf[6] == 0x39 && p_ntf[7] == 0xF2 &&
+                                                  p_ntf[8] == 0x00)))) {
+                      nfcdep_detected = 0x00;
+                  }
+              }
         phNxpNciHal_emergency_recovery();
         status = NFCSTATUS_FAILED;
       } /* Parsing CORE_INIT_RSP*/
@@ -746,14 +745,13 @@
     nxpprofile_ctrl.profile_type = NFC_FORUM_PROFILE;
     status = NFCSTATUS_SUCCESS;
   }
-#if (NXP_ESE_SVDD_SYNC == true)
-  else if (p_cmd_data[0] == 0x2F && p_cmd_data[1] == 0x31 &&
-           p_cmd_data[2] == 0x01 && p_cmd_data[3] == 0x00) {
+  else if ((nfcFL.eseFL._ESE_SVDD_SYNC) &&
+          (p_cmd_data[0] == 0x2F && p_cmd_data[1] == 0x31 &&
+                  p_cmd_data[2] == 0x01 && p_cmd_data[3] == 0x00)) {
     NXPLOG_NCIHAL_D("SVDD Sync Off Command - delay it by %d ms",
                     gSvddSyncOff_Delay);
     usleep(gSvddSyncOff_Delay * 1000);
   }
-#endif
   if (nxpprofile_ctrl.profile_type == EMV_CO_PROFILE) {
     if (p_cmd_data[0] == 0x21 && p_cmd_data[1] == 0x06 &&
         p_cmd_data[2] == 0x01 && p_cmd_data[3] == 0x03) {
@@ -795,18 +793,18 @@
   } else if (p_cmd_data[3] == 0x81 && p_cmd_data[4] == 0x01 &&
              p_cmd_data[5] == 0x03) {
     NXPLOG_NCIHAL_D("> Going through the set host list");
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
+    if(nfcFL.chipType != PN547C2) {
         *cmd_len = 8;
 
         p_cmd_data[2] = 0x05;
         p_cmd_data[6] = 0x02;
         p_cmd_data[7] = 0xC0;
-#else
-    *cmd_len = 7;
+    } else {
+        *cmd_len = 7;
 
-    p_cmd_data[2] = 0x04;
-    p_cmd_data[6] = 0xC0;
-#endif
+        p_cmd_data[2] = 0x04;
+        p_cmd_data[6] = 0xC0;
+    }
     status = NFCSTATUS_SUCCESS;
   } else if (icode_detected) {
     if ((p_cmd_data[3] & 0x40) == 0x40 &&
@@ -959,30 +957,29 @@
     }
   }
 
-#if (NFC_NXP_CHIP_TYPE == PN548C2)
-  if (p_cmd_data[0] == 0x20 && p_cmd_data[1] == 0x02) {
-    uint8_t temp;
-    uint8_t* p = p_cmd_data + 4;
-    uint8_t* end = p_cmd_data + *cmd_len;
-    while (p < end) {
-      if (*p == 0x53)  // LF_T3T_FLAGS
-      {
-        NXPLOG_NCIHAL_D("> Going through workaround - LF_T3T_FLAGS swap");
-        temp = *(p + 3);
-        *(p + 3) = *(p + 2);
-        *(p + 2) = temp;
-        NXPLOG_NCIHAL_D("> Going through workaround - LF_T3T_FLAGS - End");
-        status = NFCSTATUS_SUCCESS;
-        break;
+  if ((nfcFL.chipType == pn548C2) &&
+          (p_cmd_data[0] == 0x20 && p_cmd_data[1] == 0x02)) {
+      uint8_t temp;
+      uint8_t* p = p_cmd_data + 4;
+      uint8_t* end = p_cmd_data + *cmd_len;
+      while (p < end) {
+          if (*p == 0x53)  // LF_T3T_FLAGS
+          {
+              NXPLOG_NCIHAL_D("> Going through workaround - LF_T3T_FLAGS swap");
+              temp = *(p + 3);
+              *(p + 3) = *(p + 2);
+              *(p + 2) = temp;
+              NXPLOG_NCIHAL_D("> Going through workaround - LF_T3T_FLAGS - End");
+              status = NFCSTATUS_SUCCESS;
+              break;
+          }
+          if (*p == 0xA0) {
+              p += *(p + 2) + 3;
+          } else {
+              p += *(p + 1) + 2;
+          }
       }
-      if (*p == 0xA0) {
-        p += *(p + 2) + 3;
-      } else {
-        p += *(p + 1) + 2;
-      }
-    }
   }
-#endif
 
   return status;
 }
diff --git a/halimpl/pn54x/inc/phNxpNciHal_SelfTest.h b/halimpl/pn54x/inc/phNxpNciHal_SelfTest.h
index 409392a..0b4f22c 100644
--- a/halimpl/pn54x/inc/phNxpNciHal_SelfTest.h
+++ b/halimpl/pn54x/inc/phNxpNciHal_SelfTest.h
@@ -118,15 +118,11 @@
  **                  otherwise NFCSTATUS_FAILED.
  **
  ******************************************************************************/
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 NFCSTATUS phNxpNciHal_PrbsTestStart(phNxpNfc_PrbsType_t prbs_type,
                                     phNxpNfc_PrbsHwType_t hw_prbs_type,
                                     phNxpNfc_Tech_t tech,
                                     phNxpNfc_Bitrate_t bitrate);
-#else
-NFCSTATUS phNxpNciHal_PrbsTestStart(phNxpNfc_Tech_t tech,
-                                    phNxpNfc_Bitrate_t bitrate);
-#endif
+
 /*******************************************************************************
  **
  ** Function         phNxpNciHal_PrbsTestStop
diff --git a/halimpl/pn54x/self-test/phNxpNciHal_SelfTest.c b/halimpl/pn54x/self-test/phNxpNciHal_SelfTest.c
index 43b4920..c9788cd 100644
--- a/halimpl/pn54x/self-test/phNxpNciHal_SelfTest.c
+++ b/halimpl/pn54x/self-test/phNxpNciHal_SelfTest.c
@@ -79,15 +79,11 @@
 static uint8_t st_validator_testAntenna_AgcVal_Differential(
     nci_data_t* exp, phTmlNfc_TransactInfo_t* act);
 
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 NFCSTATUS phNxpNciHal_getPrbsCmd(phNxpNfc_PrbsType_t prbs_type,
                                  phNxpNfc_PrbsHwType_t hw_prbs_type,
                                  uint8_t tech, uint8_t bitrate,
                                  uint8_t* prbs_cmd, uint8_t prbs_cmd_len);
-#else
-NFCSTATUS phNxpNciHal_getPrbsCmd(uint8_t tech, uint8_t bitrate,
-                                 uint8_t* prbs_cmd, uint8_t prbs_cmd_len);
-#endif
+
 /* Test data to validate SWP line 2*/
 static nci_test_data_t swp2_test_data[] = {
     {{
@@ -1477,27 +1473,23 @@
  **
  ******************************************************************************/
 
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 NFCSTATUS phNxpNciHal_PrbsTestStart(phNxpNfc_PrbsType_t prbs_type,
                                     phNxpNfc_PrbsHwType_t hw_prbs_type,
                                     phNxpNfc_Tech_t tech,
                                     phNxpNfc_Bitrate_t bitrate)
-#else
-NFCSTATUS phNxpNciHal_PrbsTestStart(phNxpNfc_Tech_t tech,
-                                    phNxpNfc_Bitrate_t bitrate)
-#endif
 {
   NFCSTATUS status = NFCSTATUS_FAILED;
 
   nci_test_data_t prbs_cmd_data;
 
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
   uint8_t rsp_cmd_info[] = {0x4F, 0x30, 0x01, 0x00};
-  prbs_cmd_data.cmd.len = 0x09;
-#else
-  uint8_t rsp_cmd_info[] = {0x4F, 0x30, 0x01, 0x00};
-  prbs_cmd_data.cmd.len = 0x07;
-#endif
+
+  if(nfcFL.chipType != pn547C2) {
+      prbs_cmd_data.cmd.len = 0x09;
+  }
+  else {
+      prbs_cmd_data.cmd.len = 0x07;
+  }
 
   memcpy(prbs_cmd_data.exp_rsp.p_data, &rsp_cmd_info[0], sizeof(rsp_cmd_info));
   prbs_cmd_data.exp_rsp.len = sizeof(rsp_cmd_info);
@@ -1512,14 +1504,15 @@
 
 //    [NCI] -> [0x2F 0x30 0x04 0x00 0x00 0x01 0xFF]
 
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-  status =
-      phNxpNciHal_getPrbsCmd(prbs_type, hw_prbs_type, tech, bitrate,
-                             prbs_cmd_data.cmd.p_data, prbs_cmd_data.cmd.len);
-#else
-  status = phNxpNciHal_getPrbsCmd(tech, bitrate, prbs_cmd_data.cmd.p_data,
-                                  prbs_cmd_data.cmd.len);
-#endif
+  if(nfcFL.chipType != pn547C2) {
+      status =
+              phNxpNciHal_getPrbsCmd(prbs_type, hw_prbs_type, tech, bitrate,
+                      prbs_cmd_data.cmd.p_data, prbs_cmd_data.cmd.len);
+  }
+  else {
+      status = phNxpNciHal_getPrbsCmd(0,0,tech, bitrate, prbs_cmd_data.cmd.p_data,
+              prbs_cmd_data.cmd.len);
+  }
 
   if (status == NFCSTATUS_FAILED) {
     // Invalid Param.
@@ -1591,15 +1584,11 @@
 ** Returns          NFCSTATUS_SUCCESS if successful,otherwise NFCSTATUS_FAILED.
 **
 *******************************************************************************/
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 NFCSTATUS phNxpNciHal_getPrbsCmd(phNxpNfc_PrbsType_t prbs_type,
                                  phNxpNfc_PrbsHwType_t hw_prbs_type,
                                  uint8_t tech, uint8_t bitrate,
                                  uint8_t* prbs_cmd, uint8_t prbs_cmd_len)
-#else
-NFCSTATUS phNxpNciHal_getPrbsCmd(uint8_t tech, uint8_t bitrate,
-                                 uint8_t* prbs_cmd, uint8_t prbs_cmd_len)
-#endif
+
 {
   NFCSTATUS status = NFCSTATUS_SUCCESS;
   int position_tech_param = 0;
@@ -1608,39 +1597,36 @@
   NXPLOG_NCIHAL_D("phNxpNciHal_getPrbsCmd - tech 0x%x bitrate = 0x%x", tech,
                   bitrate);
   if (NULL == prbs_cmd ||
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-      prbs_cmd_len != 0x09)
-#else
-      prbs_cmd_len != 0x07)
-#endif
+          ((nfcFL.chipType != pn547C2) && (prbs_cmd_len != 0x09)) ||
+          ((nfcFL.chipType == pn547C2) && (prbs_cmd_len != 0x07)))
   {
-    return status;
+      return status;
   }
 
   prbs_cmd[0] = 0x2F;
   prbs_cmd[1] = 0x30;
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-  prbs_cmd[2] = 0x06;
-  prbs_cmd[3] = (uint8_t)prbs_type;
-  // 0xFF Error value used for validation.
-  prbs_cmd[4] = (uint8_t)hw_prbs_type;
-  prbs_cmd[5] = 0xFF;  // TECH
-  prbs_cmd[6] = 0xFF;  // BITRATE
-  prbs_cmd[7] = 0x01;
-  prbs_cmd[8] = 0xFF;
-  position_tech_param = 5;
-  position_bit_param = 6;
-#else
-  prbs_cmd[2] = 0x04;
-  // 0xFF Error value used for validation.
-  prbs_cmd[3] = 0xFF;  // TECH
-  // 0xFF Error value used for validation.
-  prbs_cmd[4] = 0xFF;  // BITRATE
-  prbs_cmd[5] = 0x01;
-  prbs_cmd[6] = 0xFF;
-  position_tech_param = 3;
-  position_bit_param = 4;
-#endif
+  if(nfcFL.chipType != pn547C2) {
+      prbs_cmd[2] = 0x06;
+      prbs_cmd[3] = (uint8_t)prbs_type;
+      // 0xFF Error value used for validation.
+      prbs_cmd[4] = (uint8_t)hw_prbs_type;
+      prbs_cmd[5] = 0xFF;  // TECH
+      prbs_cmd[6] = 0xFF;  // BITRATE
+      prbs_cmd[7] = 0x01;
+      prbs_cmd[8] = 0xFF;
+      position_tech_param = 5;
+      position_bit_param = 6;
+  } else {
+      prbs_cmd[2] = 0x04;
+      // 0xFF Error value used for validation.
+      prbs_cmd[3] = 0xFF;  // TECH
+      // 0xFF Error value used for validation.
+      prbs_cmd[4] = 0xFF;  // BITRATE
+      prbs_cmd[5] = 0x01;
+      prbs_cmd[6] = 0xFF;
+      position_tech_param = 3;
+      position_bit_param = 4;
+  }
 
   switch (tech) {
     case NFC_RF_TECHNOLOGY_A:
@@ -1844,20 +1830,18 @@
   }
 
   if (status == NFCSTATUS_SUCCESS) {
-    if ((gtxldo_status == NFCSTATUS_SUCCESS) &&
-        (gagc_value_status == NFCSTATUS_SUCCESS) &&
-        (gagc_nfcld_status == NFCSTATUS_SUCCESS)
-#if (NXP_HW_ANTENNA_LOOP4_SELF_TEST == true)
-        && (gagc_differential_status == NFCSTATUS_SUCCESS)
-#endif
-            ) {
-      antenna_st_status = NFCSTATUS_SUCCESS;
-      NXPLOG_NCIHAL_D("phNxpNciHal_AntennaSelfTest - SUCESS\n");
-    } else {
-      NXPLOG_NCIHAL_D("phNxpNciHal_AntennaSelfTest - FAILED\n");
-    }
+      if ((gtxldo_status == NFCSTATUS_SUCCESS) &&
+              (gagc_value_status == NFCSTATUS_SUCCESS) &&
+              (gagc_nfcld_status == NFCSTATUS_SUCCESS)
+              && ((nfcFL.nfccFL._HW_ANTENNA_LOOP4_SELF_TEST) &&
+                      (gagc_differential_status == NFCSTATUS_SUCCESS))) {
+          antenna_st_status = NFCSTATUS_SUCCESS;
+          NXPLOG_NCIHAL_D("phNxpNciHal_AntennaSelfTest - SUCESS\n");
+      } else {
+          NXPLOG_NCIHAL_D("phNxpNciHal_AntennaSelfTest - FAILED\n");
+      }
   } else {
-    NXPLOG_NCIHAL_D("phNxpNciHal_AntennaSelfTest - FAILED\n");
+      NXPLOG_NCIHAL_D("phNxpNciHal_AntennaSelfTest - FAILED\n");
   }
 
   NXPLOG_NCIHAL_D("phNxpNciHal_AntennaSelfTest - end\n");
diff --git a/halimpl/pn54x/tml/phTmlNfc.c b/halimpl/pn54x/tml/phTmlNfc.c
index 7f108a1..fecfac2 100644
--- a/halimpl/pn54x/tml/phTmlNfc.c
+++ b/halimpl/pn54x/tml/phTmlNfc.c
@@ -31,9 +31,8 @@
  */
 #define PHTMLNFC_MAXTIME_RETRANSMIT (200U)
 #define MAX_WRITE_RETRY_COUNT 0x03
-#if (NXP_NFCC_I2C_READ_WRITE_IMPROVEMENT == true)
 #define MAX_READ_RETRY_COUNT 0x05
-#endif
+
 /* Retry Count = Standby Recovery time of NFCC / Retransmission time + 1 */
 static uint8_t bCurrentRetryCount = (2000 / PHTMLNFC_MAXTIME_RETRANSMIT) + 1;
 
@@ -309,9 +308,7 @@
   NFCSTATUS wStatus = NFCSTATUS_SUCCESS;
   int32_t dwNoBytesWrRd = PH_TMLNFC_RESET_VALUE;
   uint8_t temp[260];
-#if (NXP_NFCC_I2C_READ_WRITE_IMPROVEMENT == true)
   static uint8_t read_count = 0;
-#endif
 
   /* Transaction info buffer to be passed to Callback Thread */
   static phTmlNfc_TransactInfo_t tTransactionInfo;
@@ -346,46 +343,46 @@
             phTmlNfc_i2c_read(gpphTmlNfc_Context->pDevHandle, temp, 260);
 
         if (-1 == dwNoBytesWrRd) {
-          NXPLOG_TML_E("PN54X - Error in I2C Read.....\n");
-#if (NXP_NFCC_I2C_READ_WRITE_IMPROVEMENT == true)
-          if (read_count <= MAX_READ_RETRY_COUNT) {
-            read_count++;
-            /*sleep for 30/60/90/120/150 msec between each read trial incase of
-             * read error*/
-            usleep(read_count * 30 * 1000);
-          } else {
-            /* Fill the Transaction info structure to be passed to Callback
-             * Function */
-            tTransactionInfo.wStatus = NFCSTATUS_READ_FAILED;
-            // tTransactionInfo.pBuff = gpphTmlNfc_Context->tReadInfo.pBuffer;
-            /* Actual number of bytes read is filled in the structure */
-            // tTransactionInfo.wLength = gpphTmlNfc_Context->tReadInfo.wLength;
+            NXPLOG_TML_E("PN54X - Error in I2C Read.....\n");
+            if(nfcFL.nfccFL._NFCC_I2C_READ_WRITE_IMPROVEMENT) {
+                if (read_count <= MAX_READ_RETRY_COUNT) {
+                    read_count++;
+                    /*sleep for 30/60/90/120/150 msec between each read trial incase of
+                     * read error*/
+                    usleep(read_count * 30 * 1000);
+                } else {
+                    /* Fill the Transaction info structure to be passed to Callback
+                     * Function */
+                    tTransactionInfo.wStatus = NFCSTATUS_READ_FAILED;
+                    // tTransactionInfo.pBuff = gpphTmlNfc_Context->tReadInfo.pBuffer;
+                    /* Actual number of bytes read is filled in the structure */
+                    // tTransactionInfo.wLength = gpphTmlNfc_Context->tReadInfo.wLength;
 
-            /* Read operation Failed. Post a Message onto Callback Thread*/
-            /* Prepare the message to be posted on User thread */
-            tDeferredInfo.pCallback = &phTmlNfc_ReadDeferredCb;
-            tDeferredInfo.pParameter = &tTransactionInfo;
-            tMsg.eMsgType = PH_LIBNFC_DEFERREDCALL_MSG;
-            tMsg.pMsgData = &tDeferredInfo;
-            tMsg.Size = sizeof(tDeferredInfo);
-            NXPLOG_TML_D("PN54X - Posting read failure message.....\n");
-            phTmlNfc_DeferredCall(gpphTmlNfc_Context->dwCallbackThreadId,
-                                  &tMsg);
-            return;
-          }
-#endif
+                    /* Read operation Failed. Post a Message onto Callback Thread*/
+                    /* Prepare the message to be posted on User thread */
+                    tDeferredInfo.pCallback = &phTmlNfc_ReadDeferredCb;
+                    tDeferredInfo.pParameter = &tTransactionInfo;
+                    tMsg.eMsgType = PH_LIBNFC_DEFERREDCALL_MSG;
+                    tMsg.pMsgData = &tDeferredInfo;
+                    tMsg.Size = sizeof(tDeferredInfo);
+                    NXPLOG_TML_D("PN54X - Posting read failure message.....\n");
+                    phTmlNfc_DeferredCall(gpphTmlNfc_Context->dwCallbackThreadId,
+                            &tMsg);
+                    return;
+                }
+            }
           sem_post(&gpphTmlNfc_Context->rxSemaphore);
         } else if (dwNoBytesWrRd > 260) {
           NXPLOG_TML_E("Numer of bytes read exceeds the limit 260.....\n");
-#if (NXP_NFCC_I2C_READ_WRITE_IMPROVEMENT == true)
-          read_count = 0;
-#endif
+          if(nfcFL.nfccFL._NFCC_I2C_READ_WRITE_IMPROVEMENT) {
+              read_count = 0;
+          }
           sem_post(&gpphTmlNfc_Context->rxSemaphore);
         } else {
           memcpy(gpphTmlNfc_Context->tReadInfo.pBuffer, temp, dwNoBytesWrRd);
-#if (NXP_NFCC_I2C_READ_WRITE_IMPROVEMENT == true)
-          read_count = 0;
-#endif
+          if(nfcFL.nfccFL._NFCC_I2C_READ_WRITE_IMPROVEMENT) {
+              read_count = 0;
+          }
           NXPLOG_TML_D("PN54X - I2C Read successful.....len = %d\n",
                        dwNoBytesWrRd);
           /* This has to be reset only after a successful read */
@@ -933,70 +930,98 @@
         sem_post(&gpphTmlNfc_Context->rxSemaphore);
         break;
       }
-#if (NFC_NXP_ESE == TRUE)
       case phTmlNfc_e_SetJcopDwnldEnable: {
-        wStatus = phTmlNfc_i2c_set_Jcop_dwnld_state(
-            gpphTmlNfc_Context->pDevHandle, JCP_DWNLD_START);
-        break;
+          if(nfcFL.nfcNxpEse) {
+              wStatus = phTmlNfc_i2c_set_Jcop_dwnld_state(
+                      gpphTmlNfc_Context->pDevHandle, JCP_DWNLD_START);
+          }
+          break;
       }
       case phTmlNfc_e_SetJcopDwnldDisable: {
-        wStatus = phTmlNfc_i2c_set_Jcop_dwnld_state(
-            gpphTmlNfc_Context->pDevHandle, JCP_DWP_DWNLD_COMPLETE);
-        break;
+          if(nfcFL.nfcNxpEse) {
+              wStatus = phTmlNfc_i2c_set_Jcop_dwnld_state(
+                      gpphTmlNfc_Context->pDevHandle, JCP_DWP_DWNLD_COMPLETE);
+          }
+          break;
       }
       case phTmlNfc_e_SetNfcServicePid: {
-        wStatus =
-            phTmlNfc_set_pid(gpphTmlNfc_Context->pDevHandle,gpphTmlNfc_Context->nfc_service_pid);
-        break;
+          if(nfcFL.nfcNxpEse) {
+              wStatus = phTmlNfc_set_pid(gpphTmlNfc_Context->pDevHandle,
+                      gpphTmlNfc_Context->nfc_service_pid);
+          }
+          break;
       }
       case phTmlNfc_e_GetP61PwrMode: {
-        wStatus =
-            phTmlNfc_i2c_get_p61_power_state(gpphTmlNfc_Context->pDevHandle);
-        break;
+          if(nfcFL.nfcNxpEse) {
+              wStatus = phTmlNfc_i2c_get_p61_power_state(
+                      gpphTmlNfc_Context->pDevHandle);
+          }
+          break;
       }
       case phTmlNfc_e_SetP61WiredMode: {
-        wStatus =
-            phTmlNfc_i2c_set_p61_power_state(gpphTmlNfc_Context->pDevHandle, 1);
-        break;
+          if(nfcFL.nfcNxpEse) {
+              wStatus = phTmlNfc_i2c_set_p61_power_state(
+                              gpphTmlNfc_Context->pDevHandle, 1);
+          }
+          break;
       }
       case phTmlNfc_e_SetP61IdleMode: {
-        wStatus =
-            phTmlNfc_i2c_set_p61_power_state(gpphTmlNfc_Context->pDevHandle, 0);
-        break;
+          if(nfcFL.nfcNxpEse) {
+              wStatus = phTmlNfc_i2c_set_p61_power_state(
+                              gpphTmlNfc_Context->pDevHandle, 0);
+          }
+          break;
       }
       case phTmlNfc_e_SetP61DisableMode: {
-        wStatus =
-            phTmlNfc_i2c_set_p61_power_state(gpphTmlNfc_Context->pDevHandle, 2);
-        break;
+          if(nfcFL.nfcNxpEse) {
+              wStatus = phTmlNfc_i2c_set_p61_power_state(
+                              gpphTmlNfc_Context->pDevHandle, 2);
+          }
+          break;
       }
       case phTmlNfc_e_SetP61EnableMode: {
-        wStatus =
-            phTmlNfc_i2c_set_p61_power_state(gpphTmlNfc_Context->pDevHandle, 3);
-        break;
+          {
+              wStatus = phTmlNfc_i2c_set_p61_power_state(
+                      gpphTmlNfc_Context->pDevHandle, 3);
+          }
+          break;
       }
       case phTmlNfc_e_RelP61Access: {
-        wStatus =
-            phTmlNfc_i2c_set_p61_power_state(gpphTmlNfc_Context->pDevHandle, 4);
-        break;
+          if(nfcFL.nfcNxpEse) {
+              wStatus = phTmlNfc_i2c_set_p61_power_state(
+                      gpphTmlNfc_Context->pDevHandle, 4);
+          }
+          break;
       }
       case phTmlNfc_e_eSEChipRstMode: {
-        wStatus = phTmlNfc_i2c_reset(gpphTmlNfc_Context->pDevHandle, 3);
-        break;
+          if(nfcFL.nfcNxpEse) {
+              wStatus = phTmlNfc_i2c_reset(
+                      gpphTmlNfc_Context->pDevHandle, 3);
+          }
+          break;
       }
       case phTmlNfc_e_SetLegacyPowerScheme: {
-        wStatus = phTmlNfc_set_power_scheme(gpphTmlNfc_Context->pDevHandle, 2);
-        break;
+          if(nfcFL.nfcNxpEse) {
+              wStatus = phTmlNfc_set_power_scheme(
+                      gpphTmlNfc_Context->pDevHandle, 2);
+          }
+          break;
       }
       case phTmlNfc_e_SetExtPMUPowerScheme: {
-        wStatus = phTmlNfc_set_power_scheme(gpphTmlNfc_Context->pDevHandle, 3);
-        break;
+          if(nfcFL.nfcNxpEse) {
+              wStatus = phTmlNfc_set_power_scheme(
+                      gpphTmlNfc_Context->pDevHandle, 3);
+          }
+          break;
       }
       case phTmlNfc_e_SetPN67TPowerScheme: {
-        wStatus = phTmlNfc_set_power_scheme(gpphTmlNfc_Context->pDevHandle, 1);
-        break;
+          if(nfcFL.nfcNxpEse) {
+              wStatus = phTmlNfc_set_power_scheme(
+                      gpphTmlNfc_Context->pDevHandle, 1);
+          }
+          break;
       }
 
-#endif
       default: {
         wStatus = NFCSTATUS_INVALID_PARAMETER;
         break;
diff --git a/halimpl/pn54x/tml/phTmlNfc.h b/halimpl/pn54x/tml/phTmlNfc.h
index 99163c3..afe13bb 100644
--- a/halimpl/pn54x/tml/phTmlNfc.h
+++ b/halimpl/pn54x/tml/phTmlNfc.h
@@ -111,10 +111,7 @@
   phTmlNfc_e_ResetDevice = PH_TMLNFC_RESETDEVICE, /* Reset the device */
   phTmlNfc_e_EnableDownloadMode, /* Do the hardware setting to enter into
                                     download mode */
-  phTmlNfc_e_EnableNormalMode /* Hardware setting for normal mode of operation
-                                 */
-#if (NFC_NXP_ESE == TRUE)
-  ,
+  phTmlNfc_e_EnableNormalMode, /* Hardware setting for normal mode of operation*/
   phTmlNfc_e_SetNfcServicePid, /* Register the Nfc service PID with the driver
                                   */
   phTmlNfc_e_GetP61PwrMode,    /* Get the current P61 mode of operation */
@@ -127,15 +124,10 @@
   phTmlNfc_e_RelP61Access,      /*Release the P61 lock*/
   phTmlNfc_e_SetLegacyPowerScheme,
   phTmlNfc_e_SetExtPMUPowerScheme,
-  phTmlNfc_e_SetPN67TPowerScheme
-#if (NXP_ESE_SVDD_SYNC == true)
-  ,
-  phTmlNfc_e_RelP61SvddWait
-#endif
-  ,
+  phTmlNfc_e_SetPN67TPowerScheme,
+  phTmlNfc_e_RelP61SvddWait,
   phTmlNfc_e_SetJcopDwnldEnable,
   phTmlNfc_e_SetJcopDwnldDisable
-#endif
 } phTmlNfc_ControlCode_t; /* Control code for IOCTL call */
 
 /*
diff --git a/halimpl/pn54x/tml/phTmlNfc_i2c.c b/halimpl/pn54x/tml/phTmlNfc_i2c.c
index ef450ce..55d0c0e 100644
--- a/halimpl/pn54x/tml/phTmlNfc_i2c.c
+++ b/halimpl/pn54x/tml/phTmlNfc_i2c.c
@@ -308,7 +308,6 @@
   return ret;
 }
 
-#if (NFC_NXP_ESE == TRUE)
 /*******************************************************************************
 **
 ** Function         phTmlNfc_i2c_set_Jcop_dwnld_state
@@ -322,6 +321,11 @@
 **
 *******************************************************************************/
 NFCSTATUS phTmlNfc_i2c_set_Jcop_dwnld_state(void* pDevHandle, long level) {
+    NXPLOG_TML_D("phTmlNfc_i2c_set_Jcop_dwnld_state()");
+    if(!nfcFL.nfcNxpEse) {
+        NXPLOG_TML_D("NxpEse not available. Returning");
+        return NFCSTATUS_FAILED;
+    }
   int32_t ret = -1;
   NFCSTATUS wStatus = NFCSTATUS_SUCCESS;
 
@@ -360,6 +364,11 @@
 **
 *******************************************************************************/
 NFCSTATUS phTmlNfc_set_pid(void* pDevHandle, long pid) {
+    NXPLOG_TML_D("phTmlNfc_set_pid()");
+        if(!nfcFL.nfcNxpEse) {
+            NXPLOG_TML_D("NxpEse not available. Returning");
+            return NFCSTATUS_FAILED;
+        }
   NFCSTATUS wStatus = NFCSTATUS_FAILED;
   uint32_t ret = -1;
   NXPLOG_TML_D("phTmlNfc_set_pid(), pid  %ld", pid);
@@ -388,6 +397,11 @@
 **
 *******************************************************************************/
 NFCSTATUS phTmlNfc_set_power_scheme(void* pDevHandle, long id) {
+    NXPLOG_TML_D("phTmlNfc_set_power_scheme()");
+    if(!nfcFL.nfcNxpEse) {
+        NXPLOG_TML_D("NxpEse not available. Returning");
+        return NFCSTATUS_FAILED;
+    }
   int ret;
   NXPLOG_TML_D("phTmlNfc_set_power_scheme(), id  %ld", id);
 
@@ -411,6 +425,11 @@
 **
 *******************************************************************************/
 NFCSTATUS phTmlNfc_i2c_set_p61_power_state(void* pDevHandle, long level) {
+    NXPLOG_TML_D("phTmlNfc_i2c_set_p61_power_state()");
+    if(!nfcFL.nfcNxpEse) {
+        NXPLOG_TML_D("NxpEse not available. Returning");
+        return NFCSTATUS_FAILED;
+    }
   int ret = -1;
   NFCSTATUS wStatus = NFCSTATUS_FAILED;
 
@@ -451,6 +470,11 @@
 **
 *******************************************************************************/
 NFCSTATUS phTmlNfc_i2c_get_p61_power_state(void* pDevHandle) {
+    NXPLOG_TML_D("phTmlNfc_i2c_get_p61_power_state()");
+    if(!nfcFL.nfcNxpEse) {
+        NXPLOG_TML_D("NxpEse not available. Returning");
+        return NFCSTATUS_FAILED;
+    }
   int ret;
   NFCSTATUS wStatus = NFCSTATUS_FAILED;
   p61_access_state_t p61_current_state = P61_STATE_INVALID;
@@ -481,6 +505,11 @@
 **
 *******************************************************************************/
 NFCSTATUS phTmlNfc_get_ese_access(void* pDevHandle, long timeout) {
+    NXPLOG_TML_D("phTmlNfc_get_ese_access()");
+    if(!nfcFL.nfcNxpEse) {
+        NXPLOG_TML_D("NxpEse not available. Returning");
+        return NFCSTATUS_FAILED;
+    }
   int ret = -1;
   NFCSTATUS status = NFCSTATUS_SUCCESS;
   NXPLOG_TML_D("phTmlNfc_get_ese_access(), enter timeout  %ld", timeout);
@@ -501,7 +530,6 @@
   return status;
 }
 
-#if (NXP_ESE_SVDD_SYNC == true)
 /*******************************************************************************
 **
 ** Function         phTmlNfc_rel_svdd_wait
@@ -514,6 +542,11 @@
 **
 *******************************************************************************/
 NFCSTATUS phTmlNfc_rel_svdd_wait(void* pDevHandle) {
+    NXPLOG_TML_D("phTmlNfc_rel_svdd_wait()");
+    if(!nfcFL.nfcNxpEse && !nfcFL.eseFL._ESE_SVDD_SYNC) {
+        NXPLOG_TML_D("NxpEse and ESE_SVDD_SYNC not available. Returning");
+        return NFCSTATUS_FAILED;
+    }
   int ret = -1;
   NFCSTATUS status = NFCSTATUS_SUCCESS;
   NXPLOG_TML_D("phTmlNfc_rel_svdd_wait(), enter ");
@@ -533,8 +566,7 @@
                status);
   return status;
 }
-#endif
-#endif
+
 /*******************************************************************************
 **
 ** Function         getDownloadFlag
diff --git a/halimpl/pn54x/tml/phTmlNfc_i2c.h b/halimpl/pn54x/tml/phTmlNfc_i2c.h
index b7a7533..1a157bb 100644
--- a/halimpl/pn54x/tml/phTmlNfc_i2c.h
+++ b/halimpl/pn54x/tml/phTmlNfc_i2c.h
@@ -44,7 +44,6 @@
  */
 #define PN544_SET_PWR _IOW(PN544_MAGIC, 0x01, long)
 
-#if (NFC_NXP_ESE == TRUE)
 NFCSTATUS phTmlNfc_i2c_get_p61_power_state(void* pDevHandle);
 NFCSTATUS phTmlNfc_i2c_set_p61_power_state(void* pDevHandle, long arg);
 NFCSTATUS phTmlNfc_set_pid(void* pDevHandle, long pid);
@@ -88,15 +87,12 @@
   NFC and SPI will call the ioctl to update the power scheme
 */
 #define P544_SET_POWER_SCHEME _IOW(PN544_MAGIC, 0x07, long)
-#if (NXP_ESE_SVDD_SYNC == true)
 /*
   NFC will call the ioctl to release the svdd protection
 */
 #define P544_REL_SVDD_WAIT _IOW(PN544_MAGIC, 0x08, long)
-#endif
 /* SPI or DWP can call this ioctl to set the JCOP download
  * state of P61
  *
 */
 #define PN544_SET_DWNLD_STATUS _IOW(PN544_MAGIC, 0x09, long)
-#endif
diff --git a/halimpl/pn54x/utils/phNxpConfig.h b/halimpl/pn54x/utils/phNxpConfig.h
index 2493cce..ee3d011 100644
--- a/halimpl/pn54x/utils/phNxpConfig.h
+++ b/halimpl/pn54x/utils/phNxpConfig.h
@@ -68,6 +68,7 @@
 #define NAME_MIFARE_READER_ENABLE "MIFARE_READER_ENABLE"
 #define NAME_FW_STORAGE "FW_STORAGE"
 #define NAME_NXP_NFC_DEV_NODE "NXP_NFC_DEV_NODE"
+#define NAME_NXP_NFC_CHIP "NXP_NFC_CHIP"
 #define NAME_NXP_FW_NAME "NXP_FW_NAME"
 #define NAME_NXP_FW_PROTECION_OVERRIDE "NXP_FW_PROTECION_OVERRIDE"
 #define NAME_NXP_SYS_CLK_SRC_SEL "NXP_SYS_CLK_SRC_SEL"
@@ -91,11 +92,9 @@
 #define NAME_NXP_NFC_PROFILE_EXTN "NXP_NFC_PROFILE_EXTN"
 #define NAME_NXP_CHINA_TIANJIN_RF_ENABLED "NXP_CHINA_TIANJIN_RF_ENABLED"
 #define NAME_NXP_CHINA_BLK_NUM_CHK_ENABLE "NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE"
-#if (NXP_ESE_POWER_MODE == true)
 #define NAME_NXP_ESE_POWER_DH_CONTROL "NXP_ESE_POWER_DH_CONTROL"
 #define NAME_NXP_ESE_POWER_EXT_PMU "NXP_ESE_POWER_EXT_PMU"
 #define NAME_NXP_ESE_POWER_DH_CONTROL_CFG_1 "NXP_ESE_POWER_DH_CONTROL_CFG_1"
-#endif
 #define NAME_NXP_SWP_SWITCH_TIMEOUT "NXP_SWP_SWITCH_TIMEOUT"
 #define NAME_NXP_SWP_FULL_PWR_ON "NXP_SWP_FULL_PWR_ON"
 #define NAME_NXP_CORE_RF_FIELD "NXP_CORE_RF_FIELD"
@@ -105,15 +104,10 @@
 #define NAME_NXP_TYPEA_UICC_BAUD_RATE "NXP_TYPEA_UICC_BAUD_RATE"
 #define NAME_NXP_TYPEB_UICC_BAUD_RATE "NXP_TYPEB_UICC_BAUD_RATE"
 #define NAME_NXP_SET_CONFIG_ALWAYS "NXP_SET_CONFIG_ALWAYS"
-#if ((NFC_NXP_CHIP_TYPE != PN547C2) && \
-     (NXP_NFCC_ROUTING_BLOCK_BIT_PROP == true))
 #define NAME_NXP_PROP_BLACKLIST_ROUTING "NXP_PROP_BLACKLIST_ROUTING"
-#endif
 #define NAME_NXP_WIREDMODE_RESUME_TIMEOUT "NXP_WIREDMODE_RESUME_TIMEOUT"
 #define NAME_NXP_UICC_LISTEN_TECH_MASK "UICC_LISTEN_TECH_MASK"
 #define NAME_NXP_HOST_LISTEN_TECH_MASK "HOST_LISTEN_TECH_MASK"
-#if (NXP_ESE_SVDD_SYNC == true)
 #define NAME_NXP_SVDD_SYNC_OFF_DELAY "NXP_SVDD_SYNC_OFF_DELAY"
-#endif
 
 #endif
diff --git a/halimpl/pn54x/utils/phNxpNciHal_utils.h b/halimpl/pn54x/utils/phNxpNciHal_utils.h
index e0e7cae..b1a5bfc 100644
--- a/halimpl/pn54x/utils/phNxpNciHal_utils.h
+++ b/halimpl/pn54x/utils/phNxpNciHal_utils.h
@@ -42,6 +42,7 @@
 #include <phNfcStatus.h>
 #include <assert.h>
 #include <errno.h>
+
 /********************* Definitions and structures *****************************/
 
 /* List structures */
diff --git a/src/hal/include/nci_defs.h b/src/hal/include/nci_defs.h
index bfc7a2e..19653b3 100644
--- a/src/hal/include/nci_defs.h
+++ b/src/hal/include/nci_defs.h
@@ -273,7 +273,7 @@
 #define NCI_MSG_NFCEE_DISCOVER 0
 #define NCI_MSG_NFCEE_MODE_SET 1
 #define NCI_MSG_NFCEE_STATUS   2
-#if (NXP_EXTNS == TRUE) && (NXP_WIRED_MODE_STANDBY == true)
+#if (NXP_EXTNS == TRUE)
 #define NCI_MSG_NFCEE_PWR_LNK_CTRL 3
 #define NCI_MSG_NFCEE_POWER_LINK_CTRL 4
 #endif
@@ -443,13 +443,7 @@
 #define NCI_INTERFACE_FIRST_VS 0x80
 #if (NXP_EXTNS == TRUE)
 #define NCI_INTERFACE_MIFARE 0x80
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-#define NCI_INTERFACE_UICC_DIRECT 0x82
-#define NCI_INTERFACE_ESE_DIRECT 0x83
-#else
-#define NCI_INTERFACE_UICC_DIRECT 0x81
-#define NCI_INTERFACE_ESE_DIRECT 0x82
-#endif
+
 #endif
 typedef uint8_t tNCI_INTF_TYPE;
 
@@ -471,14 +465,6 @@
 #define NCI_ROUTE_QUAL_SHORT_SELECT 0x20 /* AID matching is allowed when the SELECT AID is shorter */
 #define NCI_ROUTE_QUAL_BLOCK_ROUTE  0x40 /* AID is blocked in unsupported power mode */
 /**********************************************
- * NCI RF Management / PWR AND LINK CTRl Group Params
- **********************************************/
-#if (NXP_EXTNS == TRUE) && (NXP_WIRED_MODE_STANDBY == true)
-#define NCI_PWR_LINK_PARAM_CMD_SIZE 0x02 /*nfcee id, nfcee_pwr_link_cfg*/
-#define NCI_EE_PWR_LINK_ALWAYS_ON 0x01   /*NFCEE Power Supply always On*/
-#endif
-
-/**********************************************
  * Supported Protocols
  **********************************************/
 #define NCI_PROTOCOL_UNKNOWN 0x00
diff --git a/src/hal/include/nfc_types.h b/src/hal/include/nfc_types.h
old mode 100755
new mode 100644
index 6ba5efc..acd9126
--- a/src/hal/include/nfc_types.h
+++ b/src/hal/include/nfc_types.h
@@ -18,7 +18,7 @@
 
 #ifndef NFC_TYPES_H
 #define NFC_TYPES_H
-
+#include "Nxp_Features.h"
 /****************************************************************************
 ** NFC_HDR header definition for NFC messages
 *****************************************************************************/
diff --git a/src/include/NXP_NFCC_Features.h b/src/include/NXP_NFCC_Features.h
index 8ba46a2..7619edc 100644
--- a/src/include/NXP_NFCC_Features.h
+++ b/src/include/NXP_NFCC_Features.h
@@ -17,7 +17,6 @@
 /*
  * NXP NFCC features macros definitions
  */
-
 #ifndef NXP_NFCC_FEATURES_H
 #define NXP_NFCC_FEATURES_H
 /*Flags common to all chip types*/
diff --git a/src/include/config.h b/src/include/config.h
index b0da5f0..86f8d41 100644
--- a/src/include/config.h
+++ b/src/include/config.h
@@ -57,6 +57,7 @@
 #define NAME_SCREEN_OFF_POWER_STATE "SCREEN_OFF_POWER_STATE"
 #define NAME_PREINIT_DSP_CFG "PREINIT_DSP_CFG"
 #define NAME_DTA_START_CFG "DTA_START_CFG"
+#define NAME_NXP_NFC_CHIP "NXP_NFC_CHIP"
 #if (NXP_EXTNS != TRUE)
 #define NAME_TRANSPORT_DRIVER "TRANSPORT_DRIVER"
 #define NAME_POWER_CONTROL_DRIVER "POWER_CONTROL_DRIVER"
@@ -101,9 +102,7 @@
 #define NAME_DEFAULT_FELICA_CLT_ROUTE "DEFAULT_FELICA_CLT_ROUTE"
 #define NAME_DEFAULT_FELICA_CLT_PWR_STATE "DEFAULT_FELICA_CLT_PWR_STATE"
 #endif
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 #define NAME_DEFAULT_OFFHOST_ROUTE "DEFAULT_OFFHOST_ROUTE"
-#endif
 #define NAME_SNOOZE_MODE_CFG "SNOOZE_MODE_CFG"
 #define NAME_NFA_DM_DISC_DURATION_POLL "NFA_DM_DISC_DURATION_POLL"
 #define NAME_SPD_DEBUG "SPD_DEBUG"
@@ -139,20 +138,12 @@
   "NXP_ALLOW_WIRED_IN_MIFARE_DESFIRE_CLT"
 #define NAME_NXP_NFCC_RF_FIELD_EVENT_TIMEOUT "NXP_NFCC_RF_FIELD_EVENT_TIMEOUT"
 #define NAME_NFA_BLOCK_ROUTE "NFA_BLOCK_ROUTE"
-#if (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_TIMEOUT)
 #define NAME_NXP_MIFARE_DESFIRE_DISABLE "NXP_MIFARE_DESFIRE_DISABLE"
-#endif
-#if (NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH == true)
 #define NAME_NXP_DUAL_UICC_ENABLE "NXP_DUAL_UICC_ENABLE"
-#endif
 #define NAME_NXP_DEFAULT_NFCEE_TIMEOUT "NXP_DEFAULT_NFCEE_TIMEOUT"
 #define NAME_NXP_DEFAULT_NFCEE_DISC_TIMEOUT "NXP_DEFAULT_NFCEE_DISC_TIMEOUT"
-#if (NXP_NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION == true)
 #define NAME_NXP_NFCC_PASSIVE_LISTEN_TIMEOUT "NXP_NFCC_PASSIVE_LISTEN_TIMEOUT"
-#endif
-#if (NXP_ESE_JCOP_DWNLD_PROTECTION == true)
 #define NAME_OS_DOWNLOAD_TIMEOUT_VALUE "OS_DOWNLOAD_TIMEOUT_VALUE"
-#endif
 #define NAME_NXP_HCEF_CMD_RSP_TIMEOUT_VALUE "NXP_HCEF_CMD_RSP_TIMEOUT_VALUE"
 #endif
 
diff --git a/src/include/nfc_target.h b/src/include/nfc_target.h
index 48e92ed..bbfdbbe 100644
--- a/src/include/nfc_target.h
+++ b/src/include/nfc_target.h
@@ -51,10 +51,10 @@
 #include "bt_trace.h"
 #endif
 
-#if (NXP_EXTNS == TRUE)
+/*#if (NXP_EXTNS == TRUE)
 #include <NXP_NFCC_Features.h>
 #include <NXP_ESE_Features.h>
-#endif
+#endif*/
 
 #ifndef USERIAL_DEBUG
 #define USERIAL_DEBUG false
@@ -677,19 +677,15 @@
 #endif
 
 /* Maximum number of AID entries per target_handle  */
-#ifndef NFA_EE_MAX_AID_ENTRIES
 #if (NXP_EXTNS == TRUE)
 #define NFA_EE_MIN_AID_SIZE (5)
 #define NFA_EE_MIN_AID_ENTRY_SIZE (NFA_EE_MIN_AID_SIZE + 4)
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
+
 #define NFA_EE_MAX_AID_ENTRIES (50)
 #else
-#define NFA_EE_MAX_AID_ENTRIES (20)
-#endif
-#else
 #define NFA_EE_MAX_AID_ENTRIES (10)
 #endif
-#endif
+
 #define NFA_EE_MAX_APDU_PATTERN_ENTRIES (5)
 /* Maximum number of callback functions can be registered through
  * NFA_EeRegister() */
diff --git a/src/nfa/ce/nfa_ce_act.c b/src/nfa/ce/nfa_ce_act.c
old mode 100755
new mode 100644
index 11f1c38..e1803bd
--- a/src/nfa/ce/nfa_ce_act.c
+++ b/src/nfa/ce/nfa_ce_act.c
@@ -387,10 +387,11 @@
   /* For NCI draft 22+, the polarity of NFC_PMID_LF_T3T_FLAGS2 is flipped */
   t3t_flags2_mask = ~t3t_flags2_mask;
 
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-  NFA_TRACE_DEBUG0(" LF_T3T_FLAGS swap for NCI specification compliance");
-  t3t_flags2_mask = ((t3t_flags2_mask >> 8) | (t3t_flags2_mask << 8));
-#endif
+
+  if(nfcFL.chipType != pn547C2) {
+      NFA_TRACE_DEBUG0(" LF_T3T_FLAGS swap for NCI specification compliance");
+      t3t_flags2_mask = ((t3t_flags2_mask >> 8) | (t3t_flags2_mask << 8));
+  }
 
   UINT8_TO_STREAM(p_params, NFC_PMID_LF_T3T_FLAGS2);      /* type */
   UINT8_TO_STREAM(p_params, NCI_PARAM_LEN_LF_T3T_FLAGS2); /* length */
@@ -892,8 +893,8 @@
          sizeof(tNFC_ACTIVATE_DEVT));
 
 #if (NXP_EXTNS == TRUE)
-  if (p_cb->activation_params.intf_param.type == NCI_INTERFACE_UICC_DIRECT ||
-      p_cb->activation_params.intf_param.type == NCI_INTERFACE_ESE_DIRECT) {
+  if (p_cb->activation_params.intf_param.type == nfcFL.nfcMwFL._NCI_INTERFACE_UICC_DIRECT ||
+      p_cb->activation_params.intf_param.type == nfcFL.nfcMwFL._NCI_INTERFACE_ESE_DIRECT) {
     memcpy(&(conn_evt.activated.activate_ntf), &p_cb->activation_params,
            sizeof(tNFC_ACTIVATE_DEVT));
     for (i = 0; i < NFA_CE_LISTEN_INFO_IDX_INVALID; i++) {
diff --git a/src/nfa/dm/nfa_dm_act.c b/src/nfa/dm/nfa_dm_act.c
old mode 100755
new mode 100644
index 5672dd5..8ff39ff
--- a/src/nfa/dm/nfa_dm_act.c
+++ b/src/nfa/dm/nfa_dm_act.c
@@ -421,23 +421,26 @@
     case NFC_EE_ACTION_REVT:      /* EE Action notification */
     case NFC_NFCEE_MODE_SET_REVT: /* NFCEE Mode Set response */
 #if (NXP_EXTNS == TRUE)
-    case NFC_NFCEE_MODE_SET_INFO:
-#if (NXP_WIRED_MODE_STANDBY == true)
     case NFC_NFCEE_PWR_LNK_CTRL_REVT:
-#endif
+        if(!nfcFL.eseFL._WIRED_MODE_STANDBY) {
+            break;
+        }
+    case NFC_NFCEE_MODE_SET_INFO:
 #endif
     case NFC_SET_ROUTING_REVT: /* Configure Routing response */
       nfa_ee_proc_evt(event, p_data);
       break;
 
     case NFC_EE_DISCOVER_REQ_REVT: /* EE Discover Req notification */
-#if ((NFC_NXP_ESE == TRUE) && (NXP_EXTNS == TRUE) && \
-     (NXP_ESE_ETSI_READER_ENABLE != true) &&         \
-     (NXP_ESE_DWP_SPI_SYNC_ENABLE != true))
-      if (nfa_dm_is_active() &&
-          (nfa_dm_cb.disc_cb.disc_state == NFA_DM_RFST_DISCOVERY)) {
-        nfa_dm_rf_deactivate(NFA_DEACTIVATE_TYPE_IDLE);
-      }
+#if(NXP_EXTNS == TRUE)
+        if((nfcFL.nfcNxpEse) &&
+                (!nfcFL.eseFL._ESE_ETSI_READER_ENABLE) &&
+                (!nfcFL.eseFL._ESE_DWP_SPI_SYNC_ENABLE)) {
+            if (nfa_dm_is_active() &&
+                    (nfa_dm_cb.disc_cb.disc_state == NFA_DM_RFST_DISCOVERY)) {
+                nfa_dm_rf_deactivate(NFA_DEACTIVATE_TYPE_IDLE);
+            }
+        }
 #endif
       nfa_ee_proc_evt(event, p_data);
       break;
@@ -505,27 +508,27 @@
 
     case NFC_NFCC_TIMEOUT_REVT:
 #if (NXP_EXTNS == TRUE)
-      if (p_data->status == NFC_STATUS_FAILED) {
-        dm_cback_data.status = p_data->status;
-        (*nfa_dm_cb.p_dm_cback)(NFA_DM_NFCC_TIMEOUT_EVT, &dm_cback_data);
-      } else {
+        if (p_data->status == NFC_STATUS_FAILED) {
+            dm_cback_data.status = p_data->status;
+            (*nfa_dm_cb.p_dm_cback)(NFA_DM_NFCC_TIMEOUT_EVT, &dm_cback_data);
+        }
+        else if (nfcFL.nfcNxpEse &&
+                nfcFL.eseFL._ESE_ETSI_READER_ENABLE) {
+            conn_evt.status = p_data->status;
+            nfa_dm_conn_cback_event_notify(NFA_RECOVERY_EVT, &conn_evt);
+        }
 #endif
-#if ((NFC_NXP_ESE == TRUE) && (NXP_ESE_ETSI_READER_ENABLE == true))
-        conn_evt.status = p_data->status;
-        nfa_dm_conn_cback_event_notify(NFA_RECOVERY_EVT, &conn_evt);
-#endif
-#if (NXP_EXTNS == TRUE)
-      }
-#endif
-      break;
+        break;
 
     case NFC_NFCC_TRANSPORT_ERR_REVT:
       NFA_TRACE_DEBUG1("flags:0x%08x", nfa_dm_cb.flags);
-#if (NXP_EXTNS == TRUE && NXP_NFCC_I2C_READ_WRITE_IMPROVEMENT == true)
-      if (p_data->status == NFC_STATUS_FAILED) {
-        dm_cback_data.status = p_data->status;
+#if (NXP_EXTNS == TRUE)
+      if(nfcFL.nfccFL._NFCC_I2C_READ_WRITE_IMPROVEMENT) {
+          if (p_data->status == NFC_STATUS_FAILED) {
+              dm_cback_data.status = p_data->status;
+          }
+          dm_cback_evt = NFA_DM_NFCC_TRANSPORT_ERR_EVT;
       }
-      dm_cback_evt = NFA_DM_NFCC_TRANSPORT_ERR_EVT;
 #else
       dm_cback_evt = (event == NFC_NFCC_TIMEOUT_REVT)
                          ? NFA_DM_NFCC_TIMEOUT_EVT
@@ -1189,12 +1192,12 @@
 
   NFA_TRACE_DEBUG0("nfa_dm_act_enable_listening ()");
 
-  nfa_dm_cb.flags &= (~NFA_DM_FLAGS_LISTEN_DISABLED
-#if (NXP_EXTNS == TRUE && \
-     NXP_NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION == true)
-                      & ~NFA_DM_FLAGS_PASSIVE_LISTEN_DISABLED
+  nfa_dm_cb.flags &= ~NFA_DM_FLAGS_LISTEN_DISABLED;
+#if (NXP_EXTNS == TRUE)
+  if(nfcFL.eseFL._NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION) {
+      nfa_dm_cb.flags &= ~NFA_DM_FLAGS_PASSIVE_LISTEN_DISABLED;
+  }
 #endif
-                      );
   evt_data.status = NFA_STATUS_OK;
   nfa_dm_conn_cback_event_notify(NFA_LISTEN_ENABLED_EVT, &evt_data);
 
@@ -1223,8 +1226,7 @@
   return (true);
 }
 
-#if (NXP_EXTNS == TRUE && \
-     NXP_NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION == true)
+#if (NXP_EXTNS == TRUE)
 /*******************************************************************************
 **
 ** Function         nfa_dm_act_disable_passive_listening
@@ -1235,6 +1237,10 @@
 **
 *******************************************************************************/
 bool nfa_dm_act_disable_passive_listening(tNFA_DM_MSG* p_data) {
+    if(!nfcFL.eseFL._NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION) {
+        NFA_TRACE_DEBUG0("NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION feature is not available!!");
+        return false;
+    }
   tNFA_CONN_EVT_DATA evt_data;
 
   NFA_TRACE_DEBUG0("nfa_dm_act_disable_passive_listening ()");
@@ -2065,9 +2071,11 @@
     case NFC_NFCC_POWER_OFF_REVT:
       return "NFC_NFCC_POWER_OFF_REVT";
 
-#if ((NXP_EXTNS == TRUE) && (NXP_WIRED_MODE_STANDBY == true))
+#if (NXP_EXTNS == TRUE)
     case NFC_NFCEE_PWR_LNK_CTRL_REVT:
-      return "NFC_NFCEE_PWR_LNK_CTRL_REVT";
+        if(nfcFL.eseFL._WIRED_MODE_STANDBY) {
+            return "NFC_NFCEE_PWR_LNK_CTRL_REVT";
+        }
 #endif
     default:
       return "unknown revt";
diff --git a/src/nfa/dm/nfa_dm_api.c b/src/nfa/dm/nfa_dm_api.c
old mode 100755
new mode 100644
index ea41f36..e7ab5e9
--- a/src/nfa/dm/nfa_dm_api.c
+++ b/src/nfa/dm/nfa_dm_api.c
@@ -102,6 +102,7 @@
 #else
   NFC_Init(p_hal_entry_tbl);
 #endif
+  nfa_ee_max_ee_cfg == nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED;
 }
 
 /*******************************************************************************
@@ -605,7 +606,6 @@
 }
 
 #if (NXP_EXTNS == TRUE)
-#if (NXP_NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION == true)
 /*******************************************************************************
 **
 ** Function         NFA_DisablePassiveListening
@@ -625,6 +625,12 @@
 **
 *******************************************************************************/
 tNFA_STATUS NFA_DisablePassiveListening(void) {
+    NFA_TRACE_API0("NFA_DisablePassiveListening ()");
+    if(!nfcFL.eseFL._NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION) {
+        NFA_TRACE_DEBUG0(" NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION"
+                " feature is not available!!");
+        return (NFA_STATUS_FAILED);
+    }
   NFC_HDR* p_msg;
 
   NFA_TRACE_API0("NFA_DisablePassiveListening ()");
@@ -639,9 +645,7 @@
 
   return (NFA_STATUS_FAILED);
 }
-#endif
 
-#if (NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH == true)
 /*******************************************************************************
 **
 ** Function:        NFA_SetPreferredUiccId
@@ -654,10 +658,15 @@
 **
 *******************************************************************************/
 void NFA_SetPreferredUiccId(uint8_t uicc_id) {
-  nfa_dm_cb.selected_uicc_id = uicc_id;
+    NFA_TRACE_API0("NFA_SetPreferredUiccId ()");
+    if(!nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH) {
+        NFA_TRACE_DEBUG0("NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH"
+                " feature is not available!!");
+        return;
+    }
+    nfa_dm_cb.selected_uicc_id = uicc_id;
 }
 #endif
-#endif
 
 /*******************************************************************************
 **
@@ -1033,15 +1042,14 @@
   NFA_TRACE_API1("NFA_SendRawFrame () data_len:%d", data_len);
 
 /* Validate parameters */
-#if (NXP_NFCC_EMPTY_DATA_PACKET == true)
-  if (((data_len == 0) || (p_raw_data == NULL)) &&
-      (!(nfa_dm_cb.disc_cb.disc_state == NFA_DM_RFST_LISTEN_ACTIVE &&
-         nfa_dm_cb.disc_cb.activated_protocol == NFA_PROTOCOL_T3T)))
-#else
-  if ((data_len == 0) || (p_raw_data == NULL))
-#endif
-    return (NFA_STATUS_INVALID_PARAM);
-
+  if ((nfcFL.nfccFL._NXP_NFCC_EMPTY_DATA_PACKET &&
+          (((data_len == 0) || (p_raw_data == NULL)) &&
+                  (!(nfa_dm_cb.disc_cb.disc_state == NFA_DM_RFST_LISTEN_ACTIVE &&
+                          nfa_dm_cb.disc_cb.activated_protocol ==
+                                  NFA_PROTOCOL_T3T)))) ||
+          ((data_len == 0) || (p_raw_data == NULL))) {
+      return (NFA_STATUS_INVALID_PARAM);
+  }
   size = NFC_HDR_SIZE + NCI_MSG_OFFSET_SIZE + NCI_DATA_HDR_SIZE + data_len;
   p_msg = (NFC_HDR*)GKI_getbuf(size);
   if (p_msg != NULL) {
@@ -1051,13 +1059,14 @@
     p_msg->len = data_len;
 
     p = (uint8_t*)(p_msg + 1) + p_msg->offset;
-#if (NXP_NFCC_EMPTY_DATA_PACKET == true)
-    if (p_raw_data != NULL) {
-      memcpy(p, p_raw_data, data_len);
+    if (nfcFL.nfccFL._NXP_NFCC_EMPTY_DATA_PACKET) {
+        if (p_raw_data != NULL) {
+            memcpy(p, p_raw_data, data_len);
+        }
     }
-#else
-    memcpy(p, p_raw_data, data_len);
-#endif
+    else {
+        memcpy(p, p_raw_data, data_len);
+    }
 
     nfa_sys_sendmsg(p_msg);
 
@@ -1251,7 +1260,6 @@
   NFC_HDR* p_msg;
 
   NFA_TRACE_API1("NFA_PowerOffSleepState () start_stop=%d", start_stop);
-
   if (nfa_dm_cb.flags & NFA_DM_FLAGS_SETTING_PWR_MODE) {
     NFA_TRACE_ERROR0(
         "NFA_PowerOffSleepState (): NFA DM is busy to update power mode");
@@ -1503,7 +1511,6 @@
   return mwVer;
 }
 
-#if (NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH == true)
 /*******************************************************************************
 **
 ** Function:        NFA_ResetNfcc
@@ -1515,6 +1522,12 @@
 **
 *******************************************************************************/
 tNFA_STATUS NFA_ResetNfcc() {
+    NFA_TRACE_DEBUG0("NFA_ResetNfcc()");
+    if(!nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH) {
+        NFA_TRACE_DEBUG0("NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH"
+                " feature is not available!!");
+        return (NFA_STATUS_FAILED);
+    }
   tNFA_STATUS status = NFA_STATUS_FAILED;
   status = nfc_ncif_reset_nfcc();
   return status;
@@ -1533,6 +1546,12 @@
 **
 *******************************************************************************/
 void NFA_EE_HCI_Control(bool flagEnable) {
+    NFA_TRACE_DEBUG0("NFA_EE_HCI_Control()");
+    if(!nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH) {
+        NFA_TRACE_DEBUG0("NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH"
+                " feature is not available!!");
+        return;
+    }
   uint8_t id[2] = {NFA_ID_HCI, NFA_ID_EE};
   uint8_t i = 0;
   if (!flagEnable) {
@@ -1565,7 +1584,6 @@
   }
 }
 #endif
-#endif
 
 /*******************************************************************************
 **
diff --git a/src/nfa/dm/nfa_dm_cfg.c b/src/nfa/dm/nfa_dm_cfg.c
old mode 100755
new mode 100644
index ec19331..2101855
--- a/src/nfa/dm/nfa_dm_cfg.c
+++ b/src/nfa/dm/nfa_dm_cfg.c
@@ -133,4 +133,4 @@
 };
 
 tNFA_PROPRIETARY_CFG* p_nfa_proprietary_cfg =
-    (tNFA_PROPRIETARY_CFG*)&nfa_proprietary_cfg;
\ No newline at end of file
+    (tNFA_PROPRIETARY_CFG*)&nfa_proprietary_cfg;
diff --git a/src/nfa/dm/nfa_dm_discover.c b/src/nfa/dm/nfa_dm_discover.c
old mode 100755
new mode 100644
index 301d0fc..823d877
--- a/src/nfa/dm/nfa_dm_discover.c
+++ b/src/nfa/dm/nfa_dm_discover.c
@@ -111,7 +111,7 @@
     200; /* timeout value 2 sec waiting for deactivate ntf */
 #endif
 
-#if (NFC_NXP_ESE == TRUE && (NXP_ESE_ETSI_READER_ENABLE == true))
+#if (NXP_EXTNS == TRUE)
 bool etsi_reader_in_progress = false;
 #endif
 /*******************************************************************************
@@ -145,9 +145,9 @@
         dm_disc_mask);
     dm_disc_mask &= ~NFA_DM_DISC_MASK_NFC_DEP;
   }
-#if ((NXP_EXTNS == TRUE) && \
-     (NXP_NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION == true))
-  if (nfa_dm_cb.flags & NFA_DM_FLAGS_PASSIVE_LISTEN_DISABLED) {
+#if (NXP_EXTNS == TRUE)
+  if (nfcFL.eseFL._NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION &&
+          (nfa_dm_cb.flags & NFA_DM_FLAGS_PASSIVE_LISTEN_DISABLED)) {
     NFA_TRACE_DEBUG1(
         "nfa_dm_get_rf_discover_config () passive listen disabled, rm listen "
         "from 0x%x",
@@ -1052,21 +1052,18 @@
 **
 *******************************************************************************/
 static void nfa_dm_disc_deact_ntf_timeout_cback(TIMER_LIST_ENT* p_tle) {
-  (void)p_tle;
+    (void)p_tle;
 
-  NFA_TRACE_ERROR0("nfa_dm_disc_deact_ntf_timeout_cback()");
-#if ((NFC_NXP_ESE == TRUE) && (NXP_ESE_ETSI_READER_ENABLE == true))
-  if (nfc_cb.num_disc_maps == 1) {
-    NFC_TRACE_ERROR0("reset Nfc..!!");
-    etsi_reader_in_progress = true;
-    nfc_ncif_cmd_timeout();
+    NFA_TRACE_ERROR0("nfa_dm_disc_deact_ntf_timeout_cback()");
+    if (nfcFL.nfcNxpEse && nfcFL.eseFL._ESE_ETSI_READER_ENABLE &&
+            (nfc_cb.num_disc_maps == 1)) {
+        NFC_TRACE_ERROR0("reset Nfc..!!");
+        etsi_reader_in_progress = true;
+        nfc_ncif_cmd_timeout();
 
-  } else {
-#endif
-    nfa_dm_disc_force_to_idle();
-#if ((NFC_NXP_ESE == TRUE) && (NXP_ESE_ETSI_READER_ENABLE == true))
-  }
-#endif
+    } else {
+        nfa_dm_disc_force_to_idle();
+    }
 }
 
 /*******************************************************************************
@@ -1587,8 +1584,8 @@
    * 1. Pass this info to JNI as START_READER_EVT.
    * return (NFA_STATUS_OK)
    */
-  if (p_data->activate.intf_param.type == NCI_INTERFACE_UICC_DIRECT ||
-      p_data->activate.intf_param.type == NCI_INTERFACE_ESE_DIRECT) {
+  if (p_data->activate.intf_param.type == nfcFL.nfcMwFL._NCI_INTERFACE_UICC_DIRECT ||
+      p_data->activate.intf_param.type == nfcFL.nfcMwFL._NCI_INTERFACE_ESE_DIRECT) {
     for (xx = 0; xx < NFA_DM_DISC_NUM_ENTRIES; xx++) {
       if ((nfa_dm_cb.disc_cb.entry[xx].in_use)
 #if (NXP_EXTNS != TRUE)
@@ -2311,9 +2308,9 @@
          * set new state NFA_DM_RFST_POLL_ACTIVE
          * */
         else if (p_data->nfc_discover.activate.intf_param.type ==
-                     NCI_INTERFACE_UICC_DIRECT ||
+                nfcFL.nfcMwFL._NCI_INTERFACE_UICC_DIRECT ||
                  p_data->nfc_discover.activate.intf_param.type ==
-                     NCI_INTERFACE_ESE_DIRECT) {
+                         nfcFL.nfcMwFL._NCI_INTERFACE_ESE_DIRECT) {
           nfa_dm_disc_new_state(NFA_DM_RFST_POLL_ACTIVE);
         }
 #endif
@@ -3354,7 +3351,7 @@
     NFA_TRACE_DEBUG1("nfa_dm_p2p_prio_logic event_type = 0x%x", event_type);
 
 #if (NXP_EXTNS == TRUE)
-    if (type == NCI_INTERFACE_UICC_DIRECT || type == NCI_INTERFACE_ESE_DIRECT) {
+    if (type == nfcFL.nfcMwFL._NCI_INTERFACE_UICC_DIRECT || type == nfcFL.nfcMwFL._NCI_INTERFACE_ESE_DIRECT) {
       NFA_TRACE_DEBUG0("Disable the p2p prio logic RDR_SWP");
       return true;
     }
diff --git a/src/nfa/dm/nfa_dm_main.c b/src/nfa/dm/nfa_dm_main.c
old mode 100755
new mode 100644
index fb04f68..688de0e
--- a/src/nfa/dm/nfa_dm_main.c
+++ b/src/nfa/dm/nfa_dm_main.c
@@ -83,8 +83,7 @@
     nfa_dm_act_disable_polling,      /* NFA_DM_API_DISABLE_POLLING_EVT       */
     nfa_dm_act_enable_listening,     /* NFA_DM_API_ENABLE_LISTENING_EVT      */
     nfa_dm_act_disable_listening,    /* NFA_DM_API_DISABLE_LISTENING_EVT     */
-#if ((NXP_EXTNS == TRUE) && \
-     (NXP_NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION == true))
+#if (NXP_EXTNS == TRUE)
     nfa_dm_act_disable_passive_listening, /* NFA_DM_API_DISABLE_PASSIVE_LISTENING_EVT
                                              */
 #endif
@@ -593,8 +592,7 @@
     case NFA_DM_API_DISABLE_LISTENING_EVT:
       return "NFA_DM_API_DISABLE_LISTENING_EVT";
 
-#if ((NXP_EXTNS == TRUE) && \
-     (NXP_NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION == true))
+#if (NXP_EXTNS == TRUE)
     case NFA_DM_API_DISABLE_PASSIVE_LISTENING_EVT:
       return "NFA_DM_API_DISABLE_PASSIVE_LISTENING_EVT";
 #endif
diff --git a/src/nfa/ee/nfa_ee_act.c b/src/nfa/ee/nfa_ee_act.c
index 3d87c03..50e44f9 100644
--- a/src/nfa/ee/nfa_ee_act.c
+++ b/src/nfa/ee/nfa_ee_act.c
@@ -51,9 +51,7 @@
 #if (NXP_EXTNS == TRUE)
 #include "nfa_hci_int.h"
 #endif
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 #include <config.h>
-#endif
 
 /* the de-bounce timer:
  * The NFA-EE API functions are called to set the routing and VS configuration.
@@ -113,7 +111,7 @@
 #endif
 };
 
-#if ((NXP_EXTNS == TRUE) && (NFC_NXP_LISTEN_ROUTE_TBL_OPTIMIZATION == TRUE))
+#if (NXP_EXTNS == TRUE)
 static uint8_t* proto_route_buff;
 static uint8_t* tech_route_buff;
 static uint8_t* proto_pp;
@@ -135,12 +133,10 @@
 bool gNfaProvisionMode =
     false; /* to know if device is set to provision mode or not */
 uint8_t nfa_ee_ce_p61_active = 0x00;
-#if ((NFC_NXP_CHIP_TYPE != PN547C2) && (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
 static uint16_t max_routing_table_size;
 static uint16_t max_aid_config_length;
 static uint16_t max_aid_entries;
 #endif
-#endif
 
 static void nfa_ee_report_discover_req_evt(void);
 static void nfa_ee_build_discover_req_evt(tNFA_EE_DISCOVER_REQ* p_evt_data);
@@ -661,7 +657,7 @@
   uint32_t xx;
   int total_len = 0;
   tNFA_EE_ECB* p_cb = nfa_ee_cb.ecb;
-  for (xx = 0; xx < NFA_EE_MAX_EE_SUPPORTED; xx++, p_cb++) {
+  for (xx = 0; xx < nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED; xx++, p_cb++) {
     total_len += nfa_ee_find_total_aid_len(p_cb, 0);
     total_len += (p_cb->aid_entries * 2); /*Adding tag/len */
   }
@@ -886,43 +882,52 @@
       }
     }
   }
-#if ((NXP_EXTNS == TRUE) && (NFC_NXP_CHIP_TYPE != PN547C2) && \
-     (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
-  max_routing_table_size = nfc_ncif_getMaxRoutingTableSize();
-  if (max_routing_table_size <
-      (NFA_EE_TOTAL_TECH_ROUTE_SIZE + NFA_EE_TOTAL_PROTO_ROUTE_SIZE)) {
-    max_routing_table_size = NFA_EE_ROUT_BUF_SIZE;
+
+#if (NXP_EXTNS == TRUE)
+  if((nfcFL.chipType != pn547C2) &&
+          (nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN == true)) {
+      max_routing_table_size = nfc_ncif_getMaxRoutingTableSize();
+      if (max_routing_table_size <
+              (NFA_EE_TOTAL_TECH_ROUTE_SIZE + NFA_EE_TOTAL_PROTO_ROUTE_SIZE)) {
+          max_routing_table_size = NFA_EE_ROUT_BUF_SIZE;
+      }
+      max_aid_config_length = nfa_ee_find_max_aid_config_length();
+      max_aid_entries = max_aid_config_length / NFA_EE_MIN_AID_ENTRY_SIZE;
+      NFA_TRACE_DEBUG3(
+              "max_routing_table_size = %d max_aid_config_length: %d and "
+              "max_aid_entries: %d",
+              max_routing_table_size, max_aid_config_length, max_aid_entries);
+      /* Dynamic ecb allocation based on max aid entry calculated from max. routing
+       * table size( from core_init rsp )*/
+      for (xx = 0; xx < NFA_EE_NUM_ECBS; xx++) {
+          nfa_ee_cb.ecb[xx].aid_len = GKI_getbuf(max_aid_entries);
+          nfa_ee_cb.ecb[xx].aid_pwr_cfg = GKI_getbuf(max_aid_entries);
+          nfa_ee_cb.ecb[xx].aid_rt_info = GKI_getbuf(max_aid_entries);
+          nfa_ee_cb.ecb[xx].aid_rt_loc = GKI_getbuf(max_aid_entries);
+          nfa_ee_cb.ecb[xx].aid_cfg = GKI_getbuf(max_aid_config_length);
+          if ((NULL != nfa_ee_cb.ecb[xx].aid_len) &&
+                  (NULL != nfa_ee_cb.ecb[xx].aid_pwr_cfg) &&
+                  (NULL != nfa_ee_cb.ecb[xx].aid_rt_info) &&
+                  (NULL != nfa_ee_cb.ecb[xx].aid_rt_loc) &&
+                  (NULL != nfa_ee_cb.ecb[xx].aid_cfg)) {
+              memset(nfa_ee_cb.ecb[xx].aid_len, 0, max_aid_entries);
+              memset(nfa_ee_cb.ecb[xx].aid_pwr_cfg, 0, max_aid_entries);
+              memset(nfa_ee_cb.ecb[xx].aid_rt_info, 0, max_aid_entries);
+              memset(nfa_ee_cb.ecb[xx].aid_rt_loc, 0, max_aid_entries);
+              memset(nfa_ee_cb.ecb[xx].aid_cfg, 0, max_aid_config_length);
+          } else {
+              NFA_TRACE_ERROR0("GKI_getbuf allocation for ECB failed !");
+          }
+      }
   }
-  max_aid_config_length = nfa_ee_find_max_aid_config_length();
-  max_aid_entries = max_aid_config_length / NFA_EE_MIN_AID_ENTRY_SIZE;
-  NFA_TRACE_DEBUG3(
-      "max_routing_table_size = %d max_aid_config_length: %d and "
-      "max_aid_entries: %d",
-      max_routing_table_size, max_aid_config_length, max_aid_entries);
-  /* Dynamic ecb allocation based on max aid entry calculated from max. routing
-   * table size( from core_init rsp )*/
-  for (xx = 0; xx < NFA_EE_NUM_ECBS; xx++) {
-    nfa_ee_cb.ecb[xx].aid_len = GKI_getbuf(max_aid_entries);
-    nfa_ee_cb.ecb[xx].aid_pwr_cfg = GKI_getbuf(max_aid_entries);
-    nfa_ee_cb.ecb[xx].aid_rt_info = GKI_getbuf(max_aid_entries);
-    nfa_ee_cb.ecb[xx].aid_rt_loc  = GKI_getbuf(max_aid_entries);
-    nfa_ee_cb.ecb[xx].aid_info    = GKI_getbuf(max_aid_entries);
-    nfa_ee_cb.ecb[xx].aid_cfg = GKI_getbuf(max_aid_config_length);
-    if ((NULL != nfa_ee_cb.ecb[xx].aid_len) &&
-        (NULL != nfa_ee_cb.ecb[xx].aid_pwr_cfg) &&
-        (NULL != nfa_ee_cb.ecb[xx].aid_rt_info) &&
-        (NULL != nfa_ee_cb.ecb[xx].aid_rt_loc) &&
-        (NULL != nfa_ee_cb.ecb[xx].aid_info) &&
-        (NULL != nfa_ee_cb.ecb[xx].aid_cfg)) {
-      memset(nfa_ee_cb.ecb[xx].aid_len, 0, max_aid_entries);
-      memset(nfa_ee_cb.ecb[xx].aid_pwr_cfg, 0, max_aid_entries);
-      memset(nfa_ee_cb.ecb[xx].aid_rt_info, 0, max_aid_entries);
-      memset(nfa_ee_cb.ecb[xx].aid_rt_loc, 0, max_aid_entries);
-      memset(nfa_ee_cb.ecb[xx].aid_info, 0, max_aid_entries);
-      memset(nfa_ee_cb.ecb[xx].aid_cfg, 0, max_aid_config_length);
-    } else {
-      NFA_TRACE_ERROR0("GKI_getbuf allocation for ECB failed !");
-    }
+  else {
+      for (xx = 0; xx < NFA_EE_NUM_ECBS; xx++) {
+          nfa_ee_cb.ecb[xx].aid_len = nfa_ee_cb.ecb[xx].aid_len_stat;
+          nfa_ee_cb.ecb[xx].aid_pwr_cfg = nfa_ee_cb.ecb[xx].aid_pwr_cfg_stat;
+          nfa_ee_cb.ecb[xx].aid_rt_info = nfa_ee_cb.ecb[xx].aid_rt_info_stat;
+          nfa_ee_cb.ecb[xx].aid_rt_loc = nfa_ee_cb.ecb[xx].aid_rt_loc_stat;
+          nfa_ee_cb.ecb[xx].aid_cfg = nfa_ee_cb.ecb[xx].aid_cfg_stat;
+      }
   }
 #endif
 
@@ -945,8 +950,7 @@
 *******************************************************************************/
 void nfa_ee_api_deregister(tNFA_EE_MSG* p_data) {
   tNFA_EE_CBACK* p_cback = NULL;
-#if ((NXP_EXTNS == TRUE) && (NFC_NXP_CHIP_TYPE != PN547C2) && \
-     (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
+#if (NXP_EXTNS == TRUE)
   int index = p_data->deregister.index, xx = 0;
 #else
   int index = p_data->deregister.index;
@@ -954,15 +958,16 @@
   tNFA_EE_CBACK_DATA evt_data = {0};
 
   NFA_TRACE_DEBUG0("nfa_ee_api_deregister");
-#if ((NXP_EXTNS == TRUE) && (NFC_NXP_CHIP_TYPE != PN547C2) && \
-     (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
-  for (xx = 0; xx < NFA_EE_NUM_ECBS; xx++) {
-    GKI_freebuf(nfa_ee_cb.ecb[xx].aid_len);
-    GKI_freebuf(nfa_ee_cb.ecb[xx].aid_pwr_cfg);
-    GKI_freebuf(nfa_ee_cb.ecb[xx].aid_rt_info);
-    GKI_freebuf(nfa_ee_cb.ecb[xx].aid_rt_loc);
-    GKI_freebuf(nfa_ee_cb.ecb[xx].aid_info);
-    GKI_freebuf(nfa_ee_cb.ecb[xx].aid_cfg);
+#if (NXP_EXTNS == TRUE)
+  if((nfcFL.chipType != pn547C2) &&
+          (nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN == true)) {
+      for (xx = 0; xx < NFA_EE_NUM_ECBS; xx++) {
+          GKI_freebuf(nfa_ee_cb.ecb[xx].aid_len);
+          GKI_freebuf(nfa_ee_cb.ecb[xx].aid_pwr_cfg);
+          GKI_freebuf(nfa_ee_cb.ecb[xx].aid_rt_info);
+          GKI_freebuf(nfa_ee_cb.ecb[xx].aid_rt_loc);
+          GKI_freebuf(nfa_ee_cb.ecb[xx].aid_cfg);
+      }
   }
 #endif
   p_cback = nfa_ee_cb.p_ee_cback[index];
@@ -1193,6 +1198,8 @@
 #if (NXP_EXTNS == TRUE)
   tNFA_EE_ECB* dh_ecb = NULL;
   uint8_t aid_info = p_add->aid_info;
+  uint16_t aid_config_length_max = 0;
+  uint16_t aid_entries_max = 0;
 #endif
   tNFA_EE_ECB* p_chk_cb;
   uint8_t* p, *p_start;
@@ -1250,21 +1257,27 @@
 
     /* make sure the control block has enough room to hold this entry */
     len_needed = p_add->aid_len + 2; /* tag/len */
-
+    if((nfcFL.chipType != pn547C2) &&
+            (nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN == true)) {
+        aid_config_length_max = max_aid_config_length;
+        aid_entries_max = max_aid_entries;
+    }
+    else{
+        aid_config_length_max = NFA_EE_MAX_AID_CFG_LEN_STAT;
+        aid_entries_max = nfcFL.nfcMwFL._NFA_EE_MAX_AID_ENTRIES;
+    }
     if ((len_needed + len) >
-#if ((NXP_EXTNS == TRUE) && (NFC_NXP_CHIP_TYPE != PN547C2) && \
-     (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
-        max_aid_config_length
+#if (NXP_EXTNS == TRUE)
+    aid_config_length_max
 #else
-        NFA_EE_MAX_AID_CFG_LEN
+    NFA_EE_MAX_AID_CFG_LEN
 #endif
         ) {
-#if ((NXP_EXTNS == TRUE) && (NFC_NXP_CHIP_TYPE != PN547C2) && \
-     (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
+#if (NXP_EXTNS == TRUE)
       NFA_TRACE_ERROR3(
           "Exceed capacity: (len_needed:%d + len:%d) > "
           "max_aid_config_length:%d",
-          len_needed, len, max_aid_config_length);
+          len_needed, len, aid_config_length_max);
 #else
       NFA_TRACE_ERROR3(
           "Exceed capacity: (len_needed:%d + len:%d) > "
@@ -1274,11 +1287,7 @@
       evt_data.status = NFA_STATUS_BUFFER_FULL;
     }
 #if (NXP_EXTNS == TRUE)
-#if ((NFC_NXP_CHIP_TYPE != PN547C2) && (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
-    else if (dh_ecb->aid_entries < max_aid_entries)
-#else
-    else if (dh_ecb->aid_entries < NFA_EE_MAX_AID_ENTRIES)
-#endif
+    else if (dh_ecb->aid_entries < aid_entries_max)
 #else
     else if (p_cb->aid_entries < NFA_EE_MAX_AID_ENTRIES)
 #endif
@@ -1318,12 +1327,11 @@
 #endif
       }
     } else {
-#if ((NXP_EXTNS == TRUE) && (NFC_NXP_CHIP_TYPE != PN547C2) && \
-     (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
-      NFA_TRACE_ERROR1("Exceed NFA_EE_MAX_AID_ENTRIES:%d", max_aid_entries);
+#if (NXP_EXTNS == TRUE)
+            NFA_TRACE_ERROR1("Exceed NFA_EE_MAX_AID_ENTRIES:%d", aid_entries_max);
 #else
-      NFA_TRACE_ERROR1("Exceed NFA_EE_MAX_AID_ENTRIES:%d",
-                       NFA_EE_MAX_AID_ENTRIES);
+        NFA_TRACE_ERROR1("Exceed NFA_EE_MAX_AID_ENTRIES:%d",
+                NFA_EE_MAX_AID_ENTRIES);
 #endif
       evt_data.status = NFA_STATUS_BUFFER_FULL;
     }
@@ -1412,36 +1420,48 @@
                        p_data->rm_aid.aid_len)) {
     uint32_t xx;
     tNFA_EE_ECB* p_cb = nfa_ee_cb.ecb;
-    for (xx = 0; xx < NFA_EE_MAX_EE_SUPPORTED; xx++, p_cb++) {
-#if ((NXP_EXTNS == TRUE) &&                                               \
-     (((NFC_NXP_CHIP_TYPE == PN548C2) || (NFC_NXP_CHIP_TYPE == PN551)) && \
-      (NFC_NXP_AID_MAX_SIZE_DYN == TRUE)))
-      memset(&p_cb->aid_cfg[0], 0x00, max_aid_config_length);
-      memset(&p_cb->aid_len[0], 0x00, max_aid_entries);
-      memset(&p_cb->aid_pwr_cfg[0], 0x00, max_aid_entries);
-      memset(&p_cb->aid_rt_info[0], 0x00, max_aid_entries);
-      memset(&p_cb->aid_info[0], 0x00, max_aid_entries);
+    for (xx = 0; xx < nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED; xx++, p_cb++) {
+#if (NXP_EXTNS == TRUE)
+        if((nfcFL.chipType != pn547C2) &&
+                (nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN == true)) {
+            memset(&p_cb->aid_cfg[0], 0x00, max_aid_config_length);
+            memset(&p_cb->aid_len[0], 0x00, max_aid_entries);
+            memset(&p_cb->aid_pwr_cfg[0], 0x00, max_aid_entries);
+            memset(&p_cb->aid_rt_info[0], 0x00, max_aid_entries);
+        }
+        else {
+            memset(&p_cb->aid_cfg[0], 0x00, sizeof(p_cb->aid_cfg));
+            memset(&p_cb->aid_len[0], 0x00, NFA_EE_MAX_AID_ENTRIES);
+            memset(&p_cb->aid_pwr_cfg[0], 0x00, NFA_EE_MAX_AID_ENTRIES);
+            memset(&p_cb->aid_rt_info[0], 0x00, NFA_EE_MAX_AID_ENTRIES);
+        }
 #else
-      memset(&p_cb->aid_cfg[0], 0x00, sizeof(p_cb->aid_cfg));
-      memset(&p_cb->aid_len[0], 0x00, NFA_EE_MAX_AID_ENTRIES);
-      memset(&p_cb->aid_pwr_cfg[0], 0x00, NFA_EE_MAX_AID_ENTRIES);
-      memset(&p_cb->aid_rt_info[0], 0x00, NFA_EE_MAX_AID_ENTRIES);
-      memset(&p_cb->aid_info[0], 0x00, NFA_EE_MAX_AID_ENTRIES);
+        memset(&p_cb->aid_cfg[0], 0x00, sizeof(p_cb->aid_cfg));
+        memset(&p_cb->aid_len[0], 0x00, NFA_EE_MAX_AID_ENTRIES);
+        memset(&p_cb->aid_pwr_cfg[0], 0x00, NFA_EE_MAX_AID_ENTRIES);
+        memset(&p_cb->aid_rt_info[0], 0x00, NFA_EE_MAX_AID_ENTRIES);
+        memset(&p_cb->aid_info[0], 0x00, NFA_EE_MAX_AID_ENTRIES);
 #endif
-      p_cb->aid_entries = 0;
-      nfa_ee_cb.ee_cfged |= nfa_ee_ecb_to_mask(p_cb);
+        p_cb->aid_entries = 0;
+        nfa_ee_cb.ee_cfged |= nfa_ee_ecb_to_mask(p_cb);
     }
 
     tNFA_EE_ECB* p_ecb = &nfa_ee_cb.ecb[NFA_EE_CB_4_DH];
 
-#if ((NXP_EXTNS == TRUE) &&                                               \
-     (((NFC_NXP_CHIP_TYPE == PN548C2) || (NFC_NXP_CHIP_TYPE == PN551)) && \
-      (NFC_NXP_AID_MAX_SIZE_DYN == TRUE)))
-    memset(&p_ecb->aid_cfg[0], 0x00, max_aid_config_length);
-    memset(&p_ecb->aid_len[0], 0x00, max_aid_entries);
-    memset(&p_ecb->aid_pwr_cfg[0], 0x00, max_aid_entries);
-    memset(&p_ecb->aid_rt_info[0], 0x00, max_aid_entries);
-    memset(&p_ecb->aid_info[0], 0x00, max_aid_entries);
+#if (NXP_EXTNS == TRUE)
+    if((nfcFL.chipType != pn547C2) &&
+            (nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN == true)) {
+        memset(&p_ecb->aid_cfg[0], 0x00, max_aid_config_length);
+        memset(&p_ecb->aid_len[0], 0x00, max_aid_entries);
+        memset(&p_ecb->aid_pwr_cfg[0], 0x00, max_aid_entries);
+        memset(&p_ecb->aid_rt_info[0], 0x00, max_aid_entries);
+    }
+    else {
+        memset(&p_ecb->aid_cfg[0], 0x00, sizeof(p_ecb->aid_cfg));
+        memset(&p_ecb->aid_len[0], 0x00, NFA_EE_MAX_AID_ENTRIES);
+        memset(&p_ecb->aid_pwr_cfg[0], 0x00, NFA_EE_MAX_AID_ENTRIES);
+        memset(&p_ecb->aid_rt_info[0], 0x00, NFA_EE_MAX_AID_ENTRIES);
+    }
 #else
     memset(&p_ecb->aid_cfg[0], 0x00, sizeof(p_ecb->aid_cfg));
     memset(&p_ecb->aid_len[0], 0x00, NFA_EE_MAX_AID_ENTRIES);
@@ -1506,9 +1526,11 @@
     if (p_chk_cb == p_cb) {
       p_cb->apdu_rt_info[entry] |= NFA_EE_AE_ROUTE;
       new_size = nfa_ee_total_lmrt_size();
-#if ((NXP_EXTNS == TRUE) && (NFC_NXP_CHIP_TYPE != PN547C2) && \
-     (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
-      if (new_size > max_aid_config_length) {
+#if (NXP_EXTNS == TRUE)
+      if (((nfcFL.chipType != pn547C2) &&
+              nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN) && new_size > max_aid_config_length ||
+              ((nfcFL.chipType == pn547C2) &&
+                      !nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN) && (new_size > NFC_GetLmrtSize())) {
 #else
       if (new_size > NFC_GetLmrtSize()) {
 #endif
@@ -1538,19 +1560,29 @@
     len_needed = p_add->apdu_len + p_add->mask_len + 2 + 2; /*tag/len/apdu_mask/apdu/power_state/nfceeid*/
 
     if ((len_needed + aid_len + apdu_len) >
-#if ((NXP_EXTNS == TRUE) && (NFC_NXP_CHIP_TYPE != PN547C2) && \
-     (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
-        max_aid_config_length
+#if (NXP_EXTNS == TRUE)
+    ((((nfcFL.chipType != pn547C2) &&
+            nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN) && max_aid_config_length) ||
+            (((nfcFL.chipType == pn547C2) &&
+                    !nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN) && NFC_GetLmrtSize()))
 #else
         NFC_GetLmrtSize()
 #endif
         ||((dh_ecb->size_apdu + p_add->apdu_len + p_add->mask_len + 2) >= NFA_EE_TOTAL_APDU_PATTERN_SIZE)) {
-#if ((NXP_EXTNS == TRUE) && (NFC_NXP_CHIP_TYPE != PN547C2) && \
-     (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
-      NFA_TRACE_ERROR4(
-          "Exceed capacity: (len_needed:%d + len:%d) > "
-          "max_aid_config_length:%d",
-          len_needed, aid_len,apdu_len, max_aid_config_length);
+#if (NXP_EXTNS == TRUE)
+        if((nfcFL.chipType != pn547C2) &&
+                nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN) {
+            NFA_TRACE_ERROR4(
+                    "Exceed capacity: (len_needed:%d + len:%d) > "
+                    "max_aid_config_length:%d",
+                    len_needed, aid_len,apdu_len, max_aid_config_length);
+        }
+        else {
+            NFA_TRACE_ERROR4(
+                    "Exceed capacity: (len_needed:%d + len:%d) > "
+                    "NFA_EE_TOTAL_APDU_PATTERN_SIZE:%d",
+                    len_needed, aid_len,apdu_len, NFA_EE_TOTAL_APDU_PATTERN_SIZE);
+        }
 #else
       NFA_TRACE_ERROR4(
           "Exceed capacity: (len_needed:%d + len:%d) > "
@@ -1883,21 +1915,19 @@
       p_cback = nfa_ee_cb.p_ee_disc_cback;
       nfa_ee_cb.p_ee_disc_cback = NULL;
       evt_data.status = NFA_STATUS_OK;
-      evt_data.ee_discover.num_ee = NFA_EE_MAX_EE_SUPPORTED;
+      evt_data.ee_discover.num_ee = nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED;
       NFA_EeGetInfo(&evt_data.ee_discover.num_ee, evt_data.ee_discover.ee_info);
       nfa_ee_report_event(p_cback, NFA_EE_DISCOVER_EVT, &evt_data);
     }
 #if (NXP_EXTNS == TRUE)
-#if (NXP_NFCEE_REMOVED_NTF_RECOVERY == true)
-    else {
+    else if(nfcFL.nfccFL._NFCEE_REMOVED_NTF_RECOVERY == true) {
       evt_data.status = NFA_STATUS_OK;
-      evt_data.ee_discover.num_ee = NFA_EE_MAX_EE_SUPPORTED;
+      evt_data.ee_discover.num_ee = nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED;
       NFA_AllEeGetInfo(&evt_data.ee_discover.num_ee,
                        evt_data.ee_discover.ee_info);
       nfa_ee_report_event(NULL, NFA_EE_DISCOVER_EVT, &evt_data);
     }
 #endif
-#endif
   }
 }
 
@@ -1939,7 +1969,7 @@
   tNFA_EE_ECB* p_cb;
   tNFA_EE_ECB* p_cb_n, *p_cb_end;
   int xx, num_removed = 0;
-  int first_removed = NFA_EE_MAX_EE_SUPPORTED;
+  int first_removed = nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED;
 
   p_cb = nfa_ee_cb.ecb;
   for (xx = 0; xx < nfa_ee_cb.cur_ee; xx++, p_cb++) {
@@ -1947,7 +1977,7 @@
         (p_cb->ee_status & NFA_EE_STATUS_RESTORING)) {
       p_cb->nfcee_id = NFA_EE_INVALID;
       num_removed++;
-      if (first_removed == NFA_EE_MAX_EE_SUPPORTED) first_removed = xx;
+      if (first_removed == nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED) first_removed = xx;
     }
   }
 
@@ -2010,8 +2040,8 @@
         /* if this is initiated by api function,
          * check if the number of NFCEE expected is more than what's currently
          * in CB */
-        if (num_nfcee > NFA_EE_MAX_EE_SUPPORTED)
-          num_nfcee = NFA_EE_MAX_EE_SUPPORTED;
+        if (num_nfcee > nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED)
+          num_nfcee = nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED;
         if (nfa_ee_cb.cur_ee < num_nfcee) {
           p_cb = &nfa_ee_cb.ecb[nfa_ee_cb.cur_ee];
           for (xx = nfa_ee_cb.cur_ee; xx < num_nfcee; xx++, p_cb++) {
@@ -2037,9 +2067,9 @@
 
   if (p_evt->status == NFC_STATUS_OK) {
     nfa_ee_cb.num_ee_expecting = p_evt->num_nfcee;
-    if (nfa_ee_cb.num_ee_expecting > NFA_EE_MAX_EE_SUPPORTED) {
+    if (nfa_ee_cb.num_ee_expecting > nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED) {
       NFA_TRACE_ERROR2("NFA-EE num_ee_expecting:%d > max:%d",
-                       nfa_ee_cb.num_ee_expecting, NFA_EE_MAX_EE_SUPPORTED);
+                       nfa_ee_cb.num_ee_expecting, nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED);
     }
   }
   nfa_ee_report_disc_done(notify_enable_done);
@@ -2082,7 +2112,7 @@
   }
   switch (nfa_ee_cb.em_state) {
     case NFA_EE_EM_STATE_INIT:
-      if (nfa_ee_cb.cur_ee < NFA_EE_MAX_EE_SUPPORTED) {
+      if (nfa_ee_cb.cur_ee < nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED) {
         /* the cb can collect up to NFA_EE_MAX_EE_SUPPORTED ee_info */
         p_cb = &nfa_ee_cb.ecb[nfa_ee_cb.cur_ee++];
       }
@@ -2183,7 +2213,7 @@
 #if (NXP_EXTNS == TRUE)
       if (nfa_dm_is_active()) {
         evt_data.status = p_cb->ee_status;
-        evt_data.ee_discover.num_ee = NFA_EE_MAX_EE_SUPPORTED;
+        evt_data.ee_discover.num_ee = nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED;
         NFA_EeGetInfo(&evt_data.ee_discover.num_ee,
                       evt_data.ee_discover.ee_info);
         nfa_ee_report_event(NULL, NFA_EE_DISCOVER_EVT, &evt_data);
@@ -2343,7 +2373,6 @@
   nfa_ee_report_event(NULL, NFA_EE_DISCOVER_REQ_EVT, (void*)&evt_data);
 }
 #if (NXP_EXTNS == TRUE)
-#if (NXP_WIRED_MODE_STANDBY == true)
 /*******************************************************************************
 **
 ** Function         nfa_ee_nci_pwr_link_ctrl_rsp
@@ -2354,16 +2383,20 @@
 **
 *******************************************************************************/
 void nfa_ee_nci_pwr_link_ctrl_rsp(tNFA_EE_MSG* p_data) {
-  tNFA_EE_ECB* p_cb;
-  tNFA_EE_PWR_LNK_CTRL pwr_lnk_ctrl;
-  tNFC_NFCEE_EE_PWR_LNK_REVT* p_rsp = p_data->pwr_lnk_ctrl_rsp.p_data;
-  pwr_lnk_ctrl.status = p_rsp->status;
-  NFA_TRACE_DEBUG1(" nfa_ee_nci_pwr_link_ctrl_rsp: status = %d ",
-                   pwr_lnk_ctrl.status);
-  nfa_ee_report_event(NULL, NFA_EE_PWR_LINK_CTRL_EVT,
-                      (tNFA_EE_CBACK_DATA*)&pwr_lnk_ctrl);
+    NFA_TRACE_DEBUG0(" nfa_ee_nci_pwr_link_ctrl_rsp()");
+    if(nfcFL.eseFL._WIRED_MODE_STANDBY != true) {
+        NFA_TRACE_DEBUG0(" WIRED_MODE_STANDBY() not available. Returning");
+        return;
+    }
+    tNFA_EE_ECB* p_cb;
+    tNFA_EE_PWR_LNK_CTRL pwr_lnk_ctrl;
+    tNFC_NFCEE_EE_PWR_LNK_REVT* p_rsp = p_data->pwr_lnk_ctrl_rsp.p_data;
+    pwr_lnk_ctrl.status = p_rsp->status;
+    NFA_TRACE_DEBUG1(" nfa_ee_nci_pwr_link_ctrl_rsp: status = %d ",
+            pwr_lnk_ctrl.status);
+    nfa_ee_report_event(NULL, NFA_EE_PWR_LINK_CTRL_EVT,
+            (tNFA_EE_CBACK_DATA*)&pwr_lnk_ctrl);
 }
-#endif
 /*******************************************************************************
 **
 ** Function         nfa_ee_nci_set_mode_info
@@ -2998,30 +3031,28 @@
       power_cfg |= NCI_ROUTE_PWR_STATE_BATT_OFF;
 
     if (power_cfg != 0x00) {
-#if ((NFC_NXP_CHIP_TYPE == PN547C2))
-      if (p_cb->nfcee_id == NFC_DH_ID)
-        power_cfg |= NCI_ROUTE_PWR_STATE_SCREEN_ON_LOCK();
-      else
-#endif
-      {
-        if (p_cb->proto_screen_lock & nfa_ee_proto_mask_list[xx])
-          power_cfg |= NCI_ROUTE_PWR_STATE_SCREEN_ON_LOCK();
-        if (p_cb->proto_screen_off & nfa_ee_proto_mask_list[xx])
-          power_cfg |= NCI_ROUTE_PWR_STATE_SCREEN_OFF_UNLOCK();
-        if (p_cb->proto_screen_off_lock & nfa_ee_proto_mask_list[xx])
-            power_cfg |= NCI_ROUTE_PWR_STATE_SCREEN_OFF_LOCK();
-      }
+        if ((nfcFL.chipType == pn547C2) && (p_cb->nfcee_id == NFC_DH_ID)) {
+            power_cfg |= NCI_ROUTE_PWR_STATE_SCREEN_ON_LOCK();
+        }
+        else {
+            if (p_cb->proto_screen_lock & nfa_ee_proto_mask_list[xx])
+                power_cfg |= NCI_ROUTE_PWR_STATE_SCREEN_ON_LOCK();
+            if (p_cb->proto_screen_off & nfa_ee_proto_mask_list[xx])
+                power_cfg |= NCI_ROUTE_PWR_STATE_SCREEN_OFF_UNLOCK();
+            if (p_cb->proto_screen_off_lock & nfa_ee_proto_mask_list[xx])
+                power_cfg |= NCI_ROUTE_PWR_STATE_SCREEN_OFF_LOCK();
+        }
     }
     if (power_cfg) {
-      *proto_pp = NFC_ROUTE_TAG_PROTO;
-      proto_pp++;
-      *proto_pp++ = 3;
-      *proto_pp++ = p_cb->nfcee_id;
-      *proto_pp++ = power_cfg;
-      *proto_pp++ = nfa_ee_proto_list[xx];
-      proto_tlv_ctr++;
-      if (power_cfg != NCI_ROUTE_PWR_STATE_ON)
-        nfa_ee_cb.ee_cfged |= NFA_EE_CFGED_OFF_ROUTING;
+        *proto_pp = NFC_ROUTE_TAG_PROTO;
+        proto_pp++;
+        *proto_pp++ = 3;
+        *proto_pp++ = p_cb->nfcee_id;
+        *proto_pp++ = power_cfg;
+        *proto_pp++ = nfa_ee_proto_list[xx];
+        proto_tlv_ctr++;
+        if (power_cfg != NCI_ROUTE_PWR_STATE_ON)
+            nfa_ee_cb.ee_cfged |= NFA_EE_CFGED_OFF_ROUTING;
     }
   }
 
@@ -3117,20 +3148,19 @@
 #if (NXP_EXTNS == TRUE)
 
     if (power_cfg != 0x00) {
-#if ((NFC_NXP_CHIP_TYPE == PN547C2))
-      /* Blocking codes to enable protocol routing to host when screen is off.*/
-      if (p_cb->nfcee_id == NFC_DH_ID)
-        power_cfg |= NCI_ROUTE_PWR_STATE_SCREEN_ON_LOCK();
-      else
-#endif
-      {
-        if (p_cb->proto_screen_lock & nfa_ee_proto_mask_list[xx])
-          power_cfg |= NCI_ROUTE_PWR_STATE_SCREEN_ON_LOCK();
-        if (p_cb->proto_screen_off & nfa_ee_proto_mask_list[xx])
-          power_cfg |= NCI_ROUTE_PWR_STATE_SCREEN_OFF_UNLOCK();
-        if (p_cb->proto_screen_off_lock & nfa_ee_proto_mask_list[xx])
-            power_cfg |= NCI_ROUTE_PWR_STATE_SCREEN_OFF_LOCK();
-      }
+        /* Blocking codes to enable protocol routing to host when screen is off.*/
+        if ((nfcFL.chipType == pn547C2) && (p_cb->nfcee_id == NFC_DH_ID)) {
+            power_cfg |= NCI_ROUTE_PWR_STATE_SCREEN_ON_LOCK();
+        }
+        else
+        {
+            if (p_cb->proto_screen_lock & nfa_ee_proto_mask_list[xx])
+                power_cfg |= NCI_ROUTE_PWR_STATE_SCREEN_ON_LOCK();
+            if (p_cb->proto_screen_off & nfa_ee_proto_mask_list[xx])
+                power_cfg |= NCI_ROUTE_PWR_STATE_SCREEN_OFF_UNLOCK();
+            if (p_cb->proto_screen_off_lock & nfa_ee_proto_mask_list[xx])
+                power_cfg |= NCI_ROUTE_PWR_STATE_SCREEN_OFF_LOCK();
+        }
     }
 #endif
 
@@ -3530,12 +3560,17 @@
 #endif
   (void)p_data;
 
-#if ((NXP_EXTNS == TRUE) && (NFC_NXP_CHIP_TYPE != PN547C2) && \
-     (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
-  NFA_TRACE_DEBUG1("max supported routing table size: %d",
-                   max_routing_table_size);
-  /* update routing table: DH and the activated NFCEEs */
-  p = (uint8_t*)GKI_getbuf(max_routing_table_size);
+#if (NXP_EXTNS == TRUE)
+  if((nfcFL.chipType != pn547C2) &&
+          (nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN == true)) {
+      NFA_TRACE_DEBUG1("max supported routing table size: %d",
+              max_routing_table_size);
+      /* update routing table: DH and the activated NFCEEs */
+      p = (uint8_t*)GKI_getbuf(max_routing_table_size);
+  }
+  else {
+      p = (uint8_t*)GKI_getbuf(NFA_EE_ROUT_BUF_SIZE_STAT);
+  }
 #else
   /* update routing table: DH and the activated NFCEEs */
   p = (uint8_t*)GKI_getbuf(NFA_EE_ROUT_BUF_SIZE);
@@ -3588,9 +3623,9 @@
   if (last_active == NFA_EE_INVALID) {
      check = false;
   }
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
-  find_and_resolve_tech_conflict();
-#endif
+  if(nfcFL.chipType != pn547C2) {
+      find_and_resolve_tech_conflict();
+  }
 
   max_len = NFC_GetLmrtSize();
   max_tlv =
@@ -3639,7 +3674,6 @@
 #endif /* - Routing entries optimization */
 }
 
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 /*******************************************************************************
 **
 ** Function         find_and_resolve_tech_conflict
@@ -3652,6 +3686,9 @@
 *******************************************************************************/
 
 void find_and_resolve_tech_conflict() {
+    if(nfcFL.chipType == pn547C2) {
+        NFA_TRACE_DEBUG1("%s: chipType : pn547C2. Returning", __func__);
+    }
   int yy, xx;
   tNFA_EE_ECB* p_cb = nfa_ee_cb.ecb;
   uint8_t techA_found = 0, techF_found = 0;
@@ -3663,7 +3700,7 @@
   NFA_TRACE_DEBUG1("%s:Enter", __func__);
 
   // Finding the Technology and nfcee_id supported
-  for (yy = 0; yy < NFA_EE_MAX_EE_SUPPORTED; yy++, p_cb++) {
+  for (yy = 0; yy < nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED; yy++, p_cb++) {
     for (xx = 0; xx < 3; xx++) {
       if ((p_cb->tech_switch_on & nfa_ee_tech_mask_list[xx]) ==
           NFA_TECHNOLOGY_MASK_A) {
@@ -3739,7 +3776,7 @@
     }
 
     p_cb = nfa_ee_cb.ecb;
-    for (yy = 0; yy < NFA_EE_MAX_EE_SUPPORTED; yy++, p_cb++) {
+    for (yy = 0; yy < nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED; yy++, p_cb++) {
       if (p_cb->nfcee_id == ee_from_rm) {
         for (xx = 0; xx < 3; xx++) {
           if (((p_cb->tech_switch_on & nfa_ee_tech_mask_list[xx]) ==
@@ -3756,7 +3793,6 @@
     NFA_TRACE_DEBUG1("%s:Exit", __func__);
   }
 }
-#endif
 
 /*******************************************************************************
 **
@@ -3814,11 +3850,13 @@
   int len;
   len = nfa_all_ee_find_total_aid_len() + 2 /* tag/len */ +
         2 /*route/power state*/;
-#if ((NFC_NXP_CHIP_TYPE != PN547C2) && (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
-  return len < max_aid_config_length ? len : max_aid_config_length;
-#else
-  return len < NFA_EE_MAX_AID_CFG_LEN ? len : NFA_EE_MAX_AID_CFG_LEN;
-#endif
+  if((nfcFL.chipType != pn547C2) &&
+          (nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN == true)) {
+      return len < max_aid_config_length ? len : max_aid_config_length;
+  }
+  else {
+      return len < NFA_EE_MAX_AID_CFG_LEN_STAT ? len : NFA_EE_MAX_AID_CFG_LEN_STAT;
+  }
 }
 
 bool nfa_ee_nfeeid_active(uint8_t nfee_id) {
@@ -3836,7 +3874,6 @@
   return status;
 }
 
-#if ((NFC_NXP_CHIP_TYPE != PN547C2) && (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
 /*******************************************************************************
 **
 ** Function         nfa_ee_find_max_aid_config_length
@@ -3847,6 +3884,7 @@
 **
 *******************************************************************************/
 uint16_t nfa_ee_find_max_aid_config_length() {
+    NFA_TRACE_DEBUG0("nfa_ee_find_max_aid_config_length");
   /**
    * Max Routing Table Size = 720
    * After allocating size for Technology based routing and Protocol based
@@ -3866,9 +3904,15 @@
    * BUFFER for future extensions = 15
    * TOTAL SIZE FOR AID = 675 - 15 = 660
    */
-
-  return (max_routing_table_size -
-          NFA_EE_TOTAL_PROTO_TECH_FUTURE_EXT_ROUTE_SIZE);
+    if((nfcFL.chipType != pn547C2) &&
+            (nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN == true)) {
+        return (max_routing_table_size -
+                NFA_EE_TOTAL_PROTO_TECH_FUTURE_EXT_ROUTE_SIZE);
+    }
+    else{
+        NFA_TRACE_DEBUG0("Not allowed for chip type. Returning");
+        return 0;
+    }
 }
 
 /*******************************************************************************
@@ -3881,9 +3925,16 @@
 **
 *******************************************************************************/
 uint16_t nfa_ee_api_get_max_aid_config_length() {
-  NFA_TRACE_DEBUG1("nfa_ee_api_get_max_aid_config_length: %d",
-                   max_aid_config_length);
-  return max_aid_config_length;
+    NFA_TRACE_DEBUG0("nfa_ee_api_get_max_aid_config_length");
+    if((nfcFL.chipType != pn547C2) &&
+            (nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN == true)) {
+        NFA_TRACE_DEBUG1("nfa_ee_api_get_max_aid_config_length: %d",
+                max_aid_config_length);
+        return max_aid_config_length;
+    }
+    else{
+        NFA_TRACE_DEBUG0("Not allowed for chip type. Returning");
+        return 0;
+    }
 }
 #endif
-#endif
diff --git a/src/nfa/ee/nfa_ee_api.c b/src/nfa/ee/nfa_ee_api.c
index 7081089..f54b28c 100644
--- a/src/nfa/ee/nfa_ee_api.c
+++ b/src/nfa/ee/nfa_ee_api.c
@@ -711,11 +711,13 @@
 **
 *******************************************************************************/
 uint16_t NFA_GetAidTableSize() {
-#if ((NFC_NXP_CHIP_TYPE != PN547C2) && (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
-  return nfa_ee_api_get_max_aid_config_length();
-#else
-  return NFA_EE_MAX_AID_CFG_LEN;
-#endif
+    if((nfcFL.chipType != pn547C2) &&
+            (nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN == true)) {
+        return nfa_ee_api_get_max_aid_config_length();
+    }
+    else {
+        return NFA_EE_MAX_AID_CFG_LEN_STAT;
+    }
 }
 
 /*******************************************************************************
@@ -729,13 +731,15 @@
 **
 *******************************************************************************/
 uint16_t NFA_GetRemainingAidTableSize() {
-  uint16_t size = 0;
-#if ((NFC_NXP_CHIP_TYPE != PN547C2) && (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
-  size = nfa_ee_api_get_max_aid_config_length() - nfa_ee_lmrt_size();
-#else
-  size = NFA_EE_MAX_AID_CFG_LEN - nfa_ee_lmrt_size();
-#endif
-  return size;
+    uint16_t size = 0;
+    if((nfcFL.chipType != pn547C2) &&
+            (nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN == true)) {
+        size = nfa_ee_api_get_max_aid_config_length() - nfa_ee_lmrt_size();
+    }
+    else {
+        size = NFA_EE_MAX_AID_CFG_LEN_STAT - nfa_ee_lmrt_size();
+    }
+    return size;
 }
 /*******************************************************************************
 **
diff --git a/src/nfa/ee/nfa_ee_main.c b/src/nfa/ee/nfa_ee_main.c
index 69e579c..5d92829 100644
--- a/src/nfa/ee/nfa_ee_main.c
+++ b/src/nfa/ee/nfa_ee_main.c
@@ -90,10 +90,8 @@
     nfa_ee_nci_mode_set_rsp,  /* NFA_EE_NCI_MODE_SET_RSP_EVT  */
 #if (NXP_EXTNS == TRUE)
     nfa_ee_nci_set_mode_info, /* NFA_EE_NCI_MODE_SET_INFO*/
-#if (NXP_WIRED_MODE_STANDBY == true)
     nfa_ee_nci_pwr_link_ctrl_rsp, /*NFA_EE_NCI_PWR_LNK_CTRL_RSP_EVT*/
 #endif
-#endif
     nfa_ee_nci_conn,         /* NFA_EE_NCI_CONN_EVT          */
     nfa_ee_nci_conn,         /* NFA_EE_NCI_DATA_EVT          */
     nfa_ee_nci_action_ntf,   /* NFA_EE_NCI_ACTION_NTF_EVT    */
@@ -157,7 +155,7 @@
 
   if (GetNumValue(NAME_NFA_BLOCK_ROUTE, (void*)&retlen, sizeof(retlen))) {
     if ((retlen == 0x01) && ((NFC_GetNCIVersion() == NCI_VERSION_2_0)
-        || (NXP_NFCC_ROUTING_BLOCK_BIT == true))) {
+        || (nfcFL.nfccFL._NFCC_ROUTING_BLOCK_BIT == true))) {
       nfa_ee_cb.route_block_control = NCI_ROUTE_QUAL_BLOCK_ROUTE;
       NFA_TRACE_DEBUG1("nfa_ee_cb.route_block_control=0x%x",
                        nfa_ee_cb.route_block_control);
@@ -255,7 +253,7 @@
   if (nfcc_power_mode == NFA_DM_PWR_MODE_FULL) {
     if (nfa_ee_max_ee_cfg) {
       p_cb = nfa_ee_cb.ecb;
-      for (xx = 0; xx < NFA_EE_MAX_EE_SUPPORTED; xx++, p_cb++) {
+      for (xx = 0; xx < nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED; xx++, p_cb++) {
         p_cb->ee_old_status = 0;
         if (xx >= nfa_ee_cb.cur_ee) p_cb->nfcee_id = NFA_EE_INVALID;
 
@@ -315,7 +313,7 @@
   nfa_ee_cb.ee_flags &= ~NFA_EE_FLAG_WAIT_HCI;
 
   p_cb = nfa_ee_cb.ecb;
-  for (xx = 0; xx < NFA_EE_MAX_EE_SUPPORTED; xx++, p_cb++) {
+  for (xx = 0; xx < nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED; xx++, p_cb++) {
     /* NCI spec says: An NFCEE_DISCOVER_NTF that contains a Protocol type of
      * "HCI Access"
      * SHALL NOT contain any other additional Protocol
@@ -382,12 +380,12 @@
     case NFC_NFCEE_MODE_SET_INFO:
       int_event = NFA_EE_NCI_MODE_SET_INFO;
       break;
-#if (NXP_WIRED_MODE_STANDBY == true)
     case NFC_NFCEE_PWR_LNK_CTRL_REVT: /* 6  NFCEE PWR LNK CTRL response */
-      int_event = NFA_EE_NCI_PWR_LNK_CTRL_RSP_EVT;
+        if(nfcFL.eseFL._WIRED_MODE_STANDBY) {
+            int_event = NFA_EE_NCI_PWR_LNK_CTRL_RSP_EVT;
+        }
       break;
 #endif
-#endif
   }
 
   NFA_TRACE_DEBUG2("nfa_ee_proc_evt: event=0x%02x int_event:0x%x", event,
@@ -438,7 +436,7 @@
     p_ret = &nfa_ee_cb.ecb[NFA_EE_CB_4_DH];
   } else {
     p_cb = nfa_ee_cb.ecb;
-    for (xx = 0; xx < NFA_EE_MAX_EE_SUPPORTED; xx++, p_cb++) {
+    for (xx = 0; xx < nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED; xx++, p_cb++) {
       if (nfcee_id == p_cb->nfcee_id) {
         p_ret = p_cb;
         break;
@@ -665,10 +663,13 @@
 #if (NXP_EXTNS == TRUE)
     case NFA_EE_NCI_MODE_SET_INFO:
       return "NFA_EE_NCI_MODE_SET_INFO";
-#if (NXP_WIRED_MODE_STANDBY == true)
     case NFA_EE_NCI_PWR_LNK_CTRL_RSP_EVT:
-      return "NCI_PWR_LNK_CTRL";
-#endif
+        if(nfcFL.eseFL._WIRED_MODE_STANDBY) {
+            return "NCI_PWR_LNK_CTRL";
+        }
+        else {
+            return "Unknown";
+        }
 #endif
     case NFA_EE_NCI_CONN_EVT:
       return "NCI_CONN";
diff --git a/src/nfa/hci/nfa_hci_act.c b/src/nfa/hci/nfa_hci_act.c
index 003497b..39d5562 100644
--- a/src/nfa/hci/nfa_hci_act.c
+++ b/src/nfa/hci/nfa_hci_act.c
@@ -1278,22 +1278,26 @@
       if ((dest_gate == NFA_HCI_IDENTITY_MANAGEMENT_GATE) ||
           (dest_gate == NFA_HCI_LOOP_BACK_GATE)
 #if (NXP_EXTNS == TRUE)
-#ifdef GEMALTO_SE_SUPPORT
-          || (dest_gate == NFC_HCI_DEFAULT_DEST_GATE) ||
-          (dest_gate == NFA_HCI_CONNECTIVITY_GATE)
-#endif
+          || ((nfcFL.nfccFL._GEMALTO_SE_SUPPORT) && ((dest_gate == NFC_HCI_DEFAULT_DEST_GATE) ||
+          (dest_gate == NFA_HCI_CONNECTIVITY_GATE)))
 #endif
               )
-#if ((NXP_EXTNS == TRUE) && (NXP_BLOCK_PROPRIETARY_APDU_GATE == true))
-        if (dest_gate == NFC_HCI_DEFAULT_DEST_GATE) {
-          response = NFA_HCI_ANY_E_NOK;
-        } else {
-          response = nfa_hciu_add_pipe_to_static_gate(dest_gate, pipe,
-                                                      source_host, source_gate);
-        }
+#if (NXP_EXTNS == TRUE)
+          if(nfcFL.eseFL._BLOCK_PROPRIETARY_APDU_GATE) {
+              if (dest_gate == NFC_HCI_DEFAULT_DEST_GATE) {
+                  response = NFA_HCI_ANY_E_NOK;
+              } else {
+                  response = nfa_hciu_add_pipe_to_static_gate(dest_gate, pipe,
+                          source_host, source_gate);
+              }
+          }
+          else{
+              response = nfa_hciu_add_pipe_to_static_gate(dest_gate, pipe,
+                      source_host, source_gate);
+          }
 #else
-        response = nfa_hciu_add_pipe_to_static_gate(dest_gate, pipe,
-                                                    source_host, source_gate);
+    response = nfa_hciu_add_pipe_to_static_gate(dest_gate, pipe,
+            source_host, source_gate);
 #endif
       else {
         if ((pgate = nfa_hciu_find_gate_by_gid(dest_gate)) != NULL) {
@@ -1906,8 +1910,8 @@
     nfa_hci_handle_connectivity_gate_pkt(p_data, data_len, p_pipe);
   }
 #if (NXP_EXTNS == TRUE)
-#ifdef GEMALTO_SE_SUPPORT
-  else if (p_pipe->local_gate == NFC_HCI_DEFAULT_DEST_GATE) {
+  else if ((nfcFL.nfccFL._GEMALTO_SE_SUPPORT) &&
+          (p_pipe->local_gate == NFC_HCI_DEFAULT_DEST_GATE)) {
     /* Check if data packet is a command, response or event */
     p_gate = nfa_hci_cb.cfg.dyn_gates;
     p_gate->gate_owner = 0x0800;
@@ -1929,7 +1933,6 @@
     }
   }
 #endif
-#endif
   else {
     p_gate = nfa_hciu_find_gate_by_gid(p_pipe->local_gate);
     if (p_gate == NULL) {
@@ -2554,17 +2557,11 @@
   UINT8_TO_STREAM(p, NXP_NFC_PARAM_ID_SWP2);
   (*num_param)++;
 
-#if (NXP_NFCC_DYNAMIC_DUAL_UICC == true)
+if(nfcFL.nfccFL._NFCC_DYNAMIC_DUAL_UICC) {
   UINT8_TO_STREAM(p, NXP_NFC_SET_CONFIG_PARAM_EXT);
   UINT8_TO_STREAM(p, NXP_NFC_PARAM_ID_SWP1A);
   (*num_param)++;
-#endif
-
-#if (NXP_NFCEE_NDEF_ENABLE == true)
-  UINT8_TO_STREAM(p, NXP_NFC_SET_CONFIG_PARAM_EXT);
-  UINT8_TO_STREAM(p, NXP_NFC_PARAM_ID_NDEF_NFCEE);
-  (*num_param)++;
-#endif
+}
 
   *parm_len = (p - num_param);
   if (*num_param != 0x00) {
diff --git a/src/nfa/hci/nfa_hci_api.c b/src/nfa/hci/nfa_hci_api.c
old mode 100755
new mode 100644
index beeb3d3..b863390
--- a/src/nfa/hci/nfa_hci_api.c
+++ b/src/nfa/hci/nfa_hci_api.c
@@ -913,8 +913,9 @@
   }
 
   if ((gate <= NFA_HCI_LAST_HOST_SPECIFIC_GATE)
-#if (NXP_EXTNS == TRUE && (NXP_UICC_CREATE_CONNECTIVITY_PIPE == true))
-      && (gate != NFA_HCI_CONNECTIVITY_GATE)
+#if (NXP_EXTNS == TRUE)
+      && ((nfcFL.nfccFL._UICC_CREATE_CONNECTIVITY_PIPE) &&
+              (gate != NFA_HCI_CONNECTIVITY_GATE))
 #endif
           ) {
     NFA_TRACE_API1("NFA_HciAddStaticPipe (): Invalid Gate:0x%02x", gate);
@@ -1032,12 +1033,17 @@
 **
 *******************************************************************************/
 bool NFA_MW_Fwdnlwd_Recovery(bool mw_fwdnld_recovery) {
-  if (mw_fwdnld_recovery) {
-    MW_RCVRY_FW_DNLD_ALLOWED = true;
-  } else {
-    MW_RCVRY_FW_DNLD_ALLOWED = false;
-  }
-  return mw_fwdnld_recovery;
+    if(!nfcFL.nfccFL._NFCC_MW_RCVRY_BLK_FW_DNLD) {
+        NFA_TRACE_API0("NFA_MW_Fwdnlwd_Recovery"
+                "  NFCC_MW_RCVRY_BLK_FW_DNLD not available. Returning");
+        return false;
+    }
+    if (mw_fwdnld_recovery) {
+        MW_RCVRY_FW_DNLD_ALLOWED = true;
+    } else {
+        MW_RCVRY_FW_DNLD_ALLOWED = false;
+    }
+    return mw_fwdnld_recovery;
 }
 #endif
 #if (NXP_EXTNS == TRUE)
diff --git a/src/nfa/hci/nfa_hci_main.c b/src/nfa/hci/nfa_hci_main.c
index 11925fd..91fe47e 100644
--- a/src/nfa/hci/nfa_hci_main.c
+++ b/src/nfa/hci/nfa_hci_main.c
@@ -277,7 +277,6 @@
 
   /* initialize control block */
   memset(&nfa_hci_cb, 0, sizeof(tNFA_HCI_CB));
-
   nfa_hci_cb.hci_state = NFA_HCI_STATE_STARTUP;
   nfa_hci_cb.num_nfcee = NFA_HCI_MAX_HOST_IN_NETWORK;
 #if (NXP_EXTNS == TRUE)
@@ -675,7 +674,6 @@
   tNFA_HCI_EVT_DATA evt_data;
 
   NFA_TRACE_EVENT1("nfa_hci_startup_complete (): Status: %u", status);
-
   nfa_sys_stop_timer(&nfa_hci_cb.timer);
 
   if ((nfa_hci_cb.hci_state == NFA_HCI_STATE_RESTORE) ||
@@ -714,16 +712,16 @@
     nfa_hci_cb.hci_state = NFA_HCI_STATE_IDLE;
 #if (NXP_EXTNS == TRUE)
     nfa_hci_handle_nfcee_config_evt(NFA_HCI_GET_NUM_NFCEE_CONFIGURED);
-#if (NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH == true)
-    nfa_hci_cb.hci_state = NFA_HCI_STATE_IDLE;
-    NFA_TRACE_EVENT0("hci_state = NFA_HCI_STATE_IDLE");
-    if ((nfa_sys_cb.enable_cplt_flags == nfa_sys_cb.enable_cplt_mask) &&
-        (!(nfa_sys_cb.p_enable_cback))) {
-      if ((nfa_dm_cb.p_dm_cback))
-        (*nfa_dm_cb.p_dm_cback)(NFA_DM_EE_HCI_ENABLE, NULL);
+    if(nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH) {
+        nfa_hci_cb.hci_state = NFA_HCI_STATE_IDLE;
+        NFA_TRACE_EVENT0("hci_state = NFA_HCI_STATE_IDLE");
+        if ((nfa_sys_cb.enable_cplt_flags == nfa_sys_cb.enable_cplt_mask) &&
+                (!(nfa_sys_cb.p_enable_cback))) {
+            if ((nfa_dm_cb.p_dm_cback))
+                (*nfa_dm_cb.p_dm_cback)(NFA_DM_EE_HCI_ENABLE, NULL);
+        }
     }
 #endif
-#endif
   } else {
 #if (NXP_EXTNS == TRUE)
        nfa_hci_handle_nfcee_config_evt(NFA_HCI_NFCEE_CONFIG_COMPLETE);
@@ -779,6 +777,8 @@
   uint8_t count = 0;
   bool found = false;
 
+  nfa_ee_max_ee_cfg = nfcFL.nfccFL._NFA_EE_MAX_EE_SUPPORTED;
+
   if (HCI_LOOPBACK_DEBUG) {
       /* First step in initialization is to open the admin pipe */
       nfa_hciu_send_open_pipe_cmd(NFA_HCI_ADMIN_PIPE);
@@ -927,22 +927,24 @@
   char buff[100];
   static bool is_first_chain_pkt = true;
 #endif
-#if ((NXP_EXTNS == TRUE) && \
-     (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME))
-  if (event == NFC_HCI_RESTART_TIMER) {
-    if (nfa_hci_cb.IsHciTimerChanged) {
-      nfa_sys_start_timer(&nfa_hci_cb.timer, NFA_HCI_RSP_TIMEOUT_EVT,
-                          NFA_HCI_DWP_RSP_WAIT_TIMEOUT);
-      nfa_hci_cb.IsHciTimerChanged = false;
-    } else if (nfa_hci_cb.IsWiredSessionAborted) {
-      nfa_sys_start_timer(&nfa_hci_cb.timer, NFA_HCI_RSP_TIMEOUT_EVT,
-                          NFA_HCI_DWP_SESSION_ABORT_TIMEOUT);
-      nfa_hci_cb.IsWiredSessionAborted = false;
-    } else {
-      nfa_sys_start_timer(&nfa_hci_cb.timer, NFA_HCI_RSP_TIMEOUT_EVT,
-                          nfa_hci_cb.hciResponseTimeout);
-    }
-    return;
+#if (NXP_EXTNS == TRUE)
+  if(nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+          nfcFL.eseFL._ESE_WIRED_MODE_RESUME) {
+      if (event == NFC_HCI_RESTART_TIMER) {
+          if (nfa_hci_cb.IsHciTimerChanged) {
+              nfa_sys_start_timer(&nfa_hci_cb.timer, NFA_HCI_RSP_TIMEOUT_EVT,
+                      NFA_HCI_DWP_RSP_WAIT_TIMEOUT);
+              nfa_hci_cb.IsHciTimerChanged = false;
+          } else if (nfa_hci_cb.IsWiredSessionAborted) {
+              nfa_sys_start_timer(&nfa_hci_cb.timer, NFA_HCI_RSP_TIMEOUT_EVT,
+                      NFA_HCI_DWP_SESSION_ABORT_TIMEOUT);
+              nfa_hci_cb.IsWiredSessionAborted = false;
+          } else {
+              nfa_sys_start_timer(&nfa_hci_cb.timer, NFA_HCI_RSP_TIMEOUT_EVT,
+                      nfa_hci_cb.hciResponseTimeout);
+          }
+          return;
+      }
   }
 #endif
   if (event == NFC_CONN_CREATE_CEVT) {
@@ -1028,10 +1030,8 @@
 
   if (nfa_hci_cb.assembling_flags & NFA_HCI_FL_CONN_PIPE) {
     if (pipe == NFA_HCI_CONN_ESE_PIPE || (pipe == NFA_HCI_CONN_UICC_PIPE)
-#if (NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH == true)
-        || (pipe == NFA_HCI_CONN_UICC2_PIPE)
-#endif
-            ) {
+        || ((nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH) &&
+                (pipe == NFA_HCI_CONN_UICC2_PIPE))) {
       is_assembling_on_current_pipe = 1;
     }
   } else if (nfa_hci_cb.assembling_flags & NFA_HCI_FL_APDU_PIPE) {
@@ -1051,15 +1051,13 @@
 
 #if (NXP_EXTNS == TRUE)
     if (pipe == NFA_HCI_CONN_ESE_PIPE || (pipe == NFA_HCI_CONN_UICC_PIPE)
-#if (NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH == true)
-        || (pipe == NFA_HCI_CONN_UICC2_PIPE)
-#endif
-            ) {
-      nfa_hci_cb.type_evt = nfa_hci_cb.type;
-      nfa_hci_cb.inst_evt = nfa_hci_cb.inst;
+        || ((nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH) &&
+                (pipe == NFA_HCI_CONN_UICC2_PIPE))) {
+        nfa_hci_cb.type_evt = nfa_hci_cb.type;
+        nfa_hci_cb.inst_evt = nfa_hci_cb.inst;
     } else if (pipe == NFA_HCI_APDU_PIPE) {
-      nfa_hci_cb.type_msg = nfa_hci_cb.type;
-      nfa_hci_cb.inst_msg = nfa_hci_cb.inst;
+        nfa_hci_cb.type_msg = nfa_hci_cb.type;
+        nfa_hci_cb.inst_msg = nfa_hci_cb.inst;
     }
 #endif
     if (pkt_len != 0) pkt_len--;
@@ -1093,15 +1091,13 @@
 
           p = nfa_hci_cb.p_msg_data;
         } else if ((pipe == NFA_HCI_CONN_UICC_PIPE) ||
-                   (pipe == NFA_HCI_CONN_ESE_PIPE)
-#if (NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH == true)
-                   || (pipe == NFA_HCI_CONN_UICC2_PIPE)
-#endif
-                       ) {
-          nfa_hci_cb.assembling_flags &= ~NFA_HCI_FL_CONN_PIPE;
-          nfa_hci_cb.assembly_failed_flags &= ~NFA_HCI_FL_CONN_PIPE;
+                (pipe == NFA_HCI_CONN_ESE_PIPE)
+                || ((nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH) &&
+                        (pipe == NFA_HCI_CONN_UICC2_PIPE))) {
+            nfa_hci_cb.assembling_flags &= ~NFA_HCI_FL_CONN_PIPE;
+            nfa_hci_cb.assembly_failed_flags &= ~NFA_HCI_FL_CONN_PIPE;
 
-          p = nfa_hci_cb.p_evt_data;
+            p = nfa_hci_cb.p_evt_data;
         }
 #else
         nfa_hci_assemble_msg(p, pkt_len);
@@ -1113,13 +1109,11 @@
 #if (NXP_EXTNS == TRUE)
     uint8_t is_assembly_failed_on_current_pipe = 0;
     if (nfa_hci_cb.assembly_failed_flags & NFA_HCI_FL_CONN_PIPE) {
-      if ((pipe == NFA_HCI_CONN_ESE_PIPE) || (pipe == NFA_HCI_CONN_UICC_PIPE)
-#if (NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH == true)
-          || (pipe == NFA_HCI_CONN_UICC2_PIPE)
-#endif
-              ) {
-        is_assembly_failed_on_current_pipe = 1;
-      }
+        if ((pipe == NFA_HCI_CONN_ESE_PIPE) || (pipe == NFA_HCI_CONN_UICC_PIPE)
+                || ((nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH) &&
+                        (pipe == NFA_HCI_CONN_UICC2_PIPE))) {
+            is_assembly_failed_on_current_pipe = 1;
+        }
     } else if (nfa_hci_cb.assembly_failed_flags & NFA_HCI_FL_APDU_PIPE) {
       if (pipe == NFA_HCI_APDU_PIPE) {
         is_assembly_failed_on_current_pipe = 1;
@@ -1158,11 +1152,9 @@
         p = nfa_hci_cb.p_msg_data;
         pkt_len = nfa_hci_cb.msg_len;
       } else if ((pipe == NFA_HCI_CONN_UICC_PIPE) ||
-                 (pipe == NFA_HCI_CONN_ESE_PIPE)
-#if (NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH == true)
-                 || (pipe == NFA_HCI_CONN_UICC2_PIPE)
-#endif
-                     ) {
+              (pipe == NFA_HCI_CONN_ESE_PIPE)
+              || ((nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH) &&
+                      (pipe == NFA_HCI_CONN_UICC2_PIPE))) {
         nfa_hci_cb.assembling_flags &= ~NFA_HCI_FL_CONN_PIPE;
         nfa_hci_cb.assembly_failed_flags &= ~NFA_HCI_FL_CONN_PIPE;
 
@@ -1178,15 +1170,13 @@
 
 #if (NXP_EXTNS == TRUE)
   if (pipe == NFA_HCI_CONN_ESE_PIPE || (pipe == NFA_HCI_CONN_UICC_PIPE)
-#if (NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH == true)
-      || (pipe == NFA_HCI_CONN_UICC2_PIPE)
-#endif
-          ) {
-    nfa_hci_cb.type = nfa_hci_cb.type_evt;
-    nfa_hci_cb.inst = nfa_hci_cb.inst_evt;
+          || ((nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH) &&
+                  (pipe == NFA_HCI_CONN_UICC2_PIPE))) {
+      nfa_hci_cb.type = nfa_hci_cb.type_evt;
+      nfa_hci_cb.inst = nfa_hci_cb.inst_evt;
   } else if (pipe == NFA_HCI_APDU_PIPE) {
-    nfa_hci_cb.type = nfa_hci_cb.type_msg;
-    nfa_hci_cb.inst = nfa_hci_cb.inst_msg;
+      nfa_hci_cb.type = nfa_hci_cb.type_msg;
+      nfa_hci_cb.inst = nfa_hci_cb.inst_msg;
   }
 #endif
 
@@ -1262,18 +1252,16 @@
         nfa_hci_cb.hci_state = NFA_HCI_STATE_IDLE;
       }
     } else {
-      if (!((pipe == NFA_HCI_CONN_UICC_PIPE || pipe == NFA_HCI_CONN_ESE_PIPE
-#if (NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH == true)
-             || pipe == NFA_HCI_CONN_UICC2_PIPE
-#endif
-             ) &&
-            (nfa_hci_cb.inst_evt == NFA_HCI_EVT_TRANSACTION ||
-             nfa_hci_cb.inst_evt == NFA_HCI_EVT_CONNECTIVITY))) {
-        /*Stop timer and goto IDLE state when pipe is not connectivity but event
-         * received is connectivity*/
-        nfa_sys_stop_timer(&nfa_hci_cb.timer);
-        nfa_hci_cb.hci_state = NFA_HCI_STATE_IDLE;
-      }
+        if (!((pipe == NFA_HCI_CONN_UICC_PIPE || pipe == NFA_HCI_CONN_ESE_PIPE
+                || ((nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH) &&
+                        (pipe == NFA_HCI_CONN_UICC2_PIPE))) &&
+                (nfa_hci_cb.inst_evt == NFA_HCI_EVT_TRANSACTION ||
+                        nfa_hci_cb.inst_evt == NFA_HCI_EVT_CONNECTIVITY))) {
+            /*Stop timer and goto IDLE state when pipe is not connectivity but event
+             * received is connectivity*/
+            nfa_sys_stop_timer(&nfa_hci_cb.timer);
+            nfa_hci_cb.hci_state = NFA_HCI_STATE_IDLE;
+        }
     }
 #else
     nfa_sys_stop_timer(&nfa_hci_cb.timer);
@@ -1634,19 +1622,17 @@
   if ((pipe >= NFA_HCI_FIRST_DYNAMIC_PIPE) &&
       (nfa_hci_cb.type == NFA_HCI_EVENT_TYPE)) {
 #if (NXP_EXTNS == TRUE)
-    if (pipe == NFA_HCI_CONN_ESE_PIPE || pipe == NFA_HCI_CONN_UICC_PIPE
-#if (NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH == true)
-        || (pipe == NFA_HCI_CONN_UICC2_PIPE)
-#endif
-            ) {
-      /* Connectivity or transaction events are received
-       * from SE. will be assembled and sent to application.
-       * */
-      nfa_hci_cb.assembling_flags |= NFA_HCI_FL_CONN_PIPE;
-      nfa_hci_cb.p_evt_data = nfa_hci_cb.evt_data;
-      nfa_hci_cb.max_evt_len = NFA_MAX_HCI_EVENT_LEN;
-      return;
-    } else if (pipe == NFA_HCI_APDU_PIPE) {
+      if (pipe == NFA_HCI_CONN_ESE_PIPE || pipe == NFA_HCI_CONN_UICC_PIPE
+              || ((nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH) &&
+                      (pipe == NFA_HCI_CONN_UICC2_PIPE))) {
+          /* Connectivity or transaction events are received
+           * from SE. will be assembled and sent to application.
+           * */
+          nfa_hci_cb.assembling_flags |= NFA_HCI_FL_CONN_PIPE;
+          nfa_hci_cb.p_evt_data = nfa_hci_cb.evt_data;
+          nfa_hci_cb.max_evt_len = NFA_MAX_HCI_EVENT_LEN;
+          return;
+      } else if (pipe == NFA_HCI_APDU_PIPE) {
       /* Here APDU response is received, for the APDU
        * sent from JNI layer using transceive.
        * */
@@ -1732,10 +1718,8 @@
       nfa_hci_cb.msg_len += data_len;
     }
   } else if ((pipe == NFA_HCI_CONN_ESE_PIPE) || (pipe == NFA_HCI_CONN_UICC_PIPE)
-#if (NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH == true)
-             || (pipe == NFA_HCI_CONN_UICC2_PIPE)
-#endif
-                 ) {
+          || ((nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH) &&
+                  (pipe == NFA_HCI_CONN_UICC2_PIPE))) {
     if ((nfa_hci_cb.evt_len + data_len) > nfa_hci_cb.max_evt_len) {
       /* Fill the buffer as much it can hold */
       NFA_TRACE_ERROR1(
@@ -1810,32 +1794,34 @@
         break;
 
       case NFA_HCI_RSP_TIMEOUT_EVT:
-#if ((NXP_EXTNS == TRUE) && (NFC_NXP_ESE == TRUE))
+#if (NXP_EXTNS == TRUE)
+          if(nfcFL.nfcNxpEse) {
 #if (JCOP_WA_ENABLE == TRUE)
-        if (nfa_ee_ce_p61_completed != 0) {
-          NFA_TRACE_EVENT0(
-              "nfa_hci_evt_hdlr Restart timer expired for wired transceive");
-          nfa_ee_ce_p61_completed = 0;
-        } else {
-          uint32_t p61_access_status = 0x0000;
-          if (NFC_GetP61Status((void*)&p61_access_status) < 0) {
-            NFA_TRACE_EVENT0(
-                "nfa_hci_evt_hdlr : Check dual mode : NFC_GetP61Status failed");
-          } else {
-            if (((p61_access_status == 0x400) ||
-                 (p61_access_status == 0x1000)) &&
-                (NFA_check_p61_CL_Activated() != 0)) {
-              NFA_TRACE_EVENT0(
-                  "nfa_hci_evt_hdlr Restart timer for wired transceive");
-              nfa_sys_start_timer(&nfa_hci_cb.timer, NFA_HCI_RSP_TIMEOUT_EVT,
+              if (nfa_ee_ce_p61_completed != 0) {
+                  NFA_TRACE_EVENT0(
+                          "nfa_hci_evt_hdlr Restart timer expired for wired transceive");
+                  nfa_ee_ce_p61_completed = 0;
+              } else {
+                  uint32_t p61_access_status = 0x0000;
+                  if (NFC_GetP61Status((void*)&p61_access_status) < 0) {
+                      NFA_TRACE_EVENT0(
+                              "nfa_hci_evt_hdlr : Check dual mode : NFC_GetP61Status failed");
+                  } else {
+                      if (((p61_access_status == 0x400) ||
+                              (p61_access_status == 0x1000)) &&
+                              (NFA_check_p61_CL_Activated() != 0)) {
+                          NFA_TRACE_EVENT0(
+                                  "nfa_hci_evt_hdlr Restart timer for wired transceive");
+                          nfa_sys_start_timer(&nfa_hci_cb.timer, NFA_HCI_RSP_TIMEOUT_EVT,
                                   NFA_HCI_WTX_RESP_TIMEOUT);
-              /*situation occurred*/
-              nfa_ee_ce_p61_completed = 1;
-              break;
-            }
-          }
-        }
+                          /*situation occurred*/
+                          nfa_ee_ce_p61_completed = 1;
+                          break;
+                      }
+                  }
+              }
 #endif
+          }
 #endif
         nfa_hci_rsp_timeout((tNFA_HCI_EVENT_DATA*)p_msg);
         break;
diff --git a/src/nfa/include/nfa_api.h b/src/nfa/include/nfa_api.h
index 91a6298..66399cc 100644
--- a/src/nfa/include/nfa_api.h
+++ b/src/nfa/include/nfa_api.h
@@ -241,13 +241,11 @@
 #define NFA_DM_SET_ROUTE_CONFIG_REVT 9
 /* Result of NFA_GetRouting         */
 #define NFA_DM_GET_ROUTE_CONFIG_REVT 10
-
-#if (NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH == true)
 /*Status when EE HCI subsystems disabled*/
 #define NFA_DM_EE_HCI_DISABLE 11
 /*Status when EE HCI susbsystems enabled*/
 #define NFA_DM_EE_HCI_ENABLE 12
-#endif
+
 /* Reader over SWP Events*/
 #define NFA_RD_SWP_READER_REQUESTED 0
 #define NFA_RD_SWP_READER_START 1
@@ -478,11 +476,9 @@
 /* Activated intf for updating the   tech variables */
 #define NFA_ACTIVATED_UPDATE_EVT 41
 #define NFA_RECOVERY_EVT 42 /*Recovery*/
-#if (NXP_NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION == true)
 /* Passive Listening disabled event */
 #define NFA_PASSIVE_LISTEN_DISABLED_EVT 44
 #endif
-#endif
 /* NFC deactivation type */
 #define NFA_DEACTIVATE_TYPE_IDLE NFC_DEACTIVATE_TYPE_IDLE
 #define NFA_DEACTIVATE_TYPE_SLEEP NFC_DEACTIVATE_TYPE_SLEEP
@@ -1146,8 +1142,7 @@
 *******************************************************************************/
 extern tNFA_STATUS NFA_DisableListening(void);
 
-#if ((NXP_EXTNS == TRUE) && \
-     (NXP_NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION == true))
+#if (NXP_EXTNS == TRUE)
 /*******************************************************************************
 **
 ** Function         NFA_DisablePassiveListening
@@ -1643,12 +1638,9 @@
 +*******************************************************************************/
 extern bool NFA_checkNfcStateBusy();
 
-#if (NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH == true)
 extern void NFA_EE_HCI_Control(bool mode);
 extern tNFA_STATUS NFA_ResetNfcc();
-#endif
 
-#if (NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH == true)
 /*******************************************************************************
 **
 ** Function:        NFA_SetPreferredUiccId
@@ -1661,7 +1653,6 @@
 **
 *******************************************************************************/
 extern void NFA_SetPreferredUiccId(uint8_t uicc_id);
-#endif
 
 #endif
 
diff --git a/src/nfa/include/nfa_ee_api.h b/src/nfa/include/nfa_ee_api.h
index 68d6674..162aed2 100644
--- a/src/nfa/include/nfa_ee_api.h
+++ b/src/nfa/include/nfa_ee_api.h
@@ -91,10 +91,8 @@
   NFA_EE_NO_CB_ERR_EVT, /* Error - Can not find control block or wrong state */
 #if (NXP_EXTNS == TRUE)
   NFA_EE_SET_MODE_INFO_EVT,
-#if (NXP_WIRED_MODE_STANDBY == true)
   NFA_EE_PWR_LINK_CTRL_EVT, /* NFCEE Pwr and link cotnrol command Evt */
 #endif
-#endif
   NFA_EE_ADD_APDU_EVT,  /* The status for adding an APDU pattern to a routing table entry*/
   NFA_EE_REMOVE_APDU_EVT /* The status for removing an APDU pattern from a routing table */
 };
@@ -164,8 +162,7 @@
   NFCC_DEACTIVATED_NTF,
   NFCC_ACTION_NTF,
   NFCC_CE_DATA_EVT,
-#if (NXP_EXTNS == TRUE && \
-     NXP_NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION == true)
+#if (NXP_EXTNS == TRUE)
   NFCC_RF_TIMEOUT_EVT
 #endif
 } tNFCC_EVTS_NTF;
@@ -246,13 +243,11 @@
   tNFA_STATUS status;
   uint8_t nfcee_id;
 } tNFA_EE_SET_MODE_INFO;
-#if (NXP_WIRED_MODE_STANDBY == true)
 typedef struct {
   tNFA_STATUS status;       /* NFA_STATUS_OK is successful  */
   tNFA_EE_STATUS ee_status; /* The NFCEE status             */
 } tNFA_EE_PWR_LNK_CTRL;
 #endif
-#endif
 typedef struct {
   tNFA_HANDLE ee_handle;          /* Handle of MFCEE      */
   tNFA_NFC_PROTOCOL la_protocol;  /* Listen A protocol    */
@@ -300,10 +295,8 @@
   tNFA_EE_MODE_SET mode_set;
 #if (NXP_EXTNS == TRUE)
   tNFA_EE_SET_MODE_INFO ee_set_mode_info;
-#if (NXP_WIRED_MODE_STANDBY == true)
   tNFA_EE_PWR_LNK_CTRL pwr_lnk_ctrl;
 #endif
-#endif
   tNFA_EE_INFO new_ee;
   tNFA_EE_DISCOVER_REQ discover_req;
 } tNFA_EE_CBACK_DATA;
diff --git a/src/nfa/include/nfa_hci_api.h b/src/nfa/include/nfa_hci_api.h
old mode 100755
new mode 100644
index b94bb6f..c7ec22b
--- a/src/nfa/include/nfa_hci_api.h
+++ b/src/nfa/include/nfa_hci_api.h
@@ -672,7 +672,7 @@
 extern tNFA_STATUS NFA_HciAddStaticPipe(tNFA_HANDLE hci_handle, uint8_t host,
                                         uint8_t gate, uint8_t pipe);
 
-#if ((NXP_EXTNS == TRUE) && (NXP_NFCC_MW_RCVRY_BLK_FW_DNLD == true))
+#if (NXP_EXTNS == TRUE)
 /*******************************************************************************
 **
 ** Function         NFA_MW_Fwdnlwd_Recovery
diff --git a/src/nfa/include/nfa_hci_defs.h b/src/nfa/include/nfa_hci_defs.h
old mode 100755
new mode 100644
index 9715c3e..c245023
--- a/src/nfa/include/nfa_hci_defs.h
+++ b/src/nfa/include/nfa_hci_defs.h
@@ -48,10 +48,8 @@
 #define NFA_HCI_LOOP_BACK_GATE 0x04
 #define NFA_HCI_IDENTITY_MANAGEMENT_GATE 0x05
 #if (NXP_EXTNS == TRUE)
-#ifdef GEMALTO_SE_SUPPORT
 #define NFC_HCI_DEFAULT_DEST_GATE 0XF0
 #endif
-#endif
 
 #define NFA_HCI_FIRST_HOST_SPECIFIC_GENERIC_GATE 0x10
 #define NFA_HCI_LAST_HOST_SPECIFIC_GENERIC_GATE 0xEF
diff --git a/src/nfa/int/nfa_dm_int.h b/src/nfa/int/nfa_dm_int.h
old mode 100755
new mode 100644
index c31d9a2..6eede26
--- a/src/nfa/int/nfa_dm_int.h
+++ b/src/nfa/int/nfa_dm_int.h
@@ -64,8 +64,7 @@
   NFA_DM_API_DISABLE_POLLING_EVT,
   NFA_DM_API_ENABLE_LISTENING_EVT,
   NFA_DM_API_DISABLE_LISTENING_EVT,
-#if (NXP_EXTNS == TRUE && \
-     NXP_NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION == true)
+#if (NXP_EXTNS == TRUE)
   NFA_DM_API_DISABLE_PASSIVE_LISTENING_EVT,
 #endif
   NFA_DM_API_PAUSE_P2P_EVT,
@@ -335,8 +334,7 @@
 #define NFA_DM_DISC_MASK_L_LEGACY 0x10000000
 #define NFA_DM_DISC_MASK_LISTEN 0xFFFF0000
 #define NFA_DM_DISC_MASK_NFC_DEP 0x0C481848
-#if (NXP_EXTNS == TRUE && \
-     NXP_NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION == true)
+#if (NXP_EXTNS == TRUE)
 #define NFA_DM_DISC_MASK_ACTIVE_LISTEN 0xFF00FFFF
 #endif
 
@@ -475,8 +473,7 @@
 #define NFA_DM_FLAGS_P2P_PAUSED 0x00002000
 /* Power Off Sleep                                                      */
 #define NFA_DM_FLAGS_POWER_OFF_SLEEP 0x00008000
-#if (NXP_EXTNS == TRUE && \
-     NXP_NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION == true)
+#if (NXP_EXTNS == TRUE)
 /* NFA_DisablePassiveListening() is called and engaged                  */
 #define NFA_DM_FLAGS_PASSIVE_LISTEN_DISABLED 0x00010000
 #endif
@@ -652,8 +649,7 @@
 bool nfa_dm_act_disable_polling(tNFA_DM_MSG* p_data);
 bool nfa_dm_act_enable_listening(tNFA_DM_MSG* p_data);
 bool nfa_dm_act_disable_listening(tNFA_DM_MSG* p_data);
-#if (NXP_EXTNS == TRUE && \
-     NXP_NFCC_ESE_UICC_CONCURRENT_ACCESS_PROTECTION == true)
+#if (NXP_EXTNS == TRUE)
 bool nfa_dm_act_disable_passive_listening(tNFA_DM_MSG* p_data);
 #endif
 bool nfa_dm_act_pause_p2p(tNFA_DM_MSG* p_data);
@@ -727,7 +723,7 @@
 char* nfa_dm_nfc_revt_2_str(tNFC_RESPONSE_EVT event);
 #endif
 
-#if ((NXP_EXTNS == TRUE) && (NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH == true))
+#if (NXP_EXTNS == TRUE)
 tNFC_STATUS nfc_ncif_reset_nfcc();
 #endif
 #endif /* NFA_DM_INT_H */
diff --git a/src/nfa/int/nfa_ee_int.h b/src/nfa/int/nfa_ee_int.h
index 825a47b..adf43f6 100644
--- a/src/nfa/int/nfa_ee_int.h
+++ b/src/nfa/int/nfa_ee_int.h
@@ -85,10 +85,8 @@
   NFA_EE_NCI_MODE_SET_RSP_EVT,
 #if (NXP_EXTNS == TRUE)
   NFA_EE_NCI_MODE_SET_INFO,
-#if (NXP_WIRED_MODE_STANDBY == true)
   NFA_EE_NCI_PWR_LNK_CTRL_RSP_EVT,
 #endif
-#endif
   NFA_EE_NCI_CONN_EVT,
   NFA_EE_NCI_DATA_EVT,
   NFA_EE_NCI_ACTION_NTF_EVT,
@@ -130,11 +128,8 @@
 };
 typedef uint8_t tNFA_EE_CONN_ST;
 #if (NXP_EXTNS == TRUE)
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 #define NFA_EE_ROUT_BUF_SIZE 720
-#else
-#define NFA_EE_ROUT_BUF_SIZE 200
-#endif
+#define NFA_EE_ROUT_BUF_SIZE_STAT 200
 #else
 #define NFA_EE_ROUT_BUF_SIZE 540
 #endif
@@ -155,7 +150,6 @@
 #define NFA_EE_PROTO_ROUTE_ENTRY_SIZE 5
 #define NFA_EE_TECH_ROUTE_ENTRY_SIZE 5
 
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 /**
  * Max Routing Table Size = 720
  * After allocating size for Technology based routing and Protocol based
@@ -185,9 +179,7 @@
    NFA_EE_BUFFER_FUTURE_EXT)
 #define NFA_EE_MAX_AID_CFG_LEN \
   (NFA_EE_ROUT_BUF_SIZE - NFA_EE_TOTAL_PROTO_TECH_FUTURE_EXT_ROUTE_SIZE)
-#else
-#define NFA_EE_MAX_AID_CFG_LEN (160)
-#endif
+#define NFA_EE_MAX_AID_CFG_LEN_STAT (160)
 #else
 #define NFA_EE_MAX_AID_CFG_LEN (510)
 #endif
@@ -273,23 +265,20 @@
  * entry
  */
 #if (NXP_EXTNS == TRUE)
-#if ((NFC_NXP_CHIP_TYPE != PN547C2) && (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
   uint8_t* aid_len;     /* the actual lengths in aid_cfg */
   uint8_t* aid_pwr_cfg; /* power configuration of this AID entry */
   uint8_t* aid_rt_info; /* route/vs info for this AID entry */
   uint8_t* aid_rt_loc;  /* route location info for this AID entry */
   uint8_t* aid_cfg;     /* routing entries based on AID */
   uint8_t* aid_info;    /* AID info prefix/subset routing */
-#else
-  uint8_t aid_rt_loc[NFA_EE_MAX_AID_ENTRIES]; /* route location info for this
-                                                 AID entry */
-  uint8_t aid_len[NFA_EE_MAX_AID_ENTRIES]; /* the actual lengths in aid_cfg */
-  uint8_t aid_pwr_cfg[NFA_EE_MAX_AID_ENTRIES]; /* power configuration of this
-                                                  AID entry */
-  uint8_t aid_rt_info[NFA_EE_MAX_AID_ENTRIES]; /* route/vs info for this AID
-                                                  entry */
-  uint8_t aid_cfg[NFA_EE_MAX_AID_CFG_LEN];     /* routing entries based on AID */
-#endif
+  uint8_t aid_rt_loc_stat[NFA_EE_MAX_AID_ENTRIES]; /* route location info for this
+                                                    AID entry */
+  uint8_t aid_len_stat[NFA_EE_MAX_AID_ENTRIES]; /* the actual lengths in aid_cfg */
+  uint8_t aid_pwr_cfg_stat[NFA_EE_MAX_AID_ENTRIES]; /* power configuration of this
+                                                     AID entry */
+  uint8_t aid_rt_info_stat[NFA_EE_MAX_AID_ENTRIES]; /* route/vs info for this AID
+                                                     entry */
+  uint8_t aid_cfg_stat[NFA_EE_MAX_AID_CFG_LEN];     /* routing entries based on AID */
 #else
   uint8_t aid_len[NFA_EE_MAX_AID_ENTRIES]; /* the actual lengths in aid_cfg */
   uint8_t aid_pwr_cfg[NFA_EE_MAX_AID_ENTRIES]; /* power configuration of this
@@ -492,13 +481,11 @@
   tNFC_NFCEE_MODE_SET_INFO* p_data;
 } tNFA_EE_NCI_SET_MODE_INFO;
 /* data type for NFA_EE_NCI_MODE_SET_RSP_EVT */
-#if (NXP_WIRED_MODE_STANDBY == true)
 typedef struct {
   NFC_HDR hdr;
   tNFC_NFCEE_EE_PWR_LNK_REVT* p_data;
 } tNFA_EE_NCI_PWR_LNK_CTRL;
 #endif
-#endif
 
 /* data type for NFA_EE_NCI_WAIT_RSP_EVT */
 typedef struct {
@@ -550,10 +537,8 @@
   tNFA_EE_NCI_MODE_SET mode_set_rsp;
 #if (NXP_EXTNS == TRUE)
   tNFA_EE_NCI_SET_MODE_INFO mode_set_info;
-#if (NXP_WIRED_MODE_STANDBY == true)
   tNFA_EE_NCI_PWR_LNK_CTRL pwr_lnk_ctrl_rsp;
 #endif
-#endif
   tNFA_EE_NCI_WAIT_RSP wait_rsp;
   tNFA_EE_NCI_CONN conn;
   tNFA_EE_NCI_ACTION act;
@@ -618,7 +603,7 @@
 
 typedef void(tNFA_EE_ENABLE_DONE_CBACK)(tNFA_EE_DISC_STS status);
 
-#if ((NXP_EXTNS == TRUE) && (NXP_UICC_HANDLE_CLEAR_ALL_PIPES == true))
+#if (NXP_EXTNS == TRUE)
 typedef void(tNFA_EE_CLEAR_ALL_PIPES_CBACK)(uint8_t source_host);
 #endif
 
@@ -632,11 +617,9 @@
   tNFA_EE_ENABLE_DONE_CBACK*
       p_enable_cback; /* callback to notify on enable done*/
 #if (NXP_EXTNS == TRUE)
-#if (NXP_UICC_HANDLE_CLEAR_ALL_PIPES == true)
   tNFA_EE_CLEAR_ALL_PIPES_CBACK*
       p_clear_all_pipes_cback; /* callback to notify UICC CAP */
 #endif
-#endif
   tNFA_EE_EM_STATE em_state; /* NFA-EE state initialized or not  */
   uint8_t wait_rsp;          /* num of NCI rsp expected (update) */
   uint8_t num_ee_expecting;  /* number of ee_info still expecting*/
@@ -719,10 +702,8 @@
 extern void nfa_hci_conn_cback(uint8_t conn_id, tNFC_CONN_EVT event,
                                tNFC_CONN* p_data);
 void nfa_ee_nci_set_mode_info(tNFA_EE_MSG* p_data);
-#if (NXP_WIRED_MODE_STANDBY == true)
 void nfa_ee_nci_pwr_link_ctrl_rsp(tNFA_EE_MSG* p_data);
 #endif
-#endif
 void nfa_ee_nci_wait_rsp(tNFA_EE_MSG* p_data);
 void nfa_ee_nci_conn(tNFA_EE_MSG* p_data);
 void nfa_ee_nci_action_ntf(tNFA_EE_MSG* p_data);
diff --git a/src/nfa/int/nfa_hci_int.h b/src/nfa/int/nfa_hci_int.h
old mode 100755
new mode 100644
index ce38a1f..6d4c8cf
--- a/src/nfa/int/nfa_hci_int.h
+++ b/src/nfa/int/nfa_hci_int.h
@@ -53,7 +53,7 @@
 #define NFA_HCI_DEBUG_ON 0x01
 #define NFA_HCI_DEBUG_OFF 0x00
 
-#if ((NXP_EXTNS == TRUE) && (NXP_NFCC_MW_RCVRY_BLK_FW_DNLD == true))
+#if (NXP_EXTNS == TRUE)
 bool MW_RCVRY_FW_DNLD_ALLOWED;
 #endif
 /*****************************************************************************
@@ -627,10 +627,8 @@
 extern void nfa_hciu_set_nfceeid_poll_mask(uint8_t event, uint8_t host_id);
 extern bool nfa_hciu_check_any_host_reset_pending();
 extern tNFA_STATUS nfa_hci_api_config_nfcee(uint8_t hostId);
-#if (NXP_UICC_HANDLE_CLEAR_ALL_PIPES == true)
 void nfa_hci_handle_clear_all_pipes_evt(uint8_t source_host);
 #endif
-#endif
 
 /* Action functions in nfa_hci_act.c
 */
diff --git a/src/nfc/include/nci_hmsgs.h b/src/nfc/include/nci_hmsgs.h
old mode 100755
new mode 100644
index 549bc6f..4df6cce
--- a/src/nfc/include/nci_hmsgs.h
+++ b/src/nfc/include/nci_hmsgs.h
@@ -82,7 +82,7 @@
 uint8_t nci_snd_discover_map_cmd(uint8_t num, tNCI_DISCOVER_MAPS* p_maps);
 uint8_t nci_snd_t3t_polling(uint16_t system_code, uint8_t rc, uint8_t tsn);
 uint8_t nci_snd_parameter_update_cmd(uint8_t* p_param_tlvs, uint8_t tlv_size);
-#if (NXP_EXTNS == TRUE) && (NXP_WIRED_MODE_STANDBY == true)
+#if (NXP_EXTNS == TRUE)
 uint8_t nci_snd_pwr_nd_lnk_ctrl_cmd(uint8_t nfcee_id, uint8_t cfg_value);
 #endif
 #if ((NFC_NFCEE_INCLUDED == true) && (NFC_RW_ONLY == false))
diff --git a/src/nfc/include/nfc_api.h b/src/nfc/include/nfc_api.h
index f5e9b97..3b8667f 100644
--- a/src/nfc/include/nfc_api.h
+++ b/src/nfc/include/nfc_api.h
@@ -51,9 +51,11 @@
 #include "gki.h"
 #include "vendor_cfg.h"
 #if (NXP_EXTNS == TRUE)
+/*
 #include <NXP_NFCC_Features.h>
 #include <NXP_ESE_Features.h>
 #include <NXP_Platform_Features.h>
+*/
 #endif
 /* NFC application return status codes */
 /* Command succeeded    */
@@ -305,15 +307,13 @@
 #define NFC_FIRST_REVT 0x5000
 #define NFC_FIRST_CEVT 0x6000
 #define NFC_FIRST_TEVT 0x8000
-#if ((NXP_EXTNS == TRUE) && \
-     (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME))
+#if (NXP_EXTNS == TRUE)
 void nfc_ncif_onWiredModeHold_timeout();
 void nfc_ncif_allow_dwp_transmission();
 void nfc_ncif_modeSet_Ntf_timeout();
 void nfc_ncif_modeSet_rsp_timeout();
 void nfc_ncif_resume_dwp_wired_mode();
 void nfc_ncif_pwr_link_rsp_timeout();
-#endif
 /* the events reported on tNFC_RESPONSE_CBACK */
 enum {
   NFC_ENABLE_REVT = NFC_FIRST_REVT, /* 0  Enable event                  */
@@ -356,9 +356,7 @@
 #if (NXP_EXTNS == TRUE)
   NFC_RF_WTX_CEVT, /* 6  received rf wtx */
 #endif
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
   NFC_RF_TRANSMISSION_ERROR, /* 7 CE Error events */
-#endif
   NFC_HCI_RESTART_TIMER
 };
 typedef uint16_t tNFC_CONN_EVT;
@@ -413,7 +411,6 @@
   uint8_t nfcee_id;
 } tNFC_NFCEE_MODE_SET_INFO;
 
-#if (NXP_ESE_JCOP_DWNLD_PROTECTION == true)
 #define ESE_STATE_JCOP_DWNLD                                      \
   0x8000 /* Depicts the state of Jcop download to be matched with \
             P61_STATE_JCP_DWNLD                                   \
@@ -427,7 +424,6 @@
   JCP_DWP_DWNLD_COMPLETE = 0x8080, /* jcop download complete */
 } jcop_dwnld_state_t;
 #endif
-#endif
 
 /* the data type associated with NFC_NFCEE_DISCOVER_REVT */
 typedef struct {
@@ -733,10 +729,8 @@
   tNFC_NFCEE_MODE_SET_REVT mode_set;
 #if (NXP_EXTNS == TRUE)
   tNFC_NFCEE_MODE_SET_INFO mode_set_info;
-#if (NXP_WIRED_MODE_STANDBY == true)
   tNFC_NFCEE_EE_PWR_LNK_REVT pwr_lnk_ctrl;
 #endif
-#endif
   tNFC_NFCEE_PL_CONTROL_REVT  pl_control;
   tNFC_NFCEE_STATUS_REVT  nfcee_status;
   tNFC_RF_FIELD_REVT rf_field;
@@ -988,6 +982,10 @@
 #define NFC_RF_PARAM_SOS_REQUIRED 0x00     /* SoS required */
 #define NFC_RF_PARAM_SOS_NOT_REQUIRED 0x01 /* SoS not required */
 
+#if (NXP_EXTNS == TRUE)
+#define NFA_EE_MAX_EE_SUPPORTED_DEFAULT 0x04
+#endif
+
 typedef struct {
   bool include_rf_tech_mode; /* true if including RF Tech and Mode update    */
   tNFC_RF_TECH_N_MODE rf_tech_n_mode; /* RF tech and mode */
@@ -1497,7 +1495,6 @@
 extern tNFC_STATUS NFC_SendNxpNciCommand(NFC_HDR* p_data,
                                          tNFC_VS_CBACK* p_cback);
 
-#if (NXP_ESE_JCOP_DWNLD_PROTECTION)
 /*******************************************************************************
 **
 ** Function         NFC_SetP61Status
@@ -1510,7 +1507,6 @@
 *******************************************************************************/
 extern int32_t NFC_SetP61Status(void* pdata, jcop_dwnld_state_t isJcopState);
 #endif
-#endif
 
 /*******************************************************************************
 **
@@ -1540,6 +1536,17 @@
 *******************************************************************************/
 extern uint8_t NFC_SetTraceLevel(uint8_t new_level);
 
+/*******************************************************************************
+**
+** Function         NFC_GetChipType
+**
+** Description      Gets the chipType
+**
+** Returns          ChipType
+**
+*******************************************************************************/
+tNFC_chipType NFC_GetChipType();
+
 #if (BT_TRACE_VERBOSE == true)
 /*******************************************************************************
 **
@@ -1588,7 +1595,6 @@
 **
 *******************************************************************************/
 void NFC_EnableDisableHalLog(uint8_t type);
-#if ((NFC_NXP_CHIP_TYPE != PN547C2) && (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
 /*******************************************************************************
 **
 ** Function         nfc_ncif_getMaxRoutingTableSize
@@ -1600,9 +1606,7 @@
 **
 *******************************************************************************/
 extern uint16_t nfc_ncif_getMaxRoutingTableSize();
-#endif
-#if (NFC_NXP_ESE == TRUE)
-#if (NXP_EXTNS == TRUE) && (NXP_WIRED_MODE_STANDBY == true)
+
 /*******************************************************************************
 **
 ** Function         NFC_Nfcee_PwrLinkCtrl
@@ -1621,7 +1625,6 @@
 **
 *******************************************************************************/
 extern tNFC_STATUS NFC_Nfcee_PwrLinkCtrl(uint8_t nfcee_id, uint8_t cfg_value);
-#endif
 
 /*******************************************************************************
 **
@@ -1689,7 +1692,6 @@
 *******************************************************************************/
 int32_t NFC_EnableWired(void* pdata);
 
-#if ((NFC_NXP_ESE_VER == JCOP_VER_3_1) || (NFC_NXP_ESE_VER == JCOP_VER_3_2))
 /*******************************************************************************
 **
 ** Function         NFC_GetEseAccess
@@ -1715,9 +1717,6 @@
 *******************************************************************************/
 int32_t NFC_RelEseAccess(void* pdata);
 
-#endif
-
-#if (NXP_ESE_SVDD_SYNC == true)
 /*******************************************************************************
 **
 ** Function         NFC_RelSvddWait
@@ -1729,10 +1728,18 @@
 **
 *******************************************************************************/
 int32_t NFC_RelSvddWait(void* pdata);
-#endif
 
-#endif
-#if (NXP_EXTNS == TRUE)
+/*******************************************************************************
+**
+** Function         NFC_GetChipType
+**
+** Description      Returns currently selected chip type
+**
+** Returns          chipType
+**
+*******************************************************************************/
+tNFC_chipType NFC_GetChipType();
+
 /*******************************************************************************
 **
 ** Function         NFC_Queue_Is_empty
diff --git a/src/nfc/int/nfc_int.h b/src/nfc/int/nfc_int.h
index 5bc859b..5835632 100644
--- a/src/nfc/int/nfc_int.h
+++ b/src/nfc/int/nfc_int.h
@@ -53,7 +53,6 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-
 /****************************************************************************
  ** Internal NFC constants and definitions
  ****************************************************************************/
@@ -101,8 +100,7 @@
 #define NFC_TTYPE_VS_BASE 200
 /* time out for modeSet notification */
 #define NFC_SETMODE_NTF_TIMEOUT     2
-#if ((NXP_EXTNS == TRUE) && \
-     (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME))
+#if (NXP_EXTNS == TRUE)
 /* Added for sending fave pwr link response to JNI since pwrlink cmd has been
                                                   ignored due to RF CE session
    */
@@ -134,7 +132,7 @@
   I2C_FRAGMENATATION_ENABLED, /*i2c fragmentation_enabled           */
   I2C_FRAGMENTATION_DISABLED  /*i2c_fragmentation_disabled          */
 };
-#if ((NXP_EXTNS == TRUE) && (NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH == true))
+#if (NXP_EXTNS == TRUE)
 /*Get or Set swp activation state for UICC*/
 typedef enum {
   GET_UICC_CONFIG = 0x01, /*get swp activation state for UICC  */
@@ -414,9 +412,7 @@
 #if (NXP_EXTNS == TRUE)
 extern uint8_t nfc_ncif_retransmit_data(tNFC_CONN_CB* p_cb, NFC_HDR* p_data);
 extern tNFC_STATUS nfc_ncif_store_FWVersion(uint8_t* p_buf);
-#if ((NFC_NXP_CHIP_TYPE != PN547C2) && (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
 extern tNFC_STATUS nfc_ncif_set_MaxRoutingTableSize(uint8_t* p_buf);
-#endif
 extern void nfc_ncif_proc_isodep_nak_presence_check_status (uint8_t status, bool is_ntf);
 extern void nfc_ncif_update_window(void);
 extern void nfc_ncif_empty_cmd_queue();
diff --git a/src/nfc/nci/nci_hmsgs.c b/src/nfc/nci/nci_hmsgs.c
old mode 100755
new mode 100644
index 2e1d7dd..c965329
--- a/src/nfc/nci/nci_hmsgs.c
+++ b/src/nfc/nci/nci_hmsgs.c
@@ -358,7 +358,7 @@
   nfc_ncif_send_cmd(p);
   return (NCI_STATUS_OK);
 }
-#if (NXP_EXTNS == TRUE) && (NXP_WIRED_MODE_STANDBY == true)
+#if (NXP_EXTNS == TRUE)
 /*******************************************************************************
 **
 ** Function         nci_snd_pwr_nd_lnk_ctrl_cmd
@@ -371,31 +371,37 @@
 **
 *******************************************************************************/
 uint8_t nci_snd_pwr_nd_lnk_ctrl_cmd(uint8_t nfcee_id, uint8_t cfg_value) {
+    NFC_TRACE_DEBUG0("nci_snd_pwr_nd_lnk_ctrl_cmd() Enter ");
+    if(!nfcFL.eseFL._WIRED_MODE_STANDBY) {
+        NFC_TRACE_DEBUG0("WIRED_MODE_STANDBY not available. Returning");
+        return (NCI_STATUS_FAILED);
+    }
   NFC_HDR* p;
   uint8_t* pp;
-#if (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME)
-  if (nfc_cb.bBlkPwrlinkAndModeSetCmd) {
-    NFC_TRACE_DEBUG0("pwr link cmd ignored due to RF session");
-    nfc_cb.pwr_link_cmd.bPwrLinkCmdRequested = true;
-    nfc_cb.pwr_link_cmd.param = cfg_value;
-    nfc_start_quick_timer(&nfc_cb.nci_wait_pwrLinkRsp_timer,
-                          NFC_TTYPE_PWR_LINK_RSP,
-                          ((uint32_t)100) * QUICK_TIMER_TICKS_PER_SEC / 1000);
-    return (NCI_STATUS_OK);
+  if (nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+          nfcFL.eseFL._ESE_WIRED_MODE_RESUME) {
+      if (nfc_cb.bBlkPwrlinkAndModeSetCmd) {
+          NFC_TRACE_DEBUG0("pwr link cmd ignored due to RF session");
+          nfc_cb.pwr_link_cmd.bPwrLinkCmdRequested = true;
+          nfc_cb.pwr_link_cmd.param = cfg_value;
+          nfc_start_quick_timer(&nfc_cb.nci_wait_pwrLinkRsp_timer,
+                  NFC_TTYPE_PWR_LINK_RSP,
+                  ((uint32_t)100) * QUICK_TIMER_TICKS_PER_SEC / 1000);
+          return (NCI_STATUS_OK);
+      }
   }
-#endif
-  if ((p = NCI_GET_CMD_BUF(NCI_PWR_LINK_PARAM_CMD_SIZE)) == NULL)
+  if ((p = NCI_GET_CMD_BUF(nfcFL.nfcMwFL._NCI_PWR_LINK_PARAM_CMD_SIZE)) == NULL)
     return (NCI_STATUS_FAILED);
 
   p->event = BT_EVT_TO_NFC_NCI;
-  p->len = NCI_MSG_HDR_SIZE + NCI_PWR_LINK_PARAM_CMD_SIZE;
+  p->len = NCI_MSG_HDR_SIZE + nfcFL.nfcMwFL._NCI_PWR_LINK_PARAM_CMD_SIZE;
   p->offset = NCI_MSG_OFFSET_SIZE;
   p->layer_specific = 0;
   pp = (uint8_t*)(p + 1) + p->offset;
 
   NCI_MSG_BLD_HDR0(pp, NCI_MT_CMD, NCI_GID_EE_MANAGE);
   NCI_MSG_BLD_HDR1(pp, NCI_MSG_NFCEE_PWR_LNK_CTRL);
-  UINT8_TO_STREAM(pp, NCI_PWR_LINK_PARAM_CMD_SIZE);
+  UINT8_TO_STREAM(pp, nfcFL.nfcMwFL._NCI_PWR_LINK_PARAM_CMD_SIZE);
   UINT8_TO_STREAM(pp, nfcee_id);
   UINT8_TO_STREAM(pp, cfg_value);
 
@@ -416,18 +422,17 @@
 uint8_t nci_snd_nfcee_mode_set(uint8_t nfcee_id, uint8_t nfcee_mode) {
   NFC_HDR* p;
   uint8_t* pp;
-
-#if (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME)
-  if ((nfc_cb.bBlkPwrlinkAndModeSetCmd) && (NFCEE_ID_ESE == nfcee_id)) {
-    NFC_TRACE_DEBUG0("mode set cmd ignored due to RF session");
-    nfc_start_quick_timer(&nfc_cb.nci_wait_pwrLinkRsp_timer,
-                          NFC_TTYPE_SET_MODE_RSP,
-                          ((uint32_t)100) * QUICK_TIMER_TICKS_PER_SEC / 1000);
-    nfc_cb.bSetmodeOnReq = true;
-    return NCI_STATUS_OK;
+  if (nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+          nfcFL.eseFL._ESE_WIRED_MODE_RESUME) {
+      if ((nfc_cb.bBlkPwrlinkAndModeSetCmd) && (NFCEE_ID_ESE == nfcee_id)) {
+          NFC_TRACE_DEBUG0("mode set cmd ignored due to RF session");
+          nfc_start_quick_timer(&nfc_cb.nci_wait_pwrLinkRsp_timer,
+                  NFC_TTYPE_SET_MODE_RSP,
+                  ((uint32_t)100) * QUICK_TIMER_TICKS_PER_SEC / 1000);
+          nfc_cb.bSetmodeOnReq = true;
+          return NCI_STATUS_OK;
+      }
   }
-#endif
-
   p = NCI_GET_CMD_BUF(NCI_CORE_PARAM_SIZE_NFCEE_MODE_SET);
   if (p == NULL) return (NCI_STATUS_FAILED);
 
diff --git a/src/nfc/nci/nci_hrcv.c b/src/nfc/nci/nci_hrcv.c
old mode 100755
new mode 100644
index 878aabb..c99048e
--- a/src/nfc/nci/nci_hrcv.c
+++ b/src/nfc/nci/nci_hrcv.c
@@ -326,9 +326,8 @@
   tNFC_NFCEE_PL_CONTROL_REVT  pl_control;
 #if (NXP_EXTNS == TRUE)
   tNFC_NFCEE_MODE_SET_INFO mode_set_info;
-#if (NXP_WIRED_MODE_STANDBY == true)
   tNFC_NFCEE_EE_PWR_LNK_REVT pwr_lnk_ctrl;
-#endif
+
 #endif
   void* p_evt = NULL;
   tNFC_RESPONSE_EVT event = NFC_NFCEE_INFO_REVT;
@@ -371,27 +370,30 @@
       }
       break;
 
-#if (NXP_EXTNS == TRUE) && (NXP_WIRED_MODE_STANDBY == true)
+#if (NXP_EXTNS == TRUE)
     case NCI_MSG_NFCEE_PWR_LNK_CTRL:
-      p_evt = (tNFC_RESPONSE*)&pwr_lnk_ctrl;
-      pwr_lnk_ctrl.status = *pp;
-      pwr_lnk_ctrl.nfcee_id = 0;
-      event = NFC_NFCEE_PWR_LNK_CTRL_REVT;
-      pwr_lnk_ctrl.nfcee_id = *p_old++;
-#if (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME)
-      if (nfc_cb.bIssueModeSetCmd) {
-        NFC_TRACE_DEBUG0("mode set cmd send after pwrlink cmd");
-        nfc_cb.bSetmodeOnReq = true;
-        nci_snd_nfcee_mode_set(NFCEE_ID_ESE, NFC_MODE_ACTIVATE);
-        nfc_start_timer(&nfc_cb.nci_wait_setMode_Ntf_timer,
-                        (uint16_t)NFC_TYPE_NCI_WAIT_SETMODE_NTF,
-                        NFC_NCI_SETMODE_NTF_TIMEOUT);
-        nfc_cb.bIssueModeSetCmd = false;
-      } else {
-        nfc_cb.bIssueModeSetCmd = false;
-      }
-#endif
-      break;
+        if(nfcFL.eseFL._WIRED_MODE_STANDBY) {
+            p_evt = (tNFC_RESPONSE*)&pwr_lnk_ctrl;
+            pwr_lnk_ctrl.status = *pp;
+            pwr_lnk_ctrl.nfcee_id = 0;
+            event = NFC_NFCEE_PWR_LNK_CTRL_REVT;
+            pwr_lnk_ctrl.nfcee_id = *p_old++;
+            if(nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+                    nfcFL.eseFL._ESE_WIRED_MODE_RESUME) {
+                if (nfc_cb.bIssueModeSetCmd) {
+                    NFC_TRACE_DEBUG0("mode set cmd send after pwrlink cmd");
+                    nfc_cb.bSetmodeOnReq = true;
+                    nci_snd_nfcee_mode_set(NFCEE_ID_ESE, NFC_MODE_ACTIVATE);
+                    nfc_start_timer(&nfc_cb.nci_wait_setMode_Ntf_timer,
+                            (uint16_t)NFC_TYPE_NCI_WAIT_SETMODE_NTF,
+                            NFC_NCI_SETMODE_NTF_TIMEOUT);
+                    nfc_cb.bIssueModeSetCmd = false;
+                } else {
+                    nfc_cb.bIssueModeSetCmd = false;
+                }
+            }
+            break;
+        }
 #endif
     case NCI_MSG_NFCEE_POWER_LINK_CTRL:
         p_evt                   = (tNFC_RESPONSE *) &pl_control;
@@ -490,39 +492,39 @@
   }
 #if (NXP_EXTNS == TRUE)
   else if (op_code == NCI_MSG_NFCEE_MODE_SET) {
-    NFC_TRACE_DEBUG2("nci_proc_ee_management_ntf status:0x%x, nfceeid:0x%x",
-                     *pp, *(pp + 1));
-    nfc_stop_timer(&nfc_cb.nci_wait_setMode_Ntf_timer);
-    if(nfc_cb.nci_version != NCI_VERSION_2_0)
-    {
-      p_evt = (tNFC_RESPONSE*)&mode_set_info;
-      event = NFC_NFCEE_MODE_SET_INFO;
-      ee_status = *pp++;
-      mode_set_info.nfcee_id = *pp++;
-      mode_set_info.status = ee_status;
-    }
-    else
-    {
-        NFC_TRACE_DEBUG2("nci_proc_ee_management_last ntf mode:0x%x, nfceeid:0x%x",
-        		mode_set.mode, mode_set.nfcee_id);
-      p_evt   = (tNFC_RESPONSE *) &mode_set;
-      mode_set.status = *pp;
-      /*mode_set.nfcee_id = *p_old++;
+      NFC_TRACE_DEBUG2("nci_proc_ee_management_ntf status:0x%x, nfceeid:0x%x",
+              *pp, *(pp + 1));
+      nfc_stop_timer(&nfc_cb.nci_wait_setMode_Ntf_timer);
+      if(nfc_cb.nci_version != NCI_VERSION_2_0)
+      {
+          p_evt = (tNFC_RESPONSE*)&mode_set_info;
+          event = NFC_NFCEE_MODE_SET_INFO;
+          ee_status = *pp++;
+          mode_set_info.nfcee_id = *pp++;
+          mode_set_info.status = ee_status;
+      }
+      else
+      {
+          NFC_TRACE_DEBUG2("nci_proc_ee_management_last ntf mode:0x%x, nfceeid:0x%x",
+                  mode_set.mode, mode_set.nfcee_id);
+          p_evt   = (tNFC_RESPONSE *) &mode_set;
+          mode_set.status = *pp;
+          /*mode_set.nfcee_id = *p_old++;
       mode_set.mode = *p_old++;*/
-      mode_set.nfcee_id = nfa_ee_cb.nfcee_id;
-      mode_set.mode = nfa_ee_cb.mode;
-      event   = NFC_NFCEE_MODE_SET_REVT;
-      nfc_cb.flags  &= ~NFC_FL_WAIT_MODE_SET_NTF;
-      nfc_stop_timer(&nfc_cb.nci_setmode_ntf_timer);
-    }
-#if (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME)
-    if ((nfc_cb.bBlockWiredMode) && (nfc_cb.bSetmodeOnReq)) {
-      nfc_cb.bSetmodeOnReq = false;
-      nfc_cb.bBlockWiredMode = false;
-      nfc_cb.bCeActivatedeSE = false;
-      nfc_ncif_allow_dwp_transmission();
-    }
-#endif
+          mode_set.nfcee_id = nfa_ee_cb.nfcee_id;
+          mode_set.mode = nfa_ee_cb.mode;
+          event   = NFC_NFCEE_MODE_SET_REVT;
+          nfc_cb.flags  &= ~NFC_FL_WAIT_MODE_SET_NTF;
+          nfc_stop_timer(&nfc_cb.nci_setmode_ntf_timer);
+      }
+      if ((nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+              nfcFL.eseFL._ESE_WIRED_MODE_RESUME) &&
+              ((nfc_cb.bBlockWiredMode) && (nfc_cb.bSetmodeOnReq))) {
+          nfc_cb.bSetmodeOnReq = false;
+          nfc_cb.bBlockWiredMode = false;
+          nfc_cb.bCeActivatedeSE = false;
+          nfc_ncif_allow_dwp_transmission();
+      }
   }
 #endif
   else if (op_code == NCI_MSG_NFCEE_STATUS) {
diff --git a/src/nfc/nfc/nfc_main.c b/src/nfc/nfc/nfc_main.c
index 90b5fa9..c6cdf32 100644
--- a/src/nfc/nfc/nfc_main.c
+++ b/src/nfc/nfc/nfc_main.c
@@ -56,7 +56,7 @@
 #include "rw_int.h"
 #include "ce_int.h"
 #include "nfa_sys.h"
-
+#include <config.h>
 #if (NFC_RW_ONLY == FALSE)
 #include "ce_api.h"
 #include "ce_int.h"
@@ -84,13 +84,12 @@
 tNFC_CB nfc_cb;
 uint8_t i2c_fragmentation_enabled = 0xff;
 
+tNfc_featureList nfcFL;
+static tNFC_chipType chipType = 0;
 #if (NFC_RW_ONLY == FALSE)
 #if (NXP_EXTNS == TRUE)
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
 #define NFC_NUM_INTERFACE_MAP 3
-#else
-#define NFC_NUM_INTERFACE_MAP 2
-#endif
+#define NFC_NUM_INTERFACE_MAP_STAT 2
 #else
 #define NFC_NUM_INTERFACE_MAP 2
 #endif
@@ -98,6 +97,7 @@
 #define NFC_NUM_INTERFACE_MAP 1
 #endif
 
+static void NFC_GetFeatureList();
 static const tNCI_DISCOVER_MAPS nfc_interface_mapping[NFC_NUM_INTERFACE_MAP] = {
     /* Protocols that use Frame Interface do not need to be included in the
        interface mapping */
@@ -110,12 +110,23 @@
      NCI_INTERFACE_NFC_DEP}
 #endif
 #if (NXP_EXTNS == TRUE)
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
     ,
     /* This mapping is for Felica on DH  */
     {NCI_PROTOCOL_T3T, NCI_INTERFACE_MODE_LISTEN, NCI_INTERFACE_FRAME}
 
 #endif
+};
+
+static const tNCI_DISCOVER_MAPS nfc_interface_mapping_stat[NFC_NUM_INTERFACE_MAP_STAT] = {
+    /* Protocols that use Frame Interface do not need to be included in the
+       interface mapping */
+    {NCI_PROTOCOL_ISO_DEP, NCI_INTERFACE_MODE_POLL_N_LISTEN,
+     NCI_INTERFACE_ISO_DEP}
+#if (NFC_RW_ONLY == FALSE)
+    ,
+    /* this can not be set here due to 2079xB0 NFCC issues */
+    {NCI_PROTOCOL_NFC_DEP, NCI_INTERFACE_MODE_POLL_N_LISTEN,
+     NCI_INTERFACE_NFC_DEP}
 #endif
 };
 
@@ -666,7 +677,7 @@
 #else
   NFC_TRACE_DEBUG2("nfc_main_hal_cback event: 0x%x, status=%d", event, status);
 #endif
-#if ((NXP_EXTNS == TRUE) && (NXP_NFCC_I2C_READ_WRITE_IMPROVEMENT == true))
+#if (NXP_EXTNS == TRUE)
   tNFC_RESPONSE eventData;
 #endif
   switch (event) {
@@ -677,6 +688,7 @@
       */
       if (nfc_cb.nfc_state == NFC_STATE_W4_HAL_OPEN) {
         if (status == HAL_NFC_STATUS_OK) {
+            NFC_GetFeatureList();
           /* Notify NFC_TASK that NCI tranport is initialized */
           GKI_send_event(NFC_TASK, NFC_TASK_EVT_TRANSPORT_READY);
         } else {
@@ -691,21 +703,22 @@
     case HAL_NFC_REQUEST_CONTROL_EVT:
     case HAL_NFC_RELEASE_CONTROL_EVT:
     case HAL_NFC_ERROR_EVT:
-#if ((NXP_EXTNS == TRUE) && (NXP_NFCC_I2C_READ_WRITE_IMPROVEMENT == true))
+#if (NXP_EXTNS == TRUE)
     case HAL_NFC_POST_MIN_INIT_CPLT_EVT:
-
-      if (status == HAL_NFC_STATUS_ERR_CMD_TIMEOUT) {
-        eventData.status = (tNFC_STATUS)NFC_STATUS_FAILED;
-        /* Notify app of transport error */
-        if (nfc_cb.p_resp_cback) {
-          (*nfc_cb.p_resp_cback)(NFC_NFCC_TIMEOUT_REVT, &eventData);
-          /* if enabling NFC, notify upper layer of failure after closing HAL*/
-          if (nfc_cb.nfc_state < NFC_STATE_IDLE) {
-            nfc_enabled(NFC_STATUS_FAILED, NULL);
-          }
+        if( nfcFL.nfccFL._NFCC_I2C_READ_WRITE_IMPROVEMENT) {
+            if (status == HAL_NFC_STATUS_ERR_CMD_TIMEOUT) {
+                eventData.status = (tNFC_STATUS)NFC_STATUS_FAILED;
+                /* Notify app of transport error */
+                if (nfc_cb.p_resp_cback) {
+                    (*nfc_cb.p_resp_cback)(NFC_NFCC_TIMEOUT_REVT, &eventData);
+                    /* if enabling NFC, notify upper layer of failure after closing HAL*/
+                    if (nfc_cb.nfc_state < NFC_STATE_IDLE) {
+                        nfc_enabled(NFC_STATUS_FAILED, NULL);
+                    }
+                }
+                break;
+            }
         }
-        break;
-      }
 #endif
       nfc_main_post_hal_evt(event, status);
       break;
@@ -797,21 +810,21 @@
 #endif
   nfc_cb.p_hal->open(nfc_main_hal_cback, nfc_main_hal_data_cback);
 
-#if (NFC_NXP_ESE == TRUE)
-  {  /*Access to ESE from SPI & I2C is managed by sending signals from I2C
+  if(nfcFL.nfcNxpEse) {
+      /*Access to ESE from SPI & I2C is managed by sending signals from I2C
      drivers to NFC service. This requires NFC Service PID to be registered
      Assumption: This functions is invoked by NFC Service*/
-    tNFC_STATUS setPidStatus = NFC_STATUS_OK;
-    nfc_nci_IoctlInOutData_t inpOutData;
-    inpOutData.inp.data.nfcServicePid = getpid();
-    setPidStatus = nfc_cb.p_hal->ioctl(HAL_NFC_IOCTL_SET_NFC_SERVICE_PID,(void*)&inpOutData);
-    if (setPidStatus == NFC_STATUS_OK) {
-      NFC_TRACE_API0("nfc service set pid done");
-    } else {
-      NFC_TRACE_API0("nfc service set pid failed");
-    }
+      tNFC_STATUS setPidStatus = NFC_STATUS_OK;
+      nfc_nci_IoctlInOutData_t inpOutData;
+      inpOutData.inp.data.nfcServicePid = getpid();
+      setPidStatus = nfc_cb.p_hal->ioctl(HAL_NFC_IOCTL_SET_NFC_SERVICE_PID,(void*)&inpOutData);
+      if (setPidStatus == NFC_STATUS_OK) {
+          NFC_TRACE_API0("nfc service set pid done");
+      } else {
+          NFC_TRACE_API0("nfc service set pid failed");
+      }
   }
-#endif
+
 
   return (NFC_STATUS_OK);
 }
@@ -851,19 +864,19 @@
     nfc_cb.p_hal->ioctl(HAL_NFC_IOCTL_SET_BOOT_MODE, (void*)&inpOutData);
   }
 #endif
-#if (NFC_NXP_ESE == TRUE)
-  {
-    tNFC_STATUS setPidStatus = NFC_STATUS_OK;
-    nfc_nci_IoctlInOutData_t inpOutData;
-    inpOutData.inp.data.nfcServicePid = 0;
-    setPidStatus = nfc_cb.p_hal->ioctl(HAL_NFC_IOCTL_SET_NFC_SERVICE_PID,(void*)&inpOutData);
-    if (setPidStatus == NFC_STATUS_OK) {
-      NFC_TRACE_API0("nfc service set pid done");
-    } else {
-      NFC_TRACE_API0("nfc service set pid failed");
-    }
+
+  if(nfcFL.nfcNxpEse) {
+      tNFC_STATUS setPidStatus = NFC_STATUS_OK;
+      nfc_nci_IoctlInOutData_t inpOutData;
+      inpOutData.inp.data.nfcServicePid = 0;
+      setPidStatus = nfc_cb.p_hal->ioctl(HAL_NFC_IOCTL_SET_NFC_SERVICE_PID,(void*)&inpOutData);
+      if (setPidStatus == NFC_STATUS_OK) {
+          NFC_TRACE_API0("nfc service set pid done");
+      } else {
+          NFC_TRACE_API0("nfc service set pid failed");
+      }
   }
-#endif
+
   /* Close transport and clean up */
   nfc_task_shutdown_nfcc();
 
@@ -903,7 +916,14 @@
   nfc_cb.nfc_state = NFC_STATE_NONE;
   nfc_cb.nci_cmd_window = NCI_MAX_CMD_WINDOW;
   nfc_cb.nci_wait_rsp_tout = NFC_CMD_CMPL_TIMEOUT;
+
+  if(nfcFL.chipType != pn547C2) {
   nfc_cb.p_disc_maps = nfc_interface_mapping;
+  }
+  else {
+      nfc_cb.p_disc_maps = nfc_interface_mapping_stat;
+  }
+
   nfc_cb.num_disc_maps = NFC_NUM_INTERFACE_MAP;
   nfc_cb.trace_level = NFC_INITIAL_TRACE_LEVEL;
   nfc_cb.nci_ctrl_size = NCI_CTRL_INIT_SIZE;
@@ -1038,17 +1058,21 @@
   for (xx = 0; xx < num_disc_maps; xx++) {
     is_supported = false;
     if (p_maps[xx].intf_type > NCI_INTERFACE_MAX) {
-      for (yy = 0; yy < NFC_NFCC_MAX_NUM_VS_INTERFACE; yy++) {
-#if (NXP_NFCC_FW_WA == true)
-        if ((nfc_cb.vs_interface[yy] == p_maps[xx].intf_type) ||
-            (NCI_INTERFACE_ESE_DIRECT == p_maps[xx].intf_type))
-#else
-          if (nfc_cb.vs_interface[yy] == p_maps[xx].intf_type)
-#endif
-          is_supported = true;
-      }
-      NFC_TRACE_DEBUG3("[%d]: vs intf_type:0x%x is_supported:%d", xx,
-                       p_maps[xx].intf_type, is_supported);
+        for (yy = 0; yy < NFC_NFCC_MAX_NUM_VS_INTERFACE; yy++) {
+            if(nfcFL.nfccFL._NFCC_FW_WA) {
+                if ((nfc_cb.vs_interface[yy] == p_maps[xx].intf_type) ||
+                        (nfcFL.nfcMwFL._NCI_INTERFACE_ESE_DIRECT == p_maps[xx].intf_type)) {
+                    is_supported = true;
+                }
+            }
+            else {
+                if (nfc_cb.vs_interface[yy] == p_maps[xx].intf_type) {
+                    is_supported = true;
+                }
+            }
+        }
+        NFC_TRACE_DEBUG3("[%d]: vs intf_type:0x%x is_supported:%d", xx,
+                p_maps[xx].intf_type, is_supported);
     } else {
       intf_mask = (1 << (p_maps[xx].intf_type));
       if ((intf_mask & nfc_cb.nci_interfaces)) {
@@ -1068,9 +1092,9 @@
       NFC_TRACE_WARNING1(
           "NFC_DiscoveryMap interface=0x%x is not supported by NFCC",
           p_maps[xx].intf_type);
-#if (NFC_NXP_CHIP_TYPE != PN547C2)
+      if(nfcFL.chipType != pn547C2) {
           return NFC_STATUS_FAILED;
-#endif
+      }
     }
   }
 
@@ -1570,7 +1594,7 @@
 
 int get_i2c_fragmentation_enabled() { return i2c_fragmentation_enabled; }
 
-#if ((NFC_NXP_ESE == TRUE) && (NXP_EXTNS == TRUE))
+#if (NXP_EXTNS == TRUE)
 /*******************************************************************************
 **
 ** Function         NFC_ReqWiredAccess
@@ -1582,6 +1606,12 @@
 **
 *******************************************************************************/
 int32_t NFC_ReqWiredAccess(void* pdata) {
+    NFC_TRACE_API0("NFC_ReqWiredAccess");
+
+    if(!nfcFL.nfcNxpEse) {
+        NFC_TRACE_API0("nfcNxpEse is not available.. Returning");
+        return -1;
+    }
   nfc_nci_IoctlInOutData_t inpOutData;
   int32_t status;
   status = nfc_cb.p_hal->ioctl(HAL_NFC_IOCTL_P61_WIRED_MODE, &inpOutData);
@@ -1657,7 +1687,6 @@
   return status;
 }
 #if (NXP_EXTNS == TRUE)
-#if (NXP_WIRED_MODE_STANDBY == true)
 /*******************************************************************************
 +**
 ** Function         NFC_Nfcee_PwrLinkCtrl
@@ -1676,10 +1705,14 @@
 **
 *******************************************************************************/
 tNFC_STATUS NFC_Nfcee_PwrLinkCtrl(uint8_t nfcee_id, uint8_t cfg_value) {
+    if(!nfcFL.eseFL._WIRED_MODE_STANDBY) {
+        NFC_TRACE_API0("NFC_Nfcee_PwrLinkCtrl :"
+                "WIRED_MODE_STANDBY is not available.. Returning");
+        return NFC_STATUS_FAILED;
+    }
   return nci_snd_pwr_nd_lnk_ctrl_cmd(nfcee_id, cfg_value);
 }
-#endif
-#if (NXP_ESE_JCOP_DWNLD_PROTECTION == true)
+
 /*******************************************************************************
 **
 ** Function         NFC_SetP61Status
@@ -1691,6 +1724,11 @@
 **
 *******************************************************************************/
 int32_t NFC_SetP61Status(void* pdata, jcop_dwnld_state_t isJcopState) {
+    if(!nfcFL.eseFL._ESE_JCOP_DWNLD_PROTECTION) {
+        NFC_TRACE_API0("NFC_SetP61Status :"
+                "ESE_JCOP_DWNLD_PROTECTION is not available.. Returning");
+        return -1;
+    }
   nfc_nci_IoctlInOutData_t inpOutData;
   int32_t status;
   if (isJcopState == JCP_DWNLD_START)
@@ -1703,7 +1741,6 @@
   return isJcopState;
 }
 #endif
-#endif
 
 /*******************************************************************************
 **
@@ -1761,7 +1798,6 @@
 }
 #endif
 
-#if (NXP_ESE_SVDD_SYNC == true)
 /*******************************************************************************
 **
 ** Function         NFC_RelSvddWait
@@ -1773,18 +1809,21 @@
 **
 *******************************************************************************/
 int32_t NFC_RelSvddWait(void* pdata) {
+    if(!nfcFL.eseFL._ESE_SVDD_SYNC) {
+        NFC_TRACE_API0("NFC_RelSvddWait :"
+                "ESE_SVDD_SYNC is not available.. Returning");
+        return -1;
+    }
   nfc_nci_IoctlInOutData_t inpOutData;
   int32_t status;
   status = nfc_cb.p_hal->ioctl(HAL_NFC_IOCTL_REL_SVDD_WAIT, &inpOutData);
   *(tNFC_STATUS*)pdata = inpOutData.out.data.status;
   return status;
 }
-#endif
 
 #endif
 
 #if (NXP_EXTNS == TRUE)
-
 /*******************************************************************************
 **
 ** Function         NFC_EnableDisableHalLog
@@ -1847,6 +1886,34 @@
         (*p_cback) (NFC_HCI_CONN_ID, NFC_CONN_CREATE_CEVT, &evt_data);
     }
 }
+
+/*******************************************************************************
+ **
+ ** Function         NFC_GetFeatureList
+ **
+ ** Description      Gets the chipType from hal which is already configured
+ **                  during init time.
+ **                  Initializes featureList based onChipType
+ **
+ ** Returns          Nothing
+ *******************************************************************************/
+void NFC_GetFeatureList() {
+    NFC_TRACE_API0("NFC_GetFeatureList() Enter");
+    tNFC_STATUS status = NFC_STATUS_FAILED;
+    nfc_nci_IoctlInOutData_t inpOutData;
+    status = nfc_cb.p_hal->ioctl(HAL_NFC_IOCTL_GET_FEATURE_LIST,
+            (void*)&inpOutData);
+    if(status == NFC_STATUS_OK) {
+        chipType = (tNFC_chipType)inpOutData.out.data.chipType;
+        NFC_TRACE_API1("NFC_GetFeatureList ()chipType = %d", chipType);
+
+    }else{
+        chipType = pn553;
+    }
+    CONFIGURE_FEATURELIST(chipType);
+    NFC_TRACE_API1("NFC_GetFeatureList ()chipType = %d", chipType);
+}
+
 #if (BT_TRACE_VERBOSE == true)
 /*******************************************************************************
 **
diff --git a/src/nfc/nfc/nfc_ncif.c b/src/nfc/nfc/nfc_ncif.c
index ebd29e3..2e5c8f4 100644
--- a/src/nfc/nfc/nfc_ncif.c
+++ b/src/nfc/nfc/nfc_ncif.c
@@ -81,21 +81,14 @@
 // Global Structure varibale for FW Version
 static tNFC_FW_VERSION nfc_fw_version;
 static uint8_t gScreenState = 0x0;  // SCREEN ON UNLOCKED
-#if ((NFC_NXP_CHIP_TYPE != PN547C2) && (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
 static uint16_t maxRoutingTableSize;
-#endif
 uint8_t sListenActivated;
 extern tNFA_CE_CB nfa_ce_cb;
 bool core_reset_init_num_buff = false;
 uint8_t nfcc_dh_conn_id = 0xFF;
 extern void nfa_hci_rsp_timeout(tNFA_HCI_EVENT_DATA* p_evt_data);
-#endif
-
-#if ((NFC_NXP_ESE == TRUE) && (NXP_ESE_ETSI_READER_ENABLE == true))
 void disc_deact_ntf_timeout_handler(tNFC_RESPONSE_EVT event);
 extern bool etsi_reader_in_progress;
-#endif
-#if ((NXP_EXTNS == TRUE) && (NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH == true))
 void uicc_eeprom_get_config(uint8_t* config_resp);
 void uicc_eeprom_set_config(uint8_t* config_resp);
 #endif
@@ -212,17 +205,27 @@
                      nfa_dm_cb.disc_cb.disc_state);
 
     if (nfc_cb.nfc_state == NFC_STATE_CORE_INIT) {
-#if ((NXP_EXTNS == TRUE) && (NXP_NFCC_MW_RCVRY_BLK_FW_DNLD == true))
-      NFC_TRACE_DEBUG0(
-          "MW recovery should abort FW download checking at time of "
-          "cmd_timeout");
+#if (NXP_EXTNS == TRUE)
+        if(nfcFL.nfccFL._NFCC_MW_RCVRY_BLK_FW_DNLD) {
+            NFC_TRACE_DEBUG0(
+                    "MW recovery should abort FW download checking at time of "
+                    "cmd_timeout");
+        }
+        else {
+            NFC_TRACE_DEBUG0("Force FW Download !");
+            nfc_cb.p_hal->ioctl(HAL_NFC_IOCTL_CHECK_FLASH_REQ, &fw_update_inf);
+            nfc_cb.p_hal->ioctl(HAL_NFC_IOCTL_FW_DWNLD, &fw_dwnld_status);
+            NFC_TRACE_DEBUG1("FW Download 0x%x", fw_dwnld_status);
+            if (fw_dwnld_status != NFC_STATUS_OK)
+                nfc_enabled(NFC_STATUS_FAILED, NULL);
+        }
 #else
-      NFC_TRACE_DEBUG0("Force FW Download !");
-      nfc_cb.p_hal->ioctl(HAL_NFC_IOCTL_CHECK_FLASH_REQ, &fw_update_inf);
-      nfc_cb.p_hal->ioctl(HAL_NFC_IOCTL_FW_DWNLD, &fw_dwnld_status);
-      NFC_TRACE_DEBUG1("FW Download 0x%x", fw_dwnld_status);
-      if (fw_dwnld_status != NFC_STATUS_OK)
-        nfc_enabled(NFC_STATUS_FAILED, NULL);
+        NFC_TRACE_DEBUG0("Force FW Download !");
+        nfc_cb.p_hal->ioctl(HAL_NFC_IOCTL_CHECK_FLASH_REQ, &fw_update_inf);
+        nfc_cb.p_hal->ioctl(HAL_NFC_IOCTL_FW_DWNLD, &fw_dwnld_status);
+        NFC_TRACE_DEBUG1("FW Download 0x%x", fw_dwnld_status);
+        if (fw_dwnld_status != NFC_STATUS_OK)
+            nfc_enabled(NFC_STATUS_FAILED, NULL);
 #endif
     }
     /*Prepare the DISCOVERY command*/
@@ -463,11 +466,12 @@
     GKI_enqueue(&p_cb->tx_q, p_data);
   }
 
-#if ((NXP_EXTNS == TRUE) && \
-     (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME))
-  if ((nfc_cb.bBlockWiredMode) && (p_cb->conn_id == NFC_NFCEE_CONN_ID)) {
-    /* CE is activated on UICC hence return simply without sedning data */
-    return (NCI_STATUS_OK);
+#if (NXP_EXTNS == TRUE)
+  if ((nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+          nfcFL.eseFL._ESE_WIRED_MODE_RESUME) &&
+          ((nfc_cb.bBlockWiredMode) && (p_cb->conn_id == NFC_NFCEE_CONN_ID))) {
+      /* CE is activated on UICC hence return simply without sedning data */
+      return (NCI_STATUS_OK);
   }
 #endif
 
@@ -516,14 +520,15 @@
     NCI_DATA_PBLD_HDR(pp, pbf, hdr0, ulen);
     if (p_cb->num_buff != NFC_CONN_NO_FC) p_cb->num_buff--;
 
-#if ((NXP_EXTNS == TRUE) && \
-     (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME))
-    if (p_cb->conn_id == NFC_NFCEE_CONN_ID) {
-      nfc_cb.temp_data = (NFC_HDR*)temp_buff;
-      nfc_cb.temp_data->offset = p->offset;
-      pTemp = (uint8_t*)(nfc_cb.temp_data + 1) + nfc_cb.temp_data->offset;
-      nfc_cb.temp_data->len = p->len;
-      memcpy(pTemp, (uint8_t*)(p + 1) + (p->offset), p->len);
+#if (NXP_EXTNS == TRUE)
+    if ((nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+            nfcFL.eseFL._ESE_WIRED_MODE_RESUME) &&
+            (p_cb->conn_id == NFC_NFCEE_CONN_ID)) {
+        nfc_cb.temp_data = (NFC_HDR*)temp_buff;
+        nfc_cb.temp_data->offset = p->offset;
+        pTemp = (uint8_t*)(nfc_cb.temp_data + 1) + nfc_cb.temp_data->offset;
+        nfc_cb.temp_data->len = p->len;
+        memcpy(pTemp, (uint8_t*)(p + 1) + (p->offset), p->len);
     }
 #endif
 
@@ -793,34 +798,31 @@
       /* make sure this is the RSP we are waiting for before updating the
        * command window */
       if ((old_gid != gid) || (old_oid != oid)) {
-#if (NFC_NXP_ESE == TRUE && (NXP_ESE_ETSI_READER_ENABLE == true))
-        if (((gid == NCI_GID_RF_MANAGE) && (oid == NCI_MSG_RF_DISCOVER)) &&
-            (etsi_reader_in_progress == true)) {
-          NFC_TRACE_DEBUG0("Changing disc_state and disc_flags");
-          nfa_dm_cb.disc_cb.disc_state = NFA_DM_RFST_IDLE;
-          nfa_dm_cb.disc_cb.disc_flags &=
-              ~(NFA_DM_DISC_FLAGS_W4_NTF | NFA_DM_DISC_FLAGS_STOPPING);
-          nfa_dm_cb.disc_cb.disc_flags |=
-              (NFA_DM_DISC_FLAGS_W4_RSP | NFA_DM_DISC_FLAGS_NOTIFY |
-               NFA_DM_DISC_FLAGS_ENABLED);
-          disc_deact_ntf_timeout_handler(NFC_NFCC_TIMEOUT_REVT);
-        } else {
-#endif
-          /*no response after the deactivate command, handling the error
-           * scenario after the recovery*/
-          if ((gid == NCI_GID_RF_MANAGE) && (oid == NCI_MSG_RF_DISCOVER) &&
-              (nfc_cb.nci_cmd_window == 0)) {
-            NFC_TRACE_DEBUG0("resetting the nci_cmd_window");
-            nfc_cb.nci_cmd_window++;
+          if ((nfcFL.nfcNxpEse && nfcFL.eseFL._ESE_ETSI_READER_ENABLE) &&
+                  ((gid == NCI_GID_RF_MANAGE) && (oid == NCI_MSG_RF_DISCOVER)) &&
+                  (etsi_reader_in_progress == true)) {
+              NFC_TRACE_DEBUG0("Changing disc_state and disc_flags");
+              nfa_dm_cb.disc_cb.disc_state = NFA_DM_RFST_IDLE;
+              nfa_dm_cb.disc_cb.disc_flags &=
+                      ~(NFA_DM_DISC_FLAGS_W4_NTF | NFA_DM_DISC_FLAGS_STOPPING);
+              nfa_dm_cb.disc_cb.disc_flags |=
+                      (NFA_DM_DISC_FLAGS_W4_RSP | NFA_DM_DISC_FLAGS_NOTIFY |
+                              NFA_DM_DISC_FLAGS_ENABLED);
+              disc_deact_ntf_timeout_handler(NFC_NFCC_TIMEOUT_REVT);
           } else {
-            NFC_TRACE_ERROR2(
-                "nfc_ncif_process_event unexpected rsp: gid:0x%x, oid:0x%x",
-                gid, oid);
-            return true;
+              /*no response after the deactivate command, handling the error
+               * scenario after the recovery*/
+              if ((gid == NCI_GID_RF_MANAGE) && (oid == NCI_MSG_RF_DISCOVER) &&
+                      (nfc_cb.nci_cmd_window == 0)) {
+                  NFC_TRACE_DEBUG0("resetting the nci_cmd_window");
+                  nfc_cb.nci_cmd_window++;
+              } else {
+                  NFC_TRACE_ERROR2(
+                          "nfc_ncif_process_event unexpected rsp: gid:0x%x, oid:0x%x",
+                          gid, oid);
+                  return true;
+              }
           }
-#if ((NFC_NXP_ESE == TRUE) && (NXP_ESE_ETSI_READER_ENABLE == true))
-        }
-#endif
       }
 
       switch (gid) {
@@ -953,10 +955,11 @@
 void nfc_ncif_event_status(tNFC_RESPONSE_EVT event, uint8_t status) {
   tNFC_RESPONSE evt_data;
 
-#if ((NXP_EXTNS == TRUE) && \
-     (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME))
-  if ((status == NFC_STATUS_WIRED_SESSION_ABORTED) ||
-      (status == NFC_STATUS_DWP_APDU_DROPPPED)) {
+#if (NXP_EXTNS == TRUE)
+  if ((nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+          nfcFL.eseFL._ESE_WIRED_MODE_RESUME) &&
+          ((status == NFC_STATUS_WIRED_SESSION_ABORTED) ||
+                  (status == NFC_STATUS_DWP_APDU_DROPPPED))) {
     tNFC_CONN_CB* p_cb;
     nfc_cb.bBlockWiredMode = true;
     nfc_cb.bBlkPwrlinkAndModeSetCmd = true;
@@ -1021,25 +1024,27 @@
 void nfc_ncif_proc_rf_field_ntf(uint8_t rf_status) {
   NFC_TRACE_DEBUG0("nfc_ncif_proc_rf_field_ntf");
   tNFC_RESPONSE evt_data;
-#if ((NXP_EXTNS == TRUE) && \
-     (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME))
-  if (rf_status == 0x01) {
-    NFC_TRACE_DEBUG0("nfc_ncif_proc_rf_field_ntf ON_EVT");
-    nfc_cb.bBlockWiredMode = true;
-    nfc_cb.bBlkPwrlinkAndModeSetCmd = true;
-    nfc_stop_timer(&nfc_cb.nci_wait_setMode_Ntf_timer); /* stop mode set Ntf
+#if (NXP_EXTNS == TRUE)
+  if(nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+          nfcFL.eseFL._ESE_WIRED_MODE_RESUME) {
+      if (rf_status == 0x01) {
+          NFC_TRACE_DEBUG0("nfc_ncif_proc_rf_field_ntf ON_EVT");
+          nfc_cb.bBlockWiredMode = true;
+          nfc_cb.bBlkPwrlinkAndModeSetCmd = true;
+          nfc_stop_timer(&nfc_cb.nci_wait_setMode_Ntf_timer); /* stop mode set Ntf
                                                            timer if it is
                                                            allready started */
-    nfc_start_timer(&nfc_cb.rf_filed_event_timeout_timer,
-                    (uint16_t)(NFC_TTYPE_NCI_WAIT_RF_FIELD_NTF),
-                    NFC_NCI_RFFIELD_EVT_TIMEOUT);
-  } else {
-    nfc_stop_timer(&nfc_cb.rf_filed_event_timeout_timer);
-    if (nfc_cb.bBlockWiredMode) {
-      nfc_start_timer(&nfc_cb.rf_filed_event_timeout_timer,
+          nfc_start_timer(&nfc_cb.rf_filed_event_timeout_timer,
+                  (uint16_t)(NFC_TTYPE_NCI_WAIT_RF_FIELD_NTF),
+                  NFC_NCI_RFFIELD_EVT_TIMEOUT);
+      } else {
+          nfc_stop_timer(&nfc_cb.rf_filed_event_timeout_timer);
+          if (nfc_cb.bBlockWiredMode) {
+              nfc_start_timer(&nfc_cb.rf_filed_event_timeout_timer,
                       (uint16_t)(NFC_TTYPE_NCI_WAIT_RF_FIELD_NTF),
                       NFC_NCI_RFFIELD_EVT_TIMEOUT);
-    }
+          }
+      }
   }
 #endif
 
@@ -1051,8 +1056,7 @@
 }
 #endif
 
-#if ((NXP_EXTNS == TRUE) && \
-     (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME))
+#if (NXP_EXTNS == TRUE)
 /*******************************************************************************
 **
 ** Function         nfc_ncif_allow_dwp_transmission
@@ -1065,6 +1069,12 @@
 **
 *******************************************************************************/
 void nfc_ncif_allow_dwp_transmission() {
+    NFC_TRACE_DEBUG0("nfc_ncif_allow_dwp_transmission Enter");
+    if(nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME !=
+            nfcFL.eseFL._ESE_WIRED_MODE_RESUME) {
+        NFC_TRACE_DEBUG0("DUAL_MODE_PRIO_SCHEME != WIRED_MODE_RESUME. Returning");
+        return;
+    }
   tNFC_RESPONSE evt_data;
   tNFC_CONN_CB* p_cb;
   NFC_TRACE_DEBUG2("nfc_ncif_allow_dwp_transmission %d, %d ",
@@ -1109,6 +1119,11 @@
 *******************************************************************************/
 void nfc_ncif_onWiredModeHold_timeout() {
   NFC_TRACE_DEBUG0("nfc_ncif_onWiredModeHold_timeout");
+  if(nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME !=
+          nfcFL.eseFL._ESE_WIRED_MODE_RESUME) {
+      NFC_TRACE_DEBUG0("DUAL_MODE_PRIO_SCHEME != WIRED_MODE_RESUME. Returning");
+      return;
+  }
   if (nfc_cb.bBlockWiredMode) {
     nfc_ncif_resume_dwp_wired_mode();
   }
@@ -1125,6 +1140,11 @@
 *******************************************************************************/
 void nfc_ncif_resume_dwp_wired_mode() {
   NFC_TRACE_DEBUG0("nfc_ncif_resume_dwp_wired_mode");
+  if(nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME !=
+          nfcFL.eseFL._ESE_WIRED_MODE_RESUME) {
+      NFC_TRACE_DEBUG0("DUAL_MODE_PRIO_SCHEME != WIRED_MODE_RESUME. Returning");
+      return;
+  }
   tNFC_CONN_CB* p_cb;
   p_cb = nfc_find_conn_cb_by_conn_id(nfa_hci_cb.conn_id);
   nfc_cb.bBlkPwrlinkAndModeSetCmd = false;
@@ -1160,6 +1180,11 @@
 *******************************************************************************/
 void nfc_ncif_modeSet_Ntf_timeout() {
   NFC_TRACE_DEBUG0("nfc_ncif_modeSet_Ntf_timeout");
+  if(nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME !=
+          nfcFL.eseFL._ESE_WIRED_MODE_RESUME) {
+      NFC_TRACE_DEBUG0("DUAL_MODE_PRIO_SCHEME != WIRED_MODE_RESUME. Returning");
+      return;
+  }
   if (nfc_cb.bBlockWiredMode) {
     nfc_cb.bBlockWiredMode = false;
     nfc_cb.bCeActivatedeSE = false;
@@ -1178,6 +1203,11 @@
 *******************************************************************************/
 void nfc_ncif_modeSet_rsp_timeout() {
   NFC_TRACE_DEBUG0("nfc_ncif_modeSet_rsp_timeout");
+  if(nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME !=
+          nfcFL.eseFL._ESE_WIRED_MODE_RESUME) {
+      NFC_TRACE_DEBUG0("DUAL_MODE_PRIO_SCHEME != WIRED_MODE_RESUME. Returning");
+      return;
+  }
   tNFC_NFCEE_MODE_SET_REVT mode_set_info;
   tNFC_RESPONSE_CBACK* p_cback = nfc_cb.p_resp_cback;
   tNFC_NFCEE_INFO_REVT nfcee_info;
@@ -1205,6 +1235,11 @@
 *******************************************************************************/
 void nfc_ncif_pwr_link_rsp_timeout() {
   NFC_TRACE_DEBUG0("nfc_ncif_pwr_link_rsp_timeout");
+  if(nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME !=
+          nfcFL.eseFL._ESE_WIRED_MODE_RESUME) {
+      NFC_TRACE_DEBUG0("DUAL_MODE_PRIO_SCHEME != WIRED_MODE_RESUME. Returning");
+      return;
+  }
   tNFC_RESPONSE_CBACK* p_cback = nfc_cb.p_resp_cback;
   tNFC_NFCEE_EE_PWR_LNK_REVT pwr_lnk_ctrl;
   tNFC_NFCEE_INFO_REVT nfcee_info;
@@ -1511,12 +1546,11 @@
                     (uint16_t)(NFC_TTYPE_LISTEN_ACTIVATION), 2);
   }
 
-#if (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME)
-  if (nfc_cb.bBlockWiredMode) {
-    nfc_stop_timer(&nfc_cb.rf_filed_event_timeout_timer);
+  if ((nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+          nfcFL.eseFL._ESE_WIRED_MODE_RESUME) && nfc_cb.bBlockWiredMode) {
+      nfc_stop_timer(&nfc_cb.rf_filed_event_timeout_timer);
   }
 #endif
-#endif
 
   /* just in case the interface reports activation parameters not defined in the
    * NCI spec */
@@ -1621,11 +1655,11 @@
   }
 #if (NFC_RW_ONLY == FALSE)
   else if (evt_data.activate.intf_param.type == NCI_INTERFACE_NFC_DEP) {
-#if ((NXP_EXTNS == TRUE) && \
-     (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME))
-    if (nfc_cb.bBlockWiredMode) {
-      nfc_ncif_resume_dwp_wired_mode();
-    }
+#if (NXP_EXTNS == TRUE)
+      if ((nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+              nfcFL.eseFL._ESE_WIRED_MODE_RESUME) && nfc_cb.bBlockWiredMode) {
+          nfc_ncif_resume_dwp_wired_mode();
+      }
 #endif
     /* Make max payload of NCI aligned to max payload of NFC-DEP for better
      * performance */
@@ -1687,8 +1721,8 @@
    * 1. Do not activate tag for this NTF.
    * 2. Pass this info to JNI as START_READER_EVT.
    */
-  else if (evt_data.activate.intf_param.type == NCI_INTERFACE_UICC_DIRECT ||
-           evt_data.activate.intf_param.type == NCI_INTERFACE_ESE_DIRECT) {
+  else if (evt_data.activate.intf_param.type == nfcFL.nfcMwFL._NCI_INTERFACE_UICC_DIRECT ||
+           evt_data.activate.intf_param.type == nfcFL.nfcMwFL._NCI_INTERFACE_ESE_DIRECT) {
     NFC_TRACE_DEBUG1("nfc_ncif_proc_activate:interface type  %x",
                      evt_data.activate.intf_param.type);
   }
@@ -1787,21 +1821,6 @@
         evt_data.act_data.param.aid.len_aid = data_len;
         STREAM_TO_ARRAY(evt_data.act_data.param.aid.aid, p, data_len);
         break;
-#if ((NXP_EXTNS == TRUE) && (NXP_NFCC_PROP_ACTN_NTF == true))
-      case NCI_EE_TRIG_RF_PROT_PROP_RSP_NTF:
-      case NCI_EE_TRIG_RF_TECH_PROP_RSP_NTF:
-        if (data_len > NFC_MAX_AID_LEN) data_len = NFC_MAX_AID_LEN;
-        NFC_TRACE_DEBUG1("AID len = %d", data_len);
-        evt_data.act_data.param.aid.len_aid = data_len;
-        STREAM_TO_ARRAY(evt_data.act_data.param.aid.aid, p, data_len);
-        plen = plen - data_len;
-        if ((plen != 0) && (*p++ == NCI_EE_TRIG_PROP_RSP_NTF)) {
-          evt_data.act_data.nfcee_act_ntf.len_data = *p++;
-          STREAM_TO_ARRAY(&evt_data.act_data.nfcee_act_ntf.data, p,
-                          evt_data.act_data.nfcee_act_ntf.len_data);
-        }
-        break;
-#endif
       case NCI_EE_TRIG_RF_PROTOCOL:
         evt_data.act_data.param.protocol = *p++;
         break;
@@ -1835,30 +1854,25 @@
           data_len -= ulen;
         }
         break;
-#if ((NXP_EXTNS == TRUE) && (NXP_NFCC_PROP_ACTN_NTF == true))
-      case NCI_EE_TRIG_PROP_RSP_NTF:
-        NFC_TRACE_DEBUG1("NCI_EE_TRIG_PROP_APP Data len = %d", data_len);
-        evt_data.act_data.nfcee_act_ntf.len_data = data_len;
-        STREAM_TO_ARRAY(&evt_data.act_data.nfcee_act_ntf.data, p, data_len);
-        break;
-#endif
     }
 
-#if ((NXP_EXTNS == TRUE) && \
-     (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME))
-    nfc_stop_timer(&nfc_cb.rf_filed_event_timeout_timer);
-    tNFC_CONN_CB* p_cb;
-    p_cb = nfc_find_conn_cb_by_conn_id(nfa_hci_cb.conn_id);
-    if (evt_data.nfcee_id != 0xC0) {
-      nfc_cb.bBlockWiredMode = true;
-      nfc_cb.bBlkPwrlinkAndModeSetCmd = true;
-    } else {
-      if (evt_data.act_data.trigger == NCI_EE_TRIG_RF_TECHNOLOGY) {
-        nfc_cb.bBlockWiredMode = true;
-      } else if (nfc_cb.bBlockWiredMode) {
-        nfc_cb.bCeActivatedeSE = true;
-        nfc_ncif_resume_dwp_wired_mode();
-      }
+#if (NXP_EXTNS == TRUE)
+    if(nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+            nfcFL.eseFL._ESE_WIRED_MODE_RESUME) {
+        nfc_stop_timer(&nfc_cb.rf_filed_event_timeout_timer);
+        tNFC_CONN_CB* p_cb;
+        p_cb = nfc_find_conn_cb_by_conn_id(nfa_hci_cb.conn_id);
+        if (evt_data.nfcee_id != 0xC0) {
+            nfc_cb.bBlockWiredMode = true;
+            nfc_cb.bBlkPwrlinkAndModeSetCmd = true;
+        } else {
+            if (evt_data.act_data.trigger == NCI_EE_TRIG_RF_TECHNOLOGY) {
+                nfc_cb.bBlockWiredMode = true;
+            } else if (nfc_cb.bBlockWiredMode) {
+                nfc_cb.bCeActivatedeSE = true;
+                nfc_ncif_resume_dwp_wired_mode();
+            }
+        }
     }
 #endif
     (*p_cback)(NFC_EE_ACTION_REVT, (tNFC_RESPONSE*)&evt_data);
@@ -2050,91 +2064,93 @@
 
   if (is_ntf) {
 #if (NXP_EXTNS == TRUE)
-#if (NXP_NFCC_FORCE_NCI1_0_INIT == true)
-    if (status == 0x02) {
-      NFC_TRACE_DEBUG2(
-          "CORE_RESET_NTF 2 reason Command Received status nfc_state : 0x%x : "
-          "0x%x",
-          status, nfc_cb.nfc_state);
-      wait_for_ntf = false;
-      status = NCI_STATUS_OK;
-    } else if (status == 0x00) {
-      NFC_TRACE_DEBUG2(
-          "CORE_RESET_NTF 2 reason Unrecoverable Error status nfc_state : 0x%x "
-          ": 0x%x",
-          status, nfc_cb.nfc_state);
-      core_reset_init_num_buff = true;
-      nfc_ncif_cmd_timeout();
-    } else {
-      NFC_TRACE_DEBUG1("CORE_RESET_NTF 1 nfc_state :0x%x ", nfc_cb.nfc_state);
-      NFC_TRACE_DEBUG1("CORE_RESET_NTF 1 status :0x%x ", status);
-      core_reset_init_num_buff = true;
-      nfc_ncif_cmd_timeout();
-    }
-#else
-    NFC_TRACE_DEBUG1("reset notification nfc_state :0x%x ", nfc_cb.nfc_state);
-    NFC_TRACE_DEBUG1("reset notification!!:0x%x ", status);
-
-    if(status == NCI2_0_RESET_TRIGGER_TYPE_CORE_RESET_CMD_RECEIVED ||
-       status == NCI2_0_RESET_TRIGGER_TYPE_POWERED_ON) {
-        NFC_TRACE_DEBUG2 ("CORE_RESET_NTF Received status nfc_state : 0x%x : 0x%x",
-        status ,nfc_cb.nfc_state);
-        nfc_stop_timer(&nfc_cb.nci_wait_rsp_timer);
-        p++;
-       STREAM_TO_UINT8(nfc_cb.nci_version, p);
-       NFC_TRACE_ERROR1(" CORE_RESET_NTF nci_version%x", nfc_cb.nci_version);
-       status = NCI_STATUS_OK;
-      } else {
-       core_reset_init_num_buff = true;
-       /* CORE_RESET_NTF received error case , trigger recovery*/
-       NFC_TRACE_DEBUG2 ("CORE_RESET_NTF Received status nfc_state : 0x%x : 0x%x",
-         status ,nfc_cb.nfc_state);
-       nfc_ncif_cmd_timeout();
-       status = NCI_STATUS_FAILED;
-     }
-#endif
-  } else {
-#if (NXP_NFCC_FORCE_NCI1_0_INIT == true)
-    if ((*p_len) == NCI_CORE_RESET_RSP_LEN(NCI_VERSION_1_0)) {
-            nfc_cb.nci_version = NCI_VERSION_1_0;
-    }
-    NFC_TRACE_DEBUG1("CORE_RESET_RSP 2 nfc_state :0x%x ", nfc_cb.nfc_state);
-    len = *(--temp);  // extract the no of params in reset response
-    if (nfc_cb.flags & (NFC_FL_RESTARTING | NFC_FL_POWER_CYCLE_NFCC)) {
-      nfc_reset_all_conn_cbs();
-    }
-    if (len == 0x01)  // If response length is 01 means NCI2.0
-    {
-      wait_for_ntf = true;
-    }
-#else
-
-    NFC_TRACE_DEBUG1 ("CORE_RESET_RSP len :0x%x ", *p_len);
-    if ((*p_len) == NCI_CORE_RESET_RSP_LEN(NCI_VERSION_2_0)) {
-      wait_for_ntf = true;
-    }
-    else if ((*p_len) == NCI_CORE_RESET_RSP_LEN(NCI_VERSION_1_0)) {
-      nfc_cb.nci_version = NCI_VERSION_1_0;
-    }
-
-    NFC_TRACE_DEBUG1("reset response nfc_state :0x%x ", nfc_cb.nfc_state);
-    if (nfc_cb.flags & (NFC_FL_RESTARTING | NFC_FL_POWER_CYCLE_NFCC)) {
-      nfc_reset_all_conn_cbs();
-    }
-#if 0
-    /*Check NCI version only in case of reset rsp*/
-    if (!is_ntf && status == NCI_STATUS_OK) {
-      if ((*p) != NCI_VERSION) {
-        NFC_TRACE_ERROR2("NCI version mismatch!!:0x%02x != 0x%02x ",
-                         NCI_VERSION, *p);
-        if ((*p) < NCI_VERSION_0_F) {
-          NFC_TRACE_ERROR0("NFCC version is too old");
-          status = NCI_STATUS_FAILED;
-        }
+      if(nfcFL.nfccFL._NFCC_FORCE_NCI1_0_INIT) {
+          if (status == 0x02) {
+              NFC_TRACE_DEBUG2(
+                      "CORE_RESET_NTF 2 reason Command Received status nfc_state : 0x%x : "
+                      "0x%x",
+                      status, nfc_cb.nfc_state);
+              wait_for_ntf = false;
+              status = NCI_STATUS_OK;
+          } else if (status == 0x00) {
+              NFC_TRACE_DEBUG2(
+                      "CORE_RESET_NTF 2 reason Unrecoverable Error status nfc_state : 0x%x "
+                      ": 0x%x",
+                      status, nfc_cb.nfc_state);
+              core_reset_init_num_buff = true;
+              nfc_ncif_cmd_timeout();
+          } else {
+              NFC_TRACE_DEBUG1("CORE_RESET_NTF 1 nfc_state :0x%x ", nfc_cb.nfc_state);
+              NFC_TRACE_DEBUG1("CORE_RESET_NTF 1 status :0x%x ", status);
+              core_reset_init_num_buff = true;
+              nfc_ncif_cmd_timeout();
+          }
       }
-    }
+      else {
+          NFC_TRACE_DEBUG1("reset notification nfc_state :0x%x ", nfc_cb.nfc_state);
+          NFC_TRACE_DEBUG1("reset notification!!:0x%x ", status);
+
+          if(status == NCI2_0_RESET_TRIGGER_TYPE_CORE_RESET_CMD_RECEIVED ||
+                  status == NCI2_0_RESET_TRIGGER_TYPE_POWERED_ON) {
+              NFC_TRACE_DEBUG2 ("CORE_RESET_NTF Received status nfc_state : 0x%x : 0x%x",
+                      status ,nfc_cb.nfc_state);
+              nfc_stop_timer(&nfc_cb.nci_wait_rsp_timer);
+              p++;
+              STREAM_TO_UINT8(nfc_cb.nci_version, p);
+              NFC_TRACE_ERROR1(" CORE_RESET_NTF nci_version%x", nfc_cb.nci_version);
+              status = NCI_STATUS_OK;
+          } else {
+              core_reset_init_num_buff = true;
+              /* CORE_RESET_NTF received error case , trigger recovery*/
+              NFC_TRACE_DEBUG2 ("CORE_RESET_NTF Received status nfc_state : 0x%x : 0x%x",
+                      status ,nfc_cb.nfc_state);
+              nfc_ncif_cmd_timeout();
+              status = NCI_STATUS_FAILED;
+          }
+      }
+  } else {
+      if(nfcFL.nfccFL._NFCC_FORCE_NCI1_0_INIT) {
+          if ((*p_len) == NCI_CORE_RESET_RSP_LEN(NCI_VERSION_1_0)) {
+              nfc_cb.nci_version = NCI_VERSION_1_0;
+          }
+          NFC_TRACE_DEBUG1("CORE_RESET_RSP 2 nfc_state :0x%x ", nfc_cb.nfc_state);
+          len = *(--temp);  // extract the no of params in reset response
+          if (nfc_cb.flags & (NFC_FL_RESTARTING | NFC_FL_POWER_CYCLE_NFCC)) {
+              nfc_reset_all_conn_cbs();
+          }
+          if (len == 0x01)  // If response length is 01 means NCI2.0
+          {
+              wait_for_ntf = true;
+          }
+      }
+      else {
+
+          NFC_TRACE_DEBUG1 ("CORE_RESET_RSP len :0x%x ", *p_len);
+          if ((*p_len) == NCI_CORE_RESET_RSP_LEN(NCI_VERSION_2_0)) {
+              wait_for_ntf = true;
+          }
+          else if ((*p_len) == NCI_CORE_RESET_RSP_LEN(NCI_VERSION_1_0)) {
+              nfc_cb.nci_version = NCI_VERSION_1_0;
+          }
+
+          NFC_TRACE_DEBUG1("reset response nfc_state :0x%x ", nfc_cb.nfc_state);
+          if (nfc_cb.flags & (NFC_FL_RESTARTING | NFC_FL_POWER_CYCLE_NFCC)) {
+              nfc_reset_all_conn_cbs();
+          }
+#if 0
+          /*Check NCI version only in case of reset rsp*/
+          if (!is_ntf && status == NCI_STATUS_OK) {
+              if ((*p) != NCI_VERSION) {
+                  NFC_TRACE_ERROR2("NCI version mismatch!!:0x%02x != 0x%02x ",
+                          NCI_VERSION, *p);
+                  if ((*p) < NCI_VERSION_0_F) {
+                      NFC_TRACE_ERROR0("NFCC version is too old");
+                      status = NCI_STATUS_FAILED;
+                  }
+              }
+          }
 #endif
-#endif
+      }
   }
 #else
     NFC_TRACE_ERROR1("reset notification!!:0x%x ", status);
@@ -2168,30 +2184,31 @@
 
   if (status == NCI_STATUS_OK) {
 #if (NXP_EXTNS == TRUE)
-#if (NXP_NFCC_FORCE_NCI1_0_INIT == true)
-    if (!wait_for_ntf) {
-      NFC_TRACE_DEBUG0("Got CORE_RESET_NTF 2 sending CORE_INIT_CMD 1");
-      nci_snd_core_init(NCI_VERSION_1_0);
-    } else {
-      NFC_TRACE_DEBUG0("Waiting for CORE_RESET_NTF 2 reason CMD received");
-      /* start NFC command-timeout timer */
-      nfc_start_timer(&nfc_cb.nci_wait_rsp_timer,
+      if(nfcFL.nfccFL._NFCC_FORCE_NCI1_0_INIT) {
+          if (!wait_for_ntf) {
+              NFC_TRACE_DEBUG0("Got CORE_RESET_NTF 2 sending CORE_INIT_CMD 1");
+              nci_snd_core_init(NCI_VERSION_1_0);
+          } else {
+              NFC_TRACE_DEBUG0("Waiting for CORE_RESET_NTF 2 reason CMD received");
+              /* start NFC command-timeout timer */
+              nfc_start_timer(&nfc_cb.nci_wait_rsp_timer,
                       (uint16_t)(NFC_TTYPE_NCI_WAIT_RSP),
                       nfc_cb.nci_wait_rsp_tout);
-    }
-#else
-    if(wait_for_ntf == true) {
-      /* reset version reported by NFCC is NCI2.0 , start a timer for 2000ms to
-       * wait for NTF*/
-      nfc_start_timer (&nfc_cb.nci_wait_rsp_timer, (uint16_t)(NFC_TTYPE_NCI_WAIT_RSP),
-        nfc_cb.nci_wait_rsp_tout);
-    } else {
-      if(nfc_cb.nci_version == NCI_VERSION_1_0)
-        nci_snd_core_init(NCI_VERSION_1_0);
-      else
-        nci_snd_core_init(NCI_VERSION_2_0);
+          }
       }
-#endif
+      else {
+          if(wait_for_ntf == true) {
+              /* reset version reported by NFCC is NCI2.0 , start a timer for 2000ms to
+               * wait for NTF*/
+              nfc_start_timer (&nfc_cb.nci_wait_rsp_timer, (uint16_t)(NFC_TTYPE_NCI_WAIT_RSP),
+                      nfc_cb.nci_wait_rsp_tout);
+          } else {
+              if(nfc_cb.nci_version == NCI_VERSION_1_0)
+                  nci_snd_core_init(NCI_VERSION_1_0);
+              else
+                  nci_snd_core_init(NCI_VERSION_2_0);
+          }
+      }
     NFC_TRACE_ERROR0("reset notification sending core init");
 #else
     nci_snd_core_init();
@@ -2282,9 +2299,7 @@
                       fw_mw_ver_status = NCI_STATUS_FAILED;
   tNFC_FWUpdate_Info_t fw_update_inf;
   uint8_t* init_rsp = NULL;
-#if (NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH == true)
   uint8_t config_resp[16];
-#endif
   int i;
   memset(&fw_update_inf, 0x00, sizeof(tNFC_FWUpdate_Info_t));
 #endif
@@ -2293,15 +2308,14 @@
   status = *(p + NCI_MSG_HDR_SIZE);
 #if (NXP_EXTNS == TRUE)
   if (NCI_STATUS_OK == status) {
-#if (NXP_NFCC_MW_RCVRY_BLK_FW_DNLD == true)
     // MW_FW recovery disabling at time of sig/crash/die
     NFC_TRACE_DEBUG1("MW_RCVRY_FW_DNLD_ALLOWED  -> %d",
                      MW_RCVRY_FW_DNLD_ALLOWED);
-    if (NFC_STATE_CORE_INIT == nfc_cb.nfc_state &&
-        MW_RCVRY_FW_DNLD_ALLOWED == false)
-#else
-    if (NFC_STATE_CORE_INIT == nfc_cb.nfc_state)
-#endif
+    if (((nfcFL.nfccFL._NFCC_MW_RCVRY_BLK_FW_DNLD) &&
+            ((NFC_STATE_CORE_INIT == nfc_cb.nfc_state) &&
+                    (MW_RCVRY_FW_DNLD_ALLOWED == false))) ||
+            ((!nfcFL.nfccFL._NFCC_MW_RCVRY_BLK_FW_DNLD) &&
+                    (nfcFL.nfccFL._NFCC_MW_RCVRY_BLK_FW_DNLD)))
     {
       nfc_cb.p_hal->ioctl(HAL_NFC_IOCTL_CHECK_FLASH_REQ, &inpOutData);
       fw_update_inf = *(tNFC_FWUpdate_Info_t*)&inpOutData.out.data.fwUpdateInf;
@@ -2309,9 +2323,9 @@
                        fw_update_inf.fw_update_reqd);
 
       if (fw_update_inf.fw_update_reqd == true) {
-#if (NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH == true)
-        uicc_eeprom_get_config(config_resp);
-#endif
+          if(nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH) {
+              uicc_eeprom_get_config(config_resp);
+          }
         nfc_cb.p_hal->ioctl(HAL_NFC_IOCTL_FW_DWNLD, &inpOutData);
         fw_dwnld_status = inpOutData.out.data.fwDwnldStatus;
         status = nfc_hal_nfcc_reset();
@@ -2336,9 +2350,9 @@
   else
   fw_status = NCI_STATUS_OK;
 
-#if ((NFC_NXP_CHIP_TYPE != PN547C2) && (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
-  nfc_ncif_set_MaxRoutingTableSize(p);
-#endif
+  if((nfcFL.chipType != pn547C2) && nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN) {
+      nfc_ncif_set_MaxRoutingTableSize(p);
+  }
   nfc_cb.p_hal->ioctl(HAL_NFC_IOCTL_FW_MW_VER_CHECK, &inpOutData);
   fw_mw_ver_status = inpOutData.out.data.fwMwVerStatus;
 #endif
@@ -2351,10 +2365,10 @@
 #endif
       ) {
 #if (NXP_EXTNS == TRUE)
-    if (fw_dwnld_status == NCI_STATUS_OK) {
-#if (NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH == true)
-      uicc_eeprom_set_config(config_resp);
-#endif
+      if (fw_dwnld_status == NCI_STATUS_OK) {
+          if(nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH) {
+              uicc_eeprom_set_config(config_resp);
+          }
     }
 #endif
 #if (NXP_EXTNS == TRUE)
@@ -2429,7 +2443,6 @@
                    nfc_fw_version.major_version, nfc_fw_version.minor_version);
   return status;
 }
-#if ((NFC_NXP_CHIP_TYPE != PN547C2) && (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
 /*******************************************************************************
 **
 ** Function         nfc_ncif_set_MaxRoutingTableSize
@@ -2440,6 +2453,14 @@
 **
 *******************************************************************************/
 tNFC_STATUS nfc_ncif_set_MaxRoutingTableSize(uint8_t* p_buf) {
+    NFC_TRACE_DEBUG0("nfc_ncif_set_MaxRoutingTableSize Enter");
+
+    if(!((nfcFL.chipType != pn547C2) && nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN)) {
+        NFC_TRACE_DEBUG0("chipType : pn547C2 or NFC_NXP_AID_MAX_SIZE_DYN"
+                " not available.. Returning");
+        return NFC_STATUS_FAILED;
+
+    }
   uint8_t status = NFC_STATUS_OK;
   int len = p_buf[2] + 2; /*include 2 byte header*/
   maxRoutingTableSize = p_buf[len - 8];
@@ -2460,8 +2481,15 @@
 ** Returns          uint16_t
 **
 *******************************************************************************/
-uint16_t nfc_ncif_getMaxRoutingTableSize() { return maxRoutingTableSize; }
-#endif
+uint16_t nfc_ncif_getMaxRoutingTableSize() {
+    if(!((nfcFL.chipType != pn547C2) && nfcFL.nfcMwFL._NFC_NXP_AID_MAX_SIZE_DYN)) {
+        NFC_TRACE_DEBUG0("getMaxRoutingTableSize : chipType : pn547C2 or "
+                "NFC_NXP_AID_MAX_SIZE_DYN not available.. Returning");
+        return 0;
+
+    }
+    return maxRoutingTableSize;
+}
 /*******************************************************************************
 **
 ** Function         nfc_ncif_getFWVersion
@@ -2648,9 +2676,10 @@
   NFC_TRACE_DEBUG3("nfc_ncif_proc_data 0x%02x%02x%02x", pp[0], pp[1], pp[2]);
   NCI_DATA_PRS_HDR(pp, pbf, cid, len);
   p_cb = nfc_find_conn_cb_by_conn_id(cid);
-#if ((NXP_EXTNS == TRUE) && \
-     (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME))
-  if ((p_cb) && (cid == NFC_RF_CONN_ID) && (nfc_cb.bBlockWiredMode)) {
+#if (NXP_EXTNS == TRUE)
+  if ((nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+          nfcFL.eseFL._ESE_WIRED_MODE_RESUME) &&
+          ((p_cb) && (cid == NFC_RF_CONN_ID) && (nfc_cb.bBlockWiredMode))) {
     nfc_ncif_resume_dwp_wired_mode();
   }
 #endif
@@ -2926,20 +2955,23 @@
 
 #endif
 
-#if ((NFC_NXP_ESE == TRUE) && (NXP_EXTNS == TRUE) && \
-     (NXP_ESE_ETSI_READER_ENABLE == true))
+#if (NXP_EXTNS == TRUE)
 void disc_deact_ntf_timeout_handler(tNFC_RESPONSE_EVT event) {
-  tNFC_RESPONSE evt_data;
-  etsi_reader_in_progress = false;
-  if (nfc_cb.p_resp_cback) {
-    evt_data.status = (tNFC_STATUS)NFC_STATUS_HW_TIMEOUT;
-    (*nfc_cb.p_resp_cback)(event, &evt_data);
-  }
+    if(!(nfcFL.nfcNxpEse && nfcFL.eseFL._ESE_ETSI_READER_ENABLE)) {
+        NFC_TRACE_DEBUG0("disc_deact_ntf_timeout_handler : nfcNxpEse or "
+                "ETSI_READER_ENABLE not available. Returning..");
+        return;
+    }
+    tNFC_RESPONSE evt_data;
+    etsi_reader_in_progress = false;
+    if (nfc_cb.p_resp_cback) {
+        evt_data.status = (tNFC_STATUS)NFC_STATUS_HW_TIMEOUT;
+        (*nfc_cb.p_resp_cback)(event, &evt_data);
+    }
 }
 #endif
 
 #if (NXP_EXTNS == TRUE)
-#if (NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH == true)
 /*******************************************************************************
 **
 ** Function:        nfc_ncif_reset_nfcc
@@ -2952,6 +2984,11 @@
 *******************************************************************************/
 tNFC_STATUS nfc_ncif_reset_nfcc() {
   NFC_TRACE_DEBUG1("%s : Enter", __func__);
+  if(!nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH) {
+      NFC_TRACE_DEBUG0("NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH"
+              " feature is not available!!");
+      return (NFA_STATUS_FAILED);
+  }
   nfc_nci_IoctlInOutData_t inpOutData;
   uint8_t status = NCI_STATUS_FAILED;
   int isfound, retry_count = 0;
@@ -3035,6 +3072,11 @@
 *******************************************************************************/
 void uicc_eeprom_get_config(uint8_t* config_resp) {
   NFC_TRACE_DEBUG1("%s : Enter", __func__);
+  if(!nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH) {
+      NFC_TRACE_DEBUG0("NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH"
+              " feature is not available!!");
+      return;
+  }
   uint8_t cmd_get_dualUicc_config[] = {0x20, 0x03, 0x03, 0x01, 0xA0, 0xEC};
   nfc_nci_IoctlInOutData_t inpOutData;
   int uicc_mode = 0;
@@ -3042,7 +3084,8 @@
   uint8_t config_status = NCI_STATUS_FAILED;
   uint8_t retry_count = 0;
 
-  if (GetNumValue(NAME_NXP_DUAL_UICC_ENABLE, &uicc_mode, sizeof(int))) {
+  if (GetNumValue(NAME_NXP_DUAL_UICC_ENABLE, &uicc_mode,
+          sizeof(int))) {
     NFC_TRACE_DEBUG1("NXP_DUAL_UICC_ENABLE : 0x%02x", uicc_mode);
 
   } else {
@@ -3079,6 +3122,11 @@
 *******************************************************************************/
 void uicc_eeprom_set_config(uint8_t* config_rsp) {
   NFC_TRACE_DEBUG1("%s : Enter", __func__);
+  if(!nfcFL.nfccFL._NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH) {
+      NFC_TRACE_DEBUG0("NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH"
+              " feature is not available!!");
+      return;
+  }
   uint8_t cmd_set_dualUicc_config[] = {0x20, 0x02, 0x05, 0x01,
                                        0xA0, 0xEC, 0x01, 0x11};
   nfc_nci_IoctlInOutData_t inpOutData;
@@ -3086,7 +3134,8 @@
   uint8_t config_status = NCI_STATUS_FAILED;
   uint8_t retry_count = 0;
 
-  if (GetNumValue(NAME_NXP_DUAL_UICC_ENABLE, &uicc_mode, sizeof(int))) {
+  if (GetNumValue(NAME_NXP_DUAL_UICC_ENABLE, &uicc_mode,
+          sizeof(int))) {
     NFC_TRACE_DEBUG1("NXP_DUAL_UICC_ENABLE : 0x%02x", uicc_mode);
 
   } else {
@@ -3116,4 +3165,3 @@
   }
 }
 #endif
-#endif
diff --git a/src/nfc/nfc/nfc_task.c b/src/nfc/nfc/nfc_task.c
old mode 100755
new mode 100644
index 740dbd3..beb9b08
--- a/src/nfc/nfc/nfc_task.c
+++ b/src/nfc/nfc/nfc_task.c
@@ -150,16 +150,18 @@
         nfc_ncif_credit_ntf_timeout();
         break;
       }
-#if (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME)
-      case NFC_TYPE_NCI_WAIT_SETMODE_NTF: {
-        nfc_ncif_modeSet_Ntf_timeout();
-        break;
-      }
-      case NFC_TTYPE_NCI_WAIT_RF_FIELD_NTF: {
-        nfc_ncif_onWiredModeHold_timeout();
-        break;
-      }
-#endif
+      case NFC_TYPE_NCI_WAIT_SETMODE_NTF:
+          if(nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+                  nfcFL.eseFL._ESE_WIRED_MODE_RESUME) {
+              nfc_ncif_modeSet_Ntf_timeout();
+          }
+          break;
+      case NFC_TTYPE_NCI_WAIT_RF_FIELD_NTF:
+          if(nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+                  nfcFL.eseFL._ESE_WIRED_MODE_RESUME) {
+              nfc_ncif_onWiredModeHold_timeout();
+          }
+          break;
       case NFC_TTYPE_LISTEN_ACTIVATION: {
         extern uint8_t sListenActivated;
         sListenActivated = false;
@@ -318,14 +320,19 @@
         ce_t4t_process_timeout(p_tle);
         break;
 #endif
-#if ((NXP_EXTNS == TRUE) && \
-     (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_RESUME))
+#if (NXP_EXTNS == TRUE)
       case NFC_TTYPE_PWR_LINK_RSP:
-        nfc_ncif_pwr_link_rsp_timeout();
-        break;
+          if(nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+                  nfcFL.eseFL._ESE_WIRED_MODE_RESUME) {
+              nfc_ncif_pwr_link_rsp_timeout();
+          }
+          break;
       case NFC_TTYPE_SET_MODE_RSP:
-        nfc_ncif_modeSet_rsp_timeout();
-        break;
+          if(nfcFL.eseFL._ESE_DUAL_MODE_PRIO_SCHEME ==
+                  nfcFL.eseFL._ESE_WIRED_MODE_RESUME) {
+              nfc_ncif_modeSet_rsp_timeout();
+          }
+          break;
 #endif
       default:
         NFC_TRACE_DEBUG1(
diff --git a/src/nfc/nfc/nfc_utils.c b/src/nfc/nfc/nfc_utils.c
old mode 100755
new mode 100644
index 3fc8aa3..9176807
--- a/src/nfc/nfc/nfc_utils.c
+++ b/src/nfc/nfc/nfc_utils.c
@@ -42,8 +42,10 @@
 tNFC_CONN_CB* nfc_alloc_conn_cb(tNFC_CONN_CBACK* p_cback) {
   int xx, max = NCI_MAX_CONN_CBS;
   tNFC_CONN_CB* p_conn_cb = NULL;
-#if ((NXP_EXTNS == TRUE) && (NFC_NXP_CHIP_TYPE != PN547C2))
-
+#if (NXP_EXTNS == TRUE)
+  if(nfcFL.chipType != pn547C2) {
+      NFC_CHECK_MAX_CONN();
+  }
 #else
   NFC_CHECK_MAX_CONN();
 #endif