aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/ports/STM32/LLD/OCTOSPIv1
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2018-11-02 17:15:38 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2018-11-02 17:15:38 +0000
commit9f6a17e4f1aa9f97f7aab6616cdec231e56e0dd4 (patch)
treeba912bc1227196b1a306977e214be3a4be281efc /os/hal/ports/STM32/LLD/OCTOSPIv1
parentda54384531630ae204b1b925537a2ec0bb136980 (diff)
downloadChibiOS-9f6a17e4f1aa9f97f7aab6616cdec231e56e0dd4.tar.gz
ChibiOS-9f6a17e4f1aa9f97f7aab6616cdec231e56e0dd4.tar.bz2
ChibiOS-9f6a17e4f1aa9f97f7aab6616cdec231e56e0dd4.zip
Various fixes to OCTOSPI e DMAv1 and MX25.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@12401 110e8d01-0319-4d1e-a829-52ad28d1bb01
Diffstat (limited to 'os/hal/ports/STM32/LLD/OCTOSPIv1')
-rw-r--r--os/hal/ports/STM32/LLD/OCTOSPIv1/hal_wspi_lld.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/os/hal/ports/STM32/LLD/OCTOSPIv1/hal_wspi_lld.c b/os/hal/ports/STM32/LLD/OCTOSPIv1/hal_wspi_lld.c
index 43a7a82a8..ef5994e47 100644
--- a/os/hal/ports/STM32/LLD/OCTOSPIv1/hal_wspi_lld.c
+++ b/os/hal/ports/STM32/LLD/OCTOSPIv1/hal_wspi_lld.c
@@ -205,6 +205,7 @@ void wspi_lld_start(WSPIDriver *wspip) {
(void *)wspip);
osalDbgAssert(!b, "stream already allocated");
rccEnableOCTOSPI1(true);
+ dmaSetRequestSource(wspip->dma, STM32_DMAMUX1_OCTOSPI1);
}
#endif
@@ -216,6 +217,7 @@ void wspi_lld_start(WSPIDriver *wspip) {
(void *)wspip);
osalDbgAssert(!b, "stream already allocated");
rccEnableOCTOSPI2(true);
+ dmaSetRequestSource(wspip->dma, STM32_DMAMUX1_OCTOSPI2);
}
#endif
@@ -285,10 +287,10 @@ void wspi_lld_command(WSPIDriver *wspip, const wspi_command_t *cmdp) {
#endif
wspip->ospi->CR &= ~OCTOSPI_CR_FMODE;
wspip->ospi->DLR = 0U;
- wspip->ospi->IR = cmdp->cmd;
- wspip->ospi->ABR = cmdp->alt;
wspip->ospi->TCR = cmdp->dummy;
wspip->ospi->CCR = cmdp->cfg;
+ wspip->ospi->ABR = cmdp->alt;
+ wspip->ospi->IR = cmdp->cmd;
if ((cmdp->cfg & WSPI_CFG_ADDR_MODE_MASK) != WSPI_CFG_ADDR_MODE_NONE) {
wspip->ospi->AR = cmdp->addr;
}
@@ -314,10 +316,10 @@ void wspi_lld_send(WSPIDriver *wspip, const wspi_command_t *cmdp,
wspip->ospi->CR &= ~OCTOSPI_CR_FMODE;
wspip->ospi->DLR = n - 1;
- wspip->ospi->IR = cmdp->cmd;
- wspip->ospi->ABR = cmdp->alt;
wspip->ospi->TCR = cmdp->dummy;
wspip->ospi->CCR = cmdp->cfg;
+ wspip->ospi->ABR = cmdp->alt;
+ wspip->ospi->IR = cmdp->cmd;
if ((cmdp->cfg & WSPI_CFG_ADDR_MODE_MASK) != WSPI_CFG_ADDR_MODE_NONE) {
wspip->ospi->AR = cmdp->addr;
}
@@ -345,10 +347,10 @@ void wspi_lld_receive(WSPIDriver *wspip, const wspi_command_t *cmdp,
wspip->ospi->CR = (wspip->ospi->CR & ~OCTOSPI_CR_FMODE) | OCTOSPI_CR_FMODE_0;
wspip->ospi->DLR = n - 1;
- wspip->ospi->IR = cmdp->cmd;
- wspip->ospi->ABR = cmdp->alt;
wspip->ospi->TCR = cmdp->dummy;
wspip->ospi->CCR = cmdp->cfg;
+ wspip->ospi->ABR = cmdp->alt;
+ wspip->ospi->IR = cmdp->cmd;
if ((cmdp->cfg & WSPI_CFG_ADDR_MODE_MASK) != WSPI_CFG_ADDR_MODE_NONE) {
wspip->ospi->AR = cmdp->addr;
}
@@ -380,11 +382,11 @@ void wspi_lld_map_flash(WSPIDriver *wspip,
wspip->ospi->CR = (wspip->ospi->CR & ~OCTOSPI_CR_FMODE) |
(OCTOSPI_CR_FMODE_1 | OCTOSPI_CR_FMODE_0);
wspip->ospi->DLR = 0;
- wspip->ospi->IR = cmdp->cmd;
- wspip->ospi->ABR = 0;
wspip->ospi->TCR = cmdp->dummy;
- wspip->ospi->AR = 0;
wspip->ospi->CCR = cmdp->cfg;
+ wspip->ospi->ABR = 0;
+ wspip->ospi->IR = cmdp->cmd;
+ wspip->ospi->AR = 0;
/* Mapped flash absolute base address.*/
if (addrp != NULL) {