Lines Matching refs:hrng
167 HAL_StatusTypeDef HAL_RNG_Init(RNG_HandleTypeDef *hrng) in HAL_RNG_Init() argument
171 if (hrng == NULL) in HAL_RNG_Init()
176 assert_param(IS_RNG_ALL_INSTANCE(hrng->Instance)); in HAL_RNG_Init()
177 assert_param(IS_RNG_CED(hrng->Init.ClockErrorDetection)); in HAL_RNG_Init()
180 if (hrng->State == HAL_RNG_STATE_RESET) in HAL_RNG_Init()
183 hrng->Lock = HAL_UNLOCKED; in HAL_RNG_Init()
185 hrng->ReadyDataCallback = HAL_RNG_ReadyDataCallback; /* Legacy weak ReadyDataCallback */ in HAL_RNG_Init()
186 hrng->ErrorCallback = HAL_RNG_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_RNG_Init()
188 if (hrng->MspInitCallback == NULL) in HAL_RNG_Init()
190 hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */ in HAL_RNG_Init()
194 hrng->MspInitCallback(hrng); in HAL_RNG_Init()
197 if (hrng->State == HAL_RNG_STATE_RESET) in HAL_RNG_Init()
200 hrng->Lock = HAL_UNLOCKED; in HAL_RNG_Init()
203 HAL_RNG_MspInit(hrng); in HAL_RNG_Init()
208 hrng->State = HAL_RNG_STATE_BUSY; in HAL_RNG_Init()
212 __HAL_RNG_DISABLE(hrng); in HAL_RNG_Init()
215 …MODIFY_REG(hrng->Instance->CR, RNG_CR_CED | RNG_CR_CONDRST, hrng->Init.ClockErrorDetection | RNG_C… in HAL_RNG_Init()
218 WRITE_REG(hrng->Instance->HTCR, RNG_HTCFG_1); in HAL_RNG_Init()
220 WRITE_REG(hrng->Instance->HTCR, RNG_HTCFG); in HAL_RNG_Init()
224 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in HAL_RNG_Init()
230 while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_Init()
235 if (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_Init()
237 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_Init()
238 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_Init()
245 MODIFY_REG(hrng->Instance->CR, RNG_CR_CED, hrng->Init.ClockErrorDetection); in HAL_RNG_Init()
249 __HAL_RNG_ENABLE(hrng); in HAL_RNG_Init()
252 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_Init()
254 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_Init()
260 while (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) != SET) in HAL_RNG_Init()
265 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) != SET) in HAL_RNG_Init()
267 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_Init()
268 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_Init()
275 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_Init()
278 hrng->ErrorCode = HAL_RNG_ERROR_NONE; in HAL_RNG_Init()
290 HAL_StatusTypeDef HAL_RNG_DeInit(RNG_HandleTypeDef *hrng) in HAL_RNG_DeInit() argument
297 if (hrng == NULL) in HAL_RNG_DeInit()
304 MODIFY_REG(hrng->Instance->CR, RNG_CR_CED | RNG_CR_CONDRST, RNG_CED_ENABLE | RNG_CR_CONDRST); in HAL_RNG_DeInit()
307 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in HAL_RNG_DeInit()
313 while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_DeInit()
318 if (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_DeInit()
320 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_DeInit()
321 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_DeInit()
323 __HAL_UNLOCK(hrng); in HAL_RNG_DeInit()
331 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CED); in HAL_RNG_DeInit()
334 CLEAR_BIT(hrng->Instance->CR, RNG_CR_IE | RNG_CR_RNGEN); in HAL_RNG_DeInit()
337 CLEAR_BIT(hrng->Instance->SR, RNG_SR_CEIS | RNG_SR_SEIS); in HAL_RNG_DeInit()
340 if (hrng->MspDeInitCallback == NULL) in HAL_RNG_DeInit()
342 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspDeInit */ in HAL_RNG_DeInit()
346 hrng->MspDeInitCallback(hrng); in HAL_RNG_DeInit()
349 HAL_RNG_MspDeInit(hrng); in HAL_RNG_DeInit()
353 hrng->State = HAL_RNG_STATE_RESET; in HAL_RNG_DeInit()
356 hrng->ErrorCode = HAL_RNG_ERROR_NONE; in HAL_RNG_DeInit()
359 __HAL_UNLOCK(hrng); in HAL_RNG_DeInit()
371 __weak void HAL_RNG_MspInit(RNG_HandleTypeDef *hrng) in HAL_RNG_MspInit() argument
374 UNUSED(hrng); in HAL_RNG_MspInit()
386 __weak void HAL_RNG_MspDeInit(RNG_HandleTypeDef *hrng) in HAL_RNG_MspDeInit() argument
389 UNUSED(hrng); in HAL_RNG_MspDeInit()
408 HAL_StatusTypeDef HAL_RNG_RegisterCallback(RNG_HandleTypeDef *hrng, HAL_RNG_CallbackIDTypeDef Callb… in HAL_RNG_RegisterCallback() argument
416 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
420 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_RegisterCallback()
425 hrng->ErrorCallback = pCallback; in HAL_RNG_RegisterCallback()
429 hrng->MspInitCallback = pCallback; in HAL_RNG_RegisterCallback()
433 hrng->MspDeInitCallback = pCallback; in HAL_RNG_RegisterCallback()
438 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
444 else if (HAL_RNG_STATE_RESET == hrng->State) in HAL_RNG_RegisterCallback()
449 hrng->MspInitCallback = pCallback; in HAL_RNG_RegisterCallback()
453 hrng->MspDeInitCallback = pCallback; in HAL_RNG_RegisterCallback()
458 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
467 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
486 HAL_StatusTypeDef HAL_RNG_UnRegisterCallback(RNG_HandleTypeDef *hrng, HAL_RNG_CallbackIDTypeDef Cal… in HAL_RNG_UnRegisterCallback() argument
491 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_UnRegisterCallback()
496 hrng->ErrorCallback = HAL_RNG_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_RNG_UnRegisterCallback()
500 hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
504 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspDeInit */ in HAL_RNG_UnRegisterCallback()
509 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
515 else if (HAL_RNG_STATE_RESET == hrng->State) in HAL_RNG_UnRegisterCallback()
520 hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
524 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
529 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
538 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
553 HAL_StatusTypeDef HAL_RNG_RegisterReadyDataCallback(RNG_HandleTypeDef *hrng, pRNG_ReadyDataCallback… in HAL_RNG_RegisterReadyDataCallback() argument
560 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterReadyDataCallback()
564 __HAL_LOCK(hrng); in HAL_RNG_RegisterReadyDataCallback()
566 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_RegisterReadyDataCallback()
568 hrng->ReadyDataCallback = pCallback; in HAL_RNG_RegisterReadyDataCallback()
573 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterReadyDataCallback()
579 __HAL_UNLOCK(hrng); in HAL_RNG_RegisterReadyDataCallback()
589 HAL_StatusTypeDef HAL_RNG_UnRegisterReadyDataCallback(RNG_HandleTypeDef *hrng) in HAL_RNG_UnRegisterReadyDataCallback() argument
594 __HAL_LOCK(hrng); in HAL_RNG_UnRegisterReadyDataCallback()
596 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_UnRegisterReadyDataCallback()
598 hrng->ReadyDataCallback = HAL_RNG_ReadyDataCallback; /* Legacy weak ReadyDataCallback */ in HAL_RNG_UnRegisterReadyDataCallback()
603 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterReadyDataCallback()
609 __HAL_UNLOCK(hrng); in HAL_RNG_UnRegisterReadyDataCallback()
653 HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber(RNG_HandleTypeDef *hrng, uint32_t *random32bit) in HAL_RNG_GenerateRandomNumber() argument
659 __HAL_LOCK(hrng); in HAL_RNG_GenerateRandomNumber()
662 if (hrng->State == HAL_RNG_STATE_READY) in HAL_RNG_GenerateRandomNumber()
665 hrng->State = HAL_RNG_STATE_BUSY; in HAL_RNG_GenerateRandomNumber()
668 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_GenerateRandomNumber()
671 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_GenerateRandomNumber()
673 status = RNG_RecoverSeedError(hrng); in HAL_RNG_GenerateRandomNumber()
677 hrng->ErrorCode = HAL_RNG_ERROR_RECOVERSEED; in HAL_RNG_GenerateRandomNumber()
687 while (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) == RESET) in HAL_RNG_GenerateRandomNumber()
692 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) == RESET) in HAL_RNG_GenerateRandomNumber()
694 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_GenerateRandomNumber()
695 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_GenerateRandomNumber()
697 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber()
704 hrng->RandomNumber = hrng->Instance->DR; in HAL_RNG_GenerateRandomNumber()
708 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_GenerateRandomNumber()
711 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_GenerateRandomNumber()
716 *random32bit = hrng->RandomNumber; in HAL_RNG_GenerateRandomNumber()
719 *random32bit = hrng->RandomNumber; in HAL_RNG_GenerateRandomNumber()
722 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_GenerateRandomNumber()
726 hrng->ErrorCode = HAL_RNG_ERROR_BUSY; in HAL_RNG_GenerateRandomNumber()
731 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber()
742 HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber_IT(RNG_HandleTypeDef *hrng) in HAL_RNG_GenerateRandomNumber_IT() argument
747 __HAL_LOCK(hrng); in HAL_RNG_GenerateRandomNumber_IT()
750 if (hrng->State == HAL_RNG_STATE_READY) in HAL_RNG_GenerateRandomNumber_IT()
753 hrng->State = HAL_RNG_STATE_BUSY; in HAL_RNG_GenerateRandomNumber_IT()
756 __HAL_RNG_ENABLE_IT(hrng); in HAL_RNG_GenerateRandomNumber_IT()
761 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber_IT()
763 hrng->ErrorCode = HAL_RNG_ERROR_BUSY; in HAL_RNG_GenerateRandomNumber_IT()
791 void HAL_RNG_IRQHandler(RNG_HandleTypeDef *hrng) in HAL_RNG_IRQHandler() argument
794 uint32_t itflag = hrng->Instance->SR; in HAL_RNG_IRQHandler()
800 hrng->ErrorCode = HAL_RNG_ERROR_CLOCK; in HAL_RNG_IRQHandler()
810 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in HAL_RNG_IRQHandler()
815 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_IRQHandler()
818 __HAL_RNG_DISABLE_IT(hrng); in HAL_RNG_IRQHandler()
829 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_IRQHandler()
833 hrng->ErrorCallback(hrng); in HAL_RNG_IRQHandler()
836 HAL_RNG_ErrorCallback(hrng); in HAL_RNG_IRQHandler()
840 __HAL_RNG_CLEAR_IT(hrng, RNG_IT_CEI | RNG_IT_SEI); in HAL_RNG_IRQHandler()
849 __HAL_RNG_DISABLE_IT(hrng); in HAL_RNG_IRQHandler()
852 hrng->RandomNumber = hrng->Instance->DR; in HAL_RNG_IRQHandler()
854 if (hrng->State != HAL_RNG_STATE_ERROR) in HAL_RNG_IRQHandler()
857 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_IRQHandler()
859 __HAL_UNLOCK(hrng); in HAL_RNG_IRQHandler()
863 hrng->ReadyDataCallback(hrng, hrng->RandomNumber); in HAL_RNG_IRQHandler()
866 HAL_RNG_ReadyDataCallback(hrng, hrng->RandomNumber); in HAL_RNG_IRQHandler()
878 uint32_t HAL_RNG_ReadLastRandomNumber(const RNG_HandleTypeDef *hrng) in HAL_RNG_ReadLastRandomNumber() argument
880 return (hrng->RandomNumber); in HAL_RNG_ReadLastRandomNumber()
895 __weak void HAL_RNG_ReadyDataCallback(RNG_HandleTypeDef *hrng, uint32_t random32bit) in HAL_RNG_ReadyDataCallback() argument
898 UNUSED(hrng); in HAL_RNG_ReadyDataCallback()
911 __weak void HAL_RNG_ErrorCallback(RNG_HandleTypeDef *hrng) in HAL_RNG_ErrorCallback() argument
914 UNUSED(hrng); in HAL_RNG_ErrorCallback()
945 HAL_RNG_StateTypeDef HAL_RNG_GetState(const RNG_HandleTypeDef *hrng) in HAL_RNG_GetState() argument
947 return hrng->State; in HAL_RNG_GetState()
955 uint32_t HAL_RNG_GetError(const RNG_HandleTypeDef *hrng) in HAL_RNG_GetError() argument
958 return hrng->ErrorCode; in HAL_RNG_GetError()
978 HAL_StatusTypeDef RNG_RecoverSeedError(RNG_HandleTypeDef *hrng) in RNG_RecoverSeedError() argument
983 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_SECS) == RESET) in RNG_RecoverSeedError()
987 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in RNG_RecoverSeedError()
992 SET_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in RNG_RecoverSeedError()
994 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in RNG_RecoverSeedError()
1003 hrng->State = HAL_RNG_STATE_READY; in RNG_RecoverSeedError()
1004 hrng->ErrorCode |= HAL_RNG_ERROR_TIMEOUT; in RNG_RecoverSeedError()
1006 __HAL_UNLOCK(hrng); in RNG_RecoverSeedError()
1009 hrng->ErrorCallback(hrng); in RNG_RecoverSeedError()
1012 HAL_RNG_ErrorCallback(hrng); in RNG_RecoverSeedError()
1016 } while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)); in RNG_RecoverSeedError()
1018 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in RNG_RecoverSeedError()
1021 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in RNG_RecoverSeedError()
1031 hrng->State = HAL_RNG_STATE_READY; in RNG_RecoverSeedError()
1032 hrng->ErrorCode |= HAL_RNG_ERROR_TIMEOUT; in RNG_RecoverSeedError()
1034 __HAL_UNLOCK(hrng); in RNG_RecoverSeedError()
1037 hrng->ErrorCallback(hrng); in RNG_RecoverSeedError()
1040 HAL_RNG_ErrorCallback(hrng); in RNG_RecoverSeedError()
1044 } while (HAL_IS_BIT_SET(hrng->Instance->SR, RNG_FLAG_SECS)); in RNG_RecoverSeedError()
1047 hrng->ErrorCode &= ~ HAL_RNG_ERROR_SEED; in RNG_RecoverSeedError()