Lines Matching refs:hdma
206 static void DMA_SetConfig(DMA_HandleTypeDef const *const hdma,
210 static void DMA_Init(DMA_HandleTypeDef const *const hdma);
242 HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *const hdma) in HAL_DMA_Init() argument
248 if (hdma == NULL) in HAL_DMA_Init()
254 assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); in HAL_DMA_Init()
255 assert_param(IS_DMA_DIRECTION(hdma->Init.Direction)); in HAL_DMA_Init()
256 if (hdma->Init.Direction != DMA_MEMORY_TO_MEMORY) in HAL_DMA_Init()
258 assert_param(IS_DMA_REQUEST(hdma->Init.Request)); in HAL_DMA_Init()
260 assert_param(IS_DMA_BLOCK_HW_REQUEST(hdma->Init.BlkHWRequest)); in HAL_DMA_Init()
261 assert_param(IS_DMA_SOURCE_INC(hdma->Init.SrcInc)); in HAL_DMA_Init()
262 assert_param(IS_DMA_DESTINATION_INC(hdma->Init.DestInc)); in HAL_DMA_Init()
263 assert_param(IS_DMA_SOURCE_DATA_WIDTH(hdma->Init.SrcDataWidth)); in HAL_DMA_Init()
264 assert_param(IS_DMA_DESTINATION_DATA_WIDTH(hdma->Init.DestDataWidth)); in HAL_DMA_Init()
265 assert_param(IS_DMA_PRIORITY(hdma->Init.Priority)); in HAL_DMA_Init()
266 assert_param(IS_DMA_TCEM_EVENT_MODE(hdma->Init.TransferEventMode)); in HAL_DMA_Init()
267 assert_param(IS_DMA_MODE(hdma->Init.Mode)); in HAL_DMA_Init()
268 if (hdma->Init.Mode == DMA_PFCTRL) in HAL_DMA_Init()
270 assert_param(IS_DMA_PFREQ_INSTANCE(hdma->Instance)); in HAL_DMA_Init()
273 if (IS_GPDMA_INSTANCE(hdma->Instance) != 0U) in HAL_DMA_Init()
275 assert_param(IS_DMA_BURST_LENGTH(hdma->Init.SrcBurstLength)); in HAL_DMA_Init()
276 assert_param(IS_DMA_BURST_LENGTH(hdma->Init.DestBurstLength)); in HAL_DMA_Init()
277 assert_param(IS_DMA_TRANSFER_ALLOCATED_PORT(hdma->Init.TransferAllocatedPort)); in HAL_DMA_Init()
281 __HAL_UNLOCK(hdma); in HAL_DMA_Init()
284 hdma->State = HAL_DMA_STATE_BUSY; in HAL_DMA_Init()
287 __HAL_DMA_DISABLE(hdma); in HAL_DMA_Init()
290 while ((hdma->Instance->CCR & DMA_CCR_EN) != 0U) in HAL_DMA_Init()
296 hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT; in HAL_DMA_Init()
299 hdma->State = HAL_DMA_STATE_ERROR; in HAL_DMA_Init()
306 DMA_Init(hdma); in HAL_DMA_Init()
309 hdma->Mode = hdma->Init.Mode; in HAL_DMA_Init()
312 hdma->ErrorCode = HAL_DMA_ERROR_NONE; in HAL_DMA_Init()
315 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_Init()
326 HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *const hdma) in HAL_DMA_DeInit() argument
334 if (hdma == NULL) in HAL_DMA_DeInit()
340 assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); in HAL_DMA_DeInit()
343 p_dma_instance = GET_DMA_INSTANCE(hdma); in HAL_DMA_DeInit()
346 __HAL_DMA_DISABLE(hdma); in HAL_DMA_DeInit()
349 while ((hdma->Instance->CCR & DMA_CCR_EN) != 0U) in HAL_DMA_DeInit()
355 hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT; in HAL_DMA_DeInit()
358 hdma->State = HAL_DMA_STATE_ERROR; in HAL_DMA_DeInit()
365 hdma->Instance->CLBAR = 0U; in HAL_DMA_DeInit()
366 hdma->Instance->CCR = 0U; in HAL_DMA_DeInit()
367 hdma->Instance->CTR1 = 0U; in HAL_DMA_DeInit()
368 hdma->Instance->CTR2 = 0U; in HAL_DMA_DeInit()
369 hdma->Instance->CBR1 = 0U; in HAL_DMA_DeInit()
370 hdma->Instance->CSAR = 0U; in HAL_DMA_DeInit()
371 hdma->Instance->CDAR = 0U; in HAL_DMA_DeInit()
372 hdma->Instance->CLLR = 0U; in HAL_DMA_DeInit()
375 if (IS_DMA_2D_ADDRESSING_INSTANCE(hdma->Instance) != 0U) in HAL_DMA_DeInit()
377 hdma->Instance->CTR3 = 0U; in HAL_DMA_DeInit()
378 hdma->Instance->CBR2 = 0U; in HAL_DMA_DeInit()
382 CLEAR_BIT(p_dma_instance->PRIVCFGR, (1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU))); in HAL_DMA_DeInit()
386 CLEAR_BIT(p_dma_instance->SECCFGR, (1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU))); in HAL_DMA_DeInit()
390 …__HAL_DMA_CLEAR_FLAG(hdma, (DMA_FLAG_TC | DMA_FLAG_HT | DMA_FLAG_DTE | DMA_FLAG_ULE | DMA_FLAG_USE… in HAL_DMA_DeInit()
394 hdma->XferCpltCallback = NULL; in HAL_DMA_DeInit()
395 hdma->XferHalfCpltCallback = NULL; in HAL_DMA_DeInit()
396 hdma->XferErrorCallback = NULL; in HAL_DMA_DeInit()
397 hdma->XferAbortCallback = NULL; in HAL_DMA_DeInit()
398 hdma->XferSuspendCallback = NULL; in HAL_DMA_DeInit()
401 hdma->LinkedListQueue = NULL; in HAL_DMA_DeInit()
404 if (hdma->Parent != NULL) in HAL_DMA_DeInit()
406 hdma->Parent = NULL; in HAL_DMA_DeInit()
410 hdma->Mode = DMA_NORMAL; in HAL_DMA_DeInit()
413 hdma->ErrorCode = HAL_DMA_ERROR_NONE; in HAL_DMA_DeInit()
416 hdma->State = HAL_DMA_STATE_RESET; in HAL_DMA_DeInit()
419 __HAL_UNLOCK(hdma); in HAL_DMA_DeInit()
466 HAL_StatusTypeDef HAL_DMA_Start(DMA_HandleTypeDef *const hdma, in HAL_DMA_Start() argument
472 if (hdma == NULL) in HAL_DMA_Start()
481 __HAL_LOCK(hdma); in HAL_DMA_Start()
484 if (hdma->State == HAL_DMA_STATE_READY) in HAL_DMA_Start()
487 hdma->State = HAL_DMA_STATE_BUSY; in HAL_DMA_Start()
490 hdma->ErrorCode = HAL_DMA_ERROR_NONE; in HAL_DMA_Start()
493 DMA_SetConfig(hdma, SrcAddress, DstAddress, SrcDataSize); in HAL_DMA_Start()
496 __HAL_DMA_ENABLE(hdma); in HAL_DMA_Start()
501 hdma->ErrorCode = HAL_DMA_ERROR_BUSY; in HAL_DMA_Start()
504 __HAL_UNLOCK(hdma); in HAL_DMA_Start()
521 HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *const hdma, in HAL_DMA_Start_IT() argument
527 if (hdma == NULL) in HAL_DMA_Start_IT()
536 __HAL_LOCK(hdma); in HAL_DMA_Start_IT()
539 if (hdma->State == HAL_DMA_STATE_READY) in HAL_DMA_Start_IT()
542 hdma->State = HAL_DMA_STATE_BUSY; in HAL_DMA_Start_IT()
545 hdma->ErrorCode = HAL_DMA_ERROR_NONE; in HAL_DMA_Start_IT()
548 DMA_SetConfig(hdma, SrcAddress, DstAddress, SrcDataSize); in HAL_DMA_Start_IT()
551 __HAL_DMA_ENABLE_IT(hdma, (DMA_IT_TC | DMA_IT_DTE | DMA_IT_ULE | DMA_IT_USE | DMA_IT_TO)); in HAL_DMA_Start_IT()
554 if (hdma->XferHalfCpltCallback != NULL) in HAL_DMA_Start_IT()
557 __HAL_DMA_ENABLE_IT(hdma, DMA_IT_HT); in HAL_DMA_Start_IT()
561 if (hdma->XferSuspendCallback != NULL) in HAL_DMA_Start_IT()
564 __HAL_DMA_ENABLE_IT(hdma, DMA_IT_SUSP); in HAL_DMA_Start_IT()
568 __HAL_DMA_ENABLE(hdma); in HAL_DMA_Start_IT()
573 hdma->ErrorCode = HAL_DMA_ERROR_BUSY; in HAL_DMA_Start_IT()
576 __HAL_UNLOCK(hdma); in HAL_DMA_Start_IT()
593 HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *const hdma) in HAL_DMA_Abort() argument
599 if (hdma == NULL) in HAL_DMA_Abort()
605 if (hdma->State != HAL_DMA_STATE_BUSY) in HAL_DMA_Abort()
608 hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; in HAL_DMA_Abort()
611 __HAL_UNLOCK(hdma); in HAL_DMA_Abort()
618 hdma->Instance->CCR |= DMA_CCR_SUSP; in HAL_DMA_Abort()
621 hdma->State = HAL_DMA_STATE_SUSPEND; in HAL_DMA_Abort()
624 while ((hdma->Instance->CSR & DMA_CSR_SUSPF) == 0U) in HAL_DMA_Abort()
630 hdma->ErrorCode |= HAL_DMA_ERROR_TIMEOUT; in HAL_DMA_Abort()
633 hdma->State = HAL_DMA_STATE_ERROR; in HAL_DMA_Abort()
636 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_Abort()
639 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_Abort()
643 __HAL_UNLOCK(hdma); in HAL_DMA_Abort()
650 hdma->Instance->CCR |= DMA_CCR_RESET; in HAL_DMA_Abort()
653 hdma->State = HAL_DMA_STATE_ABORT; in HAL_DMA_Abort()
656 …__HAL_DMA_CLEAR_FLAG(hdma, (DMA_FLAG_TC | DMA_FLAG_HT | DMA_FLAG_DTE | DMA_FLAG_ULE | DMA_FLAG_USE… in HAL_DMA_Abort()
660 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_Abort()
663 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_Abort()
666 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_Abort()
669 hdma->Instance->CBR1 = 0U; in HAL_DMA_Abort()
673 __HAL_UNLOCK(hdma); in HAL_DMA_Abort()
685 HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *const hdma) in HAL_DMA_Abort_IT() argument
688 if (hdma == NULL) in HAL_DMA_Abort_IT()
694 if (hdma->State != HAL_DMA_STATE_BUSY) in HAL_DMA_Abort_IT()
697 hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; in HAL_DMA_Abort_IT()
704 hdma->State = HAL_DMA_STATE_ABORT; in HAL_DMA_Abort_IT()
707 hdma->Instance->CCR |= (DMA_CCR_SUSP | DMA_CCR_SUSPIE); in HAL_DMA_Abort_IT()
721 HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *const hdma, in HAL_DMA_PollForTransfer() argument
731 if (hdma == NULL) in HAL_DMA_PollForTransfer()
740 if (hdma->State != HAL_DMA_STATE_BUSY) in HAL_DMA_PollForTransfer()
743 hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; in HAL_DMA_PollForTransfer()
746 __HAL_UNLOCK(hdma); in HAL_DMA_PollForTransfer()
752 if ((hdma->Mode & DMA_LINKEDLIST_CIRCULAR) == DMA_LINKEDLIST_CIRCULAR) in HAL_DMA_PollForTransfer()
755 hdma->ErrorCode = HAL_DMA_ERROR_NOT_SUPPORTED; in HAL_DMA_PollForTransfer()
764 tmp_csr = hdma->Instance->CSR; in HAL_DMA_PollForTransfer()
774 hdma->ErrorCode |= HAL_DMA_ERROR_TIMEOUT; in HAL_DMA_PollForTransfer()
783 (void)HAL_DMA_Abort(hdma); in HAL_DMA_PollForTransfer()
790 tmp_csr = hdma->Instance->CSR; in HAL_DMA_PollForTransfer()
797 hdma->ErrorCode |= HAL_DMA_ERROR_TO; in HAL_DMA_PollForTransfer()
800 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_TO); in HAL_DMA_PollForTransfer()
810 hdma->ErrorCode |= HAL_DMA_ERROR_DTE; in HAL_DMA_PollForTransfer()
813 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_DTE); in HAL_DMA_PollForTransfer()
820 hdma->ErrorCode |= HAL_DMA_ERROR_ULE; in HAL_DMA_PollForTransfer()
823 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_ULE); in HAL_DMA_PollForTransfer()
830 hdma->ErrorCode |= HAL_DMA_ERROR_USE; in HAL_DMA_PollForTransfer()
833 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_USE); in HAL_DMA_PollForTransfer()
837 hdma->Instance->CCR |= DMA_CCR_RESET; in HAL_DMA_PollForTransfer()
840 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_PollForTransfer()
843 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_PollForTransfer()
846 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_PollForTransfer()
850 __HAL_UNLOCK(hdma); in HAL_DMA_PollForTransfer()
859 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_HT); in HAL_DMA_PollForTransfer()
864 __HAL_DMA_CLEAR_FLAG(hdma, (DMA_FLAG_TC | DMA_FLAG_HT)); in HAL_DMA_PollForTransfer()
867 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_PollForTransfer()
870 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_PollForTransfer()
873 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_PollForTransfer()
877 __HAL_UNLOCK(hdma); in HAL_DMA_PollForTransfer()
893 void HAL_DMA_IRQHandler(DMA_HandleTypeDef *const hdma) in HAL_DMA_IRQHandler() argument
895 const DMA_TypeDef *p_dma_instance = GET_DMA_INSTANCE(hdma); in HAL_DMA_IRQHandler()
896 uint32_t global_it_flag = 1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU); in HAL_DMA_IRQHandler()
913 if ((__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_DTE) != 0U)) in HAL_DMA_IRQHandler()
916 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_DTE) != 0U) in HAL_DMA_IRQHandler()
919 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_DTE); in HAL_DMA_IRQHandler()
922 hdma->ErrorCode |= HAL_DMA_ERROR_DTE; in HAL_DMA_IRQHandler()
927 if ((__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_ULE) != 0U)) in HAL_DMA_IRQHandler()
930 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_ULE) != 0U) in HAL_DMA_IRQHandler()
933 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_ULE); in HAL_DMA_IRQHandler()
936 hdma->ErrorCode |= HAL_DMA_ERROR_ULE; in HAL_DMA_IRQHandler()
941 if ((__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_USE) != 0U)) in HAL_DMA_IRQHandler()
944 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_USE) != 0U) in HAL_DMA_IRQHandler()
947 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_USE); in HAL_DMA_IRQHandler()
950 hdma->ErrorCode |= HAL_DMA_ERROR_USE; in HAL_DMA_IRQHandler()
955 if ((__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_TO) != 0U)) in HAL_DMA_IRQHandler()
958 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TO) != 0U) in HAL_DMA_IRQHandler()
961 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_TO); in HAL_DMA_IRQHandler()
964 hdma->ErrorCode |= HAL_DMA_ERROR_TO; in HAL_DMA_IRQHandler()
969 if ((__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_HT) != 0U)) in HAL_DMA_IRQHandler()
972 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_HT) != 0U) in HAL_DMA_IRQHandler()
975 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_HT); in HAL_DMA_IRQHandler()
978 if (hdma->XferHalfCpltCallback != NULL) in HAL_DMA_IRQHandler()
981 hdma->XferHalfCpltCallback(hdma); in HAL_DMA_IRQHandler()
987 if ((__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_SUSP) != 0U)) in HAL_DMA_IRQHandler()
990 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_SUSP) != 0U) in HAL_DMA_IRQHandler()
993 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_SUSP); in HAL_DMA_IRQHandler()
996 if (hdma->State == HAL_DMA_STATE_ABORT) in HAL_DMA_IRQHandler()
999 __HAL_DMA_DISABLE_IT(hdma, DMA_IT_SUSP); in HAL_DMA_IRQHandler()
1002 hdma->Instance->CCR |= DMA_CCR_RESET; in HAL_DMA_IRQHandler()
1005 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_IRQHandler()
1008 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_IRQHandler()
1011 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_IRQHandler()
1014 hdma->Instance->CBR1 = 0U; in HAL_DMA_IRQHandler()
1018 __HAL_UNLOCK(hdma); in HAL_DMA_IRQHandler()
1021 if (hdma->XferAbortCallback != NULL) in HAL_DMA_IRQHandler()
1024 hdma->XferAbortCallback(hdma); in HAL_DMA_IRQHandler()
1032 hdma->State = HAL_DMA_STATE_SUSPEND; in HAL_DMA_IRQHandler()
1035 if (hdma->XferSuspendCallback != NULL) in HAL_DMA_IRQHandler()
1038 hdma->XferSuspendCallback(hdma); in HAL_DMA_IRQHandler()
1045 if ((__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_TC) != 0U)) in HAL_DMA_IRQHandler()
1048 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TC) != 0U) in HAL_DMA_IRQHandler()
1051 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_IRQHandler()
1054 if (hdma->Instance->CLLR == 0U) in HAL_DMA_IRQHandler()
1056 if (hdma->Instance->CBR1 == 0U) in HAL_DMA_IRQHandler()
1059 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_IRQHandler()
1062 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_IRQHandler()
1069 if (hdma->Instance->CBR1 == 0U) in HAL_DMA_IRQHandler()
1072 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_IRQHandler()
1077 __HAL_DMA_CLEAR_FLAG(hdma, (DMA_FLAG_TC | DMA_FLAG_HT)); in HAL_DMA_IRQHandler()
1080 __HAL_UNLOCK(hdma); in HAL_DMA_IRQHandler()
1083 if (hdma->XferCpltCallback != NULL) in HAL_DMA_IRQHandler()
1086 hdma->XferCpltCallback(hdma); in HAL_DMA_IRQHandler()
1092 if (hdma->ErrorCode != HAL_DMA_ERROR_NONE) in HAL_DMA_IRQHandler()
1095 hdma->Instance->CCR |= DMA_CCR_RESET; in HAL_DMA_IRQHandler()
1098 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_IRQHandler()
1101 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_IRQHandler()
1104 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_IRQHandler()
1108 __HAL_UNLOCK(hdma); in HAL_DMA_IRQHandler()
1111 if (hdma->XferErrorCallback != NULL) in HAL_DMA_IRQHandler()
1114 hdma->XferErrorCallback(hdma); in HAL_DMA_IRQHandler()
1129 HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *const hdma, in HAL_DMA_RegisterCallback() argument
1136 if (hdma == NULL) in HAL_DMA_RegisterCallback()
1142 if (hdma->State == HAL_DMA_STATE_READY) in HAL_DMA_RegisterCallback()
1150 hdma->XferCpltCallback = pCallback; in HAL_DMA_RegisterCallback()
1157 hdma->XferHalfCpltCallback = pCallback; in HAL_DMA_RegisterCallback()
1164 hdma->XferErrorCallback = pCallback; in HAL_DMA_RegisterCallback()
1171 hdma->XferAbortCallback = pCallback; in HAL_DMA_RegisterCallback()
1178 hdma->XferSuspendCallback = pCallback; in HAL_DMA_RegisterCallback()
1208 HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *const hdma, in HAL_DMA_UnRegisterCallback() argument
1214 if (hdma == NULL) in HAL_DMA_UnRegisterCallback()
1220 if (hdma->State == HAL_DMA_STATE_READY) in HAL_DMA_UnRegisterCallback()
1228 hdma->XferCpltCallback = NULL; in HAL_DMA_UnRegisterCallback()
1235 hdma->XferHalfCpltCallback = NULL; in HAL_DMA_UnRegisterCallback()
1242 hdma->XferErrorCallback = NULL; in HAL_DMA_UnRegisterCallback()
1249 hdma->XferAbortCallback = NULL; in HAL_DMA_UnRegisterCallback()
1256 hdma->XferSuspendCallback = NULL; in HAL_DMA_UnRegisterCallback()
1263 hdma->XferCpltCallback = NULL; in HAL_DMA_UnRegisterCallback()
1264 hdma->XferHalfCpltCallback = NULL; in HAL_DMA_UnRegisterCallback()
1265 hdma->XferErrorCallback = NULL; in HAL_DMA_UnRegisterCallback()
1266 hdma->XferAbortCallback = NULL; in HAL_DMA_UnRegisterCallback()
1267 hdma->XferSuspendCallback = NULL; in HAL_DMA_UnRegisterCallback()
1316 HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef const *const hdma) in HAL_DMA_GetState() argument
1319 return hdma->State; in HAL_DMA_GetState()
1328 uint32_t HAL_DMA_GetError(DMA_HandleTypeDef const *const hdma) in HAL_DMA_GetError() argument
1331 return hdma->ErrorCode; in HAL_DMA_GetError()
1372 HAL_StatusTypeDef HAL_DMA_ConfigChannelAttributes(DMA_HandleTypeDef *const hdma, uint32_t ChannelAt… in HAL_DMA_ConfigChannelAttributes() argument
1378 if (hdma == NULL) in HAL_DMA_ConfigChannelAttributes()
1387 p_dma_instance = GET_DMA_INSTANCE(hdma); in HAL_DMA_ConfigChannelAttributes()
1390 channel_idx = 1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU); in HAL_DMA_ConfigChannelAttributes()
1427 hdma->Instance->CTR1 |= DMA_CTR1_SSEC; in HAL_DMA_ConfigChannelAttributes()
1431 hdma->Instance->CTR1 &= (~DMA_CTR1_SSEC); in HAL_DMA_ConfigChannelAttributes()
1441 hdma->Instance->CTR1 |= DMA_CTR1_DSEC; in HAL_DMA_ConfigChannelAttributes()
1445 hdma->Instance->CTR1 &= (~DMA_CTR1_DSEC); in HAL_DMA_ConfigChannelAttributes()
1460 HAL_StatusTypeDef HAL_DMA_GetConfigChannelAttributes(DMA_HandleTypeDef const *const hdma, in HAL_DMA_GetConfigChannelAttributes() argument
1468 if ((hdma == NULL) || (pChannelAttributes == NULL)) in HAL_DMA_GetConfigChannelAttributes()
1474 p_dma_instance = GET_DMA_INSTANCE(hdma); in HAL_DMA_GetConfigChannelAttributes()
1477 channel_idx = 1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU); in HAL_DMA_GetConfigChannelAttributes()
1487 …attributes |= ((hdma->Instance->CTR1 & DMA_CTR1_SSEC) == 0U) ? DMA_CHANNEL_SRC_NSEC : DMA_CHANNEL_… in HAL_DMA_GetConfigChannelAttributes()
1490 …attributes |= ((hdma->Instance->CTR1 & DMA_CTR1_DSEC) == 0U) ? DMA_CHANNEL_DEST_NSEC : DMA_CHANNEL… in HAL_DMA_GetConfigChannelAttributes()
1508 HAL_StatusTypeDef HAL_DMA_LockChannelAttributes(DMA_HandleTypeDef const *const hdma) in HAL_DMA_LockChannelAttributes() argument
1514 if (hdma == NULL) in HAL_DMA_LockChannelAttributes()
1520 p_dma_instance = GET_DMA_INSTANCE(hdma); in HAL_DMA_LockChannelAttributes()
1523 channel_idx = 1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU); in HAL_DMA_LockChannelAttributes()
1540 HAL_StatusTypeDef HAL_DMA_GetLockChannelAttributes(DMA_HandleTypeDef const *const hdma, uint32_t *c… in HAL_DMA_GetLockChannelAttributes() argument
1546 if ((hdma == NULL) || (pLockState == NULL)) in HAL_DMA_GetLockChannelAttributes()
1552 p_dma_instance = GET_DMA_INSTANCE(hdma); in HAL_DMA_GetLockChannelAttributes()
1555 channel_idx = 1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU); in HAL_DMA_GetLockChannelAttributes()
1588 static void DMA_SetConfig(DMA_HandleTypeDef const *const hdma, in DMA_SetConfig() argument
1594 MODIFY_REG(hdma->Instance->CBR1, DMA_CBR1_BNDT, (SrcDataSize & DMA_CBR1_BNDT)); in DMA_SetConfig()
1597 …__HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_TC | DMA_FLAG_HT | DMA_FLAG_DTE | DMA_FLAG_ULE | DMA_FLAG_USE … in DMA_SetConfig()
1601 hdma->Instance->CSAR = SrcAddress; in DMA_SetConfig()
1604 hdma->Instance->CDAR = DstAddress; in DMA_SetConfig()
1613 static void DMA_Init(DMA_HandleTypeDef const *const hdma) in DMA_Init() argument
1618 tmpreg = hdma->Init.Priority; in DMA_Init()
1621 MODIFY_REG(hdma->Instance->CCR, DMA_CCR_PRIO | DMA_CCR_LAP | DMA_CCR_LSM, tmpreg); in DMA_Init()
1624 …tmpreg = hdma->Init.DestInc | hdma->Init.DestDataWidth | hdma->Init.SrcInc | hdma->Init.SrcDataWid… in DMA_Init()
1627 if (IS_GPDMA_INSTANCE(hdma->Instance) != 0U) in DMA_Init()
1629 tmpreg |= (hdma->Init.TransferAllocatedPort | in DMA_Init()
1630 (((hdma->Init.DestBurstLength - 1U) << DMA_CTR1_DBL_1_Pos) & DMA_CTR1_DBL_1) | in DMA_Init()
1631 (((hdma->Init.SrcBurstLength - 1U) << DMA_CTR1_SBL_1_Pos) & DMA_CTR1_SBL_1)); in DMA_Init()
1636 MODIFY_REG(hdma->Instance->CTR1, ~(DMA_CTR1_SSEC | DMA_CTR1_DSEC), tmpreg); in DMA_Init()
1638 WRITE_REG(hdma->Instance->CTR1, tmpreg); in DMA_Init()
1642 …tmpreg = hdma->Init.BlkHWRequest | (hdma->Init.Request & DMA_CTR2_REQSEL) | hdma->Init.TransferEve… in DMA_Init()
1645 if ((hdma->Init.Direction) == DMA_MEMORY_TO_PERIPH) in DMA_Init()
1647 if (IS_GPDMA_INSTANCE(hdma->Instance) != 0U) in DMA_Init()
1653 else if ((hdma->Init.Direction) == DMA_MEMORY_TO_MEMORY) in DMA_Init()
1663 tmpreg |= hdma->Init.Mode; in DMA_Init()
1666 …MODIFY_REG(hdma->Instance->CTR2, (DMA_CTR2_TCEM | DMA_CTR2_TRIGPOL | DMA_CTR2_TRIGSEL | DMA_CTR2_… in DMA_Init()
1672 WRITE_REG(hdma->Instance->CBR1, 0U); in DMA_Init()
1675 if (IS_DMA_2D_ADDRESSING_INSTANCE(hdma->Instance) != 0U) in DMA_Init()
1678 WRITE_REG(hdma->Instance->CTR3, 0U); in DMA_Init()
1681 WRITE_REG(hdma->Instance->CBR2, 0U); in DMA_Init()
1685 WRITE_REG(hdma->Instance->CLLR, 0U); in DMA_Init()