summaryrefslogtreecommitdiff
path: root/snxxx/libese-spi/p73/pal/spi/EseSpiTransport.cpp
diff options
context:
space:
mode:
authorTreehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com>2024-01-25 07:56:17 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2024-01-25 07:56:17 +0000
commit12517449e99fd7e46f9c86913b7d95cf501d184e (patch)
tree103830989989eac6105fae06c0690e825a56887a /snxxx/libese-spi/p73/pal/spi/EseSpiTransport.cpp
parentd4931f70dea845ae9cd474b2a483533d2fbc14b3 (diff)
parent7925d5f2548272d96db3fd7050546aebd649618e (diff)
downloadsecure_element-12517449e99fd7e46f9c86913b7d95cf501d184e.tar.gz
Merge "NXP SecureElement HAL update for SNxxx" into main
Diffstat (limited to 'snxxx/libese-spi/p73/pal/spi/EseSpiTransport.cpp')
-rw-r--r--snxxx/libese-spi/p73/pal/spi/EseSpiTransport.cpp39
1 files changed, 29 insertions, 10 deletions
diff --git a/snxxx/libese-spi/p73/pal/spi/EseSpiTransport.cpp b/snxxx/libese-spi/p73/pal/spi/EseSpiTransport.cpp
index 08ddda1..fa29656 100644
--- a/snxxx/libese-spi/p73/pal/spi/EseSpiTransport.cpp
+++ b/snxxx/libese-spi/p73/pal/spi/EseSpiTransport.cpp
@@ -45,6 +45,7 @@
#define MAX_RETRY_CNT 10
#define HAL_NFC_SPI_DWP_SYNC 21
+#define USE_COLD_RESET 0x00
extern int omapi_status;
@@ -76,6 +77,7 @@ void EseSpiTransport::Close(void* pDevHandle) {
return;
}
+#ifdef NXP_BOOTTIME_UPDATE
/*******************************************************************************
**
** Function phNxpEse_spiIoctl
@@ -117,6 +119,8 @@ ESESTATUS phNxpEse_spiIoctl(uint64_t ioctlType, void* p_data) {
#endif
return status;
}
+#endif
+
#if (NFC_NXP_ESE_VER == JCOP_VER_4_0)
/*******************************************************************************
**
@@ -190,6 +194,15 @@ ESESTATUS EseSpiTransport::OpenAndConfigure(pphPalEse_Config_t pConfig) {
mConfigColdResetIntf = 0x01; /* Default interface is NFC HAL */
NXP_LOG_ESE_D("mConfigColdResetIntf: Default value ");
}
+ /* Read eSE GPIO reset config */
+ if (EseConfig::hasKey(NAME_NXP_ESE_GPIO_RESET)) {
+ mConfigGpioReset = EseConfig::getUnsigned(NAME_NXP_ESE_GPIO_RESET);
+ NXP_LOG_ESE_D("mConfigGpioReset value from config file = %ld",
+ mConfigGpioReset);
+ } else {
+ mConfigGpioReset = USE_COLD_RESET;
+ NXP_LOG_ESE_D("mConfigGpioReset: Default value ");
+ }
NXP_LOG_ESE_D("Opening port=%s\n", pConfig->pDevName);
/* open port */
retry:
@@ -383,20 +396,26 @@ ESESTATUS EseSpiTransport::Ioctl(phPalEse_ControlCode_t eControlCode,
case phPalEse_e_ChipRst:
if (GET_CHIP_OS_VERSION() != OS_VERSION_4_0) {
if (level == 5) { // SPI driver communication part
- if (!mConfigColdResetIntf) { /* Call the driver IOCTL */
- retioctl =
- ioctl((intptr_t)pDevHandle, ESE_PERFORM_COLD_RESET, level);
+ if (!mConfigColdResetIntf) { // Call the driver IOCTL
+ unsigned int cmd = ESE_PERFORM_COLD_RESET;
+ if ((mConfigGpioReset == 0x01) &&
+ ((GET_CHIP_OS_VERSION() == OS_VERSION_8_9))) {
+ cmd = P61_SET_PWR;
+ }
+ retioctl = ioctl((intptr_t)pDevHandle, cmd, level);
if (0x00 <= retioctl) {
ret = ESESTATUS_SUCCESS;
}
} else {
-#if (NFC_NXP_ESE_VER == JCOP_VER_5_x)
- // Nfc Driver communication part
- pNfcAdapt.Initialize();
- ret = pNfcAdapt.resetEse(level);
-#else
- ret = ESESTATUS_SUCCESS;
-#endif
+ if ((NFC_NXP_ESE_VER == JCOP_VER_5_x) &&
+ (GET_CHIP_OS_VERSION() != OS_VERSION_8_9)) {
+ // Nfc Driver communication part
+ pNfcAdapt.Initialize();
+ ret = pNfcAdapt.resetEse(level);
+ } else {
+ NXP_LOG_ESE_E("%s: Not supported", __func__);
+ ret = ESESTATUS_SUCCESS;
+ }
}
} else {
ret = ESESTATUS_SUCCESS;