From ad80d5c1dec1df1a02024cb0638ce4921a541249 Mon Sep 17 00:00:00 2001 From: cepetr Date: Mon, 7 Apr 2025 15:20:07 +0200 Subject: [PATCH] fix(core): fix tropic driver deinitialization [no changelog] --- core/embed/sec/tropic/stm32/tropic01.c | 5 ++++- core/embed/sec/tropic/tropic.c | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) 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();