Skip to content

Commit 2ab4266

Browse files
committed
drivers: dma: sam: update to support sama7g5 XDMAC peripheral
Update the driver to support sama7g5 XDMAC peripheral. Signed-off-by: Tony Han <tony.han@microchip.com>
1 parent b4236c3 commit 2ab4266

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

drivers/dma/dma_sam_xdmac.c

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,10 @@ static int sam_xdmac_config(const struct device *dev, uint32_t channel,
243243
| XDMAC_CC_MBSIZE(burst_size == 0U ? 0 : burst_size - 1)
244244
| XDMAC_CC_SAM_INCREMENTED_AM
245245
| XDMAC_CC_DAM_INCREMENTED_AM;
246+
#if defined(CONFIG_SOC_SERIES_SAMA7G5)
247+
/* When a memory-to-memory transfer is performed, configure PERID to 0x7F. */
248+
cfg->dma_slot = 0x7F;
249+
#endif
246250
break;
247251
case MEMORY_TO_PERIPHERAL:
248252
channel_cfg.cfg =
@@ -264,11 +268,14 @@ static int sam_xdmac_config(const struct device *dev, uint32_t channel,
264268
return -EINVAL;
265269
}
266270

267-
channel_cfg.cfg |=
268-
XDMAC_CC_DWIDTH(data_size)
269-
| XDMAC_CC_SIF_AHB_IF1
270-
| XDMAC_CC_DIF_AHB_IF1
271-
| XDMAC_CC_PERID(cfg->dma_slot);
271+
channel_cfg.cfg |= XDMAC_CC_DWIDTH(data_size) |
272+
#ifdef XDMAC_CC_SIF_AHB_IF1
273+
XDMAC_CC_SIF_AHB_IF1 |
274+
#endif
275+
#ifdef XDMAC_CC_DIF_AHB_IF1
276+
XDMAC_CC_DIF_AHB_IF1 |
277+
#endif
278+
XDMAC_CC_PERID(cfg->dma_slot);
272279
channel_cfg.ds_msp = 0U;
273280
channel_cfg.sus = 0U;
274281
channel_cfg.dus = 0U;

0 commit comments

Comments
 (0)