Lines Matching refs:hdma
237 static void DMA_SetConfig(DMA_HandleTypeDef const *const hdma,
241 static void DMA_Init(DMA_HandleTypeDef const *const hdma);
275 HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *const hdma) in HAL_DMA_Init() argument
281 if (hdma == NULL) in HAL_DMA_Init()
287 assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); in HAL_DMA_Init()
288 assert_param(IS_DMA_DIRECTION(hdma->Init.Direction)); in HAL_DMA_Init()
289 if (hdma->Init.Direction != DMA_MEMORY_TO_MEMORY) in HAL_DMA_Init()
291 assert_param(IS_DMA_REQUEST(hdma->Init.Request)); in HAL_DMA_Init()
293 assert_param(IS_DMA_BLOCK_HW_REQUEST(hdma->Init.BlkHWRequest)); in HAL_DMA_Init()
294 assert_param(IS_DMA_SOURCE_INC(hdma->Init.SrcInc)); in HAL_DMA_Init()
295 assert_param(IS_DMA_DESTINATION_INC(hdma->Init.DestInc)); in HAL_DMA_Init()
296 assert_param(IS_DMA_SOURCE_DATA_WIDTH(hdma->Init.SrcDataWidth)); in HAL_DMA_Init()
297 assert_param(IS_DMA_DESTINATION_DATA_WIDTH(hdma->Init.DestDataWidth)); in HAL_DMA_Init()
298 assert_param(IS_DMA_PRIORITY(hdma->Init.Priority)); in HAL_DMA_Init()
299 assert_param(IS_DMA_TCEM_EVENT_MODE(hdma->Init.TransferEventMode)); in HAL_DMA_Init()
300 assert_param(IS_DMA_MODE(hdma->Init.Mode)); in HAL_DMA_Init()
301 if (hdma->Init.Mode == DMA_PFCTRL) in HAL_DMA_Init()
303 assert_param(IS_DMA_PFREQ_INSTANCE(hdma->Instance)); in HAL_DMA_Init()
306 if ((IS_HPDMA_INSTANCE(hdma->Instance) != 0U) || (IS_GPDMA_INSTANCE(hdma->Instance) != 0U)) in HAL_DMA_Init()
308 assert_param(IS_DMA_BURST_LENGTH(hdma->Init.SrcBurstLength)); in HAL_DMA_Init()
309 assert_param(IS_DMA_BURST_LENGTH(hdma->Init.DestBurstLength)); in HAL_DMA_Init()
310 assert_param(IS_DMA_TRANSFER_ALLOCATED_PORT(hdma->Init.TransferAllocatedPort)); in HAL_DMA_Init()
314 if (IS_HPDMA_INSTANCE(hdma->Instance) != 0U) in HAL_DMA_Init()
316 if (((hdma->Init.TransferAllocatedPort & DMA_CTR1_SAP) == DMA_SRC_ALLOCATED_PORT0) && in HAL_DMA_Init()
317 (hdma->Init.SrcBurstLength > 16U)) in HAL_DMA_Init()
321 if (((hdma->Init.TransferAllocatedPort & DMA_CTR1_DAP) == DMA_DEST_ALLOCATED_PORT0) && in HAL_DMA_Init()
322 (hdma->Init.DestBurstLength > 16U)) in HAL_DMA_Init()
329 __HAL_UNLOCK(hdma); in HAL_DMA_Init()
332 hdma->State = HAL_DMA_STATE_BUSY; in HAL_DMA_Init()
335 __HAL_DMA_DISABLE(hdma); in HAL_DMA_Init()
338 while ((hdma->Instance->CCR & DMA_CCR_EN) != 0U) in HAL_DMA_Init()
344 hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT; in HAL_DMA_Init()
347 hdma->State = HAL_DMA_STATE_ERROR; in HAL_DMA_Init()
354 DMA_Init(hdma); in HAL_DMA_Init()
357 hdma->Mode = hdma->Init.Mode; in HAL_DMA_Init()
360 hdma->ErrorCode = HAL_DMA_ERROR_NONE; in HAL_DMA_Init()
363 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_Init()
374 HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *const hdma) in HAL_DMA_DeInit() argument
379 if (hdma == NULL) in HAL_DMA_DeInit()
385 assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); in HAL_DMA_DeInit()
387 __HAL_DMA_DISABLE(hdma); in HAL_DMA_DeInit()
390 while ((hdma->Instance->CCR & DMA_CCR_EN) != 0U) in HAL_DMA_DeInit()
396 hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT; in HAL_DMA_DeInit()
399 hdma->State = HAL_DMA_STATE_ERROR; in HAL_DMA_DeInit()
406 hdma->Instance->CLBAR = 0U; in HAL_DMA_DeInit()
407 hdma->Instance->CCR = 0U; in HAL_DMA_DeInit()
410 hdma->Instance->CTR1 = hdma->Instance->CTR1 & (0U | DMA_CTR1_DSEC | DMA_CTR1_SSEC); in HAL_DMA_DeInit()
411 hdma->Instance->CTR2 = 0U; in HAL_DMA_DeInit()
412 hdma->Instance->CBR1 = 0U; in HAL_DMA_DeInit()
413 hdma->Instance->CSAR = 0U; in HAL_DMA_DeInit()
414 hdma->Instance->CDAR = 0U; in HAL_DMA_DeInit()
415 hdma->Instance->CLLR = 0U; in HAL_DMA_DeInit()
418 if (IS_DMA_2D_ADDRESSING_INSTANCE(hdma->Instance) != 0U) in HAL_DMA_DeInit()
420 hdma->Instance->CTR3 = 0U; in HAL_DMA_DeInit()
421 hdma->Instance->CBR2 = 0U; in HAL_DMA_DeInit()
425 …__HAL_DMA_CLEAR_FLAG(hdma, (DMA_FLAG_TC | DMA_FLAG_HT | DMA_FLAG_DTE | DMA_FLAG_ULE | DMA_FLAG_USE… in HAL_DMA_DeInit()
429 hdma->XferCpltCallback = NULL; in HAL_DMA_DeInit()
430 hdma->XferHalfCpltCallback = NULL; in HAL_DMA_DeInit()
431 hdma->XferErrorCallback = NULL; in HAL_DMA_DeInit()
432 hdma->XferAbortCallback = NULL; in HAL_DMA_DeInit()
433 hdma->XferSuspendCallback = NULL; in HAL_DMA_DeInit()
436 hdma->LinkedListQueue = NULL; in HAL_DMA_DeInit()
439 if (hdma->Parent != NULL) in HAL_DMA_DeInit()
441 hdma->Parent = NULL; in HAL_DMA_DeInit()
445 hdma->Mode = DMA_NORMAL; in HAL_DMA_DeInit()
448 hdma->ErrorCode = HAL_DMA_ERROR_NONE; in HAL_DMA_DeInit()
451 hdma->State = HAL_DMA_STATE_RESET; in HAL_DMA_DeInit()
454 __HAL_UNLOCK(hdma); in HAL_DMA_DeInit()
501 HAL_StatusTypeDef HAL_DMA_Start(DMA_HandleTypeDef *const hdma, in HAL_DMA_Start() argument
507 if (hdma == NULL) in HAL_DMA_Start()
516 __HAL_LOCK(hdma); in HAL_DMA_Start()
519 if (hdma->State == HAL_DMA_STATE_READY) in HAL_DMA_Start()
522 hdma->State = HAL_DMA_STATE_BUSY; in HAL_DMA_Start()
525 hdma->ErrorCode = HAL_DMA_ERROR_NONE; in HAL_DMA_Start()
528 DMA_SetConfig(hdma, SrcAddress, DstAddress, SrcDataSize); in HAL_DMA_Start()
531 __HAL_DMA_ENABLE(hdma); in HAL_DMA_Start()
536 hdma->ErrorCode = HAL_DMA_ERROR_BUSY; in HAL_DMA_Start()
539 __HAL_UNLOCK(hdma); in HAL_DMA_Start()
556 HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *const hdma, in HAL_DMA_Start_IT() argument
562 if (hdma == NULL) in HAL_DMA_Start_IT()
571 __HAL_LOCK(hdma); in HAL_DMA_Start_IT()
574 if (hdma->State == HAL_DMA_STATE_READY) in HAL_DMA_Start_IT()
577 hdma->State = HAL_DMA_STATE_BUSY; in HAL_DMA_Start_IT()
580 hdma->ErrorCode = HAL_DMA_ERROR_NONE; in HAL_DMA_Start_IT()
583 DMA_SetConfig(hdma, SrcAddress, DstAddress, SrcDataSize); in HAL_DMA_Start_IT()
586 __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()
589 if (hdma->XferHalfCpltCallback != NULL) in HAL_DMA_Start_IT()
592 __HAL_DMA_ENABLE_IT(hdma, DMA_IT_HT); in HAL_DMA_Start_IT()
596 if (hdma->XferSuspendCallback != NULL) in HAL_DMA_Start_IT()
599 __HAL_DMA_ENABLE_IT(hdma, DMA_IT_SUSP); in HAL_DMA_Start_IT()
603 __HAL_DMA_ENABLE(hdma); in HAL_DMA_Start_IT()
608 hdma->ErrorCode = HAL_DMA_ERROR_BUSY; in HAL_DMA_Start_IT()
611 __HAL_UNLOCK(hdma); in HAL_DMA_Start_IT()
628 HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *const hdma) in HAL_DMA_Abort() argument
634 if (hdma == NULL) in HAL_DMA_Abort()
640 if (hdma->State != HAL_DMA_STATE_BUSY) in HAL_DMA_Abort()
643 hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; in HAL_DMA_Abort()
646 __HAL_UNLOCK(hdma); in HAL_DMA_Abort()
653 hdma->Instance->CCR |= DMA_CCR_SUSP; in HAL_DMA_Abort()
656 hdma->State = HAL_DMA_STATE_SUSPEND; in HAL_DMA_Abort()
659 while ((hdma->Instance->CSR & DMA_CSR_SUSPF) == 0U) in HAL_DMA_Abort()
665 hdma->ErrorCode |= HAL_DMA_ERROR_TIMEOUT; in HAL_DMA_Abort()
668 hdma->State = HAL_DMA_STATE_ERROR; in HAL_DMA_Abort()
671 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_Abort()
674 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_Abort()
678 __HAL_UNLOCK(hdma); in HAL_DMA_Abort()
685 hdma->Instance->CCR |= DMA_CCR_RESET; in HAL_DMA_Abort()
688 hdma->State = HAL_DMA_STATE_ABORT; in HAL_DMA_Abort()
691 …__HAL_DMA_CLEAR_FLAG(hdma, (DMA_FLAG_TC | DMA_FLAG_HT | DMA_FLAG_DTE | DMA_FLAG_ULE | DMA_FLAG_USE… in HAL_DMA_Abort()
695 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_Abort()
698 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_Abort()
701 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_Abort()
704 hdma->Instance->CBR1 = 0U; in HAL_DMA_Abort()
708 __HAL_UNLOCK(hdma); in HAL_DMA_Abort()
720 HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *const hdma) in HAL_DMA_Abort_IT() argument
723 if (hdma == NULL) in HAL_DMA_Abort_IT()
729 if (hdma->State != HAL_DMA_STATE_BUSY) in HAL_DMA_Abort_IT()
732 hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; in HAL_DMA_Abort_IT()
739 hdma->State = HAL_DMA_STATE_ABORT; in HAL_DMA_Abort_IT()
742 hdma->Instance->CCR |= (DMA_CCR_SUSP | DMA_CCR_SUSPIE); in HAL_DMA_Abort_IT()
756 HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *const hdma, in HAL_DMA_PollForTransfer() argument
766 if (hdma == NULL) in HAL_DMA_PollForTransfer()
775 if (hdma->State != HAL_DMA_STATE_BUSY) in HAL_DMA_PollForTransfer()
778 hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; in HAL_DMA_PollForTransfer()
781 __HAL_UNLOCK(hdma); in HAL_DMA_PollForTransfer()
787 if ((hdma->Mode & DMA_LINKEDLIST_CIRCULAR) == DMA_LINKEDLIST_CIRCULAR) in HAL_DMA_PollForTransfer()
790 hdma->ErrorCode = HAL_DMA_ERROR_NOT_SUPPORTED; in HAL_DMA_PollForTransfer()
799 tmp_csr = hdma->Instance->CSR; in HAL_DMA_PollForTransfer()
809 hdma->ErrorCode |= HAL_DMA_ERROR_TIMEOUT; in HAL_DMA_PollForTransfer()
818 (void)HAL_DMA_Abort(hdma); in HAL_DMA_PollForTransfer()
825 tmp_csr = hdma->Instance->CSR; in HAL_DMA_PollForTransfer()
832 hdma->ErrorCode |= HAL_DMA_ERROR_TO; in HAL_DMA_PollForTransfer()
835 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_TO); in HAL_DMA_PollForTransfer()
845 hdma->ErrorCode |= HAL_DMA_ERROR_DTE; in HAL_DMA_PollForTransfer()
848 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_DTE); in HAL_DMA_PollForTransfer()
855 hdma->ErrorCode |= HAL_DMA_ERROR_ULE; in HAL_DMA_PollForTransfer()
858 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_ULE); in HAL_DMA_PollForTransfer()
865 hdma->ErrorCode |= HAL_DMA_ERROR_USE; in HAL_DMA_PollForTransfer()
868 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_USE); in HAL_DMA_PollForTransfer()
872 hdma->Instance->CCR |= DMA_CCR_RESET; in HAL_DMA_PollForTransfer()
875 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_PollForTransfer()
878 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_PollForTransfer()
881 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_PollForTransfer()
885 __HAL_UNLOCK(hdma); in HAL_DMA_PollForTransfer()
894 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_HT); in HAL_DMA_PollForTransfer()
899 __HAL_DMA_CLEAR_FLAG(hdma, (DMA_FLAG_TC | DMA_FLAG_HT)); in HAL_DMA_PollForTransfer()
902 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_PollForTransfer()
905 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_PollForTransfer()
908 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_PollForTransfer()
912 __HAL_UNLOCK(hdma); in HAL_DMA_PollForTransfer()
928 void HAL_DMA_IRQHandler(DMA_HandleTypeDef *const hdma) in HAL_DMA_IRQHandler() argument
930 const DMA_TypeDef *p_dma_instance = GET_DMA_INSTANCE(hdma); in HAL_DMA_IRQHandler()
931 uint32_t global_it_flag = 1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU); in HAL_DMA_IRQHandler()
948 if (__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_DTE) != 0U) in HAL_DMA_IRQHandler()
951 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_DTE) != 0U) in HAL_DMA_IRQHandler()
954 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_DTE); in HAL_DMA_IRQHandler()
957 hdma->ErrorCode |= HAL_DMA_ERROR_DTE; in HAL_DMA_IRQHandler()
962 if (__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_ULE) != 0U) in HAL_DMA_IRQHandler()
965 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_ULE) != 0U) in HAL_DMA_IRQHandler()
968 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_ULE); in HAL_DMA_IRQHandler()
971 hdma->ErrorCode |= HAL_DMA_ERROR_ULE; in HAL_DMA_IRQHandler()
976 if (__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_USE) != 0U) in HAL_DMA_IRQHandler()
979 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_USE) != 0U) in HAL_DMA_IRQHandler()
982 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_USE); in HAL_DMA_IRQHandler()
985 hdma->ErrorCode |= HAL_DMA_ERROR_USE; in HAL_DMA_IRQHandler()
990 if (__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_TO) != 0U) in HAL_DMA_IRQHandler()
993 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TO) != 0U) in HAL_DMA_IRQHandler()
996 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_TO); in HAL_DMA_IRQHandler()
999 hdma->ErrorCode |= HAL_DMA_ERROR_TO; in HAL_DMA_IRQHandler()
1004 if (__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_HT) != 0U) in HAL_DMA_IRQHandler()
1007 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_HT) != 0U) in HAL_DMA_IRQHandler()
1010 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_HT); in HAL_DMA_IRQHandler()
1013 if (hdma->XferHalfCpltCallback != NULL) in HAL_DMA_IRQHandler()
1016 hdma->XferHalfCpltCallback(hdma); in HAL_DMA_IRQHandler()
1022 if (__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_SUSP) != 0U) in HAL_DMA_IRQHandler()
1025 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_SUSP) != 0U) in HAL_DMA_IRQHandler()
1028 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_SUSP); in HAL_DMA_IRQHandler()
1031 if (hdma->State == HAL_DMA_STATE_ABORT) in HAL_DMA_IRQHandler()
1034 __HAL_DMA_DISABLE_IT(hdma, DMA_IT_SUSP); in HAL_DMA_IRQHandler()
1037 hdma->Instance->CCR |= DMA_CCR_RESET; in HAL_DMA_IRQHandler()
1040 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_IRQHandler()
1043 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_IRQHandler()
1046 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_IRQHandler()
1049 hdma->Instance->CBR1 = 0U; in HAL_DMA_IRQHandler()
1053 __HAL_UNLOCK(hdma); in HAL_DMA_IRQHandler()
1056 if (hdma->XferAbortCallback != NULL) in HAL_DMA_IRQHandler()
1059 hdma->XferAbortCallback(hdma); in HAL_DMA_IRQHandler()
1067 hdma->State = HAL_DMA_STATE_SUSPEND; in HAL_DMA_IRQHandler()
1070 if (hdma->XferSuspendCallback != NULL) in HAL_DMA_IRQHandler()
1073 hdma->XferSuspendCallback(hdma); in HAL_DMA_IRQHandler()
1080 if (__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_TC) != 0U) in HAL_DMA_IRQHandler()
1083 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TC) != 0U) in HAL_DMA_IRQHandler()
1086 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_IRQHandler()
1089 if (hdma->Instance->CLLR == 0U) in HAL_DMA_IRQHandler()
1091 if (hdma->Instance->CBR1 == 0U) in HAL_DMA_IRQHandler()
1094 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_IRQHandler()
1097 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_IRQHandler()
1104 if (hdma->Instance->CBR1 == 0U) in HAL_DMA_IRQHandler()
1107 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_IRQHandler()
1112 __HAL_DMA_CLEAR_FLAG(hdma, (DMA_FLAG_TC | DMA_FLAG_HT)); in HAL_DMA_IRQHandler()
1115 __HAL_UNLOCK(hdma); in HAL_DMA_IRQHandler()
1118 if (hdma->XferCpltCallback != NULL) in HAL_DMA_IRQHandler()
1121 hdma->XferCpltCallback(hdma); in HAL_DMA_IRQHandler()
1127 if (hdma->ErrorCode != HAL_DMA_ERROR_NONE) in HAL_DMA_IRQHandler()
1130 hdma->Instance->CCR |= DMA_CCR_RESET; in HAL_DMA_IRQHandler()
1133 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_IRQHandler()
1136 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_IRQHandler()
1139 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_IRQHandler()
1143 __HAL_UNLOCK(hdma); in HAL_DMA_IRQHandler()
1146 if (hdma->XferErrorCallback != NULL) in HAL_DMA_IRQHandler()
1149 hdma->XferErrorCallback(hdma); in HAL_DMA_IRQHandler()
1164 HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *const hdma, in HAL_DMA_RegisterCallback() argument
1171 if (hdma == NULL) in HAL_DMA_RegisterCallback()
1177 if (hdma->State == HAL_DMA_STATE_READY) in HAL_DMA_RegisterCallback()
1185 hdma->XferCpltCallback = pCallback; in HAL_DMA_RegisterCallback()
1192 hdma->XferHalfCpltCallback = pCallback; in HAL_DMA_RegisterCallback()
1199 hdma->XferErrorCallback = pCallback; in HAL_DMA_RegisterCallback()
1206 hdma->XferAbortCallback = pCallback; in HAL_DMA_RegisterCallback()
1213 hdma->XferSuspendCallback = pCallback; in HAL_DMA_RegisterCallback()
1243 HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *const hdma, in HAL_DMA_UnRegisterCallback() argument
1249 if (hdma == NULL) in HAL_DMA_UnRegisterCallback()
1255 if (hdma->State == HAL_DMA_STATE_READY) in HAL_DMA_UnRegisterCallback()
1263 hdma->XferCpltCallback = NULL; in HAL_DMA_UnRegisterCallback()
1270 hdma->XferHalfCpltCallback = NULL; in HAL_DMA_UnRegisterCallback()
1277 hdma->XferErrorCallback = NULL; in HAL_DMA_UnRegisterCallback()
1284 hdma->XferAbortCallback = NULL; in HAL_DMA_UnRegisterCallback()
1291 hdma->XferSuspendCallback = NULL; in HAL_DMA_UnRegisterCallback()
1298 hdma->XferCpltCallback = NULL; in HAL_DMA_UnRegisterCallback()
1299 hdma->XferHalfCpltCallback = NULL; in HAL_DMA_UnRegisterCallback()
1300 hdma->XferErrorCallback = NULL; in HAL_DMA_UnRegisterCallback()
1301 hdma->XferAbortCallback = NULL; in HAL_DMA_UnRegisterCallback()
1302 hdma->XferSuspendCallback = NULL; in HAL_DMA_UnRegisterCallback()
1351 HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef const *const hdma) in HAL_DMA_GetState() argument
1354 return hdma->State; in HAL_DMA_GetState()
1363 uint32_t HAL_DMA_GetError(DMA_HandleTypeDef const *const hdma) in HAL_DMA_GetError() argument
1366 return hdma->ErrorCode; in HAL_DMA_GetError()
1407 HAL_StatusTypeDef HAL_DMA_ConfigChannelAttributes(DMA_HandleTypeDef *const hdma, uint32_t ChannelAt… in HAL_DMA_ConfigChannelAttributes() argument
1413 if (hdma == NULL) in HAL_DMA_ConfigChannelAttributes()
1422 p_dma_instance = GET_DMA_INSTANCE(hdma); in HAL_DMA_ConfigChannelAttributes()
1425 channel_idx = 1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU); in HAL_DMA_ConfigChannelAttributes()
1462 hdma->Instance->CTR1 |= DMA_CTR1_SSEC; in HAL_DMA_ConfigChannelAttributes()
1466 hdma->Instance->CTR1 &= (~DMA_CTR1_SSEC); in HAL_DMA_ConfigChannelAttributes()
1476 hdma->Instance->CTR1 |= DMA_CTR1_DSEC; in HAL_DMA_ConfigChannelAttributes()
1480 hdma->Instance->CTR1 &= (~DMA_CTR1_DSEC); in HAL_DMA_ConfigChannelAttributes()
1495 HAL_StatusTypeDef HAL_DMA_GetConfigChannelAttributes(DMA_HandleTypeDef const *const hdma, in HAL_DMA_GetConfigChannelAttributes() argument
1503 if ((hdma == NULL) || (pChannelAttributes == NULL)) in HAL_DMA_GetConfigChannelAttributes()
1509 p_dma_instance = GET_DMA_INSTANCE(hdma); in HAL_DMA_GetConfigChannelAttributes()
1512 channel_idx = 1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU); in HAL_DMA_GetConfigChannelAttributes()
1521 …attributes |= ((hdma->Instance->CTR1 & DMA_CTR1_SSEC) == 0U) ? DMA_CHANNEL_SRC_NSEC : DMA_CHANNEL_… in HAL_DMA_GetConfigChannelAttributes()
1524 …attributes |= ((hdma->Instance->CTR1 & DMA_CTR1_DSEC) == 0U) ? DMA_CHANNEL_DEST_NSEC : DMA_CHANNEL… in HAL_DMA_GetConfigChannelAttributes()
1542 HAL_StatusTypeDef HAL_DMA_SetIsolationAttributes(DMA_HandleTypeDef *const hdma, in HAL_DMA_SetIsolationAttributes() argument
1546 if ((hdma == NULL) || (pConfig == NULL)) in HAL_DMA_SetIsolationAttributes()
1552 assert_param(IS_HPDMA_INSTANCE(hdma->Instance)); in HAL_DMA_SetIsolationAttributes()
1560 hdma->Instance->CCIDCFGR = ((pConfig->StaticCid & DMA_CCIDCFGR_SCID_Msk) | DMA_CCIDCFGR_CFEN); in HAL_DMA_SetIsolationAttributes()
1565 hdma->Instance->CCIDCFGR = 0U; in HAL_DMA_SetIsolationAttributes()
1580 HAL_StatusTypeDef HAL_DMA_GetIsolationAttributes(DMA_HandleTypeDef const *const hdma, in HAL_DMA_GetIsolationAttributes() argument
1586 if ((hdma == NULL) || (pConfig == NULL)) in HAL_DMA_GetIsolationAttributes()
1591 ccidcfgr = hdma->Instance->CCIDCFGR; in HAL_DMA_GetIsolationAttributes()
1594 assert_param(IS_HPDMA_INSTANCE(hdma->Instance)); in HAL_DMA_GetIsolationAttributes()
1617 HAL_StatusTypeDef HAL_DMA_LockChannelAttributes(DMA_HandleTypeDef const *const hdma) in HAL_DMA_LockChannelAttributes() argument
1623 if (hdma == NULL) in HAL_DMA_LockChannelAttributes()
1629 p_dma_instance = GET_DMA_INSTANCE(hdma); in HAL_DMA_LockChannelAttributes()
1632 channel_idx = 1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU); in HAL_DMA_LockChannelAttributes()
1649 HAL_StatusTypeDef HAL_DMA_GetLockChannelAttributes(DMA_HandleTypeDef const *const hdma, uint32_t *c… in HAL_DMA_GetLockChannelAttributes() argument
1655 if ((hdma == NULL) || (pLockState == NULL)) in HAL_DMA_GetLockChannelAttributes()
1661 p_dma_instance = GET_DMA_INSTANCE(hdma); in HAL_DMA_GetLockChannelAttributes()
1664 channel_idx = 1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU); in HAL_DMA_GetLockChannelAttributes()
1696 static void DMA_SetConfig(DMA_HandleTypeDef const *const hdma, in DMA_SetConfig() argument
1702 MODIFY_REG(hdma->Instance->CBR1, DMA_CBR1_BNDT, (SrcDataSize & DMA_CBR1_BNDT)); in DMA_SetConfig()
1705 …__HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_TC | DMA_FLAG_HT | DMA_FLAG_DTE | DMA_FLAG_ULE | DMA_FLAG_USE … in DMA_SetConfig()
1709 hdma->Instance->CSAR = SrcAddress; in DMA_SetConfig()
1712 hdma->Instance->CDAR = DstAddress; in DMA_SetConfig()
1721 static void DMA_Init(DMA_HandleTypeDef const *const hdma) in DMA_Init() argument
1726 tmpreg = hdma->Init.Priority; in DMA_Init()
1729 MODIFY_REG(hdma->Instance->CCR, DMA_CCR_PRIO | DMA_CCR_LAP | DMA_CCR_LSM, tmpreg); in DMA_Init()
1732 …tmpreg = hdma->Init.DestInc | hdma->Init.DestDataWidth | hdma->Init.SrcInc | hdma->Init.SrcDataWid… in DMA_Init()
1735 if ((IS_HPDMA_INSTANCE(hdma->Instance) != 0U) || (IS_GPDMA_INSTANCE(hdma->Instance) != 0U)) in DMA_Init()
1737 tmpreg |= (hdma->Init.TransferAllocatedPort | in DMA_Init()
1738 (((hdma->Init.DestBurstLength - 1U) << DMA_CTR1_DBL_1_Pos) & DMA_CTR1_DBL_1) | in DMA_Init()
1739 (((hdma->Init.SrcBurstLength - 1U) << DMA_CTR1_SBL_1_Pos) & DMA_CTR1_SBL_1)); in DMA_Init()
1743 MODIFY_REG(hdma->Instance->CTR1, ~(DMA_CTR1_SSEC | DMA_CTR1_DSEC), tmpreg); in DMA_Init()
1746 …tmpreg = hdma->Init.BlkHWRequest | (hdma->Init.Request & DMA_CTR2_REQSEL) | hdma->Init.TransferEve… in DMA_Init()
1749 if ((hdma->Init.Direction) == DMA_MEMORY_TO_PERIPH) in DMA_Init()
1751 if ((IS_HPDMA_INSTANCE(hdma->Instance) != 0U) || (IS_GPDMA_INSTANCE(hdma->Instance) != 0U)) in DMA_Init()
1757 else if ((hdma->Init.Direction) == DMA_MEMORY_TO_MEMORY) in DMA_Init()
1767 tmpreg |= hdma->Init.Mode; in DMA_Init()
1770 …MODIFY_REG(hdma->Instance->CTR2, (DMA_CTR2_TCEM | DMA_CTR2_TRIGPOL | DMA_CTR2_TRIGSEL | DMA_CTR2_… in DMA_Init()
1776 WRITE_REG(hdma->Instance->CBR1, 0U); in DMA_Init()
1779 if (IS_DMA_2D_ADDRESSING_INSTANCE(hdma->Instance) != 0U) in DMA_Init()
1782 WRITE_REG(hdma->Instance->CTR3, 0U); in DMA_Init()
1785 WRITE_REG(hdma->Instance->CBR2, 0U); in DMA_Init()
1789 WRITE_REG(hdma->Instance->CLLR, 0U); in DMA_Init()