Skip to content

Commit 2320da1

Browse files
committed
dma_mcux_edma: Simplify mmap ifdefs
Halve all this ifdef code by making a macro function for the memory mapping. Signed-off-by: Declan Snyder <[email protected]>
1 parent 77d543a commit 2320da1

File tree

1 file changed

+10
-23
lines changed

1 file changed

+10
-23
lines changed

drivers/dma/dma_mcux_edma.c

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,12 @@ struct dma_mcux_edma_data {
140140
#define EDMA_HW_TCD_CSR(dev, ch) (DEV_BASE(dev)->CH[ch].TCD_CSR)
141141
#endif
142142

143+
#if defined(FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET) && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
144+
#define EDMA_MMAP_ADDR(addr) MEMORY_ConvertMemoryMapAddress(addr, kMEMORY_Local2DMA)
145+
#else
146+
#define EDMA_MMAP_ADDR(addr) addr
147+
#endif /* FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET */
148+
143149
#if DMA_MCUX_HAS_CHANNEL_GAP
144150
/*
145151
* The hardware channel (takes the gap into account) is used when access DMA registers.
@@ -350,22 +356,10 @@ static int dma_mcux_edma_configure_sg_loop(const struct device *dev,
350356
tcd = &(DEV_CFG(dev)->tcdpool[channel]
351357
[data->transfer_settings.write_idx]);
352358

353-
#if defined(FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET) && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
354-
EDMA_TCD_SADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) =
355-
MEMORY_ConvertMemoryMapAddress(
356-
(uint32_t)(block_config->source_address),
357-
kMEMORY_Local2DMA);
358-
EDMA_TCD_DADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) =
359-
MEMORY_ConvertMemoryMapAddress(
360-
(uint32_t)(block_config->dest_address),
361-
kMEMORY_Local2DMA);
362-
#else
363-
364359
EDMA_TCD_SADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) =
365-
block_config->source_address;
360+
EDMA_MMAP_ADDR(block_config->source_address);
366361
EDMA_TCD_DADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) =
367-
block_config->dest_address;
368-
#endif
362+
EDMA_MMAP_ADDR(block_config->dest_address);
369363
EDMA_TCD_BITER(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) =
370364
block_config->block_size / config->source_data_size;
371365
EDMA_TCD_CITER(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) =
@@ -698,15 +692,8 @@ static int edma_reload_loop(const struct device *dev, uint32_t channel,
698692
tcd = &(DEV_CFG(dev)->tcdpool[channel][data->transfer_settings.write_idx]);
699693
pre_tcd = &(DEV_CFG(dev)->tcdpool[channel][pre_idx]);
700694

701-
#if defined(FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET) && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
702-
EDMA_TCD_SADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) =
703-
MEMORY_ConvertMemoryMapAddress(src, kMEMORY_Local2DMA);
704-
EDMA_TCD_DADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) =
705-
MEMORY_ConvertMemoryMapAddress(dst, kMEMORY_Local2DMA);
706-
#else
707-
EDMA_TCD_SADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) = src;
708-
EDMA_TCD_DADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) = dst;
709-
#endif
695+
EDMA_TCD_SADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) = EDMA_MMAP_ADDR(src);
696+
EDMA_TCD_DADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) = EDMA_MMAP_ADDR(dst);
710697
EDMA_TCD_BITER(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) = size;
711698
EDMA_TCD_CITER(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) = size;
712699
/* Enable automatically stop */

0 commit comments

Comments
 (0)