From 40fe666d3f40d0bb196f08037038c1e483341c25 Mon Sep 17 00:00:00 2001 From: Yuichi Nakamura Date: Mon, 15 Mar 2021 07:55:21 +0900 Subject: [PATCH] arm/rp2040: Fix SPI halfword DMA transfer --- arch/arm/src/rp2040/rp2040_dmac.c | 4 ++-- arch/arm/src/rp2040/rp2040_spi.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm/src/rp2040/rp2040_dmac.c b/arch/arm/src/rp2040/rp2040_dmac.c index b41f2ec0d5..b50423fb26 100644 --- a/arch/arm/src/rp2040/rp2040_dmac.c +++ b/arch/arm/src/rp2040/rp2040_dmac.c @@ -357,7 +357,7 @@ void rp2040_rxdmasetup(DMA_HANDLE handle, uintptr_t paddr, uintptr_t maddr, RP2040_DMA_CTRL_TRIG_TREQ_SEL_MASK) | ((ch << RP2040_DMA_CTRL_TRIG_CHAIN_TO_SHIFT) & RP2040_DMA_CTRL_TRIG_CHAIN_TO_MASK) | - config.size; + (config.size << RP2040_DMA_CTRL_TRIG_DATA_SIZE_SHIFT); if (!config.noincr) { @@ -418,7 +418,7 @@ void rp2040_txdmasetup(DMA_HANDLE handle, uintptr_t paddr, uintptr_t maddr, RP2040_DMA_CTRL_TRIG_TREQ_SEL_MASK) | ((ch << RP2040_DMA_CTRL_TRIG_CHAIN_TO_SHIFT) & RP2040_DMA_CTRL_TRIG_CHAIN_TO_MASK) | - config.size; + (config.size << RP2040_DMA_CTRL_TRIG_DATA_SIZE_SHIFT); if (!config.noincr) { diff --git a/arch/arm/src/rp2040/rp2040_spi.c b/arch/arm/src/rp2040/rp2040_spi.c index 4f67dbfee3..9d1e527224 100644 --- a/arch/arm/src/rp2040/rp2040_spi.c +++ b/arch/arm/src/rp2040/rp2040_spi.c @@ -1070,7 +1070,7 @@ static void spi_dmatxsetup(FAR struct rp2040_spidev_s *priv, } rp2040_txdmasetup(priv->txdmach, (uintptr_t)dst, (uintptr_t)txbuffer, - nwords, priv->txconfig); + nwords << priv->txconfig.size, priv->txconfig); } /**************************************************************************** @@ -1110,7 +1110,7 @@ static void spi_dmarxsetup(FAR struct rp2040_spidev_s *priv, } rp2040_rxdmasetup(priv->rxdmach, (uintptr_t)src, (uintptr_t)rxbuffer, - nwords, priv->rxconfig); + nwords << priv->rxconfig.size, priv->rxconfig); } /****************************************************************************