artf241278-SPI-Module-changes-SPI-Open-failing-with
diff --git a/halimpl/pn54x/common/phNfcTypes.h b/halimpl/pn54x/common/phNfcTypes.h
index a9a1a1d..cddaab2 100644
--- a/halimpl/pn54x/common/phNfcTypes.h
+++ b/halimpl/pn54x/common/phNfcTypes.h
@@ -307,7 +307,22 @@
     P61_STATE_DWNLD = 0x0800, /* NFCC fw download is in progress */
     P61_STATE_SPI_PRIO = 0x1000, /*Start of p61 access by SPI on priority*/
     P61_STATE_SPI_PRIO_END = 0x2000, /*End of p61 access by SPI on priority*/
+    P61_STATE_SPI_END = 0x4000,
+    P61_STATE_JCP_DWNLD = 0x8000,/* JCOP downlad in progress */
+    P61_STATE_SECURE_MODE = 0x100000, /* secure mode state*/
+    P61_STATE_SPI_SVDD_SYNC_START = 0x0001, /*ESE_VDD Low req by SPI*/
+    P61_STATE_SPI_SVDD_SYNC_END = 0x0002, /*ESE_VDD is Low by SPI*/
+    P61_STATE_DWP_SVDD_SYNC_START = 0x0004, /*ESE_VDD  Low req by Nfc*/
+    P61_STATE_DWP_SVDD_SYNC_END = 0x0008 /*ESE_VDD is Low by Nfc*/
 }p61_access_state_t;
+
+typedef enum jcop_dwnld_state{
+    JCP_DWNLD_IDLE = P61_STATE_JCP_DWNLD,   /* jcop dwnld is not ongoing*/
+    JCP_DWNLD_INIT,                         /* jcop dwonload init state*/
+    JCP_DWNLD_START,                        /* download started */
+    JCP_SPI_DWNLD_COMPLETE,                 /* jcop download complete in spi interface*/
+    JCP_DWP_DWNLD_COMPLETE,                 /* jcop download complete */
+} jcop_dwnld_state_t;
 #endif
 #define UNUSED(X) (void)X;
 
diff --git a/halimpl/pn54x/tml/phTmlNfc.c b/halimpl/pn54x/tml/phTmlNfc.c
index bf9c98a..018ee6b 100644
--- a/halimpl/pn54x/tml/phTmlNfc.c
+++ b/halimpl/pn54x/tml/phTmlNfc.c
@@ -1019,16 +1019,16 @@
                     break;
                 }
 #if(NFC_NXP_ESE == TRUE)
-            case phTmlNfc_e_SetJcopDwnldEnable:
-                {
-                    wStatus = phTmlNfc_i2c_set_Jcop_dwnld_state(gpphTmlNfc_Context->pDevHandle, 2);
-                    break;
-                }
-            case phTmlNfc_e_SetJcopDwnldDisable:
-                {
-                    wStatus = phTmlNfc_i2c_set_Jcop_dwnld_state(gpphTmlNfc_Context->pDevHandle, 4);
-                    break;
-                }
+           case phTmlNfc_e_SetJcopDwnldEnable:
+           {
+               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;
+           }
             case phTmlNfc_e_SetNfcServicePid:
             {
                 wStatus = phTmlNfc_set_pid(gpphTmlNfc_Context->pDevHandle, nfc_service_pid);
diff --git a/src/nfc/include/nfc_api.h b/src/nfc/include/nfc_api.h
index c8523cc..de2239d 100755
--- a/src/nfc/include/nfc_api.h
+++ b/src/nfc/include/nfc_api.h
@@ -344,8 +344,11 @@
 }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
+                                                  under p61_access_state_t inside pn553.h(NFCC driver header) */
+
 typedef enum jcop_dwnld_state{
-    JCP_DWNLD_IDLE,                         /* jcop dwnld is not ongoing*/
+    JCP_DWNLD_IDLE = ESE_STATE_JCOP_DWNLD,  /* jcop dwnld is not ongoing*/
     JCP_DWNLD_INIT,                         /* jcop dwonload init state*/
     JCP_DWNLD_START,                        /* download started */
     JCP_SPI_DWNLD_COMPLETE,                 /* jcop download complete in spi interface*/