mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-30 18:57:19 +02:00
Merge branch 'fix/spi_master_halt_using_rc_fast_v5.2' into 'release/v5.2'
fix(spi_master): fix spi halt when remove device who using rc_fast (v5.2) See merge request espressif/esp-idf!37005
This commit is contained in:
@ -513,6 +513,15 @@ esp_err_t spi_bus_remove_device(spi_device_handle_t handle)
|
|||||||
|
|
||||||
#if SOC_SPI_SUPPORT_CLK_RC_FAST
|
#if SOC_SPI_SUPPORT_CLK_RC_FAST
|
||||||
if (handle->cfg.clock_source == SPI_CLK_SRC_RC_FAST) {
|
if (handle->cfg.clock_source == SPI_CLK_SRC_RC_FAST) {
|
||||||
|
// If no transactions from other device, acquire the bus to switch module clock to `SPI_CLK_SRC_DEFAULT`
|
||||||
|
// because `SPI_CLK_SRC_RC_FAST` will be disabled then, which block following transactions
|
||||||
|
if (handle->host->cur_cs == DEV_NUM_MAX) {
|
||||||
|
spi_device_acquire_bus(handle, portMAX_DELAY);
|
||||||
|
SPI_MASTER_PERI_CLOCK_ATOMIC() {
|
||||||
|
spi_ll_set_clk_source(handle->host->hal.hw, SPI_CLK_SRC_DEFAULT);
|
||||||
|
}
|
||||||
|
spi_device_release_bus(handle);
|
||||||
|
}
|
||||||
periph_rtc_dig_clk8m_disable();
|
periph_rtc_dig_clk8m_disable();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
CONFIG_COMPILER_DUMP_RTL_FILES=y
|
CONFIG_COMPILER_DUMP_RTL_FILES=y
|
||||||
CONFIG_SPI_MASTER_ISR_IN_IRAM=n
|
CONFIG_SPI_MASTER_ISR_IN_IRAM=y
|
||||||
CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
|
CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
|
||||||
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y
|
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y
|
||||||
CONFIG_COMPILER_OPTIMIZATION_NONE=y
|
CONFIG_COMPILER_OPTIMIZATION_NONE=y
|
||||||
|
@ -344,7 +344,7 @@ typedef enum {
|
|||||||
/**
|
/**
|
||||||
* @brief Array initializer for all supported clock sources of SPI
|
* @brief Array initializer for all supported clock sources of SPI
|
||||||
*/
|
*/
|
||||||
#define SOC_SPI_CLKS {SOC_MOD_CLK_PLL_F80M, SOC_MOD_CLK_XTAL, SOC_MOD_CLK_RC_FAST}
|
#define SOC_SPI_CLKS {SOC_MOD_CLK_PLL_F80M, SOC_MOD_CLK_RC_FAST, SOC_MOD_CLK_XTAL}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Type of SPI clock source.
|
* @brief Type of SPI clock source.
|
||||||
|
Reference in New Issue
Block a user