Lines Matching refs:tcd
46 static inline status_t EDMA_CheckErrata(EDMA_Type *base, edma_tcd_t *tcd);
91 static inline status_t EDMA_CheckErrata(EDMA_Type *base, edma_tcd_t *tcd) in EDMA_CheckErrata() argument
97 if ((EDMA_TCD_NBYTES(tcd, EDMA_TCD_TYPE(base)) % 8U) != 0U) in EDMA_CheckErrata()
115 void EDMA_InstallTCD(EDMA_Type *base, uint32_t channel, edma_tcd_t *tcd) in EDMA_InstallTCD() argument
118 assert(tcd != NULL); in EDMA_InstallTCD()
123 if ((EDMA_TCD_DLAST_SGA(tcd, EDMA_TCD_TYPE(base)) != 0U) && in EDMA_InstallTCD()
124 ((EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) & (uint16_t)DMA_CSR_ESG_MASK) != 0U) && in EDMA_InstallTCD()
125 (EDMA_CheckErrata(base, tcd) != kStatus_Success)) in EDMA_InstallTCD()
134 EDMA_TCD_SADDR(tcdRegs, EDMA_TCD_TYPE(base)) = EDMA_TCD_SADDR(tcd, EDMA_TCD_TYPE(base)); in EDMA_InstallTCD()
135 EDMA_TCD_SOFF(tcdRegs, EDMA_TCD_TYPE(base)) = EDMA_TCD_SOFF(tcd, EDMA_TCD_TYPE(base)); in EDMA_InstallTCD()
136 EDMA_TCD_ATTR(tcdRegs, EDMA_TCD_TYPE(base)) = EDMA_TCD_ATTR(tcd, EDMA_TCD_TYPE(base)); in EDMA_InstallTCD()
137 EDMA_TCD_NBYTES(tcdRegs, EDMA_TCD_TYPE(base)) = EDMA_TCD_NBYTES(tcd, EDMA_TCD_TYPE(base)); in EDMA_InstallTCD()
138 EDMA_TCD_SLAST(tcdRegs, EDMA_TCD_TYPE(base)) = EDMA_TCD_SLAST(tcd, EDMA_TCD_TYPE(base)); in EDMA_InstallTCD()
139 EDMA_TCD_DADDR(tcdRegs, EDMA_TCD_TYPE(base)) = EDMA_TCD_DADDR(tcd, EDMA_TCD_TYPE(base)); in EDMA_InstallTCD()
140 EDMA_TCD_DOFF(tcdRegs, EDMA_TCD_TYPE(base)) = EDMA_TCD_DOFF(tcd, EDMA_TCD_TYPE(base)); in EDMA_InstallTCD()
141 EDMA_TCD_CITER(tcdRegs, EDMA_TCD_TYPE(base)) = EDMA_TCD_CITER(tcd, EDMA_TCD_TYPE(base)); in EDMA_InstallTCD()
142 EDMA_TCD_DLAST_SGA(tcdRegs, EDMA_TCD_TYPE(base)) = EDMA_TCD_DLAST_SGA(tcd, EDMA_TCD_TYPE(base)); in EDMA_InstallTCD()
143 EDMA_TCD_CSR(tcdRegs, EDMA_TCD_TYPE(base)) = EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)); in EDMA_InstallTCD()
144 EDMA_TCD_BITER(tcdRegs, EDMA_TCD_TYPE(base)) = EDMA_TCD_BITER(tcd, EDMA_TCD_TYPE(base)); in EDMA_InstallTCD()
528 void EDMA_TcdResetExt(EDMA_Type *base, edma_tcd_t *tcd) in EDMA_TcdResetExt() argument
530 assert(tcd != NULL); in EDMA_TcdResetExt()
531 assert(((uint32_t)tcd & 0x1FU) == 0U); in EDMA_TcdResetExt()
534 EDMA_TCD_SADDR(tcd, EDMA_TCD_TYPE(base)) = 0U; in EDMA_TcdResetExt()
535 EDMA_TCD_SOFF(tcd, EDMA_TCD_TYPE(base)) = 0U; in EDMA_TcdResetExt()
536 EDMA_TCD_ATTR(tcd, EDMA_TCD_TYPE(base)) = 0U; in EDMA_TcdResetExt()
537 EDMA_TCD_NBYTES(tcd, EDMA_TCD_TYPE(base)) = 0U; in EDMA_TcdResetExt()
538 EDMA_TCD_SLAST(tcd, EDMA_TCD_TYPE(base)) = 0U; in EDMA_TcdResetExt()
539 EDMA_TCD_DADDR(tcd, EDMA_TCD_TYPE(base)) = 0U; in EDMA_TcdResetExt()
540 EDMA_TCD_DOFF(tcd, EDMA_TCD_TYPE(base)) = 0U; in EDMA_TcdResetExt()
541 EDMA_TCD_CITER(tcd, EDMA_TCD_TYPE(base)) = 0U; in EDMA_TcdResetExt()
542 EDMA_TCD_DLAST_SGA(tcd, EDMA_TCD_TYPE(base)) = 0U; in EDMA_TcdResetExt()
544 EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) = DMA_CSR_DREQ(1U); in EDMA_TcdResetExt()
545 EDMA_TCD_BITER(tcd, EDMA_TCD_TYPE(base)) = 0U; in EDMA_TcdResetExt()
577 edma_tcd_t *tcd, in EDMA_TcdSetTransferConfigExt() argument
581 assert(tcd != NULL); in EDMA_TcdSetTransferConfigExt()
582 assert(((uint32_t)tcd & 0x1FU) == 0U); in EDMA_TcdSetTransferConfigExt()
585 EDMA_ConfigChannelSoftwareTCDExt(base, tcd, config); in EDMA_TcdSetTransferConfigExt()
589 EDMA_TCD_DLAST_SGA(tcd, EDMA_TCD_TYPE(base)) = CONVERT_TO_DMA_ADDRESS(nextTcd); in EDMA_TcdSetTransferConfigExt()
599 EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) = in EDMA_TcdSetTransferConfigExt()
600 …(EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) | (uint16_t)DMA_CSR_ESG_MASK) & ~(uint16_t)DMA_CSR_DREQ_MA… in EDMA_TcdSetTransferConfigExt()
617 void EDMA_ConfigChannelSoftwareTCDExt(EDMA_Type *base, edma_tcd_t *tcd, const edma_transfer_config_… in EDMA_ConfigChannelSoftwareTCDExt() argument
631 EDMA_TCD_SADDR(tcd, EDMA_TCD_TYPE(base)) = CONVERT_TO_DMA_ADDRESS(transfer->srcAddr); in EDMA_ConfigChannelSoftwareTCDExt()
633 EDMA_TCD_DADDR(tcd, EDMA_TCD_TYPE(base)) = CONVERT_TO_DMA_ADDRESS(transfer->destAddr); in EDMA_ConfigChannelSoftwareTCDExt()
635 EDMA_TCD_ATTR(tcd, EDMA_TCD_TYPE(base)) = in EDMA_ConfigChannelSoftwareTCDExt()
639 EDMA_TCD_SOFF(tcd, EDMA_TCD_TYPE(base)) = (uint16_t)(transfer->srcOffset); in EDMA_ConfigChannelSoftwareTCDExt()
641 EDMA_TCD_DOFF(tcd, EDMA_TCD_TYPE(base)) = (uint16_t)(transfer->destOffset); in EDMA_ConfigChannelSoftwareTCDExt()
645 … EDMA_TCD_NBYTES(tcd, EDMA_TCD_TYPE(base)) = DMA_NBYTES_MLOFFYES_NBYTES(transfer->minorLoopBytes) | in EDMA_ConfigChannelSoftwareTCDExt()
652 … EDMA_TCD_NBYTES(tcd, EDMA_TCD_TYPE(base)) = DMA_NBYTES_MLOFFNO_NBYTES(transfer->minorLoopBytes); in EDMA_ConfigChannelSoftwareTCDExt()
656 EDMA_TCD_CITER(tcd, EDMA_TCD_TYPE(base)) = (uint16_t)(transfer->majorLoopCounts); in EDMA_ConfigChannelSoftwareTCDExt()
658 EDMA_TCD_BITER(tcd, EDMA_TCD_TYPE(base)) = (uint16_t)(transfer->majorLoopCounts); in EDMA_ConfigChannelSoftwareTCDExt()
660 EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) = DMA_CSR_DREQ(1U); in EDMA_ConfigChannelSoftwareTCDExt()
664 …EDMA_TCD_DLAST_SGA(tcd, EDMA_TCD_TYPE(base)) = CONVERT_TO_DMA_ADDRESS((uint32_t)((uint8_t *)transf… in EDMA_ConfigChannelSoftwareTCDExt()
665 EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) = in EDMA_ConfigChannelSoftwareTCDExt()
666 …(EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) | (uint16_t)DMA_CSR_ESG_MASK) & ~(uint16_t)DMA_CSR_DREQ_MA… in EDMA_ConfigChannelSoftwareTCDExt()
670 EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) &= ~(uint16_t)DMA_CSR_ESG_MASK; in EDMA_ConfigChannelSoftwareTCDExt()
671 EDMA_TCD_DLAST_SGA(tcd, EDMA_TCD_TYPE(base)) = (uint32_t)transfer->dstMajorLoopOffset; in EDMA_ConfigChannelSoftwareTCDExt()
675 …EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) |= (transfer->enabledInterruptMask & (~(uint16_t)kEDMA_Erro… in EDMA_ConfigChannelSoftwareTCDExt()
681 EDMA_TCD_CITER(tcd, EDMA_TCD_TYPE(base)) |= DMA_CITER_ELINKYES_ELINK_MASK; in EDMA_ConfigChannelSoftwareTCDExt()
682 EDMA_TCD_BITER(tcd, EDMA_TCD_TYPE(base)) |= DMA_BITER_ELINKYES_ELINK_MASK; in EDMA_ConfigChannelSoftwareTCDExt()
684 … tmpreg = EDMA_TCD_CITER(tcd, EDMA_TCD_TYPE(base)) & (~(uint16_t)DMA_CITER_ELINKYES_LINKCH_MASK); in EDMA_ConfigChannelSoftwareTCDExt()
686 EDMA_TCD_CITER(tcd, EDMA_TCD_TYPE(base)) = tmpreg; in EDMA_ConfigChannelSoftwareTCDExt()
687 … tmpreg = EDMA_TCD_BITER(tcd, EDMA_TCD_TYPE(base)) & (~(uint16_t)DMA_BITER_ELINKYES_LINKCH_MASK); in EDMA_ConfigChannelSoftwareTCDExt()
689 EDMA_TCD_BITER(tcd, EDMA_TCD_TYPE(base)) = tmpreg; in EDMA_ConfigChannelSoftwareTCDExt()
695 EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) |= DMA_CSR_MAJORELINK_MASK; in EDMA_ConfigChannelSoftwareTCDExt()
697 tmpreg = EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) & (~(uint16_t)DMA_CSR_MAJORLINKCH_MASK); in EDMA_ConfigChannelSoftwareTCDExt()
698 …EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) = tmpreg | DMA_CSR_MAJORLINKCH(transfer->majorLoopLinkChann… in EDMA_ConfigChannelSoftwareTCDExt()
704 EDMA_TCD_CITER(tcd, EDMA_TCD_TYPE(base)) &= ~(uint16_t)DMA_CITER_ELINKYES_ELINK_MASK; in EDMA_ConfigChannelSoftwareTCDExt()
705 EDMA_TCD_BITER(tcd, EDMA_TCD_TYPE(base)) &= ~(uint16_t)DMA_BITER_ELINKYES_ELINK_MASK; in EDMA_ConfigChannelSoftwareTCDExt()
706 EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) &= ~(uint16_t)DMA_CSR_MAJORELINK_MASK; in EDMA_ConfigChannelSoftwareTCDExt()
710 EDMA_TCD_SLAST(tcd, EDMA_TCD_TYPE(base)) = (uint32_t)transfer->srcMajorLoopOffset; in EDMA_ConfigChannelSoftwareTCDExt()
712 …tmpreg = EDMA_TCD_ATTR(tcd, EDMA_TCD_TYPE(base)) & (~(uint16_t)(DMA_ATTR_SMOD_MASK | DMA_ATTR_DMOD… in EDMA_ConfigChannelSoftwareTCDExt()
713 EDMA_TCD_ATTR(tcd, EDMA_TCD_TYPE(base)) = in EDMA_ConfigChannelSoftwareTCDExt()
727 void EDMA_TcdSetMinorOffsetConfigExt(EDMA_Type *base, edma_tcd_t *tcd, const edma_minor_offset_conf… in EDMA_TcdSetMinorOffsetConfigExt() argument
729 assert(tcd != NULL); in EDMA_TcdSetMinorOffsetConfigExt()
730 assert(((uint32_t)tcd & 0x1FU) == 0U); in EDMA_TcdSetMinorOffsetConfigExt()
734 tmpreg = EDMA_TCD_NBYTES(tcd, EDMA_TCD_TYPE(base)) & in EDMA_TcdSetMinorOffsetConfigExt()
739 EDMA_TCD_NBYTES(tcd, EDMA_TCD_TYPE(base)) = tmpreg; in EDMA_TcdSetMinorOffsetConfigExt()
752 void EDMA_TcdSetMajorOffsetConfigExt(EDMA_Type *base, edma_tcd_t *tcd, int32_t sourceOffset, int32_… in EDMA_TcdSetMajorOffsetConfigExt() argument
754 assert(tcd != NULL); in EDMA_TcdSetMajorOffsetConfigExt()
755 assert(((uint32_t)tcd & 0x1FU) == 0U); in EDMA_TcdSetMajorOffsetConfigExt()
757 EDMA_TCD_SLAST(tcd, EDMA_TCD_TYPE(base)) = (uint32_t)sourceOffset; in EDMA_TcdSetMajorOffsetConfigExt()
758 EDMA_TCD_DLAST_SGA(tcd, EDMA_TCD_TYPE(base)) = (uint32_t)destOffset; in EDMA_TcdSetMajorOffsetConfigExt()
777 void EDMA_TcdSetChannelLinkExt(EDMA_Type *base, edma_tcd_t *tcd, edma_channel_link_type_t type, uin… in EDMA_TcdSetChannelLinkExt() argument
779 assert(tcd != NULL); in EDMA_TcdSetChannelLinkExt()
780 assert(((uint32_t)tcd & 0x1FU) == 0U); in EDMA_TcdSetChannelLinkExt()
788 EDMA_TCD_CITER(tcd, EDMA_TCD_TYPE(base)) |= DMA_CITER_ELINKYES_ELINK_MASK; in EDMA_TcdSetChannelLinkExt()
789 EDMA_TCD_BITER(tcd, EDMA_TCD_TYPE(base)) |= DMA_BITER_ELINKYES_ELINK_MASK; in EDMA_TcdSetChannelLinkExt()
791 … tmpreg = EDMA_TCD_CITER(tcd, EDMA_TCD_TYPE(base)) & (~(uint16_t)DMA_CITER_ELINKYES_LINKCH_MASK); in EDMA_TcdSetChannelLinkExt()
793 EDMA_TCD_CITER(tcd, EDMA_TCD_TYPE(base)) = tmpreg; in EDMA_TcdSetChannelLinkExt()
794 … tmpreg = EDMA_TCD_BITER(tcd, EDMA_TCD_TYPE(base)) & (~(uint16_t)DMA_BITER_ELINKYES_LINKCH_MASK); in EDMA_TcdSetChannelLinkExt()
796 EDMA_TCD_BITER(tcd, EDMA_TCD_TYPE(base)) = tmpreg; in EDMA_TcdSetChannelLinkExt()
803 EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) |= DMA_CSR_MAJORELINK_MASK; in EDMA_TcdSetChannelLinkExt()
805 tmpreg = EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) & (~(uint16_t)DMA_CSR_MAJORLINKCH_MASK); in EDMA_TcdSetChannelLinkExt()
806 EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) = tmpreg | DMA_CSR_MAJORLINKCH(linkedChannel); in EDMA_TcdSetChannelLinkExt()
810 EDMA_TCD_CITER(tcd, EDMA_TCD_TYPE(base)) &= ~(uint16_t)DMA_CITER_ELINKYES_ELINK_MASK; in EDMA_TcdSetChannelLinkExt()
811 EDMA_TCD_BITER(tcd, EDMA_TCD_TYPE(base)) &= ~(uint16_t)DMA_BITER_ELINKYES_ELINK_MASK; in EDMA_TcdSetChannelLinkExt()
812 EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) &= ~(uint16_t)DMA_CSR_MAJORELINK_MASK; in EDMA_TcdSetChannelLinkExt()
828 void EDMA_TcdSetModuloExt(EDMA_Type *base, edma_tcd_t *tcd, edma_modulo_t srcModulo, edma_modulo_t … in EDMA_TcdSetModuloExt() argument
830 assert(tcd != NULL); in EDMA_TcdSetModuloExt()
831 assert(((uint32_t)tcd & 0x1FU) == 0U); in EDMA_TcdSetModuloExt()
835 …tmpreg = EDMA_TCD_ATTR(tcd, EDMA_TCD_TYPE(base)) & (~(uint16_t)(DMA_ATTR_SMOD_MASK | DMA_ATTR_DMOD… in EDMA_TcdSetModuloExt()
836 …EDMA_TCD_ATTR(tcd, EDMA_TCD_TYPE(base)) = tmpreg | DMA_ATTR_DMOD(destModulo) | DMA_ATTR_SMOD(srcMo… in EDMA_TcdSetModuloExt()
847 void EDMA_TcdEnableInterruptsExt(EDMA_Type *base, edma_tcd_t *tcd, uint32_t mask) in EDMA_TcdEnableInterruptsExt() argument
849 assert(tcd != NULL); in EDMA_TcdEnableInterruptsExt()
854 EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) |= DMA_CSR_INTMAJOR_MASK; in EDMA_TcdEnableInterruptsExt()
860 EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) |= DMA_CSR_INTHALF_MASK; in EDMA_TcdEnableInterruptsExt()
872 void EDMA_TcdDisableInterruptsExt(EDMA_Type *base, edma_tcd_t *tcd, uint32_t mask) in EDMA_TcdDisableInterruptsExt() argument
874 assert(tcd != NULL); in EDMA_TcdDisableInterruptsExt()
879 EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) &= ~(uint16_t)DMA_CSR_INTMAJOR_MASK; in EDMA_TcdDisableInterruptsExt()
885 EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(base)) &= ~(uint16_t)DMA_CSR_INTHALF_MASK; in EDMA_TcdDisableInterruptsExt()
900 void EDMA_TcdReset(edma_tcd_t *tcd) in EDMA_TcdReset() argument
902 assert(tcd != NULL); in EDMA_TcdReset()
905 EDMA_TCD_SADDR(tcd, kEDMA_EDMA4Flag) = 0U; in EDMA_TcdReset()
906 EDMA_TCD_SOFF(tcd, kEDMA_EDMA4Flag) = 0U; in EDMA_TcdReset()
907 EDMA_TCD_ATTR(tcd, kEDMA_EDMA4Flag) = 0U; in EDMA_TcdReset()
908 EDMA_TCD_NBYTES(tcd, kEDMA_EDMA4Flag) = 0U; in EDMA_TcdReset()
909 EDMA_TCD_SLAST(tcd, kEDMA_EDMA4Flag) = 0U; in EDMA_TcdReset()
910 EDMA_TCD_DADDR(tcd, kEDMA_EDMA4Flag) = 0U; in EDMA_TcdReset()
911 EDMA_TCD_DOFF(tcd, kEDMA_EDMA4Flag) = 0U; in EDMA_TcdReset()
912 EDMA_TCD_CITER(tcd, kEDMA_EDMA4Flag) = 0U; in EDMA_TcdReset()
913 EDMA_TCD_DLAST_SGA(tcd, kEDMA_EDMA4Flag) = 0U; in EDMA_TcdReset()
915 EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) = DMA_CSR_DREQ(1U); in EDMA_TcdReset()
916 EDMA_TCD_BITER(tcd, kEDMA_EDMA4Flag) = 0U; in EDMA_TcdReset()
949 void EDMA_TcdSetTransferConfig(edma_tcd_t *tcd, const edma_transfer_config_t *config, edma_tcd_t *n… in EDMA_TcdSetTransferConfig() argument
951 assert(tcd != NULL); in EDMA_TcdSetTransferConfig()
954 EDMA_ConfigChannelSoftwareTCD(tcd, config); in EDMA_TcdSetTransferConfig()
958 EDMA_TCD_DLAST_SGA(tcd, kEDMA_EDMA4Flag) = CONVERT_TO_DMA_ADDRESS(nextTcd); in EDMA_TcdSetTransferConfig()
968 EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) = in EDMA_TcdSetTransferConfig()
969 … (EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) | (uint16_t)DMA_CSR_ESG_MASK) & ~(uint16_t)DMA_CSR_DREQ_MASK; in EDMA_TcdSetTransferConfig()
988 void EDMA_ConfigChannelSoftwareTCD(edma_tcd_t *tcd, const edma_transfer_config_t *transfer) in EDMA_ConfigChannelSoftwareTCD() argument
1002 EDMA_TCD_SADDR(tcd, kEDMA_EDMA4Flag) = CONVERT_TO_DMA_ADDRESS(transfer->srcAddr); in EDMA_ConfigChannelSoftwareTCD()
1004 EDMA_TCD_DADDR(tcd, kEDMA_EDMA4Flag) = CONVERT_TO_DMA_ADDRESS(transfer->destAddr); in EDMA_ConfigChannelSoftwareTCD()
1006 EDMA_TCD_ATTR(tcd, kEDMA_EDMA4Flag) = in EDMA_ConfigChannelSoftwareTCD()
1010 EDMA_TCD_SOFF(tcd, kEDMA_EDMA4Flag) = (uint16_t)(transfer->srcOffset); in EDMA_ConfigChannelSoftwareTCD()
1012 EDMA_TCD_DOFF(tcd, kEDMA_EDMA4Flag) = (uint16_t)(transfer->destOffset); in EDMA_ConfigChannelSoftwareTCD()
1016 … EDMA_TCD_NBYTES(tcd, kEDMA_EDMA4Flag) = DMA_NBYTES_MLOFFYES_NBYTES(transfer->minorLoopBytes) | in EDMA_ConfigChannelSoftwareTCD()
1023 EDMA_TCD_NBYTES(tcd, kEDMA_EDMA4Flag) = DMA_NBYTES_MLOFFNO_NBYTES(transfer->minorLoopBytes); in EDMA_ConfigChannelSoftwareTCD()
1027 EDMA_TCD_CITER(tcd, kEDMA_EDMA4Flag) = (uint16_t)(transfer->majorLoopCounts); in EDMA_ConfigChannelSoftwareTCD()
1029 EDMA_TCD_BITER(tcd, kEDMA_EDMA4Flag) = (uint16_t)(transfer->majorLoopCounts); in EDMA_ConfigChannelSoftwareTCD()
1031 EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) = DMA_CSR_DREQ(1U); in EDMA_ConfigChannelSoftwareTCD()
1035 …EDMA_TCD_DLAST_SGA(tcd, kEDMA_EDMA4Flag) = CONVERT_TO_DMA_ADDRESS((uint32_t)((uint8_t *)transfer->… in EDMA_ConfigChannelSoftwareTCD()
1036 EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) = in EDMA_ConfigChannelSoftwareTCD()
1037 … (EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) | (uint16_t)DMA_CSR_ESG_MASK) & ~(uint16_t)DMA_CSR_DREQ_MASK; in EDMA_ConfigChannelSoftwareTCD()
1041 EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) &= ~(uint16_t)DMA_CSR_ESG_MASK; in EDMA_ConfigChannelSoftwareTCD()
1042 EDMA_TCD_DLAST_SGA(tcd, kEDMA_EDMA4Flag) = (uint32_t)transfer->dstMajorLoopOffset; in EDMA_ConfigChannelSoftwareTCD()
1046 …EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) |= (transfer->enabledInterruptMask & (~(uint16_t)kEDMA_ErrorInt… in EDMA_ConfigChannelSoftwareTCD()
1052 EDMA_TCD_CITER(tcd, kEDMA_EDMA4Flag) |= DMA_CITER_ELINKYES_ELINK_MASK; in EDMA_ConfigChannelSoftwareTCD()
1053 EDMA_TCD_BITER(tcd, kEDMA_EDMA4Flag) |= DMA_BITER_ELINKYES_ELINK_MASK; in EDMA_ConfigChannelSoftwareTCD()
1055 tmpreg = EDMA_TCD_CITER(tcd, kEDMA_EDMA4Flag) & (~(uint16_t)DMA_CITER_ELINKYES_LINKCH_MASK); in EDMA_ConfigChannelSoftwareTCD()
1057 EDMA_TCD_CITER(tcd, kEDMA_EDMA4Flag) = tmpreg; in EDMA_ConfigChannelSoftwareTCD()
1058 tmpreg = EDMA_TCD_BITER(tcd, kEDMA_EDMA4Flag) & (~(uint16_t)DMA_BITER_ELINKYES_LINKCH_MASK); in EDMA_ConfigChannelSoftwareTCD()
1060 EDMA_TCD_BITER(tcd, kEDMA_EDMA4Flag) = tmpreg; in EDMA_ConfigChannelSoftwareTCD()
1066 EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) |= DMA_CSR_MAJORELINK_MASK; in EDMA_ConfigChannelSoftwareTCD()
1068 …tmpreg = EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) & (~(uint16_t)DMA_CSR_MAJO… in EDMA_ConfigChannelSoftwareTCD()
1069 … EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) = tmpreg | DMA_CSR_MAJORLINKCH(transfer->majorLoopLinkChannel); in EDMA_ConfigChannelSoftwareTCD()
1075 EDMA_TCD_CITER(tcd, kEDMA_EDMA4Flag) &= ~(uint16_t)DMA_CITER_ELINKYES_ELINK_MASK; in EDMA_ConfigChannelSoftwareTCD()
1076 EDMA_TCD_BITER(tcd, kEDMA_EDMA4Flag) &= ~(uint16_t)DMA_BITER_ELINKYES_ELINK_MASK; in EDMA_ConfigChannelSoftwareTCD()
1077 EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) &= ~(uint16_t)DMA_CSR_MAJORELINK_MASK; in EDMA_ConfigChannelSoftwareTCD()
1081 EDMA_TCD_SLAST(tcd, kEDMA_EDMA4Flag) = (uint32_t)transfer->srcMajorLoopOffset; in EDMA_ConfigChannelSoftwareTCD()
1083 …tmpreg = EDMA_TCD_ATTR(tcd, kEDMA_EDMA4Flag) & (~(uint16_t)(DMA_ATTR_SMOD_MASK | DMA_ATTR_DMOD_MAS… in EDMA_ConfigChannelSoftwareTCD()
1084 EDMA_TCD_ATTR(tcd, kEDMA_EDMA4Flag) = in EDMA_ConfigChannelSoftwareTCD()
1100 void EDMA_TcdSetMinorOffsetConfig(edma_tcd_t *tcd, const edma_minor_offset_config_t *config) in EDMA_TcdSetMinorOffsetConfig() argument
1102 assert(tcd != NULL); in EDMA_TcdSetMinorOffsetConfig()
1106 tmpreg = EDMA_TCD_NBYTES(tcd, kEDMA_EDMA4Flag) & in EDMA_TcdSetMinorOffsetConfig()
1111 EDMA_TCD_NBYTES(tcd, kEDMA_EDMA4Flag) = tmpreg; in EDMA_TcdSetMinorOffsetConfig()
1126 void EDMA_TcdSetMajorOffsetConfig(edma_tcd_t *tcd, int32_t sourceOffset, int32_t destOffset) in EDMA_TcdSetMajorOffsetConfig() argument
1128 assert(tcd != NULL); in EDMA_TcdSetMajorOffsetConfig()
1130 EDMA_TCD_SLAST(tcd, kEDMA_EDMA4Flag) = (uint32_t)sourceOffset; in EDMA_TcdSetMajorOffsetConfig()
1131 EDMA_TCD_DLAST_SGA(tcd, kEDMA_EDMA4Flag) = (uint32_t)destOffset; in EDMA_TcdSetMajorOffsetConfig()
1152 void EDMA_TcdSetChannelLink(edma_tcd_t *tcd, edma_channel_link_type_t type, uint32_t linkedChannel) in EDMA_TcdSetChannelLink() argument
1154 assert(tcd != NULL); in EDMA_TcdSetChannelLink()
1162 EDMA_TCD_CITER(tcd, kEDMA_EDMA4Flag) |= DMA_CITER_ELINKYES_ELINK_MASK; in EDMA_TcdSetChannelLink()
1163 EDMA_TCD_BITER(tcd, kEDMA_EDMA4Flag) |= DMA_BITER_ELINKYES_ELINK_MASK; in EDMA_TcdSetChannelLink()
1165 tmpreg = EDMA_TCD_CITER(tcd, kEDMA_EDMA4Flag) & (~(uint16_t)DMA_CITER_ELINKYES_LINKCH_MASK); in EDMA_TcdSetChannelLink()
1167 EDMA_TCD_CITER(tcd, kEDMA_EDMA4Flag) = tmpreg; in EDMA_TcdSetChannelLink()
1168 tmpreg = EDMA_TCD_BITER(tcd, kEDMA_EDMA4Flag) & (~(uint16_t)DMA_BITER_ELINKYES_LINKCH_MASK); in EDMA_TcdSetChannelLink()
1170 EDMA_TCD_BITER(tcd, kEDMA_EDMA4Flag) = tmpreg; in EDMA_TcdSetChannelLink()
1177 EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) |= DMA_CSR_MAJORELINK_MASK; in EDMA_TcdSetChannelLink()
1179 …tmpreg = EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) & (~(uint16_t)DMA_CSR_MAJO… in EDMA_TcdSetChannelLink()
1180 EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) = tmpreg | DMA_CSR_MAJORLINKCH(linkedChannel); in EDMA_TcdSetChannelLink()
1184 EDMA_TCD_CITER(tcd, kEDMA_EDMA4Flag) &= ~(uint16_t)DMA_CITER_ELINKYES_ELINK_MASK; in EDMA_TcdSetChannelLink()
1185 EDMA_TCD_BITER(tcd, kEDMA_EDMA4Flag) &= ~(uint16_t)DMA_BITER_ELINKYES_ELINK_MASK; in EDMA_TcdSetChannelLink()
1186 EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) &= ~(uint16_t)DMA_CSR_MAJORELINK_MASK; in EDMA_TcdSetChannelLink()
1204 void EDMA_TcdSetModulo(edma_tcd_t *tcd, edma_modulo_t srcModulo, edma_modulo_t destModulo) in EDMA_TcdSetModulo() argument
1206 assert(tcd != NULL); in EDMA_TcdSetModulo()
1210 …tmpreg = EDMA_TCD_ATTR(tcd, kEDMA_EDMA4Flag) & (~(uint16_t)(DMA_ATTR_SMOD_MASK | DMA_ATTR_DMOD_MAS… in EDMA_TcdSetModulo()
1211 …EDMA_TCD_ATTR(tcd, kEDMA_EDMA4Flag) = tmpreg | DMA_ATTR_DMOD(destModulo) | DMA_ATTR_SMOD(srcModulo… in EDMA_TcdSetModulo()
1224 void EDMA_TcdEnableInterrupts(edma_tcd_t *tcd, uint32_t mask) in EDMA_TcdEnableInterrupts() argument
1226 assert(tcd != NULL); in EDMA_TcdEnableInterrupts()
1231 EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) |= DMA_CSR_INTMAJOR_MASK; in EDMA_TcdEnableInterrupts()
1237 EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) |= DMA_CSR_INTHALF_MASK; in EDMA_TcdEnableInterrupts()
1251 void EDMA_TcdDisableInterrupts(edma_tcd_t *tcd, uint32_t mask) in EDMA_TcdDisableInterrupts() argument
1253 assert(tcd != NULL); in EDMA_TcdDisableInterrupts()
1258 EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) &= ~(uint16_t)DMA_CSR_INTMAJOR_MASK; in EDMA_TcdDisableInterrupts()
1264 EDMA_TCD_CSR(tcd, kEDMA_EDMA4Flag) &= ~(uint16_t)DMA_CSR_INTHALF_MASK; in EDMA_TcdDisableInterrupts()
1741 edma_tcd_t *tcd, in EDMA_PrepareTransferTCD() argument
1752 assert(tcd != NULL); in EDMA_PrepareTransferTCD()
1787 EDMA_TcdResetExt(handle->base, tcd); in EDMA_PrepareTransferTCD()
1795 EDMA_TCD_SADDR(tcd, EDMA_TCD_TYPE(handle->base)) = CONVERT_TO_DMA_ADDRESS((uint32_t *)srcAddr); in EDMA_PrepareTransferTCD()
1797 EDMA_TCD_DADDR(tcd, EDMA_TCD_TYPE(handle->base)) = CONVERT_TO_DMA_ADDRESS((uint32_t *)destAddr); in EDMA_PrepareTransferTCD()
1799 …EDMA_TCD_ATTR(tcd, EDMA_TCD_TYPE(handle->base)) = DMA_ATTR_SSIZE(srcTransferSize) | DMA_ATTR_DSIZE… in EDMA_PrepareTransferTCD()
1802 EDMA_TCD_SOFF(tcd, EDMA_TCD_TYPE(handle->base)) = (uint16_t)(srcOffset); in EDMA_PrepareTransferTCD()
1804 EDMA_TCD_DOFF(tcd, EDMA_TCD_TYPE(handle->base)) = (uint16_t)(destOffset); in EDMA_PrepareTransferTCD()
1806 EDMA_TCD_NBYTES(tcd, EDMA_TCD_TYPE(handle->base)) = DMA_NBYTES_MLOFFNO_NBYTES(bytesEachRequest); in EDMA_PrepareTransferTCD()
1809 EDMA_TCD_CITER(tcd, EDMA_TCD_TYPE(handle->base)) = (uint16_t)(transferBytes / bytesEachRequest); in EDMA_PrepareTransferTCD()
1811 EDMA_TCD_BITER(tcd, EDMA_TCD_TYPE(handle->base)) = (uint16_t)(transferBytes / bytesEachRequest); in EDMA_PrepareTransferTCD()
1813 EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(handle->base)) = DMA_CSR_DREQ(1U); in EDMA_PrepareTransferTCD()
1817 EDMA_TCD_DLAST_SGA(tcd, EDMA_TCD_TYPE(handle->base)) = CONVERT_TO_DMA_ADDRESS(nextTcd); in EDMA_PrepareTransferTCD()
1827 EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(handle->base)) = in EDMA_PrepareTransferTCD()
1828 …(EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(handle->base)) | (uint16_t)DMA_CSR_ESG_MASK) & ~(uint16_t)DMA_CSR… in EDMA_PrepareTransferTCD()
1832 EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(handle->base)) |= in EDMA_PrepareTransferTCD()
1833 (EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(handle->base)) & (~(uint16_t)kEDMA_ErrorInterruptEnable)) | in EDMA_PrepareTransferTCD()
1890 status_t EDMA_SubmitTransferTCD(edma_handle_t *handle, edma_tcd_t *tcd) in EDMA_SubmitTransferTCD() argument
1923 EDMA_InstallTCD(handle->base, handle->channel, tcd); in EDMA_SubmitTransferTCD()
1968 (void)memcpy(&handle->tcdPool[currentTcd], tcd, sizeof(edma_tcd_t)); in EDMA_SubmitTransferTCD()
1973 if ((EDMA_TCD_DLAST_SGA(tcd, EDMA_TCD_TYPE(handle->base)) == 0U) || in EDMA_SubmitTransferTCD()
1974 ((EDMA_TCD_CSR(tcd, EDMA_TCD_TYPE(handle->base)) & DMA_CSR_ESG_MASK) == 0U)) in EDMA_SubmitTransferTCD()