Lines Matching refs:tcd
122 void EDMA_InstallTCD(DMA_Type *base, uint32_t channel, edma_tcd_t *tcd) in EDMA_InstallTCD() argument
125 assert(tcd != NULL); in EDMA_InstallTCD()
126 assert(((uint32_t)tcd & 0x1FU) == 0U); in EDMA_InstallTCD()
129 base->CH[channel].TCD_SADDR = tcd->SADDR; in EDMA_InstallTCD()
130 base->CH[channel].TCD_SOFF = tcd->SOFF; in EDMA_InstallTCD()
131 base->CH[channel].TCD_ATTR = tcd->ATTR; in EDMA_InstallTCD()
132 base->CH[channel].TCD_NBYTES_MLOFFNO = tcd->NBYTES; in EDMA_InstallTCD()
133 base->CH[channel].TCD_SLAST_SDA = tcd->SLAST; in EDMA_InstallTCD()
134 base->CH[channel].TCD_DADDR = tcd->DADDR; in EDMA_InstallTCD()
135 base->CH[channel].TCD_DOFF = tcd->DOFF; in EDMA_InstallTCD()
136 base->CH[channel].TCD_CITER_ELINKNO = tcd->CITER; in EDMA_InstallTCD()
137 base->CH[channel].TCD_DLAST_SGA = tcd->DLAST_SGA; in EDMA_InstallTCD()
140 base->CH[channel].TCD_CSR = tcd->CSR; in EDMA_InstallTCD()
141 base->CH[channel].TCD_BITER_ELINKNO = tcd->BITER; in EDMA_InstallTCD()
472 void EDMA_TcdReset(edma_tcd_t *tcd) in EDMA_TcdReset() argument
474 assert(tcd != NULL); in EDMA_TcdReset()
475 assert(((uint32_t)tcd & 0x1FU) == 0U); in EDMA_TcdReset()
478 tcd->SADDR = 0U; in EDMA_TcdReset()
479 tcd->SOFF = 0U; in EDMA_TcdReset()
480 tcd->ATTR = 0U; in EDMA_TcdReset()
481 tcd->NBYTES = 0U; in EDMA_TcdReset()
482 tcd->SLAST = 0U; in EDMA_TcdReset()
483 tcd->DADDR = 0U; in EDMA_TcdReset()
484 tcd->DOFF = 0U; in EDMA_TcdReset()
485 tcd->CITER = 0U; in EDMA_TcdReset()
486 tcd->DLAST_SGA = 0U; in EDMA_TcdReset()
488 tcd->CSR = DMA_TCD_CSR_DREQ(1U); in EDMA_TcdReset()
489 tcd->BITER = 0U; in EDMA_TcdReset()
522 void EDMA_TcdSetTransferConfig(edma_tcd_t *tcd, const edma_transfer_config_t *config, edma_tcd_t *n… in EDMA_TcdSetTransferConfig() argument
524 assert(tcd != NULL); in EDMA_TcdSetTransferConfig()
525 assert(((uint32_t)tcd & 0x1FU) == 0U); in EDMA_TcdSetTransferConfig()
533 tcd->SADDR = MEMORY_ConvertMemoryMapAddress(config->srcAddr, kMEMORY_Local2DMA); in EDMA_TcdSetTransferConfig()
535 tcd->DADDR = MEMORY_ConvertMemoryMapAddress(config->destAddr, kMEMORY_Local2DMA); in EDMA_TcdSetTransferConfig()
537 tcd->SADDR = config->srcAddr; in EDMA_TcdSetTransferConfig()
539 tcd->DADDR = config->destAddr; in EDMA_TcdSetTransferConfig()
542 …tcd->ATTR = DMA_TCD_ATTR_SSIZE(config->srcTransferSize) | DMA_TCD_ATTR_DSIZE(config->destTransferS… in EDMA_TcdSetTransferConfig()
544 tcd->SOFF = (uint16_t)config->srcOffset; in EDMA_TcdSetTransferConfig()
546 tcd->DOFF = (uint16_t)config->destOffset; in EDMA_TcdSetTransferConfig()
548 tcd->NBYTES = config->minorLoopBytes; in EDMA_TcdSetTransferConfig()
550 tcd->CITER = (uint16_t)config->majorLoopCounts; in EDMA_TcdSetTransferConfig()
552 tcd->BITER = (uint16_t)config->majorLoopCounts; in EDMA_TcdSetTransferConfig()
557 tcd->DLAST_SGA = MEMORY_ConvertMemoryMapAddress((uint32_t)nextTcd, kMEMORY_Local2DMA); in EDMA_TcdSetTransferConfig()
559 tcd->DLAST_SGA = (uint32_t)nextTcd; in EDMA_TcdSetTransferConfig()
570 tcd->CSR = (tcd->CSR | (uint16_t)DMA_TCD_CSR_ESG_MASK) & ~(uint16_t)DMA_TCD_CSR_DREQ_MASK; in EDMA_TcdSetTransferConfig()
584 void EDMA_TcdSetMinorOffsetConfig(edma_tcd_t *tcd, const edma_minor_offset_config_t *config) in EDMA_TcdSetMinorOffsetConfig() argument
586 assert(tcd != NULL); in EDMA_TcdSetMinorOffsetConfig()
587 assert(((uint32_t)tcd & 0x1FU) == 0U); in EDMA_TcdSetMinorOffsetConfig()
591 tmpreg = tcd->NBYTES; in EDMA_TcdSetMinorOffsetConfig()
597 tcd->NBYTES = tmpreg; in EDMA_TcdSetMinorOffsetConfig()
618 void EDMA_TcdSetChannelLink(edma_tcd_t *tcd, edma_channel_link_type_t type, uint32_t linkedChannel) in EDMA_TcdSetChannelLink() argument
620 assert(tcd != NULL); in EDMA_TcdSetChannelLink()
621 assert(((uint32_t)tcd & 0x1FU) == 0U); in EDMA_TcdSetChannelLink()
629 tcd->CITER |= DMA_TCD_CITER_ELINKYES_ELINK_MASK; in EDMA_TcdSetChannelLink()
630 tcd->BITER |= DMA_TCD_BITER_ELINKYES_ELINK_MASK; in EDMA_TcdSetChannelLink()
632 tmpreg = tcd->CITER & (~(uint16_t)DMA_TCD_CITER_ELINKYES_LINKCH_MASK); in EDMA_TcdSetChannelLink()
634 tcd->CITER = tmpreg; in EDMA_TcdSetChannelLink()
635 tmpreg = tcd->BITER & (~(uint16_t)DMA_TCD_BITER_ELINKYES_LINKCH_MASK); in EDMA_TcdSetChannelLink()
637 tcd->BITER = tmpreg; in EDMA_TcdSetChannelLink()
644 tcd->CSR |= DMA_TCD_CSR_MAJORELINK_MASK; in EDMA_TcdSetChannelLink()
646 tmpreg = tcd->CSR & (~(uint16_t)DMA_TCD_CSR_MAJORLINKCH_MASK); in EDMA_TcdSetChannelLink()
647 tcd->CSR = tmpreg | DMA_TCD_CSR_MAJORLINKCH(linkedChannel); in EDMA_TcdSetChannelLink()
651 tcd->CITER &= ~(uint16_t)DMA_TCD_CITER_ELINKYES_ELINK_MASK; in EDMA_TcdSetChannelLink()
652 tcd->BITER &= ~(uint16_t)DMA_TCD_BITER_ELINKYES_ELINK_MASK; in EDMA_TcdSetChannelLink()
653 tcd->CSR &= ~(uint16_t)DMA_TCD_CSR_MAJORELINK_MASK; in EDMA_TcdSetChannelLink()
670 void EDMA_TcdSetModulo(edma_tcd_t *tcd, edma_modulo_t srcModulo, edma_modulo_t destModulo) in EDMA_TcdSetModulo() argument
672 assert(tcd != NULL); in EDMA_TcdSetModulo()
673 assert(((uint32_t)tcd & 0x1FU) == 0U); in EDMA_TcdSetModulo()
677 tmpreg = tcd->ATTR & (~(uint16_t)(DMA_TCD_ATTR_SMOD_MASK | DMA_TCD_ATTR_DMOD_MASK)); in EDMA_TcdSetModulo()
678 tcd->ATTR = tmpreg | DMA_TCD_ATTR_DMOD(destModulo) | DMA_TCD_ATTR_SMOD(srcModulo); in EDMA_TcdSetModulo()
688 void EDMA_TcdEnableInterrupts(edma_tcd_t *tcd, uint32_t mask) in EDMA_TcdEnableInterrupts() argument
690 assert(tcd != NULL); in EDMA_TcdEnableInterrupts()
695 tcd->CSR |= DMA_TCD_CSR_INTMAJOR_MASK; in EDMA_TcdEnableInterrupts()
701 tcd->CSR |= DMA_TCD_CSR_INTHALF_MASK; in EDMA_TcdEnableInterrupts()
712 void EDMA_TcdDisableInterrupts(edma_tcd_t *tcd, uint32_t mask) in EDMA_TcdDisableInterrupts() argument
714 assert(tcd != NULL); in EDMA_TcdDisableInterrupts()
719 tcd->CSR &= ~(uint16_t)DMA_TCD_CSR_INTMAJOR_MASK; in EDMA_TcdDisableInterrupts()
725 tcd->CSR &= ~(uint16_t)DMA_TCD_CSR_INTHALF_MASK; in EDMA_TcdDisableInterrupts()