kopia lustrzana https://github.com/espressif/esp-idf
Merge branch 'fix/spi_master_dio_qio_hal' into 'master'
spi_master: fix the dual/quad io issue See merge request idf/esp-idf!4894pull/3426/head
commit
db86b31ef4
|
@ -647,7 +647,9 @@ static void SPI_MASTER_ISR_ATTR spi_new_trans(spi_device_t *dev, spi_trans_priv_
|
|||
|
||||
trans = trans_buf->trans;
|
||||
host->cur_cs = dev_id;
|
||||
//We should be done with the transmission.
|
||||
|
||||
//Reconfigure according to device settings, the function only has effect when the dev_id is changed.
|
||||
spi_setup_device(host, dev_id);
|
||||
|
||||
hal->tx_bitlen = trans->length;
|
||||
hal->rx_bitlen = trans->rxlength;
|
||||
|
@ -683,8 +685,6 @@ static void SPI_MASTER_ISR_ATTR spi_new_trans(spi_device_t *dev, spi_trans_priv_
|
|||
hal->dummy_bits = dev->cfg.dummy_bits;
|
||||
}
|
||||
|
||||
//Reconfigure according to device settings, the function only has effect when the dev_id is changed.
|
||||
spi_setup_device(host, dev_id);
|
||||
spi_hal_setup_trans(hal);
|
||||
spi_hal_prepare_data(hal);
|
||||
|
||||
|
|
|
@ -41,11 +41,12 @@ void spi_hal_setup_trans(const spi_hal_context_t *hal)
|
|||
{
|
||||
spi_dev_t *hw = hal->hw;
|
||||
|
||||
//clear int bit
|
||||
spi_ll_clear_int_stat(hal->hw);
|
||||
//We should be done with the transmission.
|
||||
assert(spi_ll_get_running_cmd(hw) == 0);
|
||||
|
||||
//clear int bit
|
||||
spi_ll_master_set_io_mode(hw, SPI_LL_IO_MODE_NORMAL);
|
||||
spi_ll_master_set_io_mode(hw, hal->io_mode);
|
||||
|
||||
int extra_dummy = 0;
|
||||
//when no_dummy is not set and in half-duplex mode, sets the dummy bit if RX phase exist
|
||||
|
|
Ładowanie…
Reference in New Issue