mirror of
https://github.com/espressif/esp-idf.git
synced 2024-09-20 10:46:02 -04:00
spi_master: fix config check of both in&out phases used in half-duplex mode
Add a check in spi_master driver to prevent using both 'trans->length' and 'trans->rxlength' on chips other than ESP32 and ESP32S2 which hardware not support using both TX and RX phases in half-duplex mode
This commit is contained in:
parent
6864f72ab7
commit
4757efe21d
@ -704,7 +704,9 @@ static SPI_MASTER_ISR_ATTR esp_err_t check_trans_valid(spi_device_handle_t handl
|
||||
SPI_CHECK(!is_half_duplex || !bus_attr->dma_enabled || !rx_enabled || !tx_enabled, "SPI half duplex mode does not support using DMA with both MOSI and MISO phases.", ESP_ERR_INVALID_ARG );
|
||||
#endif
|
||||
#if !SOC_SPI_HD_BOTH_INOUT_SUPPORTED
|
||||
//On these chips, HW doesn't support using both TX and RX phases when in halfduplex mode
|
||||
SPI_CHECK(!is_half_duplex || !tx_enabled || !rx_enabled, "SPI half duplex mode is not supported when both MOSI and MISO phases are enabled.", ESP_ERR_INVALID_ARG);
|
||||
SPI_CHECK(!is_half_duplex || !trans_desc->length || !trans_desc->rxlength, "SPI half duplex mode is not supported when both MOSI and MISO phases are enabled.", ESP_ERR_INVALID_ARG);
|
||||
#endif
|
||||
//MOSI phase is skipped only when both tx_buffer and SPI_TRANS_USE_TXDATA are not set.
|
||||
SPI_CHECK(trans_desc->length != 0 || !tx_enabled, "trans tx_buffer should be NULL and SPI_TRANS_USE_TXDATA should be cleared to skip MOSI phase.", ESP_ERR_INVALID_ARG);
|
||||
|
Loading…
Reference in New Issue
Block a user