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()
202 …WRITE_REG(hrng->Instance->CR, RNG_CR_NIST_VALUE | RNG_CR_CONDRST | hrng->Init.ClockErrorDetection); in HAL_RNG_Init()
205 MODIFY_REG(hrng->Instance->CR, RNG_CR_CED | RNG_CR_CONDRST | RNG_CR_RNG_CONFIG2, in HAL_RNG_Init()
206 hrng->Init.ClockErrorDetection | RNG_CR_CONDRST | (1U << RNG_CR_RNG_CONFIG2_Pos)); in HAL_RNG_Init()
210 WRITE_REG(hrng->Instance->HTCR, RNG_HTCR_NIST_VALUE); in HAL_RNG_Init()
214 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in HAL_RNG_Init()
220 while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_Init()
225 if (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_Init()
227 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_Init()
228 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_Init()
235 __HAL_RNG_ENABLE(hrng); in HAL_RNG_Init()
238 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_Init()
240 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_Init()
246 while (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) != SET) in HAL_RNG_Init()
251 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) != SET) in HAL_RNG_Init()
253 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_Init()
254 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_Init()
261 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_Init()
264 hrng->ErrorCode = HAL_RNG_ERROR_NONE; in HAL_RNG_Init()
276 HAL_StatusTypeDef HAL_RNG_DeInit(RNG_HandleTypeDef *hrng) in HAL_RNG_DeInit() argument
281 if (hrng == NULL) in HAL_RNG_DeInit()
287 MODIFY_REG(hrng->Instance->CR, RNG_CR_CED | RNG_CR_CONDRST, RNG_CED_ENABLE | RNG_CR_CONDRST); in HAL_RNG_DeInit()
290 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in HAL_RNG_DeInit()
296 while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_DeInit()
301 if (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_DeInit()
303 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_DeInit()
304 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_DeInit()
306 __HAL_UNLOCK(hrng); in HAL_RNG_DeInit()
313 CLEAR_BIT(hrng->Instance->CR, RNG_CR_IE | RNG_CR_RNGEN); in HAL_RNG_DeInit()
316 CLEAR_BIT(hrng->Instance->SR, RNG_SR_CEIS | RNG_SR_SEIS); in HAL_RNG_DeInit()
319 if (hrng->MspDeInitCallback == NULL) in HAL_RNG_DeInit()
321 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspDeInit */ in HAL_RNG_DeInit()
325 hrng->MspDeInitCallback(hrng); in HAL_RNG_DeInit()
328 HAL_RNG_MspDeInit(hrng); in HAL_RNG_DeInit()
332 hrng->State = HAL_RNG_STATE_RESET; in HAL_RNG_DeInit()
335 hrng->ErrorCode = HAL_RNG_ERROR_NONE; in HAL_RNG_DeInit()
338 __HAL_UNLOCK(hrng); in HAL_RNG_DeInit()
350 __weak void HAL_RNG_MspInit(RNG_HandleTypeDef *hrng) in HAL_RNG_MspInit() argument
353 UNUSED(hrng); in HAL_RNG_MspInit()
365 __weak void HAL_RNG_MspDeInit(RNG_HandleTypeDef *hrng) in HAL_RNG_MspDeInit() argument
368 UNUSED(hrng); in HAL_RNG_MspDeInit()
387 HAL_StatusTypeDef HAL_RNG_RegisterCallback(RNG_HandleTypeDef *hrng, HAL_RNG_CallbackIDTypeDef Callb… in HAL_RNG_RegisterCallback() argument
395 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
399 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_RegisterCallback()
404 hrng->ErrorCallback = pCallback; in HAL_RNG_RegisterCallback()
408 hrng->MspInitCallback = pCallback; in HAL_RNG_RegisterCallback()
412 hrng->MspDeInitCallback = pCallback; in HAL_RNG_RegisterCallback()
417 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
423 else if (HAL_RNG_STATE_RESET == hrng->State) in HAL_RNG_RegisterCallback()
428 hrng->MspInitCallback = pCallback; in HAL_RNG_RegisterCallback()
432 hrng->MspDeInitCallback = pCallback; in HAL_RNG_RegisterCallback()
437 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
446 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
465 HAL_StatusTypeDef HAL_RNG_UnRegisterCallback(RNG_HandleTypeDef *hrng, HAL_RNG_CallbackIDTypeDef Cal… in HAL_RNG_UnRegisterCallback() argument
470 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_UnRegisterCallback()
475 hrng->ErrorCallback = HAL_RNG_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_RNG_UnRegisterCallback()
479 hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
483 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspDeInit */ in HAL_RNG_UnRegisterCallback()
488 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
494 else if (HAL_RNG_STATE_RESET == hrng->State) in HAL_RNG_UnRegisterCallback()
499 hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
503 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
508 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
517 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
532 HAL_StatusTypeDef HAL_RNG_RegisterReadyDataCallback(RNG_HandleTypeDef *hrng, pRNG_ReadyDataCallback… in HAL_RNG_RegisterReadyDataCallback() argument
539 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterReadyDataCallback()
543 __HAL_LOCK(hrng); in HAL_RNG_RegisterReadyDataCallback()
545 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_RegisterReadyDataCallback()
547 hrng->ReadyDataCallback = pCallback; in HAL_RNG_RegisterReadyDataCallback()
552 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterReadyDataCallback()
558 __HAL_UNLOCK(hrng); in HAL_RNG_RegisterReadyDataCallback()
568 HAL_StatusTypeDef HAL_RNG_UnRegisterReadyDataCallback(RNG_HandleTypeDef *hrng) in HAL_RNG_UnRegisterReadyDataCallback() argument
573 __HAL_LOCK(hrng); in HAL_RNG_UnRegisterReadyDataCallback()
575 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_UnRegisterReadyDataCallback()
577 hrng->ReadyDataCallback = HAL_RNG_ReadyDataCallback; /* Legacy weak ReadyDataCallback */ in HAL_RNG_UnRegisterReadyDataCallback()
582 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterReadyDataCallback()
588 __HAL_UNLOCK(hrng); in HAL_RNG_UnRegisterReadyDataCallback()
632 HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber(RNG_HandleTypeDef *hrng, uint32_t *random32bit) in HAL_RNG_GenerateRandomNumber() argument
638 __HAL_LOCK(hrng); in HAL_RNG_GenerateRandomNumber()
641 if (hrng->State == HAL_RNG_STATE_READY) in HAL_RNG_GenerateRandomNumber()
644 hrng->State = HAL_RNG_STATE_BUSY; in HAL_RNG_GenerateRandomNumber()
646 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_GenerateRandomNumber()
649 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_GenerateRandomNumber()
651 status = RNG_RecoverSeedError(hrng); in HAL_RNG_GenerateRandomNumber()
662 while (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) == RESET) in HAL_RNG_GenerateRandomNumber()
667 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) == RESET) in HAL_RNG_GenerateRandomNumber()
669 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_GenerateRandomNumber()
670 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_GenerateRandomNumber()
672 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber()
679 hrng->RandomNumber = hrng->Instance->DR; in HAL_RNG_GenerateRandomNumber()
682 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_GenerateRandomNumber()
685 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_GenerateRandomNumber()
690 *random32bit = hrng->RandomNumber; in HAL_RNG_GenerateRandomNumber()
692 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_GenerateRandomNumber()
696 hrng->ErrorCode = HAL_RNG_ERROR_BUSY; in HAL_RNG_GenerateRandomNumber()
701 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber()
712 HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber_IT(RNG_HandleTypeDef *hrng) in HAL_RNG_GenerateRandomNumber_IT() argument
717 __HAL_LOCK(hrng); in HAL_RNG_GenerateRandomNumber_IT()
720 if (hrng->State == HAL_RNG_STATE_READY) in HAL_RNG_GenerateRandomNumber_IT()
723 hrng->State = HAL_RNG_STATE_BUSY; in HAL_RNG_GenerateRandomNumber_IT()
726 __HAL_RNG_ENABLE_IT(hrng); in HAL_RNG_GenerateRandomNumber_IT()
731 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber_IT()
733 hrng->ErrorCode = HAL_RNG_ERROR_BUSY; in HAL_RNG_GenerateRandomNumber_IT()
761 void HAL_RNG_IRQHandler(RNG_HandleTypeDef *hrng) in HAL_RNG_IRQHandler() argument
764 uint32_t itflag = hrng->Instance->SR; in HAL_RNG_IRQHandler()
770 hrng->ErrorCode = HAL_RNG_ERROR_CLOCK; in HAL_RNG_IRQHandler()
780 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in HAL_RNG_IRQHandler()
785 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_IRQHandler()
788 __HAL_RNG_DISABLE_IT(hrng); in HAL_RNG_IRQHandler()
799 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_IRQHandler()
803 hrng->ErrorCallback(hrng); in HAL_RNG_IRQHandler()
806 HAL_RNG_ErrorCallback(hrng); in HAL_RNG_IRQHandler()
810 __HAL_RNG_CLEAR_IT(hrng, RNG_IT_CEI | RNG_IT_SEI); in HAL_RNG_IRQHandler()
819 __HAL_RNG_DISABLE_IT(hrng); in HAL_RNG_IRQHandler()
822 hrng->RandomNumber = hrng->Instance->DR; in HAL_RNG_IRQHandler()
824 if (hrng->State != HAL_RNG_STATE_ERROR) in HAL_RNG_IRQHandler()
827 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_IRQHandler()
829 __HAL_UNLOCK(hrng); in HAL_RNG_IRQHandler()
833 hrng->ReadyDataCallback(hrng, hrng->RandomNumber); in HAL_RNG_IRQHandler()
836 HAL_RNG_ReadyDataCallback(hrng, hrng->RandomNumber); in HAL_RNG_IRQHandler()
848 uint32_t HAL_RNG_ReadLastRandomNumber(const RNG_HandleTypeDef *hrng) in HAL_RNG_ReadLastRandomNumber() argument
850 return (hrng->RandomNumber); in HAL_RNG_ReadLastRandomNumber()
865 __weak void HAL_RNG_ReadyDataCallback(RNG_HandleTypeDef *hrng, uint32_t random32bit) in HAL_RNG_ReadyDataCallback() argument
868 UNUSED(hrng); in HAL_RNG_ReadyDataCallback()
881 __weak void HAL_RNG_ErrorCallback(RNG_HandleTypeDef *hrng) in HAL_RNG_ErrorCallback() argument
884 UNUSED(hrng); in HAL_RNG_ErrorCallback()
915 HAL_RNG_StateTypeDef HAL_RNG_GetState(const RNG_HandleTypeDef *hrng) in HAL_RNG_GetState() argument
917 return hrng->State; in HAL_RNG_GetState()
925 uint32_t HAL_RNG_GetError(const RNG_HandleTypeDef *hrng) in HAL_RNG_GetError() argument
928 return hrng->ErrorCode; in HAL_RNG_GetError()
947 HAL_StatusTypeDef RNG_RecoverSeedError(RNG_HandleTypeDef *hrng) in RNG_RecoverSeedError() argument
952 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_SECS) == RESET) in RNG_RecoverSeedError()
956 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in RNG_RecoverSeedError()
961 SET_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in RNG_RecoverSeedError()
963 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in RNG_RecoverSeedError()
972 hrng->State = HAL_RNG_STATE_READY; in RNG_RecoverSeedError()
973 hrng->ErrorCode |= HAL_RNG_ERROR_TIMEOUT; in RNG_RecoverSeedError()
975 __HAL_UNLOCK(hrng); in RNG_RecoverSeedError()
978 hrng->ErrorCallback(hrng); in RNG_RecoverSeedError()
981 HAL_RNG_ErrorCallback(hrng); in RNG_RecoverSeedError()
985 } while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)); in RNG_RecoverSeedError()
987 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in RNG_RecoverSeedError()
990 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in RNG_RecoverSeedError()
1000 hrng->State = HAL_RNG_STATE_READY; in RNG_RecoverSeedError()
1001 hrng->ErrorCode |= HAL_RNG_ERROR_TIMEOUT; in RNG_RecoverSeedError()
1003 __HAL_UNLOCK(hrng); in RNG_RecoverSeedError()
1006 hrng->ErrorCallback(hrng); in RNG_RecoverSeedError()
1009 HAL_RNG_ErrorCallback(hrng); in RNG_RecoverSeedError()
1013 } while (HAL_IS_BIT_SET(hrng->Instance->SR, RNG_FLAG_SECS)); in RNG_RecoverSeedError()
1016 hrng->ErrorCode &= ~ HAL_RNG_ERROR_SEED; in RNG_RecoverSeedError()