Lines Matching refs:hospi

313 static HAL_StatusTypeDef OSPI_WaitFlagStateUntilTimeout(OSPI_HandleTypeDef *hospi, uint32_t Flag, F…
315 static HAL_StatusTypeDef OSPI_ConfigCmd(OSPI_HandleTypeDef *hospi, OSPI_RegularCmdTypeDef *cmd);
350 HAL_StatusTypeDef HAL_OSPI_Init(OSPI_HandleTypeDef *hospi) in HAL_OSPI_Init() argument
356 if (hospi == NULL) in HAL_OSPI_Init()
364 assert_param(IS_OSPI_FIFO_THRESHOLD(hospi->Init.FifoThreshold)); in HAL_OSPI_Init()
365 assert_param(IS_OSPI_DUALQUAD_MODE(hospi->Init.DualQuad)); in HAL_OSPI_Init()
366 assert_param(IS_OSPI_MEMORY_TYPE(hospi->Init.MemoryType)); in HAL_OSPI_Init()
367 assert_param(IS_OSPI_DEVICE_SIZE(hospi->Init.DeviceSize)); in HAL_OSPI_Init()
368 assert_param(IS_OSPI_CS_HIGH_TIME(hospi->Init.ChipSelectHighTime)); in HAL_OSPI_Init()
369 assert_param(IS_OSPI_FREE_RUN_CLK(hospi->Init.FreeRunningClock)); in HAL_OSPI_Init()
370 assert_param(IS_OSPI_CLOCK_MODE(hospi->Init.ClockMode)); in HAL_OSPI_Init()
371 assert_param(IS_OSPI_WRAP_SIZE(hospi->Init.WrapSize)); in HAL_OSPI_Init()
372 assert_param(IS_OSPI_CLK_PRESCALER(hospi->Init.ClockPrescaler)); in HAL_OSPI_Init()
373 assert_param(IS_OSPI_SAMPLE_SHIFTING(hospi->Init.SampleShifting)); in HAL_OSPI_Init()
374 assert_param(IS_OSPI_DHQC(hospi->Init.DelayHoldQuarterCycle)); in HAL_OSPI_Init()
375 assert_param(IS_OSPI_CS_BOUNDARY(hospi->Init.ChipSelectBoundary)); in HAL_OSPI_Init()
376 assert_param(IS_OSPI_DLYBYP(hospi->Init.DelayBlockBypass)); in HAL_OSPI_Init()
377 assert_param(IS_OSPI_MAXTRAN(hospi->Init.MaxTran)); in HAL_OSPI_Init()
380 hospi->ErrorCode = HAL_OSPI_ERROR_NONE; in HAL_OSPI_Init()
383 if (hospi->State == HAL_OSPI_STATE_RESET) in HAL_OSPI_Init()
387 hospi->ErrorCallback = HAL_OSPI_ErrorCallback; in HAL_OSPI_Init()
388 hospi->AbortCpltCallback = HAL_OSPI_AbortCpltCallback; in HAL_OSPI_Init()
389 hospi->FifoThresholdCallback = HAL_OSPI_FifoThresholdCallback; in HAL_OSPI_Init()
390 hospi->CmdCpltCallback = HAL_OSPI_CmdCpltCallback; in HAL_OSPI_Init()
391 hospi->RxCpltCallback = HAL_OSPI_RxCpltCallback; in HAL_OSPI_Init()
392 hospi->TxCpltCallback = HAL_OSPI_TxCpltCallback; in HAL_OSPI_Init()
393 hospi->RxHalfCpltCallback = HAL_OSPI_RxHalfCpltCallback; in HAL_OSPI_Init()
394 hospi->TxHalfCpltCallback = HAL_OSPI_TxHalfCpltCallback; in HAL_OSPI_Init()
395 hospi->StatusMatchCallback = HAL_OSPI_StatusMatchCallback; in HAL_OSPI_Init()
396 hospi->TimeOutCallback = HAL_OSPI_TimeOutCallback; in HAL_OSPI_Init()
398 if (hospi->MspInitCallback == NULL) in HAL_OSPI_Init()
400 hospi->MspInitCallback = HAL_OSPI_MspInit; in HAL_OSPI_Init()
404 hospi->MspInitCallback(hospi); in HAL_OSPI_Init()
407 HAL_OSPI_MspInit(hospi); in HAL_OSPI_Init()
411 (void)HAL_OSPI_SetTimeout(hospi, HAL_OSPI_TIMEOUT_DEFAULT_VALUE); in HAL_OSPI_Init()
415 MODIFY_REG(hospi->Instance->DCR1, in HAL_OSPI_Init()
418 … (hospi->Init.MemoryType | ((hospi->Init.DeviceSize - 1U) << OCTOSPI_DCR1_DEVSIZE_Pos) | in HAL_OSPI_Init()
419 ((hospi->Init.ChipSelectHighTime - 1U) << OCTOSPI_DCR1_CSHT_Pos) | in HAL_OSPI_Init()
420 hospi->Init.DelayBlockBypass | hospi->Init.ClockMode)); in HAL_OSPI_Init()
423 MODIFY_REG(hospi->Instance->DCR2, OCTOSPI_DCR2_WRAPSIZE, hospi->Init.WrapSize); in HAL_OSPI_Init()
426 hospi->Instance->DCR3 = ((hospi->Init.ChipSelectBoundary << OCTOSPI_DCR3_CSBOUND_Pos) | in HAL_OSPI_Init()
427 (hospi->Init.MaxTran << OCTOSPI_DCR3_MAXTRAN_Pos)); in HAL_OSPI_Init()
430 hospi->Instance->DCR4 = hospi->Init.Refresh; in HAL_OSPI_Init()
433 …MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FTHRES, ((hospi->Init.FifoThreshold - 1U) << OCTOSPI_CR… in HAL_OSPI_Init()
436 …status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, hospi->Timeou… in HAL_OSPI_Init()
441 MODIFY_REG(hospi->Instance->DCR2, OCTOSPI_DCR2_PRESCALER, in HAL_OSPI_Init()
442 ((hospi->Init.ClockPrescaler - 1U) << OCTOSPI_DCR2_PRESCALER_Pos)); in HAL_OSPI_Init()
445 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_DQM, hospi->Init.DualQuad); in HAL_OSPI_Init()
448 MODIFY_REG(hospi->Instance->TCR, (OCTOSPI_TCR_SSHIFT | OCTOSPI_TCR_DHQC), in HAL_OSPI_Init()
449 (hospi->Init.SampleShifting | hospi->Init.DelayHoldQuarterCycle)); in HAL_OSPI_Init()
452 __HAL_OSPI_ENABLE(hospi); in HAL_OSPI_Init()
455 if (hospi->Init.FreeRunningClock == HAL_OSPI_FREERUNCLK_ENABLE) in HAL_OSPI_Init()
457 SET_BIT(hospi->Instance->DCR1, OCTOSPI_DCR1_FRCK); in HAL_OSPI_Init()
461 if (hospi->Init.MemoryType == HAL_OSPI_MEMTYPE_HYPERBUS) in HAL_OSPI_Init()
463 hospi->State = HAL_OSPI_STATE_HYPERBUS_INIT; in HAL_OSPI_Init()
467 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Init()
482 __weak void HAL_OSPI_MspInit(OSPI_HandleTypeDef *hospi) in HAL_OSPI_MspInit() argument
485 UNUSED(hospi); in HAL_OSPI_MspInit()
497 HAL_StatusTypeDef HAL_OSPI_DeInit(OSPI_HandleTypeDef *hospi) in HAL_OSPI_DeInit() argument
502 if (hospi == NULL) in HAL_OSPI_DeInit()
510 __HAL_OSPI_DISABLE(hospi); in HAL_OSPI_DeInit()
513 CLEAR_BIT(hospi->Instance->DCR1, OCTOSPI_DCR1_FRCK); in HAL_OSPI_DeInit()
516 if (hospi->MspDeInitCallback == NULL) in HAL_OSPI_DeInit()
518 hospi->MspDeInitCallback = HAL_OSPI_MspDeInit; in HAL_OSPI_DeInit()
522 hospi->MspDeInitCallback(hospi); in HAL_OSPI_DeInit()
525 HAL_OSPI_MspDeInit(hospi); in HAL_OSPI_DeInit()
529 hospi->State = HAL_OSPI_STATE_RESET; in HAL_OSPI_DeInit()
540 __weak void HAL_OSPI_MspDeInit(OSPI_HandleTypeDef *hospi) in HAL_OSPI_MspDeInit() argument
543 UNUSED(hospi); in HAL_OSPI_MspDeInit()
580 void HAL_OSPI_IRQHandler(OSPI_HandleTypeDef *hospi) in HAL_OSPI_IRQHandler() argument
582 __IO uint32_t *data_reg = &hospi->Instance->DR; in HAL_OSPI_IRQHandler()
583 uint32_t flag = hospi->Instance->SR; in HAL_OSPI_IRQHandler()
584 uint32_t itsource = hospi->Instance->CR; in HAL_OSPI_IRQHandler()
585 uint32_t currentstate = hospi->State; in HAL_OSPI_IRQHandler()
593 *((__IO uint8_t *)data_reg) = *hospi->pBuffPtr; in HAL_OSPI_IRQHandler()
594 hospi->pBuffPtr++; in HAL_OSPI_IRQHandler()
595 hospi->XferCount--; in HAL_OSPI_IRQHandler()
600 *hospi->pBuffPtr = *((__IO uint8_t *)data_reg); in HAL_OSPI_IRQHandler()
601 hospi->pBuffPtr++; in HAL_OSPI_IRQHandler()
602 hospi->XferCount--; in HAL_OSPI_IRQHandler()
609 if (hospi->XferCount == 0U) in HAL_OSPI_IRQHandler()
613 __HAL_OSPI_DISABLE_IT(hospi, HAL_OSPI_IT_FT); in HAL_OSPI_IRQHandler()
618 hospi->FifoThresholdCallback(hospi); in HAL_OSPI_IRQHandler()
620 HAL_OSPI_FifoThresholdCallback(hospi); in HAL_OSPI_IRQHandler()
628 if ((hospi->XferCount > 0U) && ((flag & OCTOSPI_SR_FLEVEL) != 0U)) in HAL_OSPI_IRQHandler()
631 *hospi->pBuffPtr = *((__IO uint8_t *)data_reg); in HAL_OSPI_IRQHandler()
632 hospi->pBuffPtr++; in HAL_OSPI_IRQHandler()
633 hospi->XferCount--; in HAL_OSPI_IRQHandler()
635 else if (hospi->XferCount == 0U) in HAL_OSPI_IRQHandler()
638 hospi->Instance->FCR = HAL_OSPI_FLAG_TC; in HAL_OSPI_IRQHandler()
641 __HAL_OSPI_DISABLE_IT(hospi, HAL_OSPI_IT_TC | HAL_OSPI_IT_FT | HAL_OSPI_IT_TE); in HAL_OSPI_IRQHandler()
644 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_IRQHandler()
648 hospi->RxCpltCallback(hospi); in HAL_OSPI_IRQHandler()
650 HAL_OSPI_RxCpltCallback(hospi); in HAL_OSPI_IRQHandler()
661 hospi->Instance->FCR = HAL_OSPI_FLAG_TC; in HAL_OSPI_IRQHandler()
664 __HAL_OSPI_DISABLE_IT(hospi, HAL_OSPI_IT_TC | HAL_OSPI_IT_FT | HAL_OSPI_IT_TE); in HAL_OSPI_IRQHandler()
667 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_IRQHandler()
673 hospi->TxCpltCallback(hospi); in HAL_OSPI_IRQHandler()
675 HAL_OSPI_TxCpltCallback(hospi); in HAL_OSPI_IRQHandler()
682 hospi->CmdCpltCallback(hospi); in HAL_OSPI_IRQHandler()
684 HAL_OSPI_CmdCpltCallback(hospi); in HAL_OSPI_IRQHandler()
689 if (hospi->ErrorCode == HAL_OSPI_ERROR_NONE) in HAL_OSPI_IRQHandler()
694 hospi->AbortCpltCallback(hospi); in HAL_OSPI_IRQHandler()
696 HAL_OSPI_AbortCpltCallback(hospi); in HAL_OSPI_IRQHandler()
704 hospi->ErrorCallback(hospi); in HAL_OSPI_IRQHandler()
706 HAL_OSPI_ErrorCallback(hospi); in HAL_OSPI_IRQHandler()
720 hospi->Instance->FCR = HAL_OSPI_FLAG_SM; in HAL_OSPI_IRQHandler()
723 if ((hospi->Instance->CR & OCTOSPI_CR_APMS) != 0U) in HAL_OSPI_IRQHandler()
726 __HAL_OSPI_DISABLE_IT(hospi, HAL_OSPI_IT_SM | HAL_OSPI_IT_TE); in HAL_OSPI_IRQHandler()
729 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_IRQHandler()
734 hospi->StatusMatchCallback(hospi); in HAL_OSPI_IRQHandler()
736 HAL_OSPI_StatusMatchCallback(hospi); in HAL_OSPI_IRQHandler()
743 hospi->Instance->FCR = HAL_OSPI_FLAG_TE; in HAL_OSPI_IRQHandler()
746 …__HAL_OSPI_DISABLE_IT(hospi, (HAL_OSPI_IT_TO | HAL_OSPI_IT_SM | HAL_OSPI_IT_FT | HAL_OSPI_IT_TC | … in HAL_OSPI_IRQHandler()
749 hospi->ErrorCode = HAL_OSPI_ERROR_TRANSFER; in HAL_OSPI_IRQHandler()
752 if ((hospi->Instance->CR & OCTOSPI_CR_DMAEN) != 0U) in HAL_OSPI_IRQHandler()
755 CLEAR_BIT(hospi->Instance->CR, OCTOSPI_CR_DMAEN); in HAL_OSPI_IRQHandler()
758 hospi->hmdma->XferAbortCallback = OSPI_DMAAbortCplt; in HAL_OSPI_IRQHandler()
759 if (HAL_MDMA_Abort_IT(hospi->hmdma) != HAL_OK) in HAL_OSPI_IRQHandler()
762 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_IRQHandler()
766 hospi->ErrorCallback(hospi); in HAL_OSPI_IRQHandler()
768 HAL_OSPI_ErrorCallback(hospi); in HAL_OSPI_IRQHandler()
775 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_IRQHandler()
779 hospi->ErrorCallback(hospi); in HAL_OSPI_IRQHandler()
781 HAL_OSPI_ErrorCallback(hospi); in HAL_OSPI_IRQHandler()
789 hospi->Instance->FCR = HAL_OSPI_FLAG_TO; in HAL_OSPI_IRQHandler()
793 hospi->TimeOutCallback(hospi); in HAL_OSPI_IRQHandler()
795 HAL_OSPI_TimeOutCallback(hospi); in HAL_OSPI_IRQHandler()
811 HAL_StatusTypeDef HAL_OSPI_Command(OSPI_HandleTypeDef *hospi, OSPI_RegularCmdTypeDef *cmd, uint32_t… in HAL_OSPI_Command() argument
820 if (hospi->Init.DualQuad == HAL_OSPI_DUALQUAD_DISABLE) in HAL_OSPI_Command()
861 state = hospi->State; in HAL_OSPI_Command()
862 …if (((state == HAL_OSPI_STATE_READY) && (hospi->Init.MemoryType != HAL_OSPI_MEMTYPE_HYPERB… in HAL_OSPI_Command()
869 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, Timeout); in HAL_OSPI_Command()
874 hospi->ErrorCode = HAL_OSPI_ERROR_NONE; in HAL_OSPI_Command()
877 status = OSPI_ConfigCmd(hospi, cmd); in HAL_OSPI_Command()
885 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_TC, SET, tickstart, Timeout); in HAL_OSPI_Command()
887 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TC); in HAL_OSPI_Command()
894 hospi->State = HAL_OSPI_STATE_CMD_CFG; in HAL_OSPI_Command()
898 if (hospi->State == HAL_OSPI_STATE_WRITE_CMD_CFG) in HAL_OSPI_Command()
900 hospi->State = HAL_OSPI_STATE_CMD_CFG; in HAL_OSPI_Command()
904 hospi->State = HAL_OSPI_STATE_READ_CMD_CFG; in HAL_OSPI_Command()
909 if (hospi->State == HAL_OSPI_STATE_READ_CMD_CFG) in HAL_OSPI_Command()
911 hospi->State = HAL_OSPI_STATE_CMD_CFG; in HAL_OSPI_Command()
915 hospi->State = HAL_OSPI_STATE_WRITE_CMD_CFG; in HAL_OSPI_Command()
929 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Command()
943 HAL_StatusTypeDef HAL_OSPI_Command_IT(OSPI_HandleTypeDef *hospi, OSPI_RegularCmdTypeDef *cmd) in HAL_OSPI_Command_IT() argument
951 if (hospi->Init.DualQuad == HAL_OSPI_DUALQUAD_DISABLE) in HAL_OSPI_Command_IT()
989 …if ((hospi->State == HAL_OSPI_STATE_READY) && (cmd->OperationType == HAL_OSPI_OPTYPE_COMMON_C… in HAL_OSPI_Command_IT()
990 … (cmd->DataMode == HAL_OSPI_DATA_NONE) && (hospi->Init.MemoryType != HAL_OSPI_MEMTYPE_HYPERBUS)) in HAL_OSPI_Command_IT()
993 …status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, hospi->Timeou… in HAL_OSPI_Command_IT()
998 hospi->ErrorCode = HAL_OSPI_ERROR_NONE; in HAL_OSPI_Command_IT()
1001 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TE | HAL_OSPI_FLAG_TC); in HAL_OSPI_Command_IT()
1004 status = OSPI_ConfigCmd(hospi, cmd); in HAL_OSPI_Command_IT()
1009 hospi->State = HAL_OSPI_STATE_BUSY_CMD; in HAL_OSPI_Command_IT()
1012 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TC | HAL_OSPI_IT_TE); in HAL_OSPI_Command_IT()
1019 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Command_IT()
1033 HAL_StatusTypeDef HAL_OSPI_HyperbusCfg(OSPI_HandleTypeDef *hospi, OSPI_HyperbusCfgTypeDef *cfg, uin… in HAL_OSPI_HyperbusCfg() argument
1046 state = hospi->State; in HAL_OSPI_HyperbusCfg()
1050 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, Timeout); in HAL_OSPI_HyperbusCfg()
1055 WRITE_REG(hospi->Instance->HLCR, ((cfg->RWRecoveryTime << OCTOSPI_HLCR_TRWR_Pos) | in HAL_OSPI_HyperbusCfg()
1060 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_HyperbusCfg()
1066 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_HyperbusCfg()
1080 HAL_StatusTypeDef HAL_OSPI_HyperbusCmd(OSPI_HandleTypeDef *hospi, OSPI_HyperbusCmdTypeDef *cmd, uin… in HAL_OSPI_HyperbusCmd() argument
1092 …if ((hospi->State == HAL_OSPI_STATE_READY) && (hospi->Init.MemoryType == HAL_OSPI_MEMTYPE_HYPERBUS… in HAL_OSPI_HyperbusCmd()
1095 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, Timeout); in HAL_OSPI_HyperbusCmd()
1100 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FMODE, 0U); in HAL_OSPI_HyperbusCmd()
1103 MODIFY_REG(hospi->Instance->DCR1, OCTOSPI_DCR1_MTYP_0, cmd->AddressSpace); in HAL_OSPI_HyperbusCmd()
1109 WRITE_REG(hospi->Instance->CCR, (cmd->DQSMode | OCTOSPI_CCR_DDTR | OCTOSPI_CCR_DMODE_2 | in HAL_OSPI_HyperbusCmd()
1111 WRITE_REG(hospi->Instance->WCCR, (cmd->DQSMode | OCTOSPI_WCCR_DDTR | OCTOSPI_WCCR_DMODE_2 | in HAL_OSPI_HyperbusCmd()
1115 WRITE_REG(hospi->Instance->DLR, (cmd->NbData - 1U)); in HAL_OSPI_HyperbusCmd()
1118 WRITE_REG(hospi->Instance->AR, cmd->Address); in HAL_OSPI_HyperbusCmd()
1121 hospi->State = HAL_OSPI_STATE_CMD_CFG; in HAL_OSPI_HyperbusCmd()
1127 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_HyperbusCmd()
1142 HAL_StatusTypeDef HAL_OSPI_Transmit(OSPI_HandleTypeDef *hospi, uint8_t *pData, uint32_t Timeout) in HAL_OSPI_Transmit() argument
1146 __IO uint32_t *data_reg = &hospi->Instance->DR; in HAL_OSPI_Transmit()
1152 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPI_Transmit()
1157 if (hospi->State == HAL_OSPI_STATE_CMD_CFG) in HAL_OSPI_Transmit()
1160 hospi->XferCount = READ_REG(hospi->Instance->DLR) + 1U; in HAL_OSPI_Transmit()
1161 hospi->XferSize = hospi->XferCount; in HAL_OSPI_Transmit()
1162 hospi->pBuffPtr = pData; in HAL_OSPI_Transmit()
1165 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FMODE, OSPI_FUNCTIONAL_MODE_INDIRECT_WRITE); in HAL_OSPI_Transmit()
1170 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_FT, SET, tickstart, Timeout); in HAL_OSPI_Transmit()
1177 *((__IO uint8_t *)data_reg) = *hospi->pBuffPtr; in HAL_OSPI_Transmit()
1178 hospi->pBuffPtr++; in HAL_OSPI_Transmit()
1179 hospi->XferCount--; in HAL_OSPI_Transmit()
1181 while (hospi->XferCount > 0U); in HAL_OSPI_Transmit()
1186 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_TC, SET, tickstart, Timeout); in HAL_OSPI_Transmit()
1191 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TC); in HAL_OSPI_Transmit()
1194 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Transmit()
1201 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Transmit()
1217 HAL_StatusTypeDef HAL_OSPI_Receive(OSPI_HandleTypeDef *hospi, uint8_t *pData, uint32_t Timeout) in HAL_OSPI_Receive() argument
1221 __IO uint32_t *data_reg = &hospi->Instance->DR; in HAL_OSPI_Receive()
1222 uint32_t addr_reg = hospi->Instance->AR; in HAL_OSPI_Receive()
1223 uint32_t ir_reg = hospi->Instance->IR; in HAL_OSPI_Receive()
1229 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPI_Receive()
1234 if (hospi->State == HAL_OSPI_STATE_CMD_CFG) in HAL_OSPI_Receive()
1237 hospi->XferCount = READ_REG(hospi->Instance->DLR) + 1U; in HAL_OSPI_Receive()
1238 hospi->XferSize = hospi->XferCount; in HAL_OSPI_Receive()
1239 hospi->pBuffPtr = pData; in HAL_OSPI_Receive()
1242 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FMODE, OSPI_FUNCTIONAL_MODE_INDIRECT_READ); in HAL_OSPI_Receive()
1245 if (hospi->Init.MemoryType == HAL_OSPI_MEMTYPE_HYPERBUS) in HAL_OSPI_Receive()
1247 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_Receive()
1251 if (READ_BIT(hospi->Instance->CCR, OCTOSPI_CCR_ADMODE) != HAL_OSPI_ADDRESS_NONE) in HAL_OSPI_Receive()
1253 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_Receive()
1257 WRITE_REG(hospi->Instance->IR, ir_reg); in HAL_OSPI_Receive()
1264 …status = OSPI_WaitFlagStateUntilTimeout(hospi, (HAL_OSPI_FLAG_FT | HAL_OSPI_FLAG_TC), SET, ticksta… in HAL_OSPI_Receive()
1271 *hospi->pBuffPtr = *((__IO uint8_t *)data_reg); in HAL_OSPI_Receive()
1272 hospi->pBuffPtr++; in HAL_OSPI_Receive()
1273 hospi->XferCount--; in HAL_OSPI_Receive()
1275 while (hospi->XferCount > 0U); in HAL_OSPI_Receive()
1280 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_TC, SET, tickstart, Timeout); in HAL_OSPI_Receive()
1285 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TC); in HAL_OSPI_Receive()
1288 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Receive()
1295 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Receive()
1310 HAL_StatusTypeDef HAL_OSPI_Transmit_IT(OSPI_HandleTypeDef *hospi, uint8_t *pData) in HAL_OSPI_Transmit_IT() argument
1318 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPI_Transmit_IT()
1323 if (hospi->State == HAL_OSPI_STATE_CMD_CFG) in HAL_OSPI_Transmit_IT()
1326 hospi->XferCount = READ_REG(hospi->Instance->DLR) + 1U; in HAL_OSPI_Transmit_IT()
1327 hospi->XferSize = hospi->XferCount; in HAL_OSPI_Transmit_IT()
1328 hospi->pBuffPtr = pData; in HAL_OSPI_Transmit_IT()
1331 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FMODE, OSPI_FUNCTIONAL_MODE_INDIRECT_WRITE); in HAL_OSPI_Transmit_IT()
1334 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TE | HAL_OSPI_FLAG_TC); in HAL_OSPI_Transmit_IT()
1337 hospi->State = HAL_OSPI_STATE_BUSY_TX; in HAL_OSPI_Transmit_IT()
1340 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TC | HAL_OSPI_IT_FT | HAL_OSPI_IT_TE); in HAL_OSPI_Transmit_IT()
1345 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Transmit_IT()
1360 HAL_StatusTypeDef HAL_OSPI_Receive_IT(OSPI_HandleTypeDef *hospi, uint8_t *pData) in HAL_OSPI_Receive_IT() argument
1363 uint32_t addr_reg = hospi->Instance->AR; in HAL_OSPI_Receive_IT()
1364 uint32_t ir_reg = hospi->Instance->IR; in HAL_OSPI_Receive_IT()
1370 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPI_Receive_IT()
1375 if (hospi->State == HAL_OSPI_STATE_CMD_CFG) in HAL_OSPI_Receive_IT()
1378 hospi->XferCount = READ_REG(hospi->Instance->DLR) + 1U; in HAL_OSPI_Receive_IT()
1379 hospi->XferSize = hospi->XferCount; in HAL_OSPI_Receive_IT()
1380 hospi->pBuffPtr = pData; in HAL_OSPI_Receive_IT()
1383 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FMODE, OSPI_FUNCTIONAL_MODE_INDIRECT_READ); in HAL_OSPI_Receive_IT()
1386 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TE | HAL_OSPI_FLAG_TC); in HAL_OSPI_Receive_IT()
1389 hospi->State = HAL_OSPI_STATE_BUSY_RX; in HAL_OSPI_Receive_IT()
1392 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TC | HAL_OSPI_IT_FT | HAL_OSPI_IT_TE); in HAL_OSPI_Receive_IT()
1395 if (hospi->Init.MemoryType == HAL_OSPI_MEMTYPE_HYPERBUS) in HAL_OSPI_Receive_IT()
1397 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_Receive_IT()
1401 if (READ_BIT(hospi->Instance->CCR, OCTOSPI_CCR_ADMODE) != HAL_OSPI_ADDRESS_NONE) in HAL_OSPI_Receive_IT()
1403 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_Receive_IT()
1407 WRITE_REG(hospi->Instance->IR, ir_reg); in HAL_OSPI_Receive_IT()
1414 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Receive_IT()
1433 HAL_StatusTypeDef HAL_OSPI_Transmit_DMA(OSPI_HandleTypeDef *hospi, uint8_t *pData) in HAL_OSPI_Transmit_DMA() argument
1436 uint32_t data_size = hospi->Instance->DLR + 1U; in HAL_OSPI_Transmit_DMA()
1442 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPI_Transmit_DMA()
1447 if (hospi->State == HAL_OSPI_STATE_CMD_CFG) in HAL_OSPI_Transmit_DMA()
1449 hospi->XferCount = data_size; in HAL_OSPI_Transmit_DMA()
1452 hospi->XferSize = hospi->XferCount; in HAL_OSPI_Transmit_DMA()
1453 hospi->pBuffPtr = pData; in HAL_OSPI_Transmit_DMA()
1456 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FMODE, OSPI_FUNCTIONAL_MODE_INDIRECT_WRITE); in HAL_OSPI_Transmit_DMA()
1459 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TE | HAL_OSPI_FLAG_TC); in HAL_OSPI_Transmit_DMA()
1462 hospi->State = HAL_OSPI_STATE_BUSY_TX; in HAL_OSPI_Transmit_DMA()
1465 hospi->hmdma->XferCpltCallback = OSPI_DMACplt; in HAL_OSPI_Transmit_DMA()
1468 hospi->hmdma->XferErrorCallback = OSPI_DMAError; in HAL_OSPI_Transmit_DMA()
1471 hospi->hmdma->XferAbortCallback = NULL; in HAL_OSPI_Transmit_DMA()
1475 …MODIFY_REG(hospi->hmdma->Instance->CTCR, (MDMA_CTCR_DINC | MDMA_CTCR_DINCOS), MDMA_DEST_INC_DISABL… in HAL_OSPI_Transmit_DMA()
1478 if (hospi->hmdma->Init.SourceDataSize == MDMA_SRC_DATASIZE_BYTE) in HAL_OSPI_Transmit_DMA()
1480 … MODIFY_REG(hospi->hmdma->Instance->CTCR, (MDMA_CTCR_SINC | MDMA_CTCR_SINCOS), MDMA_SRC_INC_BYTE); in HAL_OSPI_Transmit_DMA()
1482 else if (hospi->hmdma->Init.SourceDataSize == MDMA_SRC_DATASIZE_HALFWORD) in HAL_OSPI_Transmit_DMA()
1484 …MODIFY_REG(hospi->hmdma->Instance->CTCR, (MDMA_CTCR_SINC | MDMA_CTCR_SINCOS), MDMA_SRC_INC_HALFWOR… in HAL_OSPI_Transmit_DMA()
1486 else if (hospi->hmdma->Init.SourceDataSize == MDMA_SRC_DATASIZE_WORD) in HAL_OSPI_Transmit_DMA()
1488 … MODIFY_REG(hospi->hmdma->Instance->CTCR, (MDMA_CTCR_SINC | MDMA_CTCR_SINCOS), MDMA_SRC_INC_WORD); in HAL_OSPI_Transmit_DMA()
1493 hospi->ErrorCode |= HAL_OSPI_ERROR_DMA; in HAL_OSPI_Transmit_DMA()
1498 …if (HAL_MDMA_Start_IT(hospi->hmdma, (uint32_t)&hospi->Instance->DR, (uint32_t)pData, hospi->XferSi… in HAL_OSPI_Transmit_DMA()
1502 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TE); in HAL_OSPI_Transmit_DMA()
1505 SET_BIT(hospi->Instance->CR, OCTOSPI_CR_DMAEN); in HAL_OSPI_Transmit_DMA()
1510 hospi->ErrorCode = HAL_OSPI_ERROR_DMA; in HAL_OSPI_Transmit_DMA()
1511 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Transmit_DMA()
1518 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Transmit_DMA()
1537 HAL_StatusTypeDef HAL_OSPI_Receive_DMA(OSPI_HandleTypeDef *hospi, uint8_t *pData) in HAL_OSPI_Receive_DMA() argument
1540 uint32_t data_size = hospi->Instance->DLR + 1U; in HAL_OSPI_Receive_DMA()
1541 uint32_t addr_reg = hospi->Instance->AR; in HAL_OSPI_Receive_DMA()
1542 uint32_t ir_reg = hospi->Instance->IR; in HAL_OSPI_Receive_DMA()
1547 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPI_Receive_DMA()
1552 if (hospi->State == HAL_OSPI_STATE_CMD_CFG) in HAL_OSPI_Receive_DMA()
1554 hospi->XferCount = data_size; in HAL_OSPI_Receive_DMA()
1557 hospi->XferSize = hospi->XferCount; in HAL_OSPI_Receive_DMA()
1558 hospi->pBuffPtr = pData; in HAL_OSPI_Receive_DMA()
1561 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FMODE, OSPI_FUNCTIONAL_MODE_INDIRECT_READ); in HAL_OSPI_Receive_DMA()
1564 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TE | HAL_OSPI_FLAG_TC); in HAL_OSPI_Receive_DMA()
1567 hospi->State = HAL_OSPI_STATE_BUSY_RX; in HAL_OSPI_Receive_DMA()
1570 hospi->hmdma->XferCpltCallback = OSPI_DMACplt; in HAL_OSPI_Receive_DMA()
1573 hospi->hmdma->XferErrorCallback = OSPI_DMAError; in HAL_OSPI_Receive_DMA()
1576 hospi->hmdma->XferAbortCallback = NULL; in HAL_OSPI_Receive_DMA()
1579 …MODIFY_REG(hospi->hmdma->Instance->CTCR, (MDMA_CTCR_SINC | MDMA_CTCR_SINCOS), MDMA_SRC_INC_DISABLE… in HAL_OSPI_Receive_DMA()
1582 if (hospi->hmdma->Init.DestDataSize == MDMA_DEST_DATASIZE_BYTE) in HAL_OSPI_Receive_DMA()
1584 … MODIFY_REG(hospi->hmdma->Instance->CTCR, (MDMA_CTCR_DINC | MDMA_CTCR_DINCOS), MDMA_DEST_INC_BYTE); in HAL_OSPI_Receive_DMA()
1586 else if (hospi->hmdma->Init.DestDataSize == MDMA_DEST_DATASIZE_HALFWORD) in HAL_OSPI_Receive_DMA()
1588 …MODIFY_REG(hospi->hmdma->Instance->CTCR, (MDMA_CTCR_DINC | MDMA_CTCR_DINCOS), MDMA_DEST_INC_HALFWO… in HAL_OSPI_Receive_DMA()
1590 else if (hospi->hmdma->Init.DestDataSize == MDMA_DEST_DATASIZE_WORD) in HAL_OSPI_Receive_DMA()
1592 … MODIFY_REG(hospi->hmdma->Instance->CTCR, (MDMA_CTCR_DINC | MDMA_CTCR_DINCOS), MDMA_DEST_INC_WORD); in HAL_OSPI_Receive_DMA()
1597 hospi->ErrorCode |= HAL_OSPI_ERROR_DMA; in HAL_OSPI_Receive_DMA()
1602 …if (HAL_MDMA_Start_IT(hospi->hmdma, (uint32_t)&hospi->Instance->DR, (uint32_t)pData, hospi->XferSi… in HAL_OSPI_Receive_DMA()
1606 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TE); in HAL_OSPI_Receive_DMA()
1609 if (hospi->Init.MemoryType == HAL_OSPI_MEMTYPE_HYPERBUS) in HAL_OSPI_Receive_DMA()
1611 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_Receive_DMA()
1615 if (READ_BIT(hospi->Instance->CCR, OCTOSPI_CCR_ADMODE) != HAL_OSPI_ADDRESS_NONE) in HAL_OSPI_Receive_DMA()
1617 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_Receive_DMA()
1621 WRITE_REG(hospi->Instance->IR, ir_reg); in HAL_OSPI_Receive_DMA()
1626 SET_BIT(hospi->Instance->CR, OCTOSPI_CR_DMAEN); in HAL_OSPI_Receive_DMA()
1631 hospi->ErrorCode = HAL_OSPI_ERROR_DMA; in HAL_OSPI_Receive_DMA()
1632 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Receive_DMA()
1639 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Receive_DMA()
1655 HAL_StatusTypeDef HAL_OSPI_AutoPolling(OSPI_HandleTypeDef *hospi, OSPI_AutoPollingTypeDef *cfg, uin… in HAL_OSPI_AutoPolling() argument
1659 uint32_t addr_reg = hospi->Instance->AR; in HAL_OSPI_AutoPolling()
1660 uint32_t ir_reg = hospi->Instance->IR; in HAL_OSPI_AutoPolling()
1662 uint32_t dlr_reg = hospi->Instance->DLR; in HAL_OSPI_AutoPolling()
1672 …if ((hospi->State == HAL_OSPI_STATE_CMD_CFG) && (cfg->AutomaticStop == HAL_OSPI_AUTOMATIC_STOP_ENA… in HAL_OSPI_AutoPolling()
1675 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, Timeout); in HAL_OSPI_AutoPolling()
1680 WRITE_REG(hospi->Instance->PSMAR, cfg->Match); in HAL_OSPI_AutoPolling()
1681 WRITE_REG(hospi->Instance->PSMKR, cfg->Mask); in HAL_OSPI_AutoPolling()
1682 WRITE_REG(hospi->Instance->PIR, cfg->Interval); in HAL_OSPI_AutoPolling()
1683 MODIFY_REG(hospi->Instance->CR, (OCTOSPI_CR_PMM | OCTOSPI_CR_APMS | OCTOSPI_CR_FMODE), in HAL_OSPI_AutoPolling()
1687 if (hospi->Init.MemoryType == HAL_OSPI_MEMTYPE_HYPERBUS) in HAL_OSPI_AutoPolling()
1689 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_AutoPolling()
1693 if (READ_BIT(hospi->Instance->CCR, OCTOSPI_CCR_ADMODE) != HAL_OSPI_ADDRESS_NONE) in HAL_OSPI_AutoPolling()
1695 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_AutoPolling()
1699 WRITE_REG(hospi->Instance->IR, ir_reg); in HAL_OSPI_AutoPolling()
1704 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_SM, SET, tickstart, Timeout); in HAL_OSPI_AutoPolling()
1709 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_SM); in HAL_OSPI_AutoPolling()
1712 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_AutoPolling()
1719 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_AutoPolling()
1733 HAL_StatusTypeDef HAL_OSPI_AutoPolling_IT(OSPI_HandleTypeDef *hospi, OSPI_AutoPollingTypeDef *cfg) in HAL_OSPI_AutoPolling_IT() argument
1737 uint32_t addr_reg = hospi->Instance->AR; in HAL_OSPI_AutoPolling_IT()
1738 uint32_t ir_reg = hospi->Instance->IR; in HAL_OSPI_AutoPolling_IT()
1740 uint32_t dlr_reg = hospi->Instance->DLR; in HAL_OSPI_AutoPolling_IT()
1750 if (hospi->State == HAL_OSPI_STATE_CMD_CFG) in HAL_OSPI_AutoPolling_IT()
1753 …status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, hospi->Timeou… in HAL_OSPI_AutoPolling_IT()
1758 WRITE_REG(hospi->Instance->PSMAR, cfg->Match); in HAL_OSPI_AutoPolling_IT()
1759 WRITE_REG(hospi->Instance->PSMKR, cfg->Mask); in HAL_OSPI_AutoPolling_IT()
1760 WRITE_REG(hospi->Instance->PIR, cfg->Interval); in HAL_OSPI_AutoPolling_IT()
1761 MODIFY_REG(hospi->Instance->CR, (OCTOSPI_CR_PMM | OCTOSPI_CR_APMS | OCTOSPI_CR_FMODE), in HAL_OSPI_AutoPolling_IT()
1765 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TE | HAL_OSPI_FLAG_SM); in HAL_OSPI_AutoPolling_IT()
1768 hospi->State = HAL_OSPI_STATE_BUSY_AUTO_POLLING; in HAL_OSPI_AutoPolling_IT()
1771 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_SM | HAL_OSPI_IT_TE); in HAL_OSPI_AutoPolling_IT()
1774 if (hospi->Init.MemoryType == HAL_OSPI_MEMTYPE_HYPERBUS) in HAL_OSPI_AutoPolling_IT()
1776 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_AutoPolling_IT()
1780 if (READ_BIT(hospi->Instance->CCR, OCTOSPI_CCR_ADMODE) != HAL_OSPI_ADDRESS_NONE) in HAL_OSPI_AutoPolling_IT()
1782 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_AutoPolling_IT()
1786 WRITE_REG(hospi->Instance->IR, ir_reg); in HAL_OSPI_AutoPolling_IT()
1794 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_AutoPolling_IT()
1808 HAL_StatusTypeDef HAL_OSPI_MemoryMapped(OSPI_HandleTypeDef *hospi, OSPI_MemoryMappedTypeDef *cfg) in HAL_OSPI_MemoryMapped() argument
1817 if (hospi->State == HAL_OSPI_STATE_CMD_CFG) in HAL_OSPI_MemoryMapped()
1820 …status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, hospi->Timeou… in HAL_OSPI_MemoryMapped()
1825 hospi->State = HAL_OSPI_STATE_BUSY_MEM_MAPPED; in HAL_OSPI_MemoryMapped()
1832 WRITE_REG(hospi->Instance->LPTR, cfg->TimeOutPeriod); in HAL_OSPI_MemoryMapped()
1835 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TO); in HAL_OSPI_MemoryMapped()
1838 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TO); in HAL_OSPI_MemoryMapped()
1842 MODIFY_REG(hospi->Instance->CR, (OCTOSPI_CR_TCEN | OCTOSPI_CR_FMODE), in HAL_OSPI_MemoryMapped()
1849 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_MemoryMapped()
1861 __weak void HAL_OSPI_ErrorCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_ErrorCallback() argument
1864 UNUSED(hospi); in HAL_OSPI_ErrorCallback()
1876 __weak void HAL_OSPI_AbortCpltCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_AbortCpltCallback() argument
1879 UNUSED(hospi); in HAL_OSPI_AbortCpltCallback()
1891 __weak void HAL_OSPI_FifoThresholdCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_FifoThresholdCallback() argument
1894 UNUSED(hospi); in HAL_OSPI_FifoThresholdCallback()
1906 __weak void HAL_OSPI_CmdCpltCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_CmdCpltCallback() argument
1909 UNUSED(hospi); in HAL_OSPI_CmdCpltCallback()
1921 __weak void HAL_OSPI_RxCpltCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_RxCpltCallback() argument
1924 UNUSED(hospi); in HAL_OSPI_RxCpltCallback()
1936 __weak void HAL_OSPI_TxCpltCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_TxCpltCallback() argument
1939 UNUSED(hospi); in HAL_OSPI_TxCpltCallback()
1951 __weak void HAL_OSPI_RxHalfCpltCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_RxHalfCpltCallback() argument
1954 UNUSED(hospi); in HAL_OSPI_RxHalfCpltCallback()
1966 __weak void HAL_OSPI_TxHalfCpltCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_TxHalfCpltCallback() argument
1969 UNUSED(hospi); in HAL_OSPI_TxHalfCpltCallback()
1981 __weak void HAL_OSPI_StatusMatchCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_StatusMatchCallback() argument
1984 UNUSED(hospi); in HAL_OSPI_StatusMatchCallback()
1996 __weak void HAL_OSPI_TimeOutCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_TimeOutCallback() argument
1999 UNUSED(hospi); in HAL_OSPI_TimeOutCallback()
2028 HAL_StatusTypeDef HAL_OSPI_RegisterCallback(OSPI_HandleTypeDef *hospi, HAL_OSPI_CallbackIDTypeDef C… in HAL_OSPI_RegisterCallback() argument
2036 hospi->ErrorCode |= HAL_OSPI_ERROR_INVALID_CALLBACK; in HAL_OSPI_RegisterCallback()
2040 if (hospi->State == HAL_OSPI_STATE_READY) in HAL_OSPI_RegisterCallback()
2045 hospi->ErrorCallback = pCallback; in HAL_OSPI_RegisterCallback()
2048 hospi->AbortCpltCallback = pCallback; in HAL_OSPI_RegisterCallback()
2051 hospi->FifoThresholdCallback = pCallback; in HAL_OSPI_RegisterCallback()
2054 hospi->CmdCpltCallback = pCallback; in HAL_OSPI_RegisterCallback()
2057 hospi->RxCpltCallback = pCallback; in HAL_OSPI_RegisterCallback()
2060 hospi->TxCpltCallback = pCallback; in HAL_OSPI_RegisterCallback()
2063 hospi->RxHalfCpltCallback = pCallback; in HAL_OSPI_RegisterCallback()
2066 hospi->TxHalfCpltCallback = pCallback; in HAL_OSPI_RegisterCallback()
2069 hospi->StatusMatchCallback = pCallback; in HAL_OSPI_RegisterCallback()
2072 hospi->TimeOutCallback = pCallback; in HAL_OSPI_RegisterCallback()
2075 hospi->MspInitCallback = pCallback; in HAL_OSPI_RegisterCallback()
2078 hospi->MspDeInitCallback = pCallback; in HAL_OSPI_RegisterCallback()
2082 hospi->ErrorCode |= HAL_OSPI_ERROR_INVALID_CALLBACK; in HAL_OSPI_RegisterCallback()
2088 else if (hospi->State == HAL_OSPI_STATE_RESET) in HAL_OSPI_RegisterCallback()
2093 hospi->MspInitCallback = pCallback; in HAL_OSPI_RegisterCallback()
2096 hospi->MspDeInitCallback = pCallback; in HAL_OSPI_RegisterCallback()
2100 hospi->ErrorCode |= HAL_OSPI_ERROR_INVALID_CALLBACK; in HAL_OSPI_RegisterCallback()
2109 hospi->ErrorCode |= HAL_OSPI_ERROR_INVALID_CALLBACK; in HAL_OSPI_RegisterCallback()
2137 HAL_StatusTypeDef HAL_OSPI_UnRegisterCallback(OSPI_HandleTypeDef *hospi, HAL_OSPI_CallbackIDTypeDef… in HAL_OSPI_UnRegisterCallback() argument
2141 if (hospi->State == HAL_OSPI_STATE_READY) in HAL_OSPI_UnRegisterCallback()
2146 hospi->ErrorCallback = HAL_OSPI_ErrorCallback; in HAL_OSPI_UnRegisterCallback()
2149 hospi->AbortCpltCallback = HAL_OSPI_AbortCpltCallback; in HAL_OSPI_UnRegisterCallback()
2152 hospi->FifoThresholdCallback = HAL_OSPI_FifoThresholdCallback; in HAL_OSPI_UnRegisterCallback()
2155 hospi->CmdCpltCallback = HAL_OSPI_CmdCpltCallback; in HAL_OSPI_UnRegisterCallback()
2158 hospi->RxCpltCallback = HAL_OSPI_RxCpltCallback; in HAL_OSPI_UnRegisterCallback()
2161 hospi->TxCpltCallback = HAL_OSPI_TxCpltCallback; in HAL_OSPI_UnRegisterCallback()
2164 hospi->RxHalfCpltCallback = HAL_OSPI_RxHalfCpltCallback; in HAL_OSPI_UnRegisterCallback()
2167 hospi->TxHalfCpltCallback = HAL_OSPI_TxHalfCpltCallback; in HAL_OSPI_UnRegisterCallback()
2170 hospi->StatusMatchCallback = HAL_OSPI_StatusMatchCallback; in HAL_OSPI_UnRegisterCallback()
2173 hospi->TimeOutCallback = HAL_OSPI_TimeOutCallback; in HAL_OSPI_UnRegisterCallback()
2176 hospi->MspInitCallback = HAL_OSPI_MspInit; in HAL_OSPI_UnRegisterCallback()
2179 hospi->MspDeInitCallback = HAL_OSPI_MspDeInit; in HAL_OSPI_UnRegisterCallback()
2183 hospi->ErrorCode |= HAL_OSPI_ERROR_INVALID_CALLBACK; in HAL_OSPI_UnRegisterCallback()
2189 else if (hospi->State == HAL_OSPI_STATE_RESET) in HAL_OSPI_UnRegisterCallback()
2194 hospi->MspInitCallback = HAL_OSPI_MspInit; in HAL_OSPI_UnRegisterCallback()
2197 hospi->MspDeInitCallback = HAL_OSPI_MspDeInit; in HAL_OSPI_UnRegisterCallback()
2201 hospi->ErrorCode |= HAL_OSPI_ERROR_INVALID_CALLBACK; in HAL_OSPI_UnRegisterCallback()
2210 hospi->ErrorCode |= HAL_OSPI_ERROR_INVALID_CALLBACK; in HAL_OSPI_UnRegisterCallback()
2247 HAL_StatusTypeDef HAL_OSPI_Abort(OSPI_HandleTypeDef *hospi) in HAL_OSPI_Abort() argument
2254 state = hospi->State; in HAL_OSPI_Abort()
2258 if ((hospi->Instance->CR & OCTOSPI_CR_DMAEN) != 0U) in HAL_OSPI_Abort()
2261 CLEAR_BIT(hospi->Instance->CR, OCTOSPI_CR_DMAEN); in HAL_OSPI_Abort()
2264 status = HAL_MDMA_Abort(hospi->hmdma); in HAL_OSPI_Abort()
2267 hospi->ErrorCode = HAL_OSPI_ERROR_DMA; in HAL_OSPI_Abort()
2271 if (__HAL_OSPI_GET_FLAG(hospi, HAL_OSPI_FLAG_BUSY) != RESET) in HAL_OSPI_Abort()
2274 SET_BIT(hospi->Instance->CR, OCTOSPI_CR_ABORT); in HAL_OSPI_Abort()
2277 … status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_TC, SET, tickstart, hospi->Timeout); in HAL_OSPI_Abort()
2282 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TC); in HAL_OSPI_Abort()
2285 …status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, hospi->Timeou… in HAL_OSPI_Abort()
2290 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Abort()
2297 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Abort()
2303 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Abort()
2315 HAL_StatusTypeDef HAL_OSPI_Abort_IT(OSPI_HandleTypeDef *hospi) in HAL_OSPI_Abort_IT() argument
2321 state = hospi->State; in HAL_OSPI_Abort_IT()
2325 …__HAL_OSPI_DISABLE_IT(hospi, (HAL_OSPI_IT_TO | HAL_OSPI_IT_SM | HAL_OSPI_IT_FT | HAL_OSPI_IT_TC | … in HAL_OSPI_Abort_IT()
2328 hospi->State = HAL_OSPI_STATE_ABORT; in HAL_OSPI_Abort_IT()
2331 if ((hospi->Instance->CR & OCTOSPI_CR_DMAEN) != 0U) in HAL_OSPI_Abort_IT()
2334 CLEAR_BIT(hospi->Instance->CR, OCTOSPI_CR_DMAEN); in HAL_OSPI_Abort_IT()
2337 hospi->hmdma->XferAbortCallback = OSPI_DMAAbortCplt; in HAL_OSPI_Abort_IT()
2338 if (HAL_MDMA_Abort_IT(hospi->hmdma) != HAL_OK) in HAL_OSPI_Abort_IT()
2341 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Abort_IT()
2345 hospi->AbortCpltCallback(hospi); in HAL_OSPI_Abort_IT()
2347 HAL_OSPI_AbortCpltCallback(hospi); in HAL_OSPI_Abort_IT()
2353 if (__HAL_OSPI_GET_FLAG(hospi, HAL_OSPI_FLAG_BUSY) != RESET) in HAL_OSPI_Abort_IT()
2356 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TC); in HAL_OSPI_Abort_IT()
2359 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TC); in HAL_OSPI_Abort_IT()
2362 SET_BIT(hospi->Instance->CR, OCTOSPI_CR_ABORT); in HAL_OSPI_Abort_IT()
2367 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Abort_IT()
2371 hospi->AbortCpltCallback(hospi); in HAL_OSPI_Abort_IT()
2373 HAL_OSPI_AbortCpltCallback(hospi); in HAL_OSPI_Abort_IT()
2381 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Abort_IT()
2393 HAL_StatusTypeDef HAL_OSPI_SetFifoThreshold(OSPI_HandleTypeDef *hospi, uint32_t Threshold) in HAL_OSPI_SetFifoThreshold() argument
2398 if ((hospi->State & OSPI_BUSY_STATE_MASK) == 0U) in HAL_OSPI_SetFifoThreshold()
2401 hospi->Init.FifoThreshold = Threshold; in HAL_OSPI_SetFifoThreshold()
2404 …MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FTHRES, ((hospi->Init.FifoThreshold - 1U) << OCTOSPI_CR… in HAL_OSPI_SetFifoThreshold()
2410 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_SetFifoThreshold()
2421 uint32_t HAL_OSPI_GetFifoThreshold(const OSPI_HandleTypeDef *hospi) in HAL_OSPI_GetFifoThreshold() argument
2423 return ((READ_BIT(hospi->Instance->CR, OCTOSPI_CR_FTHRES) >> OCTOSPI_CR_FTHRES_Pos) + 1U); in HAL_OSPI_GetFifoThreshold()
2431 HAL_StatusTypeDef HAL_OSPI_SetTimeout(OSPI_HandleTypeDef *hospi, uint32_t Timeout) in HAL_OSPI_SetTimeout() argument
2433 hospi->Timeout = Timeout; in HAL_OSPI_SetTimeout()
2442 uint32_t HAL_OSPI_GetError(const OSPI_HandleTypeDef *hospi) in HAL_OSPI_GetError() argument
2444 return hospi->ErrorCode; in HAL_OSPI_GetError()
2452 uint32_t HAL_OSPI_GetState(const OSPI_HandleTypeDef *hospi) in HAL_OSPI_GetState() argument
2455 return hospi->State; in HAL_OSPI_GetState()
2484 HAL_StatusTypeDef HAL_OSPIM_Config(OSPI_HandleTypeDef *hospi, OSPIM_CfgTypeDef *cfg, uint32_t Timeo… in HAL_OSPIM_Config() argument
2504 if (hospi->Instance == OCTOSPI1) in HAL_OSPIM_Config()
2521 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPIM_Config()
2741 OSPI_HandleTypeDef *hospi = (OSPI_HandleTypeDef *)(hmdma->Parent); in OSPI_DMACplt() local
2742 hospi->XferCount = 0; in OSPI_DMACplt()
2745 CLEAR_BIT(hospi->Instance->CR, OCTOSPI_CR_DMAEN); in OSPI_DMACplt()
2751 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TC); in OSPI_DMACplt()
2761 OSPI_HandleTypeDef *hospi = (OSPI_HandleTypeDef *)(hmdma->Parent); in OSPI_DMAError() local
2762 hospi->XferCount = 0; in OSPI_DMAError()
2763 hospi->ErrorCode = HAL_OSPI_ERROR_DMA; in OSPI_DMAError()
2766 CLEAR_BIT(hospi->Instance->CR, OCTOSPI_CR_DMAEN); in OSPI_DMAError()
2769 __HAL_OSPI_DISABLE_IT(hospi, HAL_OSPI_IT_TC | HAL_OSPI_IT_FT | HAL_OSPI_IT_TE); in OSPI_DMAError()
2772 hospi->State = HAL_OSPI_STATE_ABORT; in OSPI_DMAError()
2775 hospi->hmdma->XferAbortCallback = OSPI_DMAAbortOnError; in OSPI_DMAError()
2776 if (HAL_MDMA_Abort_IT(hospi->hmdma) != HAL_OK) in OSPI_DMAError()
2779 hospi->State = HAL_OSPI_STATE_READY; in OSPI_DMAError()
2783 hospi->ErrorCallback(hospi); in OSPI_DMAError()
2785 HAL_OSPI_ErrorCallback(hospi); in OSPI_DMAError()
2797 OSPI_HandleTypeDef *hospi = (OSPI_HandleTypeDef *)(hmdma->Parent); in OSPI_DMAAbortOnError() local
2800 if (__HAL_OSPI_GET_FLAG(hospi, HAL_OSPI_FLAG_BUSY) != RESET) in OSPI_DMAAbortOnError()
2803 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TC); in OSPI_DMAAbortOnError()
2806 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TC); in OSPI_DMAAbortOnError()
2809 SET_BIT(hospi->Instance->CR, OCTOSPI_CR_ABORT); in OSPI_DMAAbortOnError()
2814 hospi->State = HAL_OSPI_STATE_READY; in OSPI_DMAAbortOnError()
2818 hospi->ErrorCallback(hospi); in OSPI_DMAAbortOnError()
2820 HAL_OSPI_ErrorCallback(hospi); in OSPI_DMAAbortOnError()
2832 OSPI_HandleTypeDef *hospi = (OSPI_HandleTypeDef *)(hmdma->Parent); in OSPI_DMAAbortCplt() local
2833 hospi->XferCount = 0; in OSPI_DMAAbortCplt()
2836 if (hospi->State == HAL_OSPI_STATE_ABORT) in OSPI_DMAAbortCplt()
2839 if (__HAL_OSPI_GET_FLAG(hospi, HAL_OSPI_FLAG_BUSY) != RESET) in OSPI_DMAAbortCplt()
2842 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TC); in OSPI_DMAAbortCplt()
2845 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TC); in OSPI_DMAAbortCplt()
2848 SET_BIT(hospi->Instance->CR, OCTOSPI_CR_ABORT); in OSPI_DMAAbortCplt()
2853 hospi->State = HAL_OSPI_STATE_READY; in OSPI_DMAAbortCplt()
2857 hospi->AbortCpltCallback(hospi); in OSPI_DMAAbortCplt()
2859 HAL_OSPI_AbortCpltCallback(hospi); in OSPI_DMAAbortCplt()
2867 hospi->State = HAL_OSPI_STATE_READY; in OSPI_DMAAbortCplt()
2871 hospi->ErrorCallback(hospi); in OSPI_DMAAbortCplt()
2873 HAL_OSPI_ErrorCallback(hospi); in OSPI_DMAAbortCplt()
2887 static HAL_StatusTypeDef OSPI_WaitFlagStateUntilTimeout(OSPI_HandleTypeDef *hospi, uint32_t Flag, in OSPI_WaitFlagStateUntilTimeout() argument
2891 while ((__HAL_OSPI_GET_FLAG(hospi, Flag)) != State) in OSPI_WaitFlagStateUntilTimeout()
2898 hospi->State = HAL_OSPI_STATE_ERROR; in OSPI_WaitFlagStateUntilTimeout()
2899 hospi->ErrorCode |= HAL_OSPI_ERROR_TIMEOUT; in OSPI_WaitFlagStateUntilTimeout()
2914 static HAL_StatusTypeDef OSPI_ConfigCmd(OSPI_HandleTypeDef *hospi, OSPI_RegularCmdTypeDef *cmd) in OSPI_ConfigCmd() argument
2923 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FMODE, 0U); in OSPI_ConfigCmd()
2926 if (hospi->Init.DualQuad == HAL_OSPI_DUALQUAD_DISABLE) in OSPI_ConfigCmd()
2928 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FSEL, cmd->FlashId); in OSPI_ConfigCmd()
2933 ccr_reg = &(hospi->Instance->WCCR); in OSPI_ConfigCmd()
2934 tcr_reg = &(hospi->Instance->WTCR); in OSPI_ConfigCmd()
2935 ir_reg = &(hospi->Instance->WIR); in OSPI_ConfigCmd()
2936 abr_reg = &(hospi->Instance->WABR); in OSPI_ConfigCmd()
2940 ccr_reg = &(hospi->Instance->WPCCR); in OSPI_ConfigCmd()
2941 tcr_reg = &(hospi->Instance->WPTCR); in OSPI_ConfigCmd()
2942 ir_reg = &(hospi->Instance->WPIR); in OSPI_ConfigCmd()
2943 abr_reg = &(hospi->Instance->WPABR); in OSPI_ConfigCmd()
2947 ccr_reg = &(hospi->Instance->CCR); in OSPI_ConfigCmd()
2948 tcr_reg = &(hospi->Instance->TCR); in OSPI_ConfigCmd()
2949 ir_reg = &(hospi->Instance->IR); in OSPI_ConfigCmd()
2950 abr_reg = &(hospi->Instance->ABR); in OSPI_ConfigCmd()
2974 hospi->Instance->DLR = (cmd->NbData - 1U); in OSPI_ConfigCmd()
3005 if ((hospi->Init.DelayHoldQuarterCycle == HAL_OSPI_DHQC_ENABLE) && in OSPI_ConfigCmd()
3016 hospi->Instance->AR = cmd->Address; in OSPI_ConfigCmd()
3039 if ((hospi->Init.DelayHoldQuarterCycle == HAL_OSPI_DHQC_ENABLE) && in OSPI_ConfigCmd()
3075 hospi->Instance->AR = cmd->Address; in OSPI_ConfigCmd()
3081 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in OSPI_ConfigCmd()