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()
213 WRITE_REG(hrng->Instance->HTCR, RNG_HTCFG_1); in HAL_RNG_Init()
215 WRITE_REG(hrng->Instance->HTCR, RNG_HTCFG); in HAL_RNG_Init()
219 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in HAL_RNG_Init()
225 while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_Init()
230 if (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_Init()
232 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_Init()
233 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_Init()
240 __HAL_RNG_ENABLE(hrng); in HAL_RNG_Init()
243 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_Init()
245 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_Init()
251 while (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) != SET) in HAL_RNG_Init()
256 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_SECS) != RESET) in HAL_RNG_Init()
258 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_Init()
259 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_Init()
266 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_Init()
269 hrng->ErrorCode = HAL_RNG_ERROR_NONE; in HAL_RNG_Init()
281 HAL_StatusTypeDef HAL_RNG_DeInit(RNG_HandleTypeDef *hrng) in HAL_RNG_DeInit() argument
286 if (hrng == NULL) in HAL_RNG_DeInit()
292 MODIFY_REG(hrng->Instance->CR, RNG_CR_CED | RNG_CR_CONDRST, RNG_CED_ENABLE | RNG_CR_CONDRST); in HAL_RNG_DeInit()
295 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in HAL_RNG_DeInit()
301 while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_DeInit()
306 if (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)) in HAL_RNG_DeInit()
308 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_DeInit()
309 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_DeInit()
311 __HAL_UNLOCK(hrng); in HAL_RNG_DeInit()
318 CLEAR_BIT(hrng->Instance->CR, RNG_CR_IE | RNG_CR_RNGEN); in HAL_RNG_DeInit()
321 CLEAR_BIT(hrng->Instance->SR, RNG_SR_CEIS | RNG_SR_SEIS); in HAL_RNG_DeInit()
324 if (hrng->MspDeInitCallback == NULL) in HAL_RNG_DeInit()
326 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspDeInit */ in HAL_RNG_DeInit()
330 hrng->MspDeInitCallback(hrng); in HAL_RNG_DeInit()
333 HAL_RNG_MspDeInit(hrng); in HAL_RNG_DeInit()
337 hrng->State = HAL_RNG_STATE_RESET; in HAL_RNG_DeInit()
340 hrng->ErrorCode = HAL_RNG_ERROR_NONE; in HAL_RNG_DeInit()
343 __HAL_UNLOCK(hrng); in HAL_RNG_DeInit()
355 __weak void HAL_RNG_MspInit(RNG_HandleTypeDef *hrng) in HAL_RNG_MspInit() argument
358 UNUSED(hrng); in HAL_RNG_MspInit()
370 __weak void HAL_RNG_MspDeInit(RNG_HandleTypeDef *hrng) in HAL_RNG_MspDeInit() argument
373 UNUSED(hrng); in HAL_RNG_MspDeInit()
392 HAL_StatusTypeDef HAL_RNG_RegisterCallback(RNG_HandleTypeDef *hrng, HAL_RNG_CallbackIDTypeDef Callb… in HAL_RNG_RegisterCallback() argument
400 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
404 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_RegisterCallback()
409 hrng->ErrorCallback = pCallback; in HAL_RNG_RegisterCallback()
413 hrng->MspInitCallback = pCallback; in HAL_RNG_RegisterCallback()
417 hrng->MspDeInitCallback = pCallback; in HAL_RNG_RegisterCallback()
422 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
428 else if (HAL_RNG_STATE_RESET == hrng->State) in HAL_RNG_RegisterCallback()
433 hrng->MspInitCallback = pCallback; in HAL_RNG_RegisterCallback()
437 hrng->MspDeInitCallback = pCallback; in HAL_RNG_RegisterCallback()
442 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
451 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterCallback()
470 HAL_StatusTypeDef HAL_RNG_UnRegisterCallback(RNG_HandleTypeDef *hrng, HAL_RNG_CallbackIDTypeDef Cal… in HAL_RNG_UnRegisterCallback() argument
475 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_UnRegisterCallback()
480 hrng->ErrorCallback = HAL_RNG_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_RNG_UnRegisterCallback()
484 hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
488 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspDeInit */ in HAL_RNG_UnRegisterCallback()
493 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
499 else if (HAL_RNG_STATE_RESET == hrng->State) in HAL_RNG_UnRegisterCallback()
504 hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
508 hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspInit */ in HAL_RNG_UnRegisterCallback()
513 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
522 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterCallback()
537 HAL_StatusTypeDef HAL_RNG_RegisterReadyDataCallback(RNG_HandleTypeDef *hrng, pRNG_ReadyDataCallback… in HAL_RNG_RegisterReadyDataCallback() argument
544 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterReadyDataCallback()
548 __HAL_LOCK(hrng); in HAL_RNG_RegisterReadyDataCallback()
550 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_RegisterReadyDataCallback()
552 hrng->ReadyDataCallback = pCallback; in HAL_RNG_RegisterReadyDataCallback()
557 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_RegisterReadyDataCallback()
563 __HAL_UNLOCK(hrng); in HAL_RNG_RegisterReadyDataCallback()
573 HAL_StatusTypeDef HAL_RNG_UnRegisterReadyDataCallback(RNG_HandleTypeDef *hrng) in HAL_RNG_UnRegisterReadyDataCallback() argument
578 __HAL_LOCK(hrng); in HAL_RNG_UnRegisterReadyDataCallback()
580 if (HAL_RNG_STATE_READY == hrng->State) in HAL_RNG_UnRegisterReadyDataCallback()
582 hrng->ReadyDataCallback = HAL_RNG_ReadyDataCallback; /* Legacy weak ReadyDataCallback */ in HAL_RNG_UnRegisterReadyDataCallback()
587 hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK; in HAL_RNG_UnRegisterReadyDataCallback()
593 __HAL_UNLOCK(hrng); in HAL_RNG_UnRegisterReadyDataCallback()
637 HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber(RNG_HandleTypeDef *hrng, uint32_t *random32bit) in HAL_RNG_GenerateRandomNumber() argument
643 __HAL_LOCK(hrng); in HAL_RNG_GenerateRandomNumber()
646 if (hrng->State == HAL_RNG_STATE_READY) in HAL_RNG_GenerateRandomNumber()
649 hrng->State = HAL_RNG_STATE_BUSY; in HAL_RNG_GenerateRandomNumber()
651 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_GenerateRandomNumber()
654 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_GenerateRandomNumber()
656 status = RNG_RecoverSeedError(hrng); in HAL_RNG_GenerateRandomNumber()
667 while (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) == RESET) in HAL_RNG_GenerateRandomNumber()
672 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) == RESET) in HAL_RNG_GenerateRandomNumber()
674 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_GenerateRandomNumber()
675 hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT; in HAL_RNG_GenerateRandomNumber()
677 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber()
684 hrng->RandomNumber = hrng->Instance->DR; in HAL_RNG_GenerateRandomNumber()
687 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in HAL_RNG_GenerateRandomNumber()
690 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_GenerateRandomNumber()
695 *random32bit = hrng->RandomNumber; in HAL_RNG_GenerateRandomNumber()
697 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_GenerateRandomNumber()
701 hrng->ErrorCode = HAL_RNG_ERROR_BUSY; in HAL_RNG_GenerateRandomNumber()
706 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber()
717 HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber_IT(RNG_HandleTypeDef *hrng) in HAL_RNG_GenerateRandomNumber_IT() argument
722 __HAL_LOCK(hrng); in HAL_RNG_GenerateRandomNumber_IT()
725 if (hrng->State == HAL_RNG_STATE_READY) in HAL_RNG_GenerateRandomNumber_IT()
728 hrng->State = HAL_RNG_STATE_BUSY; in HAL_RNG_GenerateRandomNumber_IT()
731 __HAL_RNG_ENABLE_IT(hrng); in HAL_RNG_GenerateRandomNumber_IT()
736 __HAL_UNLOCK(hrng); in HAL_RNG_GenerateRandomNumber_IT()
738 hrng->ErrorCode = HAL_RNG_ERROR_BUSY; in HAL_RNG_GenerateRandomNumber_IT()
766 void HAL_RNG_IRQHandler(RNG_HandleTypeDef *hrng) in HAL_RNG_IRQHandler() argument
769 uint32_t itflag = hrng->Instance->SR; in HAL_RNG_IRQHandler()
775 hrng->ErrorCode = HAL_RNG_ERROR_CLOCK; in HAL_RNG_IRQHandler()
785 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in HAL_RNG_IRQHandler()
790 hrng->ErrorCode = HAL_RNG_ERROR_SEED; in HAL_RNG_IRQHandler()
793 __HAL_RNG_DISABLE_IT(hrng); in HAL_RNG_IRQHandler()
804 hrng->State = HAL_RNG_STATE_ERROR; in HAL_RNG_IRQHandler()
808 hrng->ErrorCallback(hrng); in HAL_RNG_IRQHandler()
811 HAL_RNG_ErrorCallback(hrng); in HAL_RNG_IRQHandler()
815 __HAL_RNG_CLEAR_IT(hrng, RNG_IT_CEI | RNG_IT_SEI); in HAL_RNG_IRQHandler()
824 __HAL_RNG_DISABLE_IT(hrng); in HAL_RNG_IRQHandler()
827 hrng->RandomNumber = hrng->Instance->DR; in HAL_RNG_IRQHandler()
829 if (hrng->State != HAL_RNG_STATE_ERROR) in HAL_RNG_IRQHandler()
832 hrng->State = HAL_RNG_STATE_READY; in HAL_RNG_IRQHandler()
834 __HAL_UNLOCK(hrng); in HAL_RNG_IRQHandler()
838 hrng->ReadyDataCallback(hrng, hrng->RandomNumber); in HAL_RNG_IRQHandler()
841 HAL_RNG_ReadyDataCallback(hrng, hrng->RandomNumber); in HAL_RNG_IRQHandler()
853 uint32_t HAL_RNG_ReadLastRandomNumber(const RNG_HandleTypeDef *hrng) in HAL_RNG_ReadLastRandomNumber() argument
855 return (hrng->RandomNumber); in HAL_RNG_ReadLastRandomNumber()
870 __weak void HAL_RNG_ReadyDataCallback(RNG_HandleTypeDef *hrng, uint32_t random32bit) in HAL_RNG_ReadyDataCallback() argument
873 UNUSED(hrng); in HAL_RNG_ReadyDataCallback()
886 __weak void HAL_RNG_ErrorCallback(RNG_HandleTypeDef *hrng) in HAL_RNG_ErrorCallback() argument
889 UNUSED(hrng); in HAL_RNG_ErrorCallback()
920 HAL_RNG_StateTypeDef HAL_RNG_GetState(const RNG_HandleTypeDef *hrng) in HAL_RNG_GetState() argument
922 return hrng->State; in HAL_RNG_GetState()
930 uint32_t HAL_RNG_GetError(const RNG_HandleTypeDef *hrng) in HAL_RNG_GetError() argument
933 return hrng->ErrorCode; in HAL_RNG_GetError()
952 HAL_StatusTypeDef RNG_RecoverSeedError(RNG_HandleTypeDef *hrng) in RNG_RecoverSeedError() argument
957 if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_SECS) == RESET) in RNG_RecoverSeedError()
961 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in RNG_RecoverSeedError()
966 SET_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in RNG_RecoverSeedError()
968 CLEAR_BIT(hrng->Instance->CR, RNG_CR_CONDRST); in RNG_RecoverSeedError()
977 hrng->State = HAL_RNG_STATE_READY; in RNG_RecoverSeedError()
978 hrng->ErrorCode |= HAL_RNG_ERROR_TIMEOUT; in RNG_RecoverSeedError()
980 __HAL_UNLOCK(hrng); in RNG_RecoverSeedError()
983 hrng->ErrorCallback(hrng); in RNG_RecoverSeedError()
986 HAL_RNG_ErrorCallback(hrng); in RNG_RecoverSeedError()
990 } while (HAL_IS_BIT_SET(hrng->Instance->CR, RNG_CR_CONDRST)); in RNG_RecoverSeedError()
992 if (__HAL_RNG_GET_IT(hrng, RNG_IT_SEI) != RESET) in RNG_RecoverSeedError()
995 CLEAR_BIT(hrng->Instance->SR, RNG_IT_SEI); in RNG_RecoverSeedError()
1005 hrng->State = HAL_RNG_STATE_READY; in RNG_RecoverSeedError()
1006 hrng->ErrorCode |= HAL_RNG_ERROR_TIMEOUT; in RNG_RecoverSeedError()
1008 __HAL_UNLOCK(hrng); in RNG_RecoverSeedError()
1011 hrng->ErrorCallback(hrng); in RNG_RecoverSeedError()
1014 HAL_RNG_ErrorCallback(hrng); in RNG_RecoverSeedError()
1018 } while (HAL_IS_BIT_SET(hrng->Instance->SR, RNG_FLAG_SECS)); in RNG_RecoverSeedError()
1021 hrng->ErrorCode &= ~ HAL_RNG_ERROR_SEED; in RNG_RecoverSeedError()