Lines Matching refs:hospi

283 static HAL_StatusTypeDef OSPI_WaitFlagStateUntilTimeout(OSPI_HandleTypeDef *hospi, uint32_t Flag, F…
285 static HAL_StatusTypeDef OSPI_ConfigCmd(OSPI_HandleTypeDef *hospi, OSPI_RegularCmdTypeDef *cmd);
321 HAL_StatusTypeDef HAL_OSPI_Init(OSPI_HandleTypeDef *hospi) in HAL_OSPI_Init() argument
327 if (hospi == NULL) in HAL_OSPI_Init()
335 assert_param(IS_OSPI_FIFO_THRESHOLD(hospi->Init.FifoThreshold)); in HAL_OSPI_Init()
336 assert_param(IS_OSPI_DUALQUAD_MODE(hospi->Init.DualQuad)); in HAL_OSPI_Init()
337 assert_param(IS_OSPI_MEMORY_TYPE(hospi->Init.MemoryType)); in HAL_OSPI_Init()
338 assert_param(IS_OSPI_DEVICE_SIZE(hospi->Init.DeviceSize)); in HAL_OSPI_Init()
339 assert_param(IS_OSPI_CS_HIGH_TIME(hospi->Init.ChipSelectHighTime)); in HAL_OSPI_Init()
340 assert_param(IS_OSPI_FREE_RUN_CLK(hospi->Init.FreeRunningClock)); in HAL_OSPI_Init()
341 assert_param(IS_OSPI_CLOCK_MODE(hospi->Init.ClockMode)); in HAL_OSPI_Init()
342 assert_param(IS_OSPI_WRAP_SIZE(hospi->Init.WrapSize)); in HAL_OSPI_Init()
343 assert_param(IS_OSPI_CLK_PRESCALER(hospi->Init.ClockPrescaler)); in HAL_OSPI_Init()
344 assert_param(IS_OSPI_SAMPLE_SHIFTING(hospi->Init.SampleShifting)); in HAL_OSPI_Init()
345 assert_param(IS_OSPI_DHQC(hospi->Init.DelayHoldQuarterCycle)); in HAL_OSPI_Init()
346 assert_param(IS_OSPI_CS_BOUNDARY(hospi->Init.ChipSelectBoundary)); in HAL_OSPI_Init()
347 assert_param(IS_OSPI_DLYBYP(hospi->Init.DelayBlockBypass)); in HAL_OSPI_Init()
348 assert_param(IS_OSPI_MAXTRAN(hospi->Init.MaxTran)); in HAL_OSPI_Init()
351 hospi->ErrorCode = HAL_OSPI_ERROR_NONE; in HAL_OSPI_Init()
354 if (hospi->State == HAL_OSPI_STATE_RESET) in HAL_OSPI_Init()
358 hospi->ErrorCallback = HAL_OSPI_ErrorCallback; in HAL_OSPI_Init()
359 hospi->AbortCpltCallback = HAL_OSPI_AbortCpltCallback; in HAL_OSPI_Init()
360 hospi->FifoThresholdCallback = HAL_OSPI_FifoThresholdCallback; in HAL_OSPI_Init()
361 hospi->CmdCpltCallback = HAL_OSPI_CmdCpltCallback; in HAL_OSPI_Init()
362 hospi->RxCpltCallback = HAL_OSPI_RxCpltCallback; in HAL_OSPI_Init()
363 hospi->TxCpltCallback = HAL_OSPI_TxCpltCallback; in HAL_OSPI_Init()
364 hospi->RxHalfCpltCallback = HAL_OSPI_RxHalfCpltCallback; in HAL_OSPI_Init()
365 hospi->TxHalfCpltCallback = HAL_OSPI_TxHalfCpltCallback; in HAL_OSPI_Init()
366 hospi->StatusMatchCallback = HAL_OSPI_StatusMatchCallback; in HAL_OSPI_Init()
367 hospi->TimeOutCallback = HAL_OSPI_TimeOutCallback; in HAL_OSPI_Init()
369 if (hospi->MspInitCallback == NULL) in HAL_OSPI_Init()
371 hospi->MspInitCallback = HAL_OSPI_MspInit; in HAL_OSPI_Init()
375 hospi->MspInitCallback(hospi); in HAL_OSPI_Init()
378 HAL_OSPI_MspInit(hospi); in HAL_OSPI_Init()
382 (void)HAL_OSPI_SetTimeout(hospi, HAL_OSPI_TIMEOUT_DEFAULT_VALUE); in HAL_OSPI_Init()
386 MODIFY_REG(hospi->Instance->DCR1, in HAL_OSPI_Init()
389 … (hospi->Init.MemoryType | ((hospi->Init.DeviceSize - 1U) << OCTOSPI_DCR1_DEVSIZE_Pos) | in HAL_OSPI_Init()
390 ((hospi->Init.ChipSelectHighTime - 1U) << OCTOSPI_DCR1_CSHT_Pos) | in HAL_OSPI_Init()
391 hospi->Init.DelayBlockBypass | hospi->Init.ClockMode)); in HAL_OSPI_Init()
394 MODIFY_REG(hospi->Instance->DCR2, OCTOSPI_DCR2_WRAPSIZE, hospi->Init.WrapSize); in HAL_OSPI_Init()
397 hospi->Instance->DCR3 = ((hospi->Init.ChipSelectBoundary << OCTOSPI_DCR3_CSBOUND_Pos) | in HAL_OSPI_Init()
398 (hospi->Init.MaxTran << OCTOSPI_DCR3_MAXTRAN_Pos)); in HAL_OSPI_Init()
401 hospi->Instance->DCR4 = hospi->Init.Refresh; in HAL_OSPI_Init()
404 …MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FTHRES, ((hospi->Init.FifoThreshold - 1U) << OCTOSPI_CR… in HAL_OSPI_Init()
407 …status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, hospi->Timeou… in HAL_OSPI_Init()
412 MODIFY_REG(hospi->Instance->DCR2, OCTOSPI_DCR2_PRESCALER, in HAL_OSPI_Init()
413 ((hospi->Init.ClockPrescaler - 1U) << OCTOSPI_DCR2_PRESCALER_Pos)); in HAL_OSPI_Init()
416 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_DMM, hospi->Init.DualQuad); in HAL_OSPI_Init()
419 MODIFY_REG(hospi->Instance->TCR, (OCTOSPI_TCR_SSHIFT | OCTOSPI_TCR_DHQC), in HAL_OSPI_Init()
420 (hospi->Init.SampleShifting | hospi->Init.DelayHoldQuarterCycle)); in HAL_OSPI_Init()
423 __HAL_OSPI_ENABLE(hospi); in HAL_OSPI_Init()
426 if (hospi->Init.FreeRunningClock == HAL_OSPI_FREERUNCLK_ENABLE) in HAL_OSPI_Init()
428 SET_BIT(hospi->Instance->DCR1, OCTOSPI_DCR1_FRCK); in HAL_OSPI_Init()
432 if (hospi->Init.MemoryType == HAL_OSPI_MEMTYPE_HYPERBUS) in HAL_OSPI_Init()
434 hospi->State = HAL_OSPI_STATE_HYPERBUS_INIT; in HAL_OSPI_Init()
438 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Init()
453 __weak void HAL_OSPI_MspInit(OSPI_HandleTypeDef *hospi) in HAL_OSPI_MspInit() argument
456 UNUSED(hospi); in HAL_OSPI_MspInit()
468 HAL_StatusTypeDef HAL_OSPI_DeInit(OSPI_HandleTypeDef *hospi) in HAL_OSPI_DeInit() argument
473 if (hospi == NULL) in HAL_OSPI_DeInit()
481 __HAL_OSPI_DISABLE(hospi); in HAL_OSPI_DeInit()
484 CLEAR_BIT(hospi->Instance->DCR1, OCTOSPI_DCR1_FRCK); in HAL_OSPI_DeInit()
487 if (hospi->MspDeInitCallback == NULL) in HAL_OSPI_DeInit()
489 hospi->MspDeInitCallback = HAL_OSPI_MspDeInit; in HAL_OSPI_DeInit()
493 hospi->MspDeInitCallback(hospi); in HAL_OSPI_DeInit()
496 HAL_OSPI_MspDeInit(hospi); in HAL_OSPI_DeInit()
500 hospi->State = HAL_OSPI_STATE_RESET; in HAL_OSPI_DeInit()
511 __weak void HAL_OSPI_MspDeInit(OSPI_HandleTypeDef *hospi) in HAL_OSPI_MspDeInit() argument
514 UNUSED(hospi); in HAL_OSPI_MspDeInit()
551 void HAL_OSPI_IRQHandler(OSPI_HandleTypeDef *hospi) in HAL_OSPI_IRQHandler() argument
553 __IO uint32_t *data_reg = &hospi->Instance->DR; in HAL_OSPI_IRQHandler()
554 uint32_t flag = hospi->Instance->SR; in HAL_OSPI_IRQHandler()
555 uint32_t itsource = hospi->Instance->CR; in HAL_OSPI_IRQHandler()
556 uint32_t currentstate = hospi->State; in HAL_OSPI_IRQHandler()
564 *((__IO uint8_t *)data_reg) = *hospi->pBuffPtr; in HAL_OSPI_IRQHandler()
565 hospi->pBuffPtr++; in HAL_OSPI_IRQHandler()
566 hospi->XferCount--; in HAL_OSPI_IRQHandler()
571 *hospi->pBuffPtr = *((__IO uint8_t *)data_reg); in HAL_OSPI_IRQHandler()
572 hospi->pBuffPtr++; in HAL_OSPI_IRQHandler()
573 hospi->XferCount--; in HAL_OSPI_IRQHandler()
580 if (hospi->XferCount == 0U) in HAL_OSPI_IRQHandler()
584 __HAL_OSPI_DISABLE_IT(hospi, HAL_OSPI_IT_FT); in HAL_OSPI_IRQHandler()
589 hospi->FifoThresholdCallback(hospi); in HAL_OSPI_IRQHandler()
591 HAL_OSPI_FifoThresholdCallback(hospi); in HAL_OSPI_IRQHandler()
599 if ((hospi->XferCount > 0U) && ((flag & OCTOSPI_SR_FLEVEL) != 0U)) in HAL_OSPI_IRQHandler()
602 *hospi->pBuffPtr = *((__IO uint8_t *)data_reg); in HAL_OSPI_IRQHandler()
603 hospi->pBuffPtr++; in HAL_OSPI_IRQHandler()
604 hospi->XferCount--; in HAL_OSPI_IRQHandler()
606 else if (hospi->XferCount == 0U) in HAL_OSPI_IRQHandler()
609 hospi->Instance->FCR = HAL_OSPI_FLAG_TC; in HAL_OSPI_IRQHandler()
612 __HAL_OSPI_DISABLE_IT(hospi, HAL_OSPI_IT_TC | HAL_OSPI_IT_FT | HAL_OSPI_IT_TE); in HAL_OSPI_IRQHandler()
615 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_IRQHandler()
619 hospi->RxCpltCallback(hospi); in HAL_OSPI_IRQHandler()
621 HAL_OSPI_RxCpltCallback(hospi); in HAL_OSPI_IRQHandler()
632 hospi->Instance->FCR = HAL_OSPI_FLAG_TC; in HAL_OSPI_IRQHandler()
635 __HAL_OSPI_DISABLE_IT(hospi, HAL_OSPI_IT_TC | HAL_OSPI_IT_FT | HAL_OSPI_IT_TE); in HAL_OSPI_IRQHandler()
638 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_IRQHandler()
644 hospi->TxCpltCallback(hospi); in HAL_OSPI_IRQHandler()
646 HAL_OSPI_TxCpltCallback(hospi); in HAL_OSPI_IRQHandler()
653 hospi->CmdCpltCallback(hospi); in HAL_OSPI_IRQHandler()
655 HAL_OSPI_CmdCpltCallback(hospi); in HAL_OSPI_IRQHandler()
660 if (hospi->ErrorCode == HAL_OSPI_ERROR_NONE) in HAL_OSPI_IRQHandler()
665 hospi->AbortCpltCallback(hospi); in HAL_OSPI_IRQHandler()
667 HAL_OSPI_AbortCpltCallback(hospi); in HAL_OSPI_IRQHandler()
675 hospi->ErrorCallback(hospi); in HAL_OSPI_IRQHandler()
677 HAL_OSPI_ErrorCallback(hospi); in HAL_OSPI_IRQHandler()
691 hospi->Instance->FCR = HAL_OSPI_FLAG_SM; in HAL_OSPI_IRQHandler()
694 if ((hospi->Instance->CR & OCTOSPI_CR_APMS) != 0U) in HAL_OSPI_IRQHandler()
697 __HAL_OSPI_DISABLE_IT(hospi, HAL_OSPI_IT_SM | HAL_OSPI_IT_TE); in HAL_OSPI_IRQHandler()
700 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_IRQHandler()
705 hospi->StatusMatchCallback(hospi); in HAL_OSPI_IRQHandler()
707 HAL_OSPI_StatusMatchCallback(hospi); in HAL_OSPI_IRQHandler()
714 hospi->Instance->FCR = HAL_OSPI_FLAG_TE; in HAL_OSPI_IRQHandler()
717 …__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()
720 hospi->ErrorCode = HAL_OSPI_ERROR_TRANSFER; in HAL_OSPI_IRQHandler()
723 if ((hospi->Instance->CR & OCTOSPI_CR_DMAEN) != 0U) in HAL_OSPI_IRQHandler()
726 CLEAR_BIT(hospi->Instance->CR, OCTOSPI_CR_DMAEN); in HAL_OSPI_IRQHandler()
729 hospi->hdma->XferAbortCallback = OSPI_DMAAbortCplt; in HAL_OSPI_IRQHandler()
730 if (HAL_DMA_Abort_IT(hospi->hdma) != HAL_OK) in HAL_OSPI_IRQHandler()
733 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_IRQHandler()
737 hospi->ErrorCallback(hospi); in HAL_OSPI_IRQHandler()
739 HAL_OSPI_ErrorCallback(hospi); in HAL_OSPI_IRQHandler()
746 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_IRQHandler()
750 hospi->ErrorCallback(hospi); in HAL_OSPI_IRQHandler()
752 HAL_OSPI_ErrorCallback(hospi); in HAL_OSPI_IRQHandler()
760 hospi->Instance->FCR = HAL_OSPI_FLAG_TO; in HAL_OSPI_IRQHandler()
764 hospi->TimeOutCallback(hospi); in HAL_OSPI_IRQHandler()
766 HAL_OSPI_TimeOutCallback(hospi); in HAL_OSPI_IRQHandler()
782 HAL_StatusTypeDef HAL_OSPI_Command(OSPI_HandleTypeDef *hospi, OSPI_RegularCmdTypeDef *cmd, uint32_t… in HAL_OSPI_Command() argument
791 if (hospi->Init.DualQuad == HAL_OSPI_DUALQUAD_DISABLE) in HAL_OSPI_Command()
832 state = hospi->State; in HAL_OSPI_Command()
833 …if (((state == HAL_OSPI_STATE_READY) && (hospi->Init.MemoryType != HAL_OSPI_MEMTYPE_HYPERB… in HAL_OSPI_Command()
840 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, Timeout); in HAL_OSPI_Command()
845 hospi->ErrorCode = HAL_OSPI_ERROR_NONE; in HAL_OSPI_Command()
848 status = OSPI_ConfigCmd(hospi, cmd); in HAL_OSPI_Command()
856 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_TC, SET, tickstart, Timeout); in HAL_OSPI_Command()
858 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TC); in HAL_OSPI_Command()
865 hospi->State = HAL_OSPI_STATE_CMD_CFG; in HAL_OSPI_Command()
869 if (hospi->State == HAL_OSPI_STATE_WRITE_CMD_CFG) in HAL_OSPI_Command()
871 hospi->State = HAL_OSPI_STATE_CMD_CFG; in HAL_OSPI_Command()
875 hospi->State = HAL_OSPI_STATE_READ_CMD_CFG; in HAL_OSPI_Command()
880 if (hospi->State == HAL_OSPI_STATE_READ_CMD_CFG) in HAL_OSPI_Command()
882 hospi->State = HAL_OSPI_STATE_CMD_CFG; in HAL_OSPI_Command()
886 hospi->State = HAL_OSPI_STATE_WRITE_CMD_CFG; in HAL_OSPI_Command()
900 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Command()
914 HAL_StatusTypeDef HAL_OSPI_Command_IT(OSPI_HandleTypeDef *hospi, OSPI_RegularCmdTypeDef *cmd) in HAL_OSPI_Command_IT() argument
922 if (hospi->Init.DualQuad == HAL_OSPI_DUALQUAD_DISABLE) in HAL_OSPI_Command_IT()
960 …if ((hospi->State == HAL_OSPI_STATE_READY) && (cmd->OperationType == HAL_OSPI_OPTYPE_COMMON_C… in HAL_OSPI_Command_IT()
961 … (cmd->DataMode == HAL_OSPI_DATA_NONE) && (hospi->Init.MemoryType != HAL_OSPI_MEMTYPE_HYPERBUS)) in HAL_OSPI_Command_IT()
964 …status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, hospi->Timeou… in HAL_OSPI_Command_IT()
969 hospi->ErrorCode = HAL_OSPI_ERROR_NONE; in HAL_OSPI_Command_IT()
972 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TE | HAL_OSPI_FLAG_TC); in HAL_OSPI_Command_IT()
975 status = OSPI_ConfigCmd(hospi, cmd); in HAL_OSPI_Command_IT()
980 hospi->State = HAL_OSPI_STATE_BUSY_CMD; in HAL_OSPI_Command_IT()
983 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TC | HAL_OSPI_IT_TE); in HAL_OSPI_Command_IT()
990 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Command_IT()
1004 HAL_StatusTypeDef HAL_OSPI_HyperbusCfg(OSPI_HandleTypeDef *hospi, OSPI_HyperbusCfgTypeDef *cfg, uin… in HAL_OSPI_HyperbusCfg() argument
1017 state = hospi->State; in HAL_OSPI_HyperbusCfg()
1021 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, Timeout); in HAL_OSPI_HyperbusCfg()
1026 WRITE_REG(hospi->Instance->HLCR, ((cfg->RWRecoveryTime << OCTOSPI_HLCR_TRWR_Pos) | in HAL_OSPI_HyperbusCfg()
1031 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_HyperbusCfg()
1037 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_HyperbusCfg()
1051 HAL_StatusTypeDef HAL_OSPI_HyperbusCmd(OSPI_HandleTypeDef *hospi, OSPI_HyperbusCmdTypeDef *cmd, uin… in HAL_OSPI_HyperbusCmd() argument
1063 …if ((hospi->State == HAL_OSPI_STATE_READY) && (hospi->Init.MemoryType == HAL_OSPI_MEMTYPE_HYPERBUS… in HAL_OSPI_HyperbusCmd()
1066 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, Timeout); in HAL_OSPI_HyperbusCmd()
1071 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FMODE, 0U); in HAL_OSPI_HyperbusCmd()
1074 MODIFY_REG(hospi->Instance->DCR1, OCTOSPI_DCR1_MTYP_0, cmd->AddressSpace); in HAL_OSPI_HyperbusCmd()
1080 WRITE_REG(hospi->Instance->CCR, (cmd->DQSMode | OCTOSPI_CCR_DDTR | OCTOSPI_CCR_DMODE_2 | in HAL_OSPI_HyperbusCmd()
1082 WRITE_REG(hospi->Instance->WCCR, (cmd->DQSMode | OCTOSPI_WCCR_DDTR | OCTOSPI_WCCR_DMODE_2 | in HAL_OSPI_HyperbusCmd()
1086 WRITE_REG(hospi->Instance->DLR, (cmd->NbData - 1U)); in HAL_OSPI_HyperbusCmd()
1089 WRITE_REG(hospi->Instance->AR, cmd->Address); in HAL_OSPI_HyperbusCmd()
1092 hospi->State = HAL_OSPI_STATE_CMD_CFG; in HAL_OSPI_HyperbusCmd()
1098 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_HyperbusCmd()
1113 HAL_StatusTypeDef HAL_OSPI_Transmit(OSPI_HandleTypeDef *hospi, uint8_t *pData, uint32_t Timeout) in HAL_OSPI_Transmit() argument
1117 __IO uint32_t *data_reg = &hospi->Instance->DR; in HAL_OSPI_Transmit()
1123 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPI_Transmit()
1128 if (hospi->State == HAL_OSPI_STATE_CMD_CFG) in HAL_OSPI_Transmit()
1131 hospi->XferCount = READ_REG(hospi->Instance->DLR) + 1U; in HAL_OSPI_Transmit()
1132 hospi->XferSize = hospi->XferCount; in HAL_OSPI_Transmit()
1133 hospi->pBuffPtr = pData; in HAL_OSPI_Transmit()
1136 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FMODE, OSPI_FUNCTIONAL_MODE_INDIRECT_WRITE); in HAL_OSPI_Transmit()
1141 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_FT, SET, tickstart, Timeout); in HAL_OSPI_Transmit()
1148 *((__IO uint8_t *)data_reg) = *hospi->pBuffPtr; in HAL_OSPI_Transmit()
1149 hospi->pBuffPtr++; in HAL_OSPI_Transmit()
1150 hospi->XferCount--; in HAL_OSPI_Transmit()
1152 while (hospi->XferCount > 0U); in HAL_OSPI_Transmit()
1157 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_TC, SET, tickstart, Timeout); in HAL_OSPI_Transmit()
1162 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TC); in HAL_OSPI_Transmit()
1165 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Transmit()
1172 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Transmit()
1188 HAL_StatusTypeDef HAL_OSPI_Receive(OSPI_HandleTypeDef *hospi, uint8_t *pData, uint32_t Timeout) in HAL_OSPI_Receive() argument
1192 __IO uint32_t *data_reg = &hospi->Instance->DR; in HAL_OSPI_Receive()
1193 uint32_t addr_reg = hospi->Instance->AR; in HAL_OSPI_Receive()
1194 uint32_t ir_reg = hospi->Instance->IR; in HAL_OSPI_Receive()
1200 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPI_Receive()
1205 if (hospi->State == HAL_OSPI_STATE_CMD_CFG) in HAL_OSPI_Receive()
1208 hospi->XferCount = READ_REG(hospi->Instance->DLR) + 1U; in HAL_OSPI_Receive()
1209 hospi->XferSize = hospi->XferCount; in HAL_OSPI_Receive()
1210 hospi->pBuffPtr = pData; in HAL_OSPI_Receive()
1213 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FMODE, OSPI_FUNCTIONAL_MODE_INDIRECT_READ); in HAL_OSPI_Receive()
1216 if (hospi->Init.MemoryType == HAL_OSPI_MEMTYPE_HYPERBUS) in HAL_OSPI_Receive()
1218 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_Receive()
1222 if (READ_BIT(hospi->Instance->CCR, OCTOSPI_CCR_ADMODE) != HAL_OSPI_ADDRESS_NONE) in HAL_OSPI_Receive()
1224 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_Receive()
1228 WRITE_REG(hospi->Instance->IR, ir_reg); in HAL_OSPI_Receive()
1235 …status = OSPI_WaitFlagStateUntilTimeout(hospi, (HAL_OSPI_FLAG_FT | HAL_OSPI_FLAG_TC), SET, ticksta… in HAL_OSPI_Receive()
1242 *hospi->pBuffPtr = *((__IO uint8_t *)data_reg); in HAL_OSPI_Receive()
1243 hospi->pBuffPtr++; in HAL_OSPI_Receive()
1244 hospi->XferCount--; in HAL_OSPI_Receive()
1246 while (hospi->XferCount > 0U); in HAL_OSPI_Receive()
1251 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_TC, SET, tickstart, Timeout); in HAL_OSPI_Receive()
1256 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TC); in HAL_OSPI_Receive()
1259 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Receive()
1266 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Receive()
1281 HAL_StatusTypeDef HAL_OSPI_Transmit_IT(OSPI_HandleTypeDef *hospi, uint8_t *pData) in HAL_OSPI_Transmit_IT() argument
1289 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPI_Transmit_IT()
1294 if (hospi->State == HAL_OSPI_STATE_CMD_CFG) in HAL_OSPI_Transmit_IT()
1297 hospi->XferCount = READ_REG(hospi->Instance->DLR) + 1U; in HAL_OSPI_Transmit_IT()
1298 hospi->XferSize = hospi->XferCount; in HAL_OSPI_Transmit_IT()
1299 hospi->pBuffPtr = pData; in HAL_OSPI_Transmit_IT()
1302 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FMODE, OSPI_FUNCTIONAL_MODE_INDIRECT_WRITE); in HAL_OSPI_Transmit_IT()
1305 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TE | HAL_OSPI_FLAG_TC); in HAL_OSPI_Transmit_IT()
1308 hospi->State = HAL_OSPI_STATE_BUSY_TX; in HAL_OSPI_Transmit_IT()
1311 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TC | HAL_OSPI_IT_FT | HAL_OSPI_IT_TE); in HAL_OSPI_Transmit_IT()
1316 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Transmit_IT()
1331 HAL_StatusTypeDef HAL_OSPI_Receive_IT(OSPI_HandleTypeDef *hospi, uint8_t *pData) in HAL_OSPI_Receive_IT() argument
1334 uint32_t addr_reg = hospi->Instance->AR; in HAL_OSPI_Receive_IT()
1335 uint32_t ir_reg = hospi->Instance->IR; in HAL_OSPI_Receive_IT()
1341 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPI_Receive_IT()
1346 if (hospi->State == HAL_OSPI_STATE_CMD_CFG) in HAL_OSPI_Receive_IT()
1349 hospi->XferCount = READ_REG(hospi->Instance->DLR) + 1U; in HAL_OSPI_Receive_IT()
1350 hospi->XferSize = hospi->XferCount; in HAL_OSPI_Receive_IT()
1351 hospi->pBuffPtr = pData; in HAL_OSPI_Receive_IT()
1354 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FMODE, OSPI_FUNCTIONAL_MODE_INDIRECT_READ); in HAL_OSPI_Receive_IT()
1357 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TE | HAL_OSPI_FLAG_TC); in HAL_OSPI_Receive_IT()
1360 hospi->State = HAL_OSPI_STATE_BUSY_RX; in HAL_OSPI_Receive_IT()
1363 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TC | HAL_OSPI_IT_FT | HAL_OSPI_IT_TE); in HAL_OSPI_Receive_IT()
1366 if (hospi->Init.MemoryType == HAL_OSPI_MEMTYPE_HYPERBUS) in HAL_OSPI_Receive_IT()
1368 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_Receive_IT()
1372 if (READ_BIT(hospi->Instance->CCR, OCTOSPI_CCR_ADMODE) != HAL_OSPI_ADDRESS_NONE) in HAL_OSPI_Receive_IT()
1374 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_Receive_IT()
1378 WRITE_REG(hospi->Instance->IR, ir_reg); in HAL_OSPI_Receive_IT()
1385 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Receive_IT()
1404 HAL_StatusTypeDef HAL_OSPI_Transmit_DMA(OSPI_HandleTypeDef *hospi, uint8_t *pData) in HAL_OSPI_Transmit_DMA() argument
1407 uint32_t data_size = hospi->Instance->DLR + 1U; in HAL_OSPI_Transmit_DMA()
1415 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPI_Transmit_DMA()
1420 if (hospi->State == HAL_OSPI_STATE_CMD_CFG) in HAL_OSPI_Transmit_DMA()
1422 if ((hospi->hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_OSPI_Transmit_DMA()
1424 p_queue = hospi->hdma->LinkedListQueue; in HAL_OSPI_Transmit_DMA()
1432 hospi->ErrorCode = HAL_OSPI_ERROR_DMA; in HAL_OSPI_Transmit_DMA()
1440 data_width = hospi->hdma->Init.DestDataWidth; in HAL_OSPI_Transmit_DMA()
1445 hospi->XferCount = data_size; in HAL_OSPI_Transmit_DMA()
1449 if (((data_size % 2U) != 0U) || ((hospi->Init.FifoThreshold % 2U) != 0U)) in HAL_OSPI_Transmit_DMA()
1453 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPI_Transmit_DMA()
1458 hospi->XferCount = data_size; in HAL_OSPI_Transmit_DMA()
1463 if (((data_size % 4U) != 0U) || ((hospi->Init.FifoThreshold % 4U) != 0U)) in HAL_OSPI_Transmit_DMA()
1467 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPI_Transmit_DMA()
1472 hospi->XferCount = data_size; in HAL_OSPI_Transmit_DMA()
1482 hospi->XferSize = hospi->XferCount; in HAL_OSPI_Transmit_DMA()
1483 hospi->pBuffPtr = pData; in HAL_OSPI_Transmit_DMA()
1486 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FMODE, OSPI_FUNCTIONAL_MODE_INDIRECT_WRITE); in HAL_OSPI_Transmit_DMA()
1489 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TE | HAL_OSPI_FLAG_TC); in HAL_OSPI_Transmit_DMA()
1492 hospi->State = HAL_OSPI_STATE_BUSY_TX; in HAL_OSPI_Transmit_DMA()
1495 hospi->hdma->XferCpltCallback = OSPI_DMACplt; in HAL_OSPI_Transmit_DMA()
1498 hospi->hdma->XferHalfCpltCallback = OSPI_DMAHalfCplt; in HAL_OSPI_Transmit_DMA()
1501 hospi->hdma->XferErrorCallback = OSPI_DMAError; in HAL_OSPI_Transmit_DMA()
1504 hospi->hdma->XferAbortCallback = NULL; in HAL_OSPI_Transmit_DMA()
1507 if ((hospi->hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_OSPI_Transmit_DMA()
1509 if (hospi->hdma->LinkedListQueue != NULL) in HAL_OSPI_Transmit_DMA()
1517 p_queue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = hospi->XferSize; in HAL_OSPI_Transmit_DMA()
1521 p_queue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = (uint32_t)&hospi->Instance->DR; in HAL_OSPI_Transmit_DMA()
1522 status = HAL_DMAEx_List_Start_IT(hospi->hdma); in HAL_OSPI_Transmit_DMA()
1527 hospi->ErrorCode = HAL_OSPI_ERROR_DMA; in HAL_OSPI_Transmit_DMA()
1530 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Transmit_DMA()
1539 MODIFY_REG(hospi->hdma->Instance->CTR1, (DMA_CTR1_SINC | DMA_CTR1_DINC), \ in HAL_OSPI_Transmit_DMA()
1541 MODIFY_REG(hospi->hdma->Instance->CTR2, DMA_CTR2_DREQ, DMA_MEMORY_TO_PERIPH); in HAL_OSPI_Transmit_DMA()
1543 …status = HAL_DMA_Start_IT(hospi->hdma, (uint32_t)pData, (uint32_t)&hospi->Instance->DR, hospi->Xfe… in HAL_OSPI_Transmit_DMA()
1549 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TE); in HAL_OSPI_Transmit_DMA()
1552 SET_BIT(hospi->Instance->CR, OCTOSPI_CR_DMAEN); in HAL_OSPI_Transmit_DMA()
1557 hospi->ErrorCode = HAL_OSPI_ERROR_DMA; in HAL_OSPI_Transmit_DMA()
1558 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Transmit_DMA()
1565 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Transmit_DMA()
1584 HAL_StatusTypeDef HAL_OSPI_Receive_DMA(OSPI_HandleTypeDef *hospi, uint8_t *pData) in HAL_OSPI_Receive_DMA() argument
1587 uint32_t data_size = hospi->Instance->DLR + 1U; in HAL_OSPI_Receive_DMA()
1588 uint32_t addr_reg = hospi->Instance->AR; in HAL_OSPI_Receive_DMA()
1589 uint32_t ir_reg = hospi->Instance->IR; in HAL_OSPI_Receive_DMA()
1596 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPI_Receive_DMA()
1601 if (hospi->State == HAL_OSPI_STATE_CMD_CFG) in HAL_OSPI_Receive_DMA()
1603 if ((hospi->hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_OSPI_Receive_DMA()
1605 p_queue = hospi->hdma->LinkedListQueue; in HAL_OSPI_Receive_DMA()
1613 hospi->ErrorCode = HAL_OSPI_ERROR_DMA; in HAL_OSPI_Receive_DMA()
1621 data_width = hospi->hdma->Init.DestDataWidth; in HAL_OSPI_Receive_DMA()
1627 hospi->XferCount = data_size; in HAL_OSPI_Receive_DMA()
1631 if (((data_size % 2U) != 0U) || ((hospi->Init.FifoThreshold % 2U) != 0U)) in HAL_OSPI_Receive_DMA()
1635 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPI_Receive_DMA()
1640 hospi->XferCount = data_size; in HAL_OSPI_Receive_DMA()
1645 if (((data_size % 4U) != 0U) || ((hospi->Init.FifoThreshold % 4U) != 0U)) in HAL_OSPI_Receive_DMA()
1649 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPI_Receive_DMA()
1654 hospi->XferCount = data_size; in HAL_OSPI_Receive_DMA()
1664 hospi->XferSize = hospi->XferCount; in HAL_OSPI_Receive_DMA()
1665 hospi->pBuffPtr = pData; in HAL_OSPI_Receive_DMA()
1668 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FMODE, OSPI_FUNCTIONAL_MODE_INDIRECT_READ); in HAL_OSPI_Receive_DMA()
1671 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TE | HAL_OSPI_FLAG_TC); in HAL_OSPI_Receive_DMA()
1674 hospi->State = HAL_OSPI_STATE_BUSY_RX; in HAL_OSPI_Receive_DMA()
1677 hospi->hdma->XferCpltCallback = OSPI_DMACplt; in HAL_OSPI_Receive_DMA()
1680 hospi->hdma->XferHalfCpltCallback = OSPI_DMAHalfCplt; in HAL_OSPI_Receive_DMA()
1683 hospi->hdma->XferErrorCallback = OSPI_DMAError; in HAL_OSPI_Receive_DMA()
1686 hospi->hdma->XferAbortCallback = NULL; in HAL_OSPI_Receive_DMA()
1689 if ((hospi->hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_OSPI_Receive_DMA()
1691 if (hospi->hdma->LinkedListQueue != NULL) in HAL_OSPI_Receive_DMA()
1699 p_queue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = hospi->XferSize; in HAL_OSPI_Receive_DMA()
1701 p_queue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = (uint32_t)&hospi->Instance->DR; in HAL_OSPI_Receive_DMA()
1705 status = HAL_DMAEx_List_Start_IT(hospi->hdma); in HAL_OSPI_Receive_DMA()
1710 hospi->ErrorCode = HAL_OSPI_ERROR_DMA; in HAL_OSPI_Receive_DMA()
1713 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Receive_DMA()
1724 MODIFY_REG(hospi->hdma->Instance->CTR1, (DMA_CTR1_SINC | DMA_CTR1_DINC), \ in HAL_OSPI_Receive_DMA()
1726 MODIFY_REG(hospi->hdma->Instance->CTR2, DMA_CTR2_DREQ, DMA_PERIPH_TO_MEMORY); in HAL_OSPI_Receive_DMA()
1728 …status = HAL_DMA_Start_IT(hospi->hdma, (uint32_t)&hospi->Instance->DR, (uint32_t)pData, hospi->Xfe… in HAL_OSPI_Receive_DMA()
1733 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TE); in HAL_OSPI_Receive_DMA()
1736 if (hospi->Init.MemoryType == HAL_OSPI_MEMTYPE_HYPERBUS) in HAL_OSPI_Receive_DMA()
1738 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_Receive_DMA()
1742 if (READ_BIT(hospi->Instance->CCR, OCTOSPI_CCR_ADMODE) != HAL_OSPI_ADDRESS_NONE) in HAL_OSPI_Receive_DMA()
1744 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_Receive_DMA()
1748 WRITE_REG(hospi->Instance->IR, ir_reg); in HAL_OSPI_Receive_DMA()
1753 SET_BIT(hospi->Instance->CR, OCTOSPI_CR_DMAEN); in HAL_OSPI_Receive_DMA()
1758 hospi->ErrorCode = HAL_OSPI_ERROR_DMA; in HAL_OSPI_Receive_DMA()
1759 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Receive_DMA()
1766 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Receive_DMA()
1782 HAL_StatusTypeDef HAL_OSPI_AutoPolling(OSPI_HandleTypeDef *hospi, OSPI_AutoPollingTypeDef *cfg, uin… in HAL_OSPI_AutoPolling() argument
1786 uint32_t addr_reg = hospi->Instance->AR; in HAL_OSPI_AutoPolling()
1787 uint32_t ir_reg = hospi->Instance->IR; in HAL_OSPI_AutoPolling()
1789 uint32_t dlr_reg = hospi->Instance->DLR; in HAL_OSPI_AutoPolling()
1799 …if ((hospi->State == HAL_OSPI_STATE_CMD_CFG) && (cfg->AutomaticStop == HAL_OSPI_AUTOMATIC_STOP_ENA… in HAL_OSPI_AutoPolling()
1802 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, Timeout); in HAL_OSPI_AutoPolling()
1807 WRITE_REG(hospi->Instance->PSMAR, cfg->Match); in HAL_OSPI_AutoPolling()
1808 WRITE_REG(hospi->Instance->PSMKR, cfg->Mask); in HAL_OSPI_AutoPolling()
1809 WRITE_REG(hospi->Instance->PIR, cfg->Interval); in HAL_OSPI_AutoPolling()
1810 MODIFY_REG(hospi->Instance->CR, (OCTOSPI_CR_PMM | OCTOSPI_CR_APMS | OCTOSPI_CR_FMODE), in HAL_OSPI_AutoPolling()
1814 if (hospi->Init.MemoryType == HAL_OSPI_MEMTYPE_HYPERBUS) in HAL_OSPI_AutoPolling()
1816 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_AutoPolling()
1820 if (READ_BIT(hospi->Instance->CCR, OCTOSPI_CCR_ADMODE) != HAL_OSPI_ADDRESS_NONE) in HAL_OSPI_AutoPolling()
1822 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_AutoPolling()
1826 WRITE_REG(hospi->Instance->IR, ir_reg); in HAL_OSPI_AutoPolling()
1831 status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_SM, SET, tickstart, Timeout); in HAL_OSPI_AutoPolling()
1836 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_SM); in HAL_OSPI_AutoPolling()
1839 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_AutoPolling()
1846 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_AutoPolling()
1860 HAL_StatusTypeDef HAL_OSPI_AutoPolling_IT(OSPI_HandleTypeDef *hospi, OSPI_AutoPollingTypeDef *cfg) in HAL_OSPI_AutoPolling_IT() argument
1864 uint32_t addr_reg = hospi->Instance->AR; in HAL_OSPI_AutoPolling_IT()
1865 uint32_t ir_reg = hospi->Instance->IR; in HAL_OSPI_AutoPolling_IT()
1867 uint32_t dlr_reg = hospi->Instance->DLR; in HAL_OSPI_AutoPolling_IT()
1877 if (hospi->State == HAL_OSPI_STATE_CMD_CFG) in HAL_OSPI_AutoPolling_IT()
1880 …status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, hospi->Timeou… in HAL_OSPI_AutoPolling_IT()
1885 WRITE_REG(hospi->Instance->PSMAR, cfg->Match); in HAL_OSPI_AutoPolling_IT()
1886 WRITE_REG(hospi->Instance->PSMKR, cfg->Mask); in HAL_OSPI_AutoPolling_IT()
1887 WRITE_REG(hospi->Instance->PIR, cfg->Interval); in HAL_OSPI_AutoPolling_IT()
1888 MODIFY_REG(hospi->Instance->CR, (OCTOSPI_CR_PMM | OCTOSPI_CR_APMS | OCTOSPI_CR_FMODE), in HAL_OSPI_AutoPolling_IT()
1892 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TE | HAL_OSPI_FLAG_SM); in HAL_OSPI_AutoPolling_IT()
1895 hospi->State = HAL_OSPI_STATE_BUSY_AUTO_POLLING; in HAL_OSPI_AutoPolling_IT()
1898 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_SM | HAL_OSPI_IT_TE); in HAL_OSPI_AutoPolling_IT()
1901 if (hospi->Init.MemoryType == HAL_OSPI_MEMTYPE_HYPERBUS) in HAL_OSPI_AutoPolling_IT()
1903 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_AutoPolling_IT()
1907 if (READ_BIT(hospi->Instance->CCR, OCTOSPI_CCR_ADMODE) != HAL_OSPI_ADDRESS_NONE) in HAL_OSPI_AutoPolling_IT()
1909 WRITE_REG(hospi->Instance->AR, addr_reg); in HAL_OSPI_AutoPolling_IT()
1913 WRITE_REG(hospi->Instance->IR, ir_reg); in HAL_OSPI_AutoPolling_IT()
1921 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_AutoPolling_IT()
1935 HAL_StatusTypeDef HAL_OSPI_MemoryMapped(OSPI_HandleTypeDef *hospi, OSPI_MemoryMappedTypeDef *cfg) in HAL_OSPI_MemoryMapped() argument
1944 if (hospi->State == HAL_OSPI_STATE_CMD_CFG) in HAL_OSPI_MemoryMapped()
1947 …status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, hospi->Timeou… in HAL_OSPI_MemoryMapped()
1952 hospi->State = HAL_OSPI_STATE_BUSY_MEM_MAPPED; in HAL_OSPI_MemoryMapped()
1959 WRITE_REG(hospi->Instance->LPTR, cfg->TimeOutPeriod); in HAL_OSPI_MemoryMapped()
1962 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TO); in HAL_OSPI_MemoryMapped()
1965 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TO); in HAL_OSPI_MemoryMapped()
1969 MODIFY_REG(hospi->Instance->CR, (OCTOSPI_CR_TCEN | OCTOSPI_CR_FMODE), in HAL_OSPI_MemoryMapped()
1976 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_MemoryMapped()
1988 __weak void HAL_OSPI_ErrorCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_ErrorCallback() argument
1991 UNUSED(hospi); in HAL_OSPI_ErrorCallback()
2003 __weak void HAL_OSPI_AbortCpltCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_AbortCpltCallback() argument
2006 UNUSED(hospi); in HAL_OSPI_AbortCpltCallback()
2018 __weak void HAL_OSPI_FifoThresholdCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_FifoThresholdCallback() argument
2021 UNUSED(hospi); in HAL_OSPI_FifoThresholdCallback()
2033 __weak void HAL_OSPI_CmdCpltCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_CmdCpltCallback() argument
2036 UNUSED(hospi); in HAL_OSPI_CmdCpltCallback()
2048 __weak void HAL_OSPI_RxCpltCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_RxCpltCallback() argument
2051 UNUSED(hospi); in HAL_OSPI_RxCpltCallback()
2063 __weak void HAL_OSPI_TxCpltCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_TxCpltCallback() argument
2066 UNUSED(hospi); in HAL_OSPI_TxCpltCallback()
2078 __weak void HAL_OSPI_RxHalfCpltCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_RxHalfCpltCallback() argument
2081 UNUSED(hospi); in HAL_OSPI_RxHalfCpltCallback()
2093 __weak void HAL_OSPI_TxHalfCpltCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_TxHalfCpltCallback() argument
2096 UNUSED(hospi); in HAL_OSPI_TxHalfCpltCallback()
2108 __weak void HAL_OSPI_StatusMatchCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_StatusMatchCallback() argument
2111 UNUSED(hospi); in HAL_OSPI_StatusMatchCallback()
2123 __weak void HAL_OSPI_TimeOutCallback(OSPI_HandleTypeDef *hospi) in HAL_OSPI_TimeOutCallback() argument
2126 UNUSED(hospi); in HAL_OSPI_TimeOutCallback()
2155 HAL_StatusTypeDef HAL_OSPI_RegisterCallback(OSPI_HandleTypeDef *hospi, HAL_OSPI_CallbackIDTypeDef C… in HAL_OSPI_RegisterCallback() argument
2163 hospi->ErrorCode |= HAL_OSPI_ERROR_INVALID_CALLBACK; in HAL_OSPI_RegisterCallback()
2167 if (hospi->State == HAL_OSPI_STATE_READY) in HAL_OSPI_RegisterCallback()
2172 hospi->ErrorCallback = pCallback; in HAL_OSPI_RegisterCallback()
2175 hospi->AbortCpltCallback = pCallback; in HAL_OSPI_RegisterCallback()
2178 hospi->FifoThresholdCallback = pCallback; in HAL_OSPI_RegisterCallback()
2181 hospi->CmdCpltCallback = pCallback; in HAL_OSPI_RegisterCallback()
2184 hospi->RxCpltCallback = pCallback; in HAL_OSPI_RegisterCallback()
2187 hospi->TxCpltCallback = pCallback; in HAL_OSPI_RegisterCallback()
2190 hospi->RxHalfCpltCallback = pCallback; in HAL_OSPI_RegisterCallback()
2193 hospi->TxHalfCpltCallback = pCallback; in HAL_OSPI_RegisterCallback()
2196 hospi->StatusMatchCallback = pCallback; in HAL_OSPI_RegisterCallback()
2199 hospi->TimeOutCallback = pCallback; in HAL_OSPI_RegisterCallback()
2202 hospi->MspInitCallback = pCallback; in HAL_OSPI_RegisterCallback()
2205 hospi->MspDeInitCallback = pCallback; in HAL_OSPI_RegisterCallback()
2209 hospi->ErrorCode |= HAL_OSPI_ERROR_INVALID_CALLBACK; in HAL_OSPI_RegisterCallback()
2215 else if (hospi->State == HAL_OSPI_STATE_RESET) in HAL_OSPI_RegisterCallback()
2220 hospi->MspInitCallback = pCallback; in HAL_OSPI_RegisterCallback()
2223 hospi->MspDeInitCallback = pCallback; in HAL_OSPI_RegisterCallback()
2227 hospi->ErrorCode |= HAL_OSPI_ERROR_INVALID_CALLBACK; in HAL_OSPI_RegisterCallback()
2236 hospi->ErrorCode |= HAL_OSPI_ERROR_INVALID_CALLBACK; in HAL_OSPI_RegisterCallback()
2264 HAL_StatusTypeDef HAL_OSPI_UnRegisterCallback(OSPI_HandleTypeDef *hospi, HAL_OSPI_CallbackIDTypeDef… in HAL_OSPI_UnRegisterCallback() argument
2268 if (hospi->State == HAL_OSPI_STATE_READY) in HAL_OSPI_UnRegisterCallback()
2273 hospi->ErrorCallback = HAL_OSPI_ErrorCallback; in HAL_OSPI_UnRegisterCallback()
2276 hospi->AbortCpltCallback = HAL_OSPI_AbortCpltCallback; in HAL_OSPI_UnRegisterCallback()
2279 hospi->FifoThresholdCallback = HAL_OSPI_FifoThresholdCallback; in HAL_OSPI_UnRegisterCallback()
2282 hospi->CmdCpltCallback = HAL_OSPI_CmdCpltCallback; in HAL_OSPI_UnRegisterCallback()
2285 hospi->RxCpltCallback = HAL_OSPI_RxCpltCallback; in HAL_OSPI_UnRegisterCallback()
2288 hospi->TxCpltCallback = HAL_OSPI_TxCpltCallback; in HAL_OSPI_UnRegisterCallback()
2291 hospi->RxHalfCpltCallback = HAL_OSPI_RxHalfCpltCallback; in HAL_OSPI_UnRegisterCallback()
2294 hospi->TxHalfCpltCallback = HAL_OSPI_TxHalfCpltCallback; in HAL_OSPI_UnRegisterCallback()
2297 hospi->StatusMatchCallback = HAL_OSPI_StatusMatchCallback; in HAL_OSPI_UnRegisterCallback()
2300 hospi->TimeOutCallback = HAL_OSPI_TimeOutCallback; in HAL_OSPI_UnRegisterCallback()
2303 hospi->MspInitCallback = HAL_OSPI_MspInit; in HAL_OSPI_UnRegisterCallback()
2306 hospi->MspDeInitCallback = HAL_OSPI_MspDeInit; in HAL_OSPI_UnRegisterCallback()
2310 hospi->ErrorCode |= HAL_OSPI_ERROR_INVALID_CALLBACK; in HAL_OSPI_UnRegisterCallback()
2316 else if (hospi->State == HAL_OSPI_STATE_RESET) in HAL_OSPI_UnRegisterCallback()
2321 hospi->MspInitCallback = HAL_OSPI_MspInit; in HAL_OSPI_UnRegisterCallback()
2324 hospi->MspDeInitCallback = HAL_OSPI_MspDeInit; in HAL_OSPI_UnRegisterCallback()
2328 hospi->ErrorCode |= HAL_OSPI_ERROR_INVALID_CALLBACK; in HAL_OSPI_UnRegisterCallback()
2337 hospi->ErrorCode |= HAL_OSPI_ERROR_INVALID_CALLBACK; in HAL_OSPI_UnRegisterCallback()
2374 HAL_StatusTypeDef HAL_OSPI_Abort(OSPI_HandleTypeDef *hospi) in HAL_OSPI_Abort() argument
2381 state = hospi->State; in HAL_OSPI_Abort()
2385 if ((hospi->Instance->CR & OCTOSPI_CR_DMAEN) != 0U) in HAL_OSPI_Abort()
2388 CLEAR_BIT(hospi->Instance->CR, OCTOSPI_CR_DMAEN); in HAL_OSPI_Abort()
2391 status = HAL_DMA_Abort(hospi->hdma); in HAL_OSPI_Abort()
2394 hospi->ErrorCode = HAL_OSPI_ERROR_DMA; in HAL_OSPI_Abort()
2398 if (__HAL_OSPI_GET_FLAG(hospi, HAL_OSPI_FLAG_BUSY) != RESET) in HAL_OSPI_Abort()
2401 SET_BIT(hospi->Instance->CR, OCTOSPI_CR_ABORT); in HAL_OSPI_Abort()
2404 … status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_TC, SET, tickstart, hospi->Timeout); in HAL_OSPI_Abort()
2409 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TC); in HAL_OSPI_Abort()
2412 …status = OSPI_WaitFlagStateUntilTimeout(hospi, HAL_OSPI_FLAG_BUSY, RESET, tickstart, hospi->Timeou… in HAL_OSPI_Abort()
2417 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Abort()
2424 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Abort()
2430 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Abort()
2442 HAL_StatusTypeDef HAL_OSPI_Abort_IT(OSPI_HandleTypeDef *hospi) in HAL_OSPI_Abort_IT() argument
2448 state = hospi->State; in HAL_OSPI_Abort_IT()
2452 …__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()
2455 hospi->State = HAL_OSPI_STATE_ABORT; in HAL_OSPI_Abort_IT()
2458 if ((hospi->Instance->CR & OCTOSPI_CR_DMAEN) != 0U) in HAL_OSPI_Abort_IT()
2461 CLEAR_BIT(hospi->Instance->CR, OCTOSPI_CR_DMAEN); in HAL_OSPI_Abort_IT()
2464 hospi->hdma->XferAbortCallback = OSPI_DMAAbortCplt; in HAL_OSPI_Abort_IT()
2465 if (HAL_DMA_Abort_IT(hospi->hdma) != HAL_OK) in HAL_OSPI_Abort_IT()
2468 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Abort_IT()
2472 hospi->AbortCpltCallback(hospi); in HAL_OSPI_Abort_IT()
2474 HAL_OSPI_AbortCpltCallback(hospi); in HAL_OSPI_Abort_IT()
2480 if (__HAL_OSPI_GET_FLAG(hospi, HAL_OSPI_FLAG_BUSY) != RESET) in HAL_OSPI_Abort_IT()
2483 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TC); in HAL_OSPI_Abort_IT()
2486 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TC); in HAL_OSPI_Abort_IT()
2489 SET_BIT(hospi->Instance->CR, OCTOSPI_CR_ABORT); in HAL_OSPI_Abort_IT()
2494 hospi->State = HAL_OSPI_STATE_READY; in HAL_OSPI_Abort_IT()
2498 hospi->AbortCpltCallback(hospi); in HAL_OSPI_Abort_IT()
2500 HAL_OSPI_AbortCpltCallback(hospi); in HAL_OSPI_Abort_IT()
2508 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_Abort_IT()
2520 HAL_StatusTypeDef HAL_OSPI_SetFifoThreshold(OSPI_HandleTypeDef *hospi, uint32_t Threshold) in HAL_OSPI_SetFifoThreshold() argument
2525 if ((hospi->State & OSPI_BUSY_STATE_MASK) == 0U) in HAL_OSPI_SetFifoThreshold()
2528 hospi->Init.FifoThreshold = Threshold; in HAL_OSPI_SetFifoThreshold()
2531 …MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FTHRES, ((hospi->Init.FifoThreshold - 1U) << OCTOSPI_CR… in HAL_OSPI_SetFifoThreshold()
2537 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_SEQUENCE; in HAL_OSPI_SetFifoThreshold()
2548 uint32_t HAL_OSPI_GetFifoThreshold(const OSPI_HandleTypeDef *hospi) in HAL_OSPI_GetFifoThreshold() argument
2550 return ((READ_BIT(hospi->Instance->CR, OCTOSPI_CR_FTHRES) >> OCTOSPI_CR_FTHRES_Pos) + 1U); in HAL_OSPI_GetFifoThreshold()
2558 HAL_StatusTypeDef HAL_OSPI_SetTimeout(OSPI_HandleTypeDef *hospi, uint32_t Timeout) in HAL_OSPI_SetTimeout() argument
2560 hospi->Timeout = Timeout; in HAL_OSPI_SetTimeout()
2569 uint32_t HAL_OSPI_GetError(const OSPI_HandleTypeDef *hospi) in HAL_OSPI_GetError() argument
2571 return hospi->ErrorCode; in HAL_OSPI_GetError()
2579 uint32_t HAL_OSPI_GetState(const OSPI_HandleTypeDef *hospi) in HAL_OSPI_GetState() argument
2582 return hospi->State; in HAL_OSPI_GetState()
2612 HAL_StatusTypeDef HAL_OSPIM_Config(OSPI_HandleTypeDef *hospi, OSPIM_CfgTypeDef *cfg, uint32_t Timeo… in HAL_OSPIM_Config() argument
2631 if (hospi->Instance == (OCTOSPI_TypeDef *)OCTOSPI1) in HAL_OSPIM_Config()
2648 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in HAL_OSPIM_Config()
2876 OSPI_HandleTypeDef *hospi = (OSPI_HandleTypeDef *)(hdma->Parent); in OSPI_DMACplt() local
2877 hospi->XferCount = 0; in OSPI_DMACplt()
2880 CLEAR_BIT(hospi->Instance->CR, OCTOSPI_CR_DMAEN); in OSPI_DMACplt()
2886 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TC); in OSPI_DMACplt()
2896 OSPI_HandleTypeDef *hospi = (OSPI_HandleTypeDef *)(hdma->Parent); in OSPI_DMAHalfCplt() local
2897 hospi->XferCount = (hospi->XferCount >> 1); in OSPI_DMAHalfCplt()
2899 if (hospi->State == HAL_OSPI_STATE_BUSY_RX) in OSPI_DMAHalfCplt()
2902 hospi->RxHalfCpltCallback(hospi); in OSPI_DMAHalfCplt()
2904 HAL_OSPI_RxHalfCpltCallback(hospi); in OSPI_DMAHalfCplt()
2910 hospi->TxHalfCpltCallback(hospi); in OSPI_DMAHalfCplt()
2912 HAL_OSPI_TxHalfCpltCallback(hospi); in OSPI_DMAHalfCplt()
2924 OSPI_HandleTypeDef *hospi = (OSPI_HandleTypeDef *)(hdma->Parent); in OSPI_DMAError() local
2925 hospi->XferCount = 0; in OSPI_DMAError()
2926 hospi->ErrorCode = HAL_OSPI_ERROR_DMA; in OSPI_DMAError()
2929 CLEAR_BIT(hospi->Instance->CR, OCTOSPI_CR_DMAEN); in OSPI_DMAError()
2932 if (HAL_OSPI_Abort_IT(hospi) != HAL_OK) in OSPI_DMAError()
2935 __HAL_OSPI_DISABLE_IT(hospi, HAL_OSPI_IT_TC | HAL_OSPI_IT_FT | HAL_OSPI_IT_TE); in OSPI_DMAError()
2938 hospi->State = HAL_OSPI_STATE_READY; in OSPI_DMAError()
2942 hospi->ErrorCallback(hospi); in OSPI_DMAError()
2944 HAL_OSPI_ErrorCallback(hospi); in OSPI_DMAError()
2956 OSPI_HandleTypeDef *hospi = (OSPI_HandleTypeDef *)(hdma->Parent); in OSPI_DMAAbortCplt() local
2957 hospi->XferCount = 0; in OSPI_DMAAbortCplt()
2960 if (hospi->State == HAL_OSPI_STATE_ABORT) in OSPI_DMAAbortCplt()
2963 if (__HAL_OSPI_GET_FLAG(hospi, HAL_OSPI_FLAG_BUSY) != RESET) in OSPI_DMAAbortCplt()
2966 __HAL_OSPI_CLEAR_FLAG(hospi, HAL_OSPI_FLAG_TC); in OSPI_DMAAbortCplt()
2969 __HAL_OSPI_ENABLE_IT(hospi, HAL_OSPI_IT_TC); in OSPI_DMAAbortCplt()
2972 SET_BIT(hospi->Instance->CR, OCTOSPI_CR_ABORT); in OSPI_DMAAbortCplt()
2977 hospi->State = HAL_OSPI_STATE_READY; in OSPI_DMAAbortCplt()
2981 hospi->AbortCpltCallback(hospi); in OSPI_DMAAbortCplt()
2983 HAL_OSPI_AbortCpltCallback(hospi); in OSPI_DMAAbortCplt()
2991 hospi->State = HAL_OSPI_STATE_READY; in OSPI_DMAAbortCplt()
2995 hospi->ErrorCallback(hospi); in OSPI_DMAAbortCplt()
2997 HAL_OSPI_ErrorCallback(hospi); in OSPI_DMAAbortCplt()
3011 static HAL_StatusTypeDef OSPI_WaitFlagStateUntilTimeout(OSPI_HandleTypeDef *hospi, uint32_t Flag, in OSPI_WaitFlagStateUntilTimeout() argument
3015 while ((__HAL_OSPI_GET_FLAG(hospi, Flag)) != State) in OSPI_WaitFlagStateUntilTimeout()
3023 if ((hospi->Instance->SR & Flag) != (uint32_t)State) in OSPI_WaitFlagStateUntilTimeout()
3025 hospi->State = HAL_OSPI_STATE_ERROR; in OSPI_WaitFlagStateUntilTimeout()
3026 hospi->ErrorCode |= HAL_OSPI_ERROR_TIMEOUT; in OSPI_WaitFlagStateUntilTimeout()
3042 static HAL_StatusTypeDef OSPI_ConfigCmd(OSPI_HandleTypeDef *hospi, OSPI_RegularCmdTypeDef *cmd) in OSPI_ConfigCmd() argument
3051 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_FMODE, 0U); in OSPI_ConfigCmd()
3054 if (hospi->Init.DualQuad == HAL_OSPI_DUALQUAD_DISABLE) in OSPI_ConfigCmd()
3056 MODIFY_REG(hospi->Instance->CR, OCTOSPI_CR_MSEL, cmd->FlashId); in OSPI_ConfigCmd()
3061 ccr_reg = &(hospi->Instance->WCCR); in OSPI_ConfigCmd()
3062 tcr_reg = &(hospi->Instance->WTCR); in OSPI_ConfigCmd()
3063 ir_reg = &(hospi->Instance->WIR); in OSPI_ConfigCmd()
3064 abr_reg = &(hospi->Instance->WABR); in OSPI_ConfigCmd()
3068 ccr_reg = &(hospi->Instance->WPCCR); in OSPI_ConfigCmd()
3069 tcr_reg = &(hospi->Instance->WPTCR); in OSPI_ConfigCmd()
3070 ir_reg = &(hospi->Instance->WPIR); in OSPI_ConfigCmd()
3071 abr_reg = &(hospi->Instance->WPABR); in OSPI_ConfigCmd()
3075 ccr_reg = &(hospi->Instance->CCR); in OSPI_ConfigCmd()
3076 tcr_reg = &(hospi->Instance->TCR); in OSPI_ConfigCmd()
3077 ir_reg = &(hospi->Instance->IR); in OSPI_ConfigCmd()
3078 abr_reg = &(hospi->Instance->ABR); in OSPI_ConfigCmd()
3102 hospi->Instance->DLR = (cmd->NbData - 1U); in OSPI_ConfigCmd()
3133 if ((hospi->Init.DelayHoldQuarterCycle == HAL_OSPI_DHQC_ENABLE) && in OSPI_ConfigCmd()
3144 hospi->Instance->AR = cmd->Address; in OSPI_ConfigCmd()
3167 if ((hospi->Init.DelayHoldQuarterCycle == HAL_OSPI_DHQC_ENABLE) && in OSPI_ConfigCmd()
3203 hospi->Instance->AR = cmd->Address; in OSPI_ConfigCmd()
3209 hospi->ErrorCode = HAL_OSPI_ERROR_INVALID_PARAM; in OSPI_ConfigCmd()
3356 HAL_StatusTypeDef HAL_OSPI_DLYB_SetConfig(OSPI_HandleTypeDef *hospi, HAL_OSPI_DLYB_CfgTypeDef *pdl… in HAL_OSPI_DLYB_SetConfig() argument
3361 SET_BIT(hospi->Instance->DCR1, OCTOSPI_DCR1_FRCK); in HAL_OSPI_DLYB_SetConfig()
3364 hospi->State = HAL_OSPI_STATE_BUSY_CMD; in HAL_OSPI_DLYB_SetConfig()
3366 if (hospi->Instance == OCTOSPI1) in HAL_OSPI_DLYB_SetConfig()
3377 else if (hospi->Instance == OCTOSPI2) in HAL_OSPI_DLYB_SetConfig()
3394 (void)HAL_OSPI_Abort(hospi); in HAL_OSPI_DLYB_SetConfig()
3397 CLEAR_BIT(hospi->Instance->DCR1, OCTOSPI_DCR1_FRCK); in HAL_OSPI_DLYB_SetConfig()
3409 HAL_StatusTypeDef HAL_OSPI_DLYB_GetConfig(const OSPI_HandleTypeDef *hospi, HAL_OSPI_DLYB_CfgTypeDef… in HAL_OSPI_DLYB_GetConfig() argument
3413 if (hospi->Instance == OCTOSPI1) in HAL_OSPI_DLYB_GetConfig()
3419 else if (hospi->Instance == OCTOSPI2) in HAL_OSPI_DLYB_GetConfig()
3440 HAL_StatusTypeDef HAL_OSPI_DLYB_GetClockPeriod(OSPI_HandleTypeDef *hospi, HAL_OSPI_DLYB_CfgTypeDef … in HAL_OSPI_DLYB_GetClockPeriod() argument
3445 SET_BIT(hospi->Instance->DCR1, OCTOSPI_DCR1_FRCK); in HAL_OSPI_DLYB_GetClockPeriod()
3448 hospi->State = HAL_OSPI_STATE_BUSY_CMD; in HAL_OSPI_DLYB_GetClockPeriod()
3450 if (hospi->Instance == OCTOSPI1) in HAL_OSPI_DLYB_GetClockPeriod()
3466 else if (hospi->Instance == OCTOSPI2) in HAL_OSPI_DLYB_GetClockPeriod()
3488 (void)HAL_OSPI_Abort(hospi); in HAL_OSPI_DLYB_GetClockPeriod()
3491 CLEAR_BIT(hospi->Instance->DCR1, OCTOSPI_DCR1_FRCK); in HAL_OSPI_DLYB_GetClockPeriod()