diff --git a/drivers/spi/spi_silabs_eusart.c b/drivers/spi/spi_silabs_eusart.c index 76fc027178c..947265d1018 100644 --- a/drivers/spi/spi_silabs_eusart.c +++ b/drivers/spi/spi_silabs_eusart.c @@ -62,7 +62,11 @@ static int spi_silabs_eusart_configure(const struct device *dev, const struct sp spi_frequency /= 2; if (spi_context_configured(&data->ctx, config)) { - /* Already configured. No need to do it again. */ + /* Already configured. No need to do it again, but must re-enable in case + * TXEN/RXEN were cleared due to deep sleep. + */ + EUSART_Enable(eusart_config->base, eusartEnable); + return 0; } @@ -145,9 +149,6 @@ static int spi_silabs_eusart_configure(const struct device *dev, const struct sp data->ctx.config = config; - /* Enable the peripheral */ - eusart_config->base->CMD = (uint32_t)eusartEnable; - return 0; }