Lines Matching refs:hrng
154 HAL_StatusTypeDef HAL_RNG_Init(RNG_HandleTypeDef *hrng) in HAL_RNG_Init() argument
158 if (hrng == NULL) in HAL_RNG_Init()
163 assert_param(IS_RNG_ALL_INSTANCE(hrng->Instance)); in HAL_RNG_Init()
164 assert_param(IS_RNG_CED(hrng->Init.ClockErrorDetection)); in HAL_RNG_Init()
167 if (hrng->State == HAL_RNG_STATE_RESET) in HAL_RNG_Init()
170 hrng->Lock = HAL_UNLOCKED; in HAL_RNG_Init()
172 hrng->ReadyDataCallback = HAL_RNG_ReadyDataCallback; /* Legacy weak ReadyDataCallback */ in HAL_RNG_Init()
173 hrng->ErrorCallback = HAL_RNG_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_RNG_Init()
175 if (hrng->MspInitCallback == NULL) in HAL_RNG_Init()
177 hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */ in HAL_RNG_Init()
181 hrng->MspInitCallback(hrng); in HAL_RNG_Init()
184 if (hrng->State == HAL_RNG_STATE_RESET) in HAL_RNG_Init()
187 hrng->Lock = HAL_UNLOCKED; in HAL_RNG_Init()
190 HAL_RNG_MspInit(hrng); in HAL_RNG_Init()
195 hrng->State = HAL_RNG_STATE_BUSY; in HAL_RNG_Init()
198 __HAL_RNG_DISABLE(hrng); in HAL_RNG_Init()
201 …MODIFY_REG(hrng->Instance->CR, RNG_CR_CED | RNG_CR_CONDRST, hrng->Init.ClockErrorDetection | RNG_C… in HAL_RNG_Init()
204 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in HAL_RNG_Init()
210 while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_Init()
215 if (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_Init()
217 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_Init()
218 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_Init()
225 __HAL_RNG_ENABLE(hrng); in HAL_RNG_Init()
228 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_Init()
230 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_Init()
236 while (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) != SET) in HAL_RNG_Init()
241 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) != SET) in HAL_RNG_Init()
243 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_Init()
244 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_Init()
251 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_Init()
254 hrng->ErrorCode = HAL_RNG_ERROR_NONE; in HAL_RNG_Init()
266 HAL_StatusTypeDef HAL_RNG_DeInit(RNG_HandleTypeDef *hrng) in HAL_RNG_DeInit() argument
271 if (hrng == NULL) in HAL_RNG_DeInit()
277 MODIFY_REG(hrng->Instance->CR, RNG_CR_CED | RNG_CR_CONDRST, RNG_CED_ENABLE | RNG_CR_CONDRST); in HAL_RNG_DeInit()
280 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in HAL_RNG_DeInit()
286 while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_DeInit()
291 if (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_DeInit()
293 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_DeInit()
294 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_DeInit()
296 __HAL_UNLOCK(hrng); in HAL_RNG_DeInit()
303 CLEAR_BIT(hrng->Instance->CR, RNG_CR_IE | RNG_CR_RNGEN); in HAL_RNG_DeInit()
306 CLEAR_BIT(hrng->Instance->SR, RNG_SR_CEIS | RNG_SR_SEIS); in HAL_RNG_DeInit()
309 if (hrng->MspDeInitCallback == NULL) in HAL_RNG_DeInit()
311 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspDeInit */ in HAL_RNG_DeInit()
315 hrng->MspDeInitCallback(hrng); in HAL_RNG_DeInit()
318 HAL_RNG_MspDeInit(hrng); in HAL_RNG_DeInit()
322 hrng->State = HAL_RNG_STATE_RESET; in HAL_RNG_DeInit()
325 hrng->ErrorCode = HAL_RNG_ERROR_NONE; in HAL_RNG_DeInit()
328 __HAL_UNLOCK(hrng); in HAL_RNG_DeInit()
340 __weak void HAL_RNG_MspInit(RNG_HandleTypeDef *hrng) in HAL_RNG_MspInit() argument
343 UNUSED(hrng); in HAL_RNG_MspInit()
355 __weak void HAL_RNG_MspDeInit(RNG_HandleTypeDef *hrng) in HAL_RNG_MspDeInit() argument
358 UNUSED(hrng); in HAL_RNG_MspDeInit()
377 HAL_StatusTypeDef HAL_RNG_RegisterCallback(RNG_HandleTypeDef *hrng, HAL_RNG_CallbackIDTypeDef Callb… in HAL_RNG_RegisterCallback() argument
385 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
389 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_RegisterCallback()
394 hrng->ErrorCallback = pCallback; in HAL_RNG_RegisterCallback()
398 hrng->MspInitCallback = pCallback; in HAL_RNG_RegisterCallback()
402 hrng->MspDeInitCallback = pCallback; in HAL_RNG_RegisterCallback()
407 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
413 else if (HAL_RNG_STATE_RESET == hrng->State) in HAL_RNG_RegisterCallback()
418 hrng->MspInitCallback = pCallback; in HAL_RNG_RegisterCallback()
422 hrng->MspDeInitCallback = pCallback; in HAL_RNG_RegisterCallback()
427 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
436 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
455 HAL_StatusTypeDef HAL_RNG_UnRegisterCallback(RNG_HandleTypeDef *hrng, HAL_RNG_CallbackIDTypeDef Cal… in HAL_RNG_UnRegisterCallback() argument
460 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_UnRegisterCallback()
465 hrng->ErrorCallback = HAL_RNG_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_RNG_UnRegisterCallback()
469 hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
473 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspDeInit */ in HAL_RNG_UnRegisterCallback()
478 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
484 else if (HAL_RNG_STATE_RESET == hrng->State) in HAL_RNG_UnRegisterCallback()
489 hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
493 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
498 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
507 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
522 HAL_StatusTypeDef HAL_RNG_RegisterReadyDataCallback(RNG_HandleTypeDef *hrng, pRNG_ReadyDataCallback… in HAL_RNG_RegisterReadyDataCallback() argument
529 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterReadyDataCallback()
533 __HAL_LOCK(hrng); in HAL_RNG_RegisterReadyDataCallback()
535 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_RegisterReadyDataCallback()
537 hrng->ReadyDataCallback = pCallback; in HAL_RNG_RegisterReadyDataCallback()
542 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterReadyDataCallback()
548 __HAL_UNLOCK(hrng); in HAL_RNG_RegisterReadyDataCallback()
558 HAL_StatusTypeDef HAL_RNG_UnRegisterReadyDataCallback(RNG_HandleTypeDef *hrng) in HAL_RNG_UnRegisterReadyDataCallback() argument
563 __HAL_LOCK(hrng); in HAL_RNG_UnRegisterReadyDataCallback()
565 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_UnRegisterReadyDataCallback()
567 hrng->ReadyDataCallback = HAL_RNG_ReadyDataCallback; /* Legacy weak ReadyDataCallback */ in HAL_RNG_UnRegisterReadyDataCallback()
572 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterReadyDataCallback()
578 __HAL_UNLOCK(hrng); in HAL_RNG_UnRegisterReadyDataCallback()
622 HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber(RNG_HandleTypeDef *hrng, uint32_t *random32bit) in HAL_RNG_GenerateRandomNumber() argument
628 __HAL_LOCK(hrng); in HAL_RNG_GenerateRandomNumber()
631 if (hrng->State == HAL_RNG_STATE_READY) in HAL_RNG_GenerateRandomNumber()
634 hrng->State = HAL_RNG_STATE_BUSY; in HAL_RNG_GenerateRandomNumber()
636 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_GenerateRandomNumber()
639 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_GenerateRandomNumber()
641 status = RNG_RecoverSeedError(hrng); in HAL_RNG_GenerateRandomNumber()
652 while (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) == RESET) in HAL_RNG_GenerateRandomNumber()
657 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) == RESET) in HAL_RNG_GenerateRandomNumber()
659 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_GenerateRandomNumber()
660 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_GenerateRandomNumber()
662 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber()
669 hrng->RandomNumber = hrng->Instance->DR; in HAL_RNG_GenerateRandomNumber()
672 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_GenerateRandomNumber()
675 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_GenerateRandomNumber()
680 *random32bit = hrng->RandomNumber; in HAL_RNG_GenerateRandomNumber()
682 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_GenerateRandomNumber()
686 hrng->ErrorCode = HAL_RNG_ERROR_BUSY; in HAL_RNG_GenerateRandomNumber()
691 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber()
702 HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber_IT(RNG_HandleTypeDef *hrng) in HAL_RNG_GenerateRandomNumber_IT() argument
707 __HAL_LOCK(hrng); in HAL_RNG_GenerateRandomNumber_IT()
710 if (hrng->State == HAL_RNG_STATE_READY) in HAL_RNG_GenerateRandomNumber_IT()
713 hrng->State = HAL_RNG_STATE_BUSY; in HAL_RNG_GenerateRandomNumber_IT()
716 __HAL_RNG_ENABLE_IT(hrng); in HAL_RNG_GenerateRandomNumber_IT()
721 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber_IT()
723 hrng->ErrorCode = HAL_RNG_ERROR_BUSY; in HAL_RNG_GenerateRandomNumber_IT()
751 void HAL_RNG_IRQHandler(RNG_HandleTypeDef *hrng) in HAL_RNG_IRQHandler() argument
754 uint32_t itflag = hrng->Instance->SR; in HAL_RNG_IRQHandler()
760 hrng->ErrorCode = HAL_RNG_ERROR_CLOCK; in HAL_RNG_IRQHandler()
770 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in HAL_RNG_IRQHandler()
775 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_IRQHandler()
778 __HAL_RNG_DISABLE_IT(hrng); in HAL_RNG_IRQHandler()
789 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_IRQHandler()
793 hrng->ErrorCallback(hrng); in HAL_RNG_IRQHandler()
796 HAL_RNG_ErrorCallback(hrng); in HAL_RNG_IRQHandler()
800 __HAL_RNG_CLEAR_IT(hrng, RNG_IT_CEI | RNG_IT_SEI); in HAL_RNG_IRQHandler()
809 __HAL_RNG_DISABLE_IT(hrng); in HAL_RNG_IRQHandler()
812 hrng->RandomNumber = hrng->Instance->DR; in HAL_RNG_IRQHandler()
814 if (hrng->State != HAL_RNG_STATE_ERROR) in HAL_RNG_IRQHandler()
817 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_IRQHandler()
819 __HAL_UNLOCK(hrng); in HAL_RNG_IRQHandler()
823 hrng->ReadyDataCallback(hrng, hrng->RandomNumber); in HAL_RNG_IRQHandler()
826 HAL_RNG_ReadyDataCallback(hrng, hrng->RandomNumber); in HAL_RNG_IRQHandler()
838 uint32_t HAL_RNG_ReadLastRandomNumber(const RNG_HandleTypeDef *hrng) in HAL_RNG_ReadLastRandomNumber() argument
840 return (hrng->RandomNumber); in HAL_RNG_ReadLastRandomNumber()
855 __weak void HAL_RNG_ReadyDataCallback(RNG_HandleTypeDef *hrng, uint32_t random32bit) in HAL_RNG_ReadyDataCallback() argument
858 UNUSED(hrng); in HAL_RNG_ReadyDataCallback()
871 __weak void HAL_RNG_ErrorCallback(RNG_HandleTypeDef *hrng) in HAL_RNG_ErrorCallback() argument
874 UNUSED(hrng); in HAL_RNG_ErrorCallback()
905 HAL_RNG_StateTypeDef HAL_RNG_GetState(const RNG_HandleTypeDef *hrng) in HAL_RNG_GetState() argument
907 return hrng->State; in HAL_RNG_GetState()
915 uint32_t HAL_RNG_GetError(const RNG_HandleTypeDef *hrng) in HAL_RNG_GetError() argument
918 return hrng->ErrorCode; in HAL_RNG_GetError()
937 HAL_StatusTypeDef RNG_RecoverSeedError(RNG_HandleTypeDef *hrng) in RNG_RecoverSeedError() argument
942 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_SECS) == RESET) in RNG_RecoverSeedError()
946 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in RNG_RecoverSeedError()
951 SET_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in RNG_RecoverSeedError()
953 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in RNG_RecoverSeedError()
962 hrng->State = HAL_RNG_STATE_READY; in RNG_RecoverSeedError()
963 hrng->ErrorCode |= HAL_RNG_ERROR_TIMEOUT; in RNG_RecoverSeedError()
965 __HAL_UNLOCK(hrng); in RNG_RecoverSeedError()
968 hrng->ErrorCallback(hrng); in RNG_RecoverSeedError()
971 HAL_RNG_ErrorCallback(hrng); in RNG_RecoverSeedError()
975 } while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)); in RNG_RecoverSeedError()
977 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in RNG_RecoverSeedError()
980 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in RNG_RecoverSeedError()
990 hrng->State = HAL_RNG_STATE_READY; in RNG_RecoverSeedError()
991 hrng->ErrorCode |= HAL_RNG_ERROR_TIMEOUT; in RNG_RecoverSeedError()
993 __HAL_UNLOCK(hrng); in RNG_RecoverSeedError()
996 hrng->ErrorCallback(hrng); in RNG_RecoverSeedError()
999 HAL_RNG_ErrorCallback(hrng); in RNG_RecoverSeedError()
1003 } while (HAL_IS_BIT_SET(hrng->Instance->SR, RNG_FLAG_SECS)); in RNG_RecoverSeedError()
1006 hrng->ErrorCode &= ~ HAL_RNG_ERROR_SEED; in RNG_RecoverSeedError()