diff --git a/arch/arm/src/stm32l4/stm32l4x6xx_dma.c b/arch/arm/src/stm32l4/stm32l4x6xx_dma.c index a45d33970bf..eb91e3a7547 100644 --- a/arch/arm/src/stm32l4/stm32l4x6xx_dma.c +++ b/arch/arm/src/stm32l4/stm32l4x6xx_dma.c @@ -523,7 +523,7 @@ void stm32l4_dmasetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, /* define peripheral indicated in dmach->function */ regval = dmabase_getreg(dmach, STM32L4_DMA_CSELR_OFFSET); - regval &= (0x0f << (dmach->chan << 2)); + regval &= ~(0x0f << (dmach->chan << 2)); regval |= (dmach->function << (dmach->chan << 2)); dmabase_putreg(dmach, STM32L4_DMA_CSELR_OFFSET, regval); }