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, hrng->Init.ClockErrorDetection | RNG_C… in HAL_RNG_Init()
209 WRITE_REG(hrng->Instance->HTCR, RNG_HTCR_NIST_VALUE); in HAL_RNG_Init()
212 WRITE_REG(hrng->Instance->NSCR, RNG_NSCR_NIST_VALUE); in HAL_RNG_Init()
216 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in HAL_RNG_Init()
222 while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_Init()
227 if (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_Init()
229 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_Init()
230 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_Init()
237 __HAL_RNG_ENABLE(hrng); in HAL_RNG_Init()
240 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_Init()
242 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_Init()
248 while (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) != SET) in HAL_RNG_Init()
253 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) != SET) in HAL_RNG_Init()
255 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_Init()
256 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_Init()
263 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_Init()
266 hrng->ErrorCode = HAL_RNG_ERROR_NONE; in HAL_RNG_Init()
278 HAL_StatusTypeDef HAL_RNG_DeInit(RNG_HandleTypeDef *hrng) in HAL_RNG_DeInit() argument
283 if (hrng == NULL) in HAL_RNG_DeInit()
289 MODIFY_REG(hrng->Instance->CR, RNG_CR_CED | RNG_CR_CONDRST, RNG_CED_ENABLE | RNG_CR_CONDRST); in HAL_RNG_DeInit()
292 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in HAL_RNG_DeInit()
298 while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_DeInit()
303 if (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_DeInit()
305 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_DeInit()
306 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_DeInit()
308 __HAL_UNLOCK(hrng); in HAL_RNG_DeInit()
315 CLEAR_BIT(hrng->Instance->CR, RNG_CR_IE | RNG_CR_RNGEN); in HAL_RNG_DeInit()
318 CLEAR_BIT(hrng->Instance->SR, RNG_SR_CEIS | RNG_SR_SEIS); in HAL_RNG_DeInit()
321 if (hrng->MspDeInitCallback == NULL) in HAL_RNG_DeInit()
323 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspDeInit */ in HAL_RNG_DeInit()
327 hrng->MspDeInitCallback(hrng); in HAL_RNG_DeInit()
330 HAL_RNG_MspDeInit(hrng); in HAL_RNG_DeInit()
334 hrng->State = HAL_RNG_STATE_RESET; in HAL_RNG_DeInit()
337 hrng->ErrorCode = HAL_RNG_ERROR_NONE; in HAL_RNG_DeInit()
340 __HAL_UNLOCK(hrng); in HAL_RNG_DeInit()
352 __weak void HAL_RNG_MspInit(RNG_HandleTypeDef *hrng) in HAL_RNG_MspInit() argument
355 UNUSED(hrng); in HAL_RNG_MspInit()
367 __weak void HAL_RNG_MspDeInit(RNG_HandleTypeDef *hrng) in HAL_RNG_MspDeInit() argument
370 UNUSED(hrng); in HAL_RNG_MspDeInit()
389 HAL_StatusTypeDef HAL_RNG_RegisterCallback(RNG_HandleTypeDef *hrng, HAL_RNG_CallbackIDTypeDef Callb… in HAL_RNG_RegisterCallback() argument
397 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
401 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_RegisterCallback()
406 hrng->ErrorCallback = pCallback; in HAL_RNG_RegisterCallback()
410 hrng->MspInitCallback = pCallback; in HAL_RNG_RegisterCallback()
414 hrng->MspDeInitCallback = pCallback; in HAL_RNG_RegisterCallback()
419 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
425 else if (HAL_RNG_STATE_RESET == hrng->State) in HAL_RNG_RegisterCallback()
430 hrng->MspInitCallback = pCallback; in HAL_RNG_RegisterCallback()
434 hrng->MspDeInitCallback = pCallback; in HAL_RNG_RegisterCallback()
439 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
448 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
467 HAL_StatusTypeDef HAL_RNG_UnRegisterCallback(RNG_HandleTypeDef *hrng, HAL_RNG_CallbackIDTypeDef Cal… in HAL_RNG_UnRegisterCallback() argument
472 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_UnRegisterCallback()
477 hrng->ErrorCallback = HAL_RNG_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_RNG_UnRegisterCallback()
481 hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
485 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspDeInit */ in HAL_RNG_UnRegisterCallback()
490 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
496 else if (HAL_RNG_STATE_RESET == hrng->State) in HAL_RNG_UnRegisterCallback()
501 hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
505 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
510 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
519 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
534 HAL_StatusTypeDef HAL_RNG_RegisterReadyDataCallback(RNG_HandleTypeDef *hrng, pRNG_ReadyDataCallback… in HAL_RNG_RegisterReadyDataCallback() argument
541 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterReadyDataCallback()
545 __HAL_LOCK(hrng); in HAL_RNG_RegisterReadyDataCallback()
547 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_RegisterReadyDataCallback()
549 hrng->ReadyDataCallback = pCallback; in HAL_RNG_RegisterReadyDataCallback()
554 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterReadyDataCallback()
560 __HAL_UNLOCK(hrng); in HAL_RNG_RegisterReadyDataCallback()
570 HAL_StatusTypeDef HAL_RNG_UnRegisterReadyDataCallback(RNG_HandleTypeDef *hrng) in HAL_RNG_UnRegisterReadyDataCallback() argument
575 __HAL_LOCK(hrng); in HAL_RNG_UnRegisterReadyDataCallback()
577 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_UnRegisterReadyDataCallback()
579 hrng->ReadyDataCallback = HAL_RNG_ReadyDataCallback; /* Legacy weak ReadyDataCallback */ in HAL_RNG_UnRegisterReadyDataCallback()
584 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterReadyDataCallback()
590 __HAL_UNLOCK(hrng); in HAL_RNG_UnRegisterReadyDataCallback()
634 HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber(RNG_HandleTypeDef *hrng, uint32_t *random32bit) in HAL_RNG_GenerateRandomNumber() argument
640 __HAL_LOCK(hrng); in HAL_RNG_GenerateRandomNumber()
643 if (hrng->State == HAL_RNG_STATE_READY) in HAL_RNG_GenerateRandomNumber()
646 hrng->State = HAL_RNG_STATE_BUSY; in HAL_RNG_GenerateRandomNumber()
648 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_GenerateRandomNumber()
651 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_GenerateRandomNumber()
653 status = RNG_RecoverSeedError(hrng); in HAL_RNG_GenerateRandomNumber()
657 hrng->ErrorCode = HAL_RNG_ERROR_RECOVERSEED; in HAL_RNG_GenerateRandomNumber()
666 while (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) == RESET) in HAL_RNG_GenerateRandomNumber()
671 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) == RESET) in HAL_RNG_GenerateRandomNumber()
673 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_GenerateRandomNumber()
674 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_GenerateRandomNumber()
676 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber()
683 hrng->RandomNumber = hrng->Instance->DR; in HAL_RNG_GenerateRandomNumber()
686 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_GenerateRandomNumber()
689 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_GenerateRandomNumber()
694 *random32bit = hrng->RandomNumber; in HAL_RNG_GenerateRandomNumber()
696 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_GenerateRandomNumber()
700 hrng->ErrorCode = HAL_RNG_ERROR_BUSY; in HAL_RNG_GenerateRandomNumber()
705 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber()
716 HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber_IT(RNG_HandleTypeDef *hrng) in HAL_RNG_GenerateRandomNumber_IT() argument
721 __HAL_LOCK(hrng); in HAL_RNG_GenerateRandomNumber_IT()
724 if (hrng->State == HAL_RNG_STATE_READY) in HAL_RNG_GenerateRandomNumber_IT()
727 hrng->State = HAL_RNG_STATE_BUSY; in HAL_RNG_GenerateRandomNumber_IT()
730 __HAL_RNG_ENABLE_IT(hrng); in HAL_RNG_GenerateRandomNumber_IT()
735 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber_IT()
737 hrng->ErrorCode = HAL_RNG_ERROR_BUSY; in HAL_RNG_GenerateRandomNumber_IT()
765 void HAL_RNG_IRQHandler(RNG_HandleTypeDef *hrng) in HAL_RNG_IRQHandler() argument
768 uint32_t itflag = hrng->Instance->SR; in HAL_RNG_IRQHandler()
774 hrng->ErrorCode = HAL_RNG_ERROR_CLOCK; in HAL_RNG_IRQHandler()
784 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in HAL_RNG_IRQHandler()
789 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_IRQHandler()
792 __HAL_RNG_DISABLE_IT(hrng); in HAL_RNG_IRQHandler()
803 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_IRQHandler()
807 hrng->ErrorCallback(hrng); in HAL_RNG_IRQHandler()
810 HAL_RNG_ErrorCallback(hrng); in HAL_RNG_IRQHandler()
814 __HAL_RNG_CLEAR_IT(hrng, RNG_IT_CEI | RNG_IT_SEI); in HAL_RNG_IRQHandler()
823 __HAL_RNG_DISABLE_IT(hrng); in HAL_RNG_IRQHandler()
826 hrng->RandomNumber = hrng->Instance->DR; in HAL_RNG_IRQHandler()
828 if (hrng->State != HAL_RNG_STATE_ERROR) in HAL_RNG_IRQHandler()
831 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_IRQHandler()
833 __HAL_UNLOCK(hrng); in HAL_RNG_IRQHandler()
837 hrng->ReadyDataCallback(hrng, hrng->RandomNumber); in HAL_RNG_IRQHandler()
840 HAL_RNG_ReadyDataCallback(hrng, hrng->RandomNumber); in HAL_RNG_IRQHandler()
852 uint32_t HAL_RNG_ReadLastRandomNumber(const RNG_HandleTypeDef *hrng) in HAL_RNG_ReadLastRandomNumber() argument
854 return (hrng->RandomNumber); in HAL_RNG_ReadLastRandomNumber()
869 __weak void HAL_RNG_ReadyDataCallback(RNG_HandleTypeDef *hrng, uint32_t random32bit) in HAL_RNG_ReadyDataCallback() argument
872 UNUSED(hrng); in HAL_RNG_ReadyDataCallback()
885 __weak void HAL_RNG_ErrorCallback(RNG_HandleTypeDef *hrng) in HAL_RNG_ErrorCallback() argument
888 UNUSED(hrng); in HAL_RNG_ErrorCallback()
919 HAL_RNG_StateTypeDef HAL_RNG_GetState(const RNG_HandleTypeDef *hrng) in HAL_RNG_GetState() argument
921 return hrng->State; in HAL_RNG_GetState()
929 uint32_t HAL_RNG_GetError(const RNG_HandleTypeDef *hrng) in HAL_RNG_GetError() argument
932 return hrng->ErrorCode; in HAL_RNG_GetError()
951 HAL_StatusTypeDef RNG_RecoverSeedError(RNG_HandleTypeDef *hrng) in RNG_RecoverSeedError() argument
956 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_SECS) == RESET) in RNG_RecoverSeedError()
960 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in RNG_RecoverSeedError()
965 SET_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in RNG_RecoverSeedError()
967 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in RNG_RecoverSeedError()
976 hrng->State = HAL_RNG_STATE_READY; in RNG_RecoverSeedError()
977 hrng->ErrorCode |= HAL_RNG_ERROR_TIMEOUT; in RNG_RecoverSeedError()
979 __HAL_UNLOCK(hrng); in RNG_RecoverSeedError()
982 hrng->ErrorCallback(hrng); in RNG_RecoverSeedError()
985 HAL_RNG_ErrorCallback(hrng); in RNG_RecoverSeedError()
989 } while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)); in RNG_RecoverSeedError()
991 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in RNG_RecoverSeedError()
994 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in RNG_RecoverSeedError()
1004 hrng->State = HAL_RNG_STATE_READY; in RNG_RecoverSeedError()
1005 hrng->ErrorCode |= HAL_RNG_ERROR_TIMEOUT; in RNG_RecoverSeedError()
1007 __HAL_UNLOCK(hrng); in RNG_RecoverSeedError()
1010 hrng->ErrorCallback(hrng); in RNG_RecoverSeedError()
1013 HAL_RNG_ErrorCallback(hrng); in RNG_RecoverSeedError()
1017 } while (HAL_IS_BIT_SET(hrng->Instance->SR, RNG_FLAG_SECS)); in RNG_RecoverSeedError()
1020 hrng->ErrorCode &= ~ HAL_RNG_ERROR_SEED; in RNG_RecoverSeedError()