Skip to content

Commit

Permalink
xtensa/esp32s3: QSPI disable DMA when sending command to slave
Browse files Browse the repository at this point in the history
  • Loading branch information
donghengqaz committed Nov 23, 2023
1 parent ed877fd commit 38aa42d
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions arch/xtensa/src/esp32s3/esp32s3_qspi.c
Original file line number Diff line number Diff line change
Expand Up @@ -725,6 +725,17 @@ static int esp32s3_qspi_command(struct qspi_dev_s *dev,

/* Initiliaze QSPI user register */

#ifdef CONFIG_ESP32S3_SPI_DMA

/* Disable QSPI DMA */

regval = getreg32(SPI_DMA_CONF_REG(id));
regval &= ~(SPI_DMA_TX_ENA_M | SPI_DMA_RX_ENA_M);
putreg32(regval, SPI_DMA_CONF_REG(id));

putreg32(0, SPI_DMA_INT_ENA_REG(id));
#endif

user_reg &= ~(SPI_USR_ADDR_M |
SPI_USR_MOSI_M |
SPI_USR_MISO_M |
Expand Down Expand Up @@ -753,7 +764,8 @@ static int esp32s3_qspi_command(struct qspi_dev_s *dev,

user_reg |= SPI_USR_ADDR_M;

putreg32(cmdinfo->addr, SPI_ADDR_REG(id));
regval = cmdinfo->addr << (32 - cmdinfo->addrlen * 8);
putreg32(regval, SPI_ADDR_REG(id));
}

/* Set dummy */
Expand Down Expand Up @@ -944,7 +956,8 @@ static int esp32s3_qspi_memory(struct qspi_dev_s *dev,
user1_reg &= ~SPI_USR_ADDR_BITLEN_M;
user1_reg |= (meminfo->addrlen * 8 - 1) << SPI_USR_ADDR_BITLEN_S;

putreg32(meminfo->addr, SPI_ADDR_REG(id));
regval = meminfo->addr << (32 - meminfo->addrlen * 8);
putreg32(regval, SPI_ADDR_REG(id));

/* Set dummy */

Expand Down

0 comments on commit 38aa42d

Please sign in to comment.