Lines Matching refs:hdma

203 static void DMA_SetConfig(DMA_HandleTypeDef const *const hdma,
207 static void DMA_Init(DMA_HandleTypeDef const *const hdma);
239 HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *const hdma) in HAL_DMA_Init() argument
246 if (hdma == NULL) in HAL_DMA_Init()
252 assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); in HAL_DMA_Init()
253 assert_param(IS_DMA_DIRECTION(hdma->Init.Direction)); in HAL_DMA_Init()
254 if (hdma->Init.Direction != DMA_MEMORY_TO_MEMORY) in HAL_DMA_Init()
256 assert_param(IS_DMA_REQUEST(hdma->Init.Request)); in HAL_DMA_Init()
258 assert_param(IS_DMA_BLOCK_HW_REQUEST(hdma->Init.BlkHWRequest)); in HAL_DMA_Init()
259 assert_param(IS_DMA_SOURCE_INC(hdma->Init.SrcInc)); in HAL_DMA_Init()
260 assert_param(IS_DMA_DESTINATION_INC(hdma->Init.DestInc)); in HAL_DMA_Init()
261 assert_param(IS_DMA_SOURCE_DATA_WIDTH(hdma->Init.SrcDataWidth)); in HAL_DMA_Init()
262 assert_param(IS_DMA_DESTINATION_DATA_WIDTH(hdma->Init.DestDataWidth)); in HAL_DMA_Init()
263 assert_param(IS_DMA_PRIORITY(hdma->Init.Priority)); in HAL_DMA_Init()
264 assert_param(IS_DMA_TCEM_EVENT_MODE(hdma->Init.TransferEventMode)); in HAL_DMA_Init()
265 assert_param(IS_DMA_MODE(hdma->Init.Mode)); in HAL_DMA_Init()
267 if (IS_GPDMA_INSTANCE(hdma->Instance) != 0U) in HAL_DMA_Init()
269 assert_param(IS_DMA_BURST_LENGTH(hdma->Init.SrcBurstLength)); in HAL_DMA_Init()
270 assert_param(IS_DMA_BURST_LENGTH(hdma->Init.DestBurstLength)); in HAL_DMA_Init()
271 assert_param(IS_DMA_TRANSFER_ALLOCATED_PORT(hdma->Init.TransferAllocatedPort)); in HAL_DMA_Init()
276 __HAL_UNLOCK(hdma); in HAL_DMA_Init()
279 hdma->State = HAL_DMA_STATE_BUSY; in HAL_DMA_Init()
282 __HAL_DMA_DISABLE(hdma); in HAL_DMA_Init()
285 while ((hdma->Instance->CCR & DMA_CCR_EN) != 0U) in HAL_DMA_Init()
291 hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT; in HAL_DMA_Init()
294 hdma->State = HAL_DMA_STATE_ERROR; in HAL_DMA_Init()
301 DMA_Init(hdma); in HAL_DMA_Init()
304 hdma->Mode = hdma->Init.Mode; in HAL_DMA_Init()
307 hdma->ErrorCode = HAL_DMA_ERROR_NONE; in HAL_DMA_Init()
310 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_Init()
321 HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *const hdma) in HAL_DMA_DeInit() argument
329 if (hdma == NULL) in HAL_DMA_DeInit()
335 assert_param(IS_DMA_ALL_INSTANCE(hdma->Instance)); in HAL_DMA_DeInit()
338 p_dma_instance = GET_DMA_INSTANCE(hdma); in HAL_DMA_DeInit()
341 __HAL_DMA_DISABLE(hdma); in HAL_DMA_DeInit()
344 while ((hdma->Instance->CCR & DMA_CCR_EN) != 0U) in HAL_DMA_DeInit()
350 hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT; in HAL_DMA_DeInit()
353 hdma->State = HAL_DMA_STATE_ERROR; in HAL_DMA_DeInit()
360 hdma->Instance->CLBAR = 0U; in HAL_DMA_DeInit()
361 hdma->Instance->CCR = 0U; in HAL_DMA_DeInit()
362 hdma->Instance->CTR1 = 0U; in HAL_DMA_DeInit()
363 hdma->Instance->CTR2 = 0U; in HAL_DMA_DeInit()
364 hdma->Instance->CBR1 = 0U; in HAL_DMA_DeInit()
365 hdma->Instance->CSAR = 0U; in HAL_DMA_DeInit()
366 hdma->Instance->CDAR = 0U; in HAL_DMA_DeInit()
367 hdma->Instance->CLLR = 0U; in HAL_DMA_DeInit()
370 CLEAR_BIT(p_dma_instance->PRIVCFGR, (1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU))); in HAL_DMA_DeInit()
374 CLEAR_BIT(p_dma_instance->SECCFGR, (1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU))); in HAL_DMA_DeInit()
378 …__HAL_DMA_CLEAR_FLAG(hdma, (DMA_FLAG_TC | DMA_FLAG_HT | DMA_FLAG_DTE | DMA_FLAG_ULE | DMA_FLAG_USE… in HAL_DMA_DeInit()
382 hdma->XferCpltCallback = NULL; in HAL_DMA_DeInit()
383 hdma->XferHalfCpltCallback = NULL; in HAL_DMA_DeInit()
384 hdma->XferErrorCallback = NULL; in HAL_DMA_DeInit()
385 hdma->XferAbortCallback = NULL; in HAL_DMA_DeInit()
386 hdma->XferSuspendCallback = NULL; in HAL_DMA_DeInit()
389 hdma->LinkedListQueue = NULL; in HAL_DMA_DeInit()
392 if (hdma->Parent != NULL) in HAL_DMA_DeInit()
394 hdma->Parent = NULL; in HAL_DMA_DeInit()
398 hdma->Mode = DMA_NORMAL; in HAL_DMA_DeInit()
401 hdma->ErrorCode = HAL_DMA_ERROR_NONE; in HAL_DMA_DeInit()
404 hdma->State = HAL_DMA_STATE_RESET; in HAL_DMA_DeInit()
407 __HAL_UNLOCK(hdma); in HAL_DMA_DeInit()
454 HAL_StatusTypeDef HAL_DMA_Start(DMA_HandleTypeDef *const hdma, in HAL_DMA_Start() argument
460 if (hdma == NULL) in HAL_DMA_Start()
469 __HAL_LOCK(hdma); in HAL_DMA_Start()
472 if (hdma->State == HAL_DMA_STATE_READY) in HAL_DMA_Start()
475 hdma->State = HAL_DMA_STATE_BUSY; in HAL_DMA_Start()
478 hdma->ErrorCode = HAL_DMA_ERROR_NONE; in HAL_DMA_Start()
481 DMA_SetConfig(hdma, SrcAddress, DstAddress, SrcDataSize); in HAL_DMA_Start()
484 __HAL_DMA_ENABLE(hdma); in HAL_DMA_Start()
489 hdma->ErrorCode = HAL_DMA_ERROR_BUSY; in HAL_DMA_Start()
492 __HAL_UNLOCK(hdma); in HAL_DMA_Start()
509 HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *const hdma, in HAL_DMA_Start_IT() argument
515 if (hdma == NULL) in HAL_DMA_Start_IT()
524 __HAL_LOCK(hdma); in HAL_DMA_Start_IT()
527 if (hdma->State == HAL_DMA_STATE_READY) in HAL_DMA_Start_IT()
530 hdma->State = HAL_DMA_STATE_BUSY; in HAL_DMA_Start_IT()
533 hdma->ErrorCode = HAL_DMA_ERROR_NONE; in HAL_DMA_Start_IT()
536 DMA_SetConfig(hdma, SrcAddress, DstAddress, SrcDataSize); in HAL_DMA_Start_IT()
539 __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()
542 if (hdma->XferHalfCpltCallback != NULL) in HAL_DMA_Start_IT()
545 __HAL_DMA_ENABLE_IT(hdma, DMA_IT_HT); in HAL_DMA_Start_IT()
549 if (hdma->XferSuspendCallback != NULL) in HAL_DMA_Start_IT()
552 __HAL_DMA_ENABLE_IT(hdma, DMA_IT_SUSP); in HAL_DMA_Start_IT()
556 __HAL_DMA_ENABLE(hdma); in HAL_DMA_Start_IT()
561 hdma->ErrorCode = HAL_DMA_ERROR_BUSY; in HAL_DMA_Start_IT()
564 __HAL_UNLOCK(hdma); in HAL_DMA_Start_IT()
581 HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *const hdma) in HAL_DMA_Abort() argument
587 if (hdma == NULL) in HAL_DMA_Abort()
593 if (hdma->State != HAL_DMA_STATE_BUSY) in HAL_DMA_Abort()
596 hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; in HAL_DMA_Abort()
599 __HAL_UNLOCK(hdma); in HAL_DMA_Abort()
606 hdma->Instance->CCR |= DMA_CCR_SUSP; in HAL_DMA_Abort()
609 hdma->State = HAL_DMA_STATE_SUSPEND; in HAL_DMA_Abort()
612 while ((hdma->Instance->CSR & DMA_CSR_SUSPF) == 0U) in HAL_DMA_Abort()
618 hdma->ErrorCode |= HAL_DMA_ERROR_TIMEOUT; in HAL_DMA_Abort()
621 hdma->State = HAL_DMA_STATE_ERROR; in HAL_DMA_Abort()
624 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_Abort()
627 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_Abort()
631 __HAL_UNLOCK(hdma); in HAL_DMA_Abort()
638 hdma->Instance->CCR |= DMA_CCR_RESET; in HAL_DMA_Abort()
641 hdma->State = HAL_DMA_STATE_ABORT; in HAL_DMA_Abort()
644 …__HAL_DMA_CLEAR_FLAG(hdma, (DMA_FLAG_TC | DMA_FLAG_HT | DMA_FLAG_DTE | DMA_FLAG_ULE | DMA_FLAG_USE… in HAL_DMA_Abort()
648 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_Abort()
651 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_Abort()
654 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_Abort()
657 hdma->Instance->CBR1 = 0U; in HAL_DMA_Abort()
661 __HAL_UNLOCK(hdma); in HAL_DMA_Abort()
673 HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *const hdma) in HAL_DMA_Abort_IT() argument
676 if (hdma == NULL) in HAL_DMA_Abort_IT()
682 if (hdma->State != HAL_DMA_STATE_BUSY) in HAL_DMA_Abort_IT()
685 hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; in HAL_DMA_Abort_IT()
692 hdma->State = HAL_DMA_STATE_ABORT; in HAL_DMA_Abort_IT()
695 hdma->Instance->CCR |= (DMA_CCR_SUSP | DMA_CCR_SUSPIE); in HAL_DMA_Abort_IT()
709 HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *const hdma, in HAL_DMA_PollForTransfer() argument
719 if (hdma == NULL) in HAL_DMA_PollForTransfer()
728 if (hdma->State != HAL_DMA_STATE_BUSY) in HAL_DMA_PollForTransfer()
731 hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; in HAL_DMA_PollForTransfer()
734 __HAL_UNLOCK(hdma); in HAL_DMA_PollForTransfer()
740 if ((hdma->Mode & DMA_LINKEDLIST_CIRCULAR) == DMA_LINKEDLIST_CIRCULAR) in HAL_DMA_PollForTransfer()
743 hdma->ErrorCode = HAL_DMA_ERROR_NOT_SUPPORTED; in HAL_DMA_PollForTransfer()
752 tmp_csr = hdma->Instance->CSR; in HAL_DMA_PollForTransfer()
762 hdma->ErrorCode |= HAL_DMA_ERROR_TIMEOUT; in HAL_DMA_PollForTransfer()
771 (void)HAL_DMA_Abort(hdma); in HAL_DMA_PollForTransfer()
778 tmp_csr = hdma->Instance->CSR; in HAL_DMA_PollForTransfer()
785 hdma->ErrorCode |= HAL_DMA_ERROR_TO; in HAL_DMA_PollForTransfer()
788 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_TO); in HAL_DMA_PollForTransfer()
798 hdma->ErrorCode |= HAL_DMA_ERROR_DTE; in HAL_DMA_PollForTransfer()
801 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_DTE); in HAL_DMA_PollForTransfer()
808 hdma->ErrorCode |= HAL_DMA_ERROR_ULE; in HAL_DMA_PollForTransfer()
811 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_ULE); in HAL_DMA_PollForTransfer()
818 hdma->ErrorCode |= HAL_DMA_ERROR_USE; in HAL_DMA_PollForTransfer()
821 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_USE); in HAL_DMA_PollForTransfer()
825 hdma->Instance->CCR |= DMA_CCR_RESET; in HAL_DMA_PollForTransfer()
828 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_PollForTransfer()
831 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_PollForTransfer()
834 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_PollForTransfer()
838 __HAL_UNLOCK(hdma); in HAL_DMA_PollForTransfer()
847 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_HT); in HAL_DMA_PollForTransfer()
852 __HAL_DMA_CLEAR_FLAG(hdma, (DMA_FLAG_TC | DMA_FLAG_HT)); in HAL_DMA_PollForTransfer()
855 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_PollForTransfer()
858 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_PollForTransfer()
861 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_PollForTransfer()
865 __HAL_UNLOCK(hdma); in HAL_DMA_PollForTransfer()
881 void HAL_DMA_IRQHandler(DMA_HandleTypeDef *const hdma) in HAL_DMA_IRQHandler() argument
883 const DMA_TypeDef *p_dma_instance = GET_DMA_INSTANCE(hdma); in HAL_DMA_IRQHandler()
884 uint32_t global_it_flag = 1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU); in HAL_DMA_IRQHandler()
901 if ((__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_DTE) != 0U)) in HAL_DMA_IRQHandler()
904 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_DTE) != 0U) in HAL_DMA_IRQHandler()
907 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_DTE); in HAL_DMA_IRQHandler()
910 hdma->ErrorCode |= HAL_DMA_ERROR_DTE; in HAL_DMA_IRQHandler()
915 if ((__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_ULE) != 0U)) in HAL_DMA_IRQHandler()
918 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_ULE) != 0U) in HAL_DMA_IRQHandler()
921 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_ULE); in HAL_DMA_IRQHandler()
924 hdma->ErrorCode |= HAL_DMA_ERROR_ULE; in HAL_DMA_IRQHandler()
929 if ((__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_USE) != 0U)) in HAL_DMA_IRQHandler()
932 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_USE) != 0U) in HAL_DMA_IRQHandler()
935 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_USE); in HAL_DMA_IRQHandler()
938 hdma->ErrorCode |= HAL_DMA_ERROR_USE; in HAL_DMA_IRQHandler()
943 if ((__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_TO) != 0U)) in HAL_DMA_IRQHandler()
946 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TO) != 0U) in HAL_DMA_IRQHandler()
949 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_TO); in HAL_DMA_IRQHandler()
952 hdma->ErrorCode |= HAL_DMA_ERROR_TO; in HAL_DMA_IRQHandler()
957 if ((__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_HT) != 0U)) in HAL_DMA_IRQHandler()
960 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_HT) != 0U) in HAL_DMA_IRQHandler()
963 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_HT); in HAL_DMA_IRQHandler()
966 if (hdma->XferHalfCpltCallback != NULL) in HAL_DMA_IRQHandler()
969 hdma->XferHalfCpltCallback(hdma); in HAL_DMA_IRQHandler()
975 if ((__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_SUSP) != 0U)) in HAL_DMA_IRQHandler()
978 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_SUSP) != 0U) in HAL_DMA_IRQHandler()
981 __HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_SUSP); in HAL_DMA_IRQHandler()
984 if (hdma->State == HAL_DMA_STATE_ABORT) in HAL_DMA_IRQHandler()
987 __HAL_DMA_DISABLE_IT(hdma, DMA_IT_SUSP); in HAL_DMA_IRQHandler()
990 hdma->Instance->CCR |= DMA_CCR_RESET; in HAL_DMA_IRQHandler()
993 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_IRQHandler()
996 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_IRQHandler()
999 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_IRQHandler()
1002 hdma->Instance->CBR1 = 0U; in HAL_DMA_IRQHandler()
1006 __HAL_UNLOCK(hdma); in HAL_DMA_IRQHandler()
1009 if (hdma->XferAbortCallback != NULL) in HAL_DMA_IRQHandler()
1012 hdma->XferAbortCallback(hdma); in HAL_DMA_IRQHandler()
1020 hdma->State = HAL_DMA_STATE_SUSPEND; in HAL_DMA_IRQHandler()
1023 if (hdma->XferSuspendCallback != NULL) in HAL_DMA_IRQHandler()
1026 hdma->XferSuspendCallback(hdma); in HAL_DMA_IRQHandler()
1033 if ((__HAL_DMA_GET_FLAG(hdma, DMA_FLAG_TC) != 0U)) in HAL_DMA_IRQHandler()
1036 if (__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TC) != 0U) in HAL_DMA_IRQHandler()
1039 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_IRQHandler()
1042 if (hdma->Instance->CLLR == 0U) in HAL_DMA_IRQHandler()
1044 if (hdma->Instance->CBR1 == 0U) in HAL_DMA_IRQHandler()
1047 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_IRQHandler()
1050 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_IRQHandler()
1057 if (hdma->Instance->CBR1 == 0U) in HAL_DMA_IRQHandler()
1060 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_IRQHandler()
1065 __HAL_DMA_CLEAR_FLAG(hdma, (DMA_FLAG_TC | DMA_FLAG_HT)); in HAL_DMA_IRQHandler()
1068 __HAL_UNLOCK(hdma); in HAL_DMA_IRQHandler()
1071 if (hdma->XferCpltCallback != NULL) in HAL_DMA_IRQHandler()
1074 hdma->XferCpltCallback(hdma); in HAL_DMA_IRQHandler()
1080 if (hdma->ErrorCode != HAL_DMA_ERROR_NONE) in HAL_DMA_IRQHandler()
1083 hdma->Instance->CCR |= DMA_CCR_RESET; in HAL_DMA_IRQHandler()
1086 hdma->State = HAL_DMA_STATE_READY; in HAL_DMA_IRQHandler()
1089 if ((hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_DMA_IRQHandler()
1092 hdma->LinkedListQueue->State = HAL_DMA_QUEUE_STATE_READY; in HAL_DMA_IRQHandler()
1096 __HAL_UNLOCK(hdma); in HAL_DMA_IRQHandler()
1099 if (hdma->XferErrorCallback != NULL) in HAL_DMA_IRQHandler()
1102 hdma->XferErrorCallback(hdma); in HAL_DMA_IRQHandler()
1117 HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *const hdma, in HAL_DMA_RegisterCallback() argument
1124 if (hdma == NULL) in HAL_DMA_RegisterCallback()
1130 if (hdma->State == HAL_DMA_STATE_READY) in HAL_DMA_RegisterCallback()
1138 hdma->XferCpltCallback = pCallback; in HAL_DMA_RegisterCallback()
1145 hdma->XferHalfCpltCallback = pCallback; in HAL_DMA_RegisterCallback()
1152 hdma->XferErrorCallback = pCallback; in HAL_DMA_RegisterCallback()
1159 hdma->XferAbortCallback = pCallback; in HAL_DMA_RegisterCallback()
1166 hdma->XferSuspendCallback = pCallback; in HAL_DMA_RegisterCallback()
1196 HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *const hdma, in HAL_DMA_UnRegisterCallback() argument
1202 if (hdma == NULL) in HAL_DMA_UnRegisterCallback()
1208 if (hdma->State == HAL_DMA_STATE_READY) in HAL_DMA_UnRegisterCallback()
1216 hdma->XferCpltCallback = NULL; in HAL_DMA_UnRegisterCallback()
1223 hdma->XferHalfCpltCallback = NULL; in HAL_DMA_UnRegisterCallback()
1230 hdma->XferErrorCallback = NULL; in HAL_DMA_UnRegisterCallback()
1237 hdma->XferAbortCallback = NULL; in HAL_DMA_UnRegisterCallback()
1244 hdma->XferSuspendCallback = NULL; in HAL_DMA_UnRegisterCallback()
1251 hdma->XferCpltCallback = NULL; in HAL_DMA_UnRegisterCallback()
1252 hdma->XferHalfCpltCallback = NULL; in HAL_DMA_UnRegisterCallback()
1253 hdma->XferErrorCallback = NULL; in HAL_DMA_UnRegisterCallback()
1254 hdma->XferAbortCallback = NULL; in HAL_DMA_UnRegisterCallback()
1255 hdma->XferSuspendCallback = NULL; in HAL_DMA_UnRegisterCallback()
1304 HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef const *const hdma) in HAL_DMA_GetState() argument
1307 return hdma->State; in HAL_DMA_GetState()
1316 uint32_t HAL_DMA_GetError(DMA_HandleTypeDef const *const hdma) in HAL_DMA_GetError() argument
1319 return hdma->ErrorCode; in HAL_DMA_GetError()
1360 HAL_StatusTypeDef HAL_DMA_ConfigChannelAttributes(DMA_HandleTypeDef *const hdma, uint32_t ChannelAt… in HAL_DMA_ConfigChannelAttributes() argument
1366 if (hdma == NULL) in HAL_DMA_ConfigChannelAttributes()
1375 p_dma_instance = GET_DMA_INSTANCE(hdma); in HAL_DMA_ConfigChannelAttributes()
1378 channel_idx = 1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU); in HAL_DMA_ConfigChannelAttributes()
1415 hdma->Instance->CTR1 |= DMA_CTR1_SSEC; in HAL_DMA_ConfigChannelAttributes()
1419 hdma->Instance->CTR1 &= (~DMA_CTR1_SSEC); in HAL_DMA_ConfigChannelAttributes()
1429 hdma->Instance->CTR1 |= DMA_CTR1_DSEC; in HAL_DMA_ConfigChannelAttributes()
1433 hdma->Instance->CTR1 &= (~DMA_CTR1_DSEC); in HAL_DMA_ConfigChannelAttributes()
1448 HAL_StatusTypeDef HAL_DMA_GetConfigChannelAttributes(DMA_HandleTypeDef const *const hdma, in HAL_DMA_GetConfigChannelAttributes() argument
1456 if ((hdma == NULL) || (pChannelAttributes == NULL)) in HAL_DMA_GetConfigChannelAttributes()
1462 p_dma_instance = GET_DMA_INSTANCE(hdma); in HAL_DMA_GetConfigChannelAttributes()
1465 channel_idx = 1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU); in HAL_DMA_GetConfigChannelAttributes()
1475 …attributes |= ((hdma->Instance->CTR1 & DMA_CTR1_SSEC) == 0U) ? DMA_CHANNEL_SRC_NSEC : DMA_CHANNEL_… in HAL_DMA_GetConfigChannelAttributes()
1478 …attributes |= ((hdma->Instance->CTR1 & DMA_CTR1_DSEC) == 0U) ? DMA_CHANNEL_DEST_NSEC : DMA_CHANNEL… in HAL_DMA_GetConfigChannelAttributes()
1495 HAL_StatusTypeDef HAL_DMA_LockChannelAttributes(DMA_HandleTypeDef const *const hdma) in HAL_DMA_LockChannelAttributes() argument
1501 if (hdma == NULL) in HAL_DMA_LockChannelAttributes()
1507 p_dma_instance = GET_DMA_INSTANCE(hdma); in HAL_DMA_LockChannelAttributes()
1510 channel_idx = 1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU); in HAL_DMA_LockChannelAttributes()
1527 HAL_StatusTypeDef HAL_DMA_GetLockChannelAttributes(DMA_HandleTypeDef const *const hdma, uint32_t *c… in HAL_DMA_GetLockChannelAttributes() argument
1533 if ((hdma == NULL) || (pLockState == NULL)) in HAL_DMA_GetLockChannelAttributes()
1539 p_dma_instance = GET_DMA_INSTANCE(hdma); in HAL_DMA_GetLockChannelAttributes()
1542 channel_idx = 1UL << (GET_DMA_CHANNEL(hdma) & 0x1FU); in HAL_DMA_GetLockChannelAttributes()
1575 static void DMA_SetConfig(DMA_HandleTypeDef const *const hdma, in DMA_SetConfig() argument
1581 MODIFY_REG(hdma->Instance->CBR1, DMA_CBR1_BNDT, (SrcDataSize & DMA_CBR1_BNDT)); in DMA_SetConfig()
1584 …__HAL_DMA_CLEAR_FLAG(hdma, DMA_FLAG_TC | DMA_FLAG_HT | DMA_FLAG_DTE | DMA_FLAG_ULE | DMA_FLAG_USE … in DMA_SetConfig()
1588 hdma->Instance->CSAR = SrcAddress; in DMA_SetConfig()
1591 hdma->Instance->CDAR = DstAddress; in DMA_SetConfig()
1600 static void DMA_Init(DMA_HandleTypeDef const *const hdma) in DMA_Init() argument
1605 tmpreg = hdma->Init.Priority; in DMA_Init()
1608 MODIFY_REG(hdma->Instance->CCR, DMA_CCR_PRIO | DMA_CCR_LAP | DMA_CCR_LSM, tmpreg); in DMA_Init()
1611 …tmpreg = hdma->Init.DestInc | hdma->Init.DestDataWidth | hdma->Init.SrcInc | hdma->Init.SrcDataWid… in DMA_Init()
1614 if (IS_GPDMA_INSTANCE(hdma->Instance) != 0U) in DMA_Init()
1616 tmpreg |= (hdma->Init.TransferAllocatedPort | in DMA_Init()
1617 (((hdma->Init.DestBurstLength - 1U) << DMA_CTR1_DBL_1_Pos) & DMA_CTR1_DBL_1) | in DMA_Init()
1618 (((hdma->Init.SrcBurstLength - 1U) << DMA_CTR1_SBL_1_Pos) & DMA_CTR1_SBL_1)); in DMA_Init()
1623 MODIFY_REG(hdma->Instance->CTR1, ~(DMA_CTR1_SSEC | DMA_CTR1_DSEC), tmpreg); in DMA_Init()
1625 WRITE_REG(hdma->Instance->CTR1, tmpreg); in DMA_Init()
1629 …tmpreg = hdma->Init.BlkHWRequest | (hdma->Init.Request & DMA_CTR2_REQSEL) | hdma->Init.TransferEve… in DMA_Init()
1632 if ((hdma->Init.Direction) == DMA_MEMORY_TO_PERIPH) in DMA_Init()
1634 if (IS_GPDMA_INSTANCE(hdma->Instance) != 0U) in DMA_Init()
1640 else if ((hdma->Init.Direction) == DMA_MEMORY_TO_MEMORY) in DMA_Init()
1650 …MODIFY_REG(hdma->Instance->CTR2, (DMA_CTR2_TCEM | DMA_CTR2_TRIGPOL | DMA_CTR2_TRIGSEL | DMA_CTR2_… in DMA_Init()
1654 WRITE_REG(hdma->Instance->CBR1, 0U); in DMA_Init()
1657 WRITE_REG(hdma->Instance->CLLR, 0U); in DMA_Init()