Lines Matching refs:hrng

163 HAL_StatusTypeDef HAL_RNG_Init(RNG_HandleTypeDef *hrng)  in HAL_RNG_Init()  argument
167 if (hrng == NULL) in HAL_RNG_Init()
172 assert_param(IS_RNG_ALL_INSTANCE(hrng->Instance)); in HAL_RNG_Init()
173 assert_param(IS_RNG_CED(hrng->Init.ClockErrorDetection)); in HAL_RNG_Init()
176 if (hrng->State == HAL_RNG_STATE_RESET) in HAL_RNG_Init()
179 hrng->Lock = HAL_UNLOCKED; in HAL_RNG_Init()
181 hrng->ReadyDataCallback = HAL_RNG_ReadyDataCallback; /* Legacy weak ReadyDataCallback */ in HAL_RNG_Init()
182 hrng->ErrorCallback = HAL_RNG_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_RNG_Init()
184 if (hrng->MspInitCallback == NULL) in HAL_RNG_Init()
186 hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */ in HAL_RNG_Init()
190 hrng->MspInitCallback(hrng); in HAL_RNG_Init()
193 if (hrng->State == HAL_RNG_STATE_RESET) in HAL_RNG_Init()
196 hrng->Lock = HAL_UNLOCKED; in HAL_RNG_Init()
199 HAL_RNG_MspInit(hrng); in HAL_RNG_Init()
204 hrng->State = HAL_RNG_STATE_BUSY; in HAL_RNG_Init()
207 __HAL_RNG_DISABLE(hrng); in HAL_RNG_Init()
210 …MODIFY_REG(hrng->Instance->CR, RNG_CR_CED | RNG_CR_CONDRST, hrng->Init.ClockErrorDetection | RNG_C… in HAL_RNG_Init()
214 WRITE_REG(hrng->Instance->HTCR, RNG_HTCFG_1); in HAL_RNG_Init()
216 WRITE_REG(hrng->Instance->HTCR, RNG_HTCFG); in HAL_RNG_Init()
220 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in HAL_RNG_Init()
226 while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_Init()
231 if (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_Init()
233 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_Init()
234 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_Init()
241 __HAL_RNG_ENABLE(hrng); in HAL_RNG_Init()
244 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_Init()
246 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_Init()
252 while (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_SECS) != RESET) in HAL_RNG_Init()
257 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_SECS) != RESET) in HAL_RNG_Init()
259 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_Init()
260 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_Init()
267 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_Init()
270 hrng->ErrorCode = HAL_RNG_ERROR_NONE; in HAL_RNG_Init()
282 HAL_StatusTypeDef HAL_RNG_DeInit(RNG_HandleTypeDef *hrng) in HAL_RNG_DeInit() argument
287 if (hrng == NULL) in HAL_RNG_DeInit()
293 MODIFY_REG(hrng->Instance->CR, RNG_CR_CED | RNG_CR_CONDRST, RNG_CED_ENABLE | RNG_CR_CONDRST); in HAL_RNG_DeInit()
296 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in HAL_RNG_DeInit()
302 while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_DeInit()
307 if (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_DeInit()
309 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_DeInit()
310 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_DeInit()
312 __HAL_UNLOCK(hrng); in HAL_RNG_DeInit()
319 CLEAR_BIT(hrng->Instance->CR, RNG_CR_IE | RNG_CR_RNGEN); in HAL_RNG_DeInit()
322 CLEAR_BIT(hrng->Instance->SR, RNG_SR_CEIS | RNG_SR_SEIS); in HAL_RNG_DeInit()
325 if (hrng->MspDeInitCallback == NULL) in HAL_RNG_DeInit()
327 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspDeInit */ in HAL_RNG_DeInit()
331 hrng->MspDeInitCallback(hrng); in HAL_RNG_DeInit()
334 HAL_RNG_MspDeInit(hrng); in HAL_RNG_DeInit()
338 hrng->State = HAL_RNG_STATE_RESET; in HAL_RNG_DeInit()
341 hrng->ErrorCode = HAL_RNG_ERROR_NONE; in HAL_RNG_DeInit()
344 __HAL_UNLOCK(hrng); in HAL_RNG_DeInit()
356 __weak void HAL_RNG_MspInit(RNG_HandleTypeDef *hrng) in HAL_RNG_MspInit() argument
359 UNUSED(hrng); in HAL_RNG_MspInit()
371 __weak void HAL_RNG_MspDeInit(RNG_HandleTypeDef *hrng) in HAL_RNG_MspDeInit() argument
374 UNUSED(hrng); in HAL_RNG_MspDeInit()
393 HAL_StatusTypeDef HAL_RNG_RegisterCallback(RNG_HandleTypeDef *hrng, HAL_RNG_CallbackIDTypeDef Callb… in HAL_RNG_RegisterCallback() argument
401 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
405 __HAL_LOCK(hrng); in HAL_RNG_RegisterCallback()
407 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_RegisterCallback()
412 hrng->ErrorCallback = pCallback; in HAL_RNG_RegisterCallback()
416 hrng->MspInitCallback = pCallback; in HAL_RNG_RegisterCallback()
420 hrng->MspDeInitCallback = pCallback; in HAL_RNG_RegisterCallback()
425 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
431 else if (HAL_RNG_STATE_RESET == hrng->State) in HAL_RNG_RegisterCallback()
436 hrng->MspInitCallback = pCallback; in HAL_RNG_RegisterCallback()
440 hrng->MspDeInitCallback = pCallback; in HAL_RNG_RegisterCallback()
445 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
454 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
460 __HAL_UNLOCK(hrng); in HAL_RNG_RegisterCallback()
475 HAL_StatusTypeDef HAL_RNG_UnRegisterCallback(RNG_HandleTypeDef *hrng, HAL_RNG_CallbackIDTypeDef Cal… in HAL_RNG_UnRegisterCallback() argument
480 __HAL_LOCK(hrng); in HAL_RNG_UnRegisterCallback()
482 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_UnRegisterCallback()
487 hrng->ErrorCallback = HAL_RNG_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_RNG_UnRegisterCallback()
491 hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
495 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspDeInit */ in HAL_RNG_UnRegisterCallback()
500 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
506 else if (HAL_RNG_STATE_RESET == hrng->State) in HAL_RNG_UnRegisterCallback()
511 hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
515 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
520 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
529 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
535 __HAL_UNLOCK(hrng); in HAL_RNG_UnRegisterCallback()
546 HAL_StatusTypeDef HAL_RNG_RegisterReadyDataCallback(RNG_HandleTypeDef *hrng, pRNG_ReadyDataCallback… in HAL_RNG_RegisterReadyDataCallback() argument
553 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterReadyDataCallback()
557 __HAL_LOCK(hrng); in HAL_RNG_RegisterReadyDataCallback()
559 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_RegisterReadyDataCallback()
561 hrng->ReadyDataCallback = pCallback; in HAL_RNG_RegisterReadyDataCallback()
566 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterReadyDataCallback()
572 __HAL_UNLOCK(hrng); in HAL_RNG_RegisterReadyDataCallback()
582 HAL_StatusTypeDef HAL_RNG_UnRegisterReadyDataCallback(RNG_HandleTypeDef *hrng) in HAL_RNG_UnRegisterReadyDataCallback() argument
587 __HAL_LOCK(hrng); in HAL_RNG_UnRegisterReadyDataCallback()
589 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_UnRegisterReadyDataCallback()
591 hrng->ReadyDataCallback = HAL_RNG_ReadyDataCallback; /* Legacy weak ReadyDataCallback */ in HAL_RNG_UnRegisterReadyDataCallback()
596 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterReadyDataCallback()
602 __HAL_UNLOCK(hrng); in HAL_RNG_UnRegisterReadyDataCallback()
646 HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber(RNG_HandleTypeDef *hrng, uint32_t *random32bit) in HAL_RNG_GenerateRandomNumber() argument
652 __HAL_LOCK(hrng); in HAL_RNG_GenerateRandomNumber()
655 if (hrng->State == HAL_RNG_STATE_READY) in HAL_RNG_GenerateRandomNumber()
658 hrng->State = HAL_RNG_STATE_BUSY; in HAL_RNG_GenerateRandomNumber()
660 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_GenerateRandomNumber()
663 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_GenerateRandomNumber()
665 status = RNG_RecoverSeedError(hrng); in HAL_RNG_GenerateRandomNumber()
676 while (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) == RESET) in HAL_RNG_GenerateRandomNumber()
681 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) == RESET) in HAL_RNG_GenerateRandomNumber()
683 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_GenerateRandomNumber()
684 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_GenerateRandomNumber()
686 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber()
693 hrng->RandomNumber = hrng->Instance->DR; in HAL_RNG_GenerateRandomNumber()
696 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_GenerateRandomNumber()
699 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_GenerateRandomNumber()
701 CLEAR_BIT(hrng->Instance->SR, RNG_FLAG_DRDY); in HAL_RNG_GenerateRandomNumber()
705 *random32bit = hrng->RandomNumber; in HAL_RNG_GenerateRandomNumber()
707 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_GenerateRandomNumber()
711 hrng->ErrorCode = HAL_RNG_ERROR_BUSY; in HAL_RNG_GenerateRandomNumber()
716 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber()
727 HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber_IT(RNG_HandleTypeDef *hrng) in HAL_RNG_GenerateRandomNumber_IT() argument
732 __HAL_LOCK(hrng); in HAL_RNG_GenerateRandomNumber_IT()
735 if (hrng->State == HAL_RNG_STATE_READY) in HAL_RNG_GenerateRandomNumber_IT()
738 hrng->State = HAL_RNG_STATE_BUSY; in HAL_RNG_GenerateRandomNumber_IT()
741 __HAL_RNG_ENABLE_IT(hrng); in HAL_RNG_GenerateRandomNumber_IT()
746 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber_IT()
748 hrng->ErrorCode = HAL_RNG_ERROR_BUSY; in HAL_RNG_GenerateRandomNumber_IT()
776 void HAL_RNG_IRQHandler(RNG_HandleTypeDef *hrng) in HAL_RNG_IRQHandler() argument
781 if (__HAL_RNG_GET_IT(hrng, RNG_IT_CEI) != RESET) in HAL_RNG_IRQHandler()
784 hrng->ErrorCode = HAL_RNG_ERROR_CLOCK; in HAL_RNG_IRQHandler()
787 else if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_IRQHandler()
790 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_SECS) == RESET) in HAL_RNG_IRQHandler()
794 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in HAL_RNG_IRQHandler()
799 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_IRQHandler()
802 __HAL_RNG_DISABLE_IT(hrng); in HAL_RNG_IRQHandler()
813 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_IRQHandler()
817 hrng->ErrorCallback(hrng); in HAL_RNG_IRQHandler()
820 HAL_RNG_ErrorCallback(hrng); in HAL_RNG_IRQHandler()
824 __HAL_RNG_CLEAR_IT(hrng, RNG_IT_CEI | RNG_IT_SEI); in HAL_RNG_IRQHandler()
830 if (__HAL_RNG_GET_IT(hrng, RNG_IT_DRDY) != RESET) in HAL_RNG_IRQHandler()
833 __HAL_RNG_DISABLE_IT(hrng); in HAL_RNG_IRQHandler()
836 hrng->RandomNumber = hrng->Instance->DR; in HAL_RNG_IRQHandler()
838 if (hrng->State != HAL_RNG_STATE_ERROR) in HAL_RNG_IRQHandler()
841 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_IRQHandler()
843 __HAL_UNLOCK(hrng); in HAL_RNG_IRQHandler()
847 hrng->ReadyDataCallback(hrng, hrng->RandomNumber); in HAL_RNG_IRQHandler()
850 HAL_RNG_ReadyDataCallback(hrng, hrng->RandomNumber); in HAL_RNG_IRQHandler()
862 uint32_t HAL_RNG_ReadLastRandomNumber(RNG_HandleTypeDef *hrng) in HAL_RNG_ReadLastRandomNumber() argument
864 return (hrng->RandomNumber); in HAL_RNG_ReadLastRandomNumber()
879 __weak void HAL_RNG_ReadyDataCallback(RNG_HandleTypeDef *hrng, uint32_t random32bit) in HAL_RNG_ReadyDataCallback() argument
882 UNUSED(hrng); in HAL_RNG_ReadyDataCallback()
895 __weak void HAL_RNG_ErrorCallback(RNG_HandleTypeDef *hrng) in HAL_RNG_ErrorCallback() argument
898 UNUSED(hrng); in HAL_RNG_ErrorCallback()
929 HAL_RNG_StateTypeDef HAL_RNG_GetState(RNG_HandleTypeDef *hrng) in HAL_RNG_GetState() argument
931 return hrng->State; in HAL_RNG_GetState()
939 uint32_t HAL_RNG_GetError(RNG_HandleTypeDef *hrng) in HAL_RNG_GetError() argument
942 return hrng->ErrorCode; in HAL_RNG_GetError()
961 HAL_StatusTypeDef RNG_RecoverSeedError(RNG_HandleTypeDef *hrng) in RNG_RecoverSeedError() argument
966 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_SECS) == RESET) in RNG_RecoverSeedError()
970 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in RNG_RecoverSeedError()
975 SET_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in RNG_RecoverSeedError()
977 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in RNG_RecoverSeedError()
986 hrng->State = HAL_RNG_STATE_READY; in RNG_RecoverSeedError()
987 hrng->ErrorCode |= HAL_RNG_ERROR_TIMEOUT; in RNG_RecoverSeedError()
989 __HAL_UNLOCK(hrng); in RNG_RecoverSeedError()
992 hrng->ErrorCallback(hrng); in RNG_RecoverSeedError()
995 HAL_RNG_ErrorCallback(hrng); in RNG_RecoverSeedError()
1000 while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)); in RNG_RecoverSeedError()
1002 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in RNG_RecoverSeedError()
1005 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in RNG_RecoverSeedError()
1015 hrng->State = HAL_RNG_STATE_READY; in RNG_RecoverSeedError()
1016 hrng->ErrorCode |= HAL_RNG_ERROR_TIMEOUT; in RNG_RecoverSeedError()
1018 __HAL_UNLOCK(hrng); in RNG_RecoverSeedError()
1021 hrng->ErrorCallback(hrng); in RNG_RecoverSeedError()
1024 HAL_RNG_ErrorCallback(hrng); in RNG_RecoverSeedError()
1029 while (HAL_IS_BIT_SET(hrng->Instance->SR, RNG_FLAG_SECS)); in RNG_RecoverSeedError()
1032 hrng->ErrorCode &= ~ HAL_RNG_ERROR_SEED; in RNG_RecoverSeedError()