diff --git a/core/embed/sec/tropic/stm32/tropic01.c b/core/embed/sec/tropic/stm32/tropic01.c index 2fd9cadb2c..d95e84dbcd 100644 --- a/core/embed/sec/tropic/stm32/tropic01.c +++ b/core/embed/sec/tropic/stm32/tropic01.c @@ -145,7 +145,10 @@ bool tropic_hal_init(void) { void tropic_hal_deinit(void) { tropic01_hal_driver_t *drv = &g_tropic01_hal_driver; - HAL_SPI_DeInit(&drv->spi); + if (drv->spi.Instance != NULL) { + HAL_SPI_DeInit(&drv->spi); + } + __HAL_RCC_SPI2_FORCE_RESET(); __HAL_RCC_SPI2_RELEASE_RESET(); __HAL_RCC_SPI2_CLK_DISABLE(); diff --git a/core/embed/sec/tropic/tropic.c b/core/embed/sec/tropic/tropic.c index 25618e42c0..693979fee4 100644 --- a/core/embed/sec/tropic/tropic.c +++ b/core/embed/sec/tropic/tropic.c @@ -94,7 +94,9 @@ cleanup: void tropic_deinit(void) { tropic_driver_t *drv = &g_tropic_driver; - lt_deinit(&drv->handle); + if (drv->handle.device != NULL) { + lt_deinit(&drv->handle); + } tropic_hal_deinit();