1 /**
2   ******************************************************************************
3   * @file    stm32wbxx_ll_pka.h
4   * @author  MCD Application Team
5   * @brief   Header file of PKA LL module.
6   ******************************************************************************
7   * @attention
8   *
9   * Copyright (c) 2019 STMicroelectronics.
10   * All rights reserved.
11   *
12   * This software is licensed under terms that can be found in the LICENSE file
13   * in the root directory of this software component.
14   * If no LICENSE file comes with this software, it is provided AS-IS.
15   *
16   ******************************************************************************
17   */
18 
19 /* Define to prevent recursive inclusion -------------------------------------*/
20 #ifndef STM32WBxx_LL_PKA_H
21 #define STM32WBxx_LL_PKA_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32wbxx.h"
29 
30 /** @addtogroup STM32WBxx_LL_Driver
31   * @{
32   */
33 
34 #if defined(PKA)
35 
36 /** @defgroup PKA_LL PKA
37   * @{
38   */
39 
40 /* Private variables ---------------------------------------------------------*/
41 
42 /* Exported types ------------------------------------------------------------*/
43 #if defined(USE_FULL_LL_DRIVER)
44 /** @defgroup PKA_LL_ES_INIT PKA Exported Init structure
45   * @{
46   */
47 
48 /**
49   * @brief  PKA Init structures definition
50   */
51 typedef struct
52 {
53   uint32_t Mode;          /*!< Specifies the PKA operation mode.
54                                This parameter can be a value of @ref PKA_LL_EC_MODE.
55 
56                                This feature can be modified afterwards using unitary function @ref LL_PKA_SetMode(). */
57 } LL_PKA_InitTypeDef;
58 
59 /**
60   * @}
61   */
62 #endif /* USE_FULL_LL_DRIVER */
63 
64 /* Exported constants --------------------------------------------------------*/
65 /** @defgroup PKA_LL_Exported_Constants PKA Exported Constants
66   * @{
67   */
68 
69 /** @defgroup PKA_LL_EC_GET_FLAG Get Flags Defines
70   * @brief    Flags defines which can be used with LL_PKA_ReadReg function
71   * @{
72   */
73 #define LL_PKA_SR_ADDRERRF                 PKA_SR_ADDRERRF
74 #define LL_PKA_SR_RAMERRF                  PKA_SR_RAMERRF
75 #define LL_PKA_SR_PROCENDF                 PKA_SR_PROCENDF
76 #define LL_PKA_SR_BUSY                     PKA_SR_BUSY
77 /**
78   * @}
79   */
80 
81 /** @defgroup PKA_LL_EC_IT IT Defines
82   * @brief    IT defines which can be used with LL_PKA_ReadReg and  LL_PKA_WriteReg functions
83   * @{
84   */
85 #define LL_PKA_CR_ADDRERRIE                PKA_CR_ADDRERRIE
86 #define LL_PKA_CR_RAMERRIE                 PKA_CR_RAMERRIE
87 #define LL_PKA_CR_PROCENDIE                PKA_CR_PROCENDIE
88 #define LL_PKA_CLRFR_PROCENDFC             PKA_CLRFR_PROCENDFC
89 #define LL_PKA_CLRFR_RAMERRFC              PKA_CLRFR_RAMERRFC
90 #define LL_PKA_CLRFR_ADDRERRFC             PKA_CLRFR_ADDRERRFC
91 /**
92   * @}
93   */
94 
95 /** @defgroup PKA_LL_EC_MODE Operation Mode
96   * @brief    List of operation mode.
97   * @{
98   */
99 #define LL_PKA_MODE_MONTGOMERY_PARAM_MOD_EXP ((uint32_t)0x00000000U) /*!< Compute Montgomery parameter and modular exponentiation */
100 #define LL_PKA_MODE_MONTGOMERY_PARAM         ((uint32_t)0x00000001U) /*!< Compute Montgomery parameter only */
101 #define LL_PKA_MODE_MODULAR_EXP              ((uint32_t)0x00000002U) /*!< Compute modular exponentiation only (Montgomery parameter should be loaded) */
102 #define LL_PKA_MODE_MONTGOMERY_PARAM_ECC     ((uint32_t)0x00000020U) /*!< Compute Montgomery parameter and compute ECC kP operation */
103 #define LL_PKA_MODE_ECC_KP_PRIMITIVE         ((uint32_t)0x00000022U) /*!< Compute the ECC kP primitive only (Montgomery parameter should be loaded) */
104 #define LL_PKA_MODE_ECDSA_SIGNATURE          ((uint32_t)0x00000024U) /*!< ECDSA signature */
105 #define LL_PKA_MODE_ECDSA_VERIFICATION       ((uint32_t)0x00000026U) /*!< ECDSA verification */
106 #define LL_PKA_MODE_POINT_CHECK              ((uint32_t)0x00000028U) /*!< Point check */
107 #define LL_PKA_MODE_RSA_CRT_EXP              ((uint32_t)0x00000007U) /*!< RSA CRT exponentiation */
108 #define LL_PKA_MODE_MODULAR_INV              ((uint32_t)0x00000008U) /*!< Modular inversion */
109 #define LL_PKA_MODE_ARITHMETIC_ADD           ((uint32_t)0x00000009U) /*!< Arithmetic addition */
110 #define LL_PKA_MODE_ARITHMETIC_SUB           ((uint32_t)0x0000000AU) /*!< Arithmetic subtraction */
111 #define LL_PKA_MODE_ARITHMETIC_MUL           ((uint32_t)0x0000000BU) /*!< Arithmetic multiplication */
112 #define LL_PKA_MODE_COMPARISON               ((uint32_t)0x0000000CU) /*!< Comparison */
113 #define LL_PKA_MODE_MODULAR_REDUC            ((uint32_t)0x0000000DU) /*!< Modular reduction */
114 #define LL_PKA_MODE_MODULAR_ADD              ((uint32_t)0x0000000EU) /*!< Modular addition */
115 #define LL_PKA_MODE_MODULAR_SUB              ((uint32_t)0x0000000FU) /*!< Modular subtraction */
116 #define LL_PKA_MODE_MONTGOMERY_MUL           ((uint32_t)0x00000010U) /*!< Montgomery multiplication */
117 
118 /**
119   * @}
120   */
121 
122 /**
123   * @}
124   */
125 
126 /* Exported macro ------------------------------------------------------------*/
127 /** @defgroup PKA_LL_Exported_Macros PKA Exported Macros
128   * @{
129   */
130 
131 /** @defgroup PKA_LL_EM_WRITE_READ Common Write and read registers Macros
132   * @{
133   */
134 
135 /**
136   * @brief  Write a value in PKA register
137   * @param  __INSTANCE__ PKA Instance
138   * @param  __REG__ Register to be written
139   * @param  __VALUE__ Value to be written in the register
140   * @retval None
141   */
142 #define LL_PKA_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
143 
144 /**
145   * @brief  Read a value in PKA register
146   * @param  __INSTANCE__ PKA Instance
147   * @param  __REG__ Register to be read
148   * @retval Register value
149   */
150 #define LL_PKA_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
151 /**
152   * @}
153   */
154 
155 /**
156   * @}
157   */
158 
159 /* Exported functions --------------------------------------------------------*/
160 /** @defgroup PKA_LL_Exported_Functions PKA Exported Functions
161   * @{
162   */
163 
164 /** @defgroup PKA_LL_EF_Configuration Configuration
165   * @{
166   */
167 
168 /**
169   * @brief  Configure PKA peripheral.
170   * @brief  Set PKA operating mode.
171   * @rmtoll CR           MODE          LL_PKA_Config
172   * @param  PKAx PKA Instance.
173   * @param  Mode This parameter can be one of the following values:
174   *         @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM_MOD_EXP
175   *         @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM_ECC
176   *         @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM
177   *         @arg @ref LL_PKA_MODE_MODULAR_EXP
178   *         @arg @ref LL_PKA_MODE_ECC_KP_PRIMITIVE
179   *         @arg @ref LL_PKA_MODE_ECDSA_SIGNATURE
180   *         @arg @ref LL_PKA_MODE_ECDSA_VERIFICATION
181   *         @arg @ref LL_PKA_MODE_POINT_CHECK
182   *         @arg @ref LL_PKA_MODE_RSA_CRT_EXP
183   *         @arg @ref LL_PKA_MODE_MODULAR_INV
184   *         @arg @ref LL_PKA_MODE_ARITHMETIC_ADD
185   *         @arg @ref LL_PKA_MODE_ARITHMETIC_SUB
186   *         @arg @ref LL_PKA_MODE_ARITHMETIC_MUL
187   *         @arg @ref LL_PKA_MODE_COMPARISON
188   *         @arg @ref LL_PKA_MODE_MODULAR_REDUC
189   *         @arg @ref LL_PKA_MODE_MODULAR_ADD
190   *         @arg @ref LL_PKA_MODE_MODULAR_SUB
191   *         @arg @ref LL_PKA_MODE_MONTGOMERY_MUL
192   */
LL_PKA_Config(PKA_TypeDef * PKAx,uint32_t Mode)193 __STATIC_INLINE void LL_PKA_Config(PKA_TypeDef *PKAx, uint32_t Mode)
194 {
195   MODIFY_REG(PKAx->CR, (PKA_CR_MODE), (Mode << PKA_CR_MODE_Pos));
196 }
197 
198 /**
199   * @brief  Enable PKA peripheral.
200   * @rmtoll CR           EN            LL_PKA_Enable
201   * @param  PKAx PKA Instance.
202   * @retval None
203   */
LL_PKA_Enable(PKA_TypeDef * PKAx)204 __STATIC_INLINE void LL_PKA_Enable(PKA_TypeDef *PKAx)
205 {
206   SET_BIT(PKAx->CR, PKA_CR_EN);
207 }
208 
209 /**
210   * @brief  Disable PKA peripheral.
211   * @rmtoll CR           EN            LL_PKA_Disable
212   * @param  PKAx PKA Instance.
213   * @retval None
214   */
LL_PKA_Disable(PKA_TypeDef * PKAx)215 __STATIC_INLINE void LL_PKA_Disable(PKA_TypeDef *PKAx)
216 {
217   CLEAR_BIT(PKAx->CR, PKA_CR_EN);
218 }
219 
220 /**
221   * @brief  Check if the PKA peripheral is enabled or disabled.
222   * @rmtoll CR           EN            LL_PKA_IsEnabled
223   * @param  PKAx PKA Instance.
224   * @retval State of bit (1 or 0).
225   */
LL_PKA_IsEnabled(PKA_TypeDef * PKAx)226 __STATIC_INLINE uint32_t LL_PKA_IsEnabled(PKA_TypeDef *PKAx)
227 {
228   return ((READ_BIT(PKAx->CR, PKA_CR_EN) == (PKA_CR_EN)) ? 1UL : 0UL);
229 }
230 
231 /**
232   * @brief  Set PKA operating mode.
233   * @rmtoll CR           MODE          LL_PKA_SetMode
234   * @param  PKAx PKA Instance.
235   * @param  Mode This parameter can be one of the following values:
236   *         @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM_MOD_EXP
237   *         @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM_ECC
238   *         @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM
239   *         @arg @ref LL_PKA_MODE_MODULAR_EXP
240   *         @arg @ref LL_PKA_MODE_ECC_KP_PRIMITIVE
241   *         @arg @ref LL_PKA_MODE_ECDSA_SIGNATURE
242   *         @arg @ref LL_PKA_MODE_ECDSA_VERIFICATION
243   *         @arg @ref LL_PKA_MODE_POINT_CHECK
244   *         @arg @ref LL_PKA_MODE_RSA_CRT_EXP
245   *         @arg @ref LL_PKA_MODE_MODULAR_INV
246   *         @arg @ref LL_PKA_MODE_ARITHMETIC_ADD
247   *         @arg @ref LL_PKA_MODE_ARITHMETIC_SUB
248   *         @arg @ref LL_PKA_MODE_ARITHMETIC_MUL
249   *         @arg @ref LL_PKA_MODE_COMPARISON
250   *         @arg @ref LL_PKA_MODE_MODULAR_REDUC
251   *         @arg @ref LL_PKA_MODE_MODULAR_ADD
252   *         @arg @ref LL_PKA_MODE_MODULAR_SUB
253   *         @arg @ref LL_PKA_MODE_MONTGOMERY_MUL
254   * @retval None
255   */
LL_PKA_SetMode(PKA_TypeDef * PKAx,uint32_t Mode)256 __STATIC_INLINE void LL_PKA_SetMode(PKA_TypeDef *PKAx, uint32_t Mode)
257 {
258   MODIFY_REG(PKAx->CR, PKA_CR_MODE, Mode << PKA_CR_MODE_Pos);
259 }
260 
261 /**
262   * @brief  Get PKA operating mode.
263   * @rmtoll CR           MODE          LL_PKA_GetMode
264   * @param  PKAx PKA Instance.
265   * @retval Returned value can be one of the following values:
266   *         @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM_MOD_EXP
267   *         @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM_ECC
268   *         @arg @ref LL_PKA_MODE_MONTGOMERY_PARAM
269   *         @arg @ref LL_PKA_MODE_MODULAR_EXP
270   *         @arg @ref LL_PKA_MODE_ECC_KP_PRIMITIVE
271   *         @arg @ref LL_PKA_MODE_ECDSA_SIGNATURE
272   *         @arg @ref LL_PKA_MODE_ECDSA_VERIFICATION
273   *         @arg @ref LL_PKA_MODE_POINT_CHECK
274   *         @arg @ref LL_PKA_MODE_RSA_CRT_EXP
275   *         @arg @ref LL_PKA_MODE_MODULAR_INV
276   *         @arg @ref LL_PKA_MODE_ARITHMETIC_ADD
277   *         @arg @ref LL_PKA_MODE_ARITHMETIC_SUB
278   *         @arg @ref LL_PKA_MODE_ARITHMETIC_MUL
279   *         @arg @ref LL_PKA_MODE_COMPARISON
280   *         @arg @ref LL_PKA_MODE_MODULAR_REDUC
281   *         @arg @ref LL_PKA_MODE_MODULAR_ADD
282   *         @arg @ref LL_PKA_MODE_MODULAR_SUB
283   *         @arg @ref LL_PKA_MODE_MONTGOMERY_MUL
284   */
LL_PKA_GetMode(PKA_TypeDef * PKAx)285 __STATIC_INLINE uint32_t LL_PKA_GetMode(PKA_TypeDef *PKAx)
286 {
287   return (uint32_t)(READ_BIT(PKAx->CR, PKA_CR_MODE) >> PKA_CR_MODE_Pos);
288 }
289 
290 /**
291   * @brief  Start the operation selected using LL_PKA_SetMode.
292   * @rmtoll CR           START         LL_PKA_Start
293   * @param  PKAx PKA Instance.
294   * @retval None
295   */
LL_PKA_Start(PKA_TypeDef * PKAx)296 __STATIC_INLINE void LL_PKA_Start(PKA_TypeDef *PKAx)
297 {
298   SET_BIT(PKAx->CR, PKA_CR_START);
299 }
300 
301 /**
302   * @}
303   */
304 
305 /** @defgroup PKA_LL_EF_IT_Management IT_Management
306   * @{
307   */
308 
309 /**
310   * @brief  Enable address error interrupt.
311   * @rmtoll CR           ADDRERRIE     LL_PKA_EnableIT_ADDRERR
312   * @param  PKAx PKA Instance.
313   * @retval None
314   */
LL_PKA_EnableIT_ADDRERR(PKA_TypeDef * PKAx)315 __STATIC_INLINE void LL_PKA_EnableIT_ADDRERR(PKA_TypeDef *PKAx)
316 {
317   SET_BIT(PKAx->CR, PKA_CR_ADDRERRIE);
318 }
319 
320 /**
321   * @brief  Enable RAM error interrupt.
322   * @rmtoll CR           RAMERRIE      LL_PKA_EnableIT_RAMERR
323   * @param  PKAx PKA Instance.
324   * @retval None
325   */
LL_PKA_EnableIT_RAMERR(PKA_TypeDef * PKAx)326 __STATIC_INLINE void LL_PKA_EnableIT_RAMERR(PKA_TypeDef *PKAx)
327 {
328   SET_BIT(PKAx->CR, PKA_CR_RAMERRIE);
329 }
330 
331 
332 /**
333   * @brief  Enable end of operation interrupt.
334   * @rmtoll CR           PROCENDIE     LL_PKA_EnableIT_PROCEND
335   * @param  PKAx PKA Instance.
336   * @retval None
337   */
LL_PKA_EnableIT_PROCEND(PKA_TypeDef * PKAx)338 __STATIC_INLINE void LL_PKA_EnableIT_PROCEND(PKA_TypeDef *PKAx)
339 {
340   SET_BIT(PKAx->CR, PKA_CR_PROCENDIE);
341 }
342 
343 /**
344   * @brief  Disable address error interrupt.
345   * @rmtoll CR           ADDRERRIE     LL_PKA_DisableIT_ADDERR
346   * @param  PKAx PKA Instance.
347   * @retval None
348   */
LL_PKA_DisableIT_ADDERR(PKA_TypeDef * PKAx)349 __STATIC_INLINE void LL_PKA_DisableIT_ADDERR(PKA_TypeDef *PKAx)
350 {
351   CLEAR_BIT(PKAx->CR, PKA_CR_ADDRERRIE);
352 }
353 
354 /**
355   * @brief  Disable RAM error interrupt.
356   * @rmtoll CR           RAMERRIE      LL_PKA_DisableIT_RAMERR
357   * @param  PKAx PKA Instance.
358   * @retval None
359   */
LL_PKA_DisableIT_RAMERR(PKA_TypeDef * PKAx)360 __STATIC_INLINE void LL_PKA_DisableIT_RAMERR(PKA_TypeDef *PKAx)
361 {
362   CLEAR_BIT(PKAx->CR, PKA_CR_RAMERRIE);
363 }
364 
365 /**
366   * @brief  Disable End of operation interrupt.
367   * @rmtoll CR           PROCENDIE     LL_PKA_DisableIT_PROCEND
368   * @param  PKAx PKA Instance.
369   * @retval None
370   */
LL_PKA_DisableIT_PROCEND(PKA_TypeDef * PKAx)371 __STATIC_INLINE void LL_PKA_DisableIT_PROCEND(PKA_TypeDef *PKAx)
372 {
373   CLEAR_BIT(PKAx->CR, PKA_CR_PROCENDIE);
374 }
375 
376 /**
377   * @brief  Check if address error interrupt is enabled.
378   * @rmtoll CR           ADDRERRIE     LL_PKA_IsEnabledIT_ADDRERR
379   * @param  PKAx PKA Instance.
380   * @retval State of bit (1 or 0).
381   */
LL_PKA_IsEnabledIT_ADDRERR(PKA_TypeDef * PKAx)382 __STATIC_INLINE uint32_t LL_PKA_IsEnabledIT_ADDRERR(PKA_TypeDef *PKAx)
383 {
384   return ((READ_BIT(PKAx->CR, PKA_CR_ADDRERRIE) == (PKA_CR_ADDRERRIE)) ? 1UL : 0UL);
385 }
386 
387 /**
388   * @brief  Check if RAM error interrupt is enabled.
389   * @rmtoll CR           RAMERRIE      LL_PKA_IsEnabledIT_RAMERR
390   * @param  PKAx PKA Instance.
391   * @retval State of bit (1 or 0).
392   */
LL_PKA_IsEnabledIT_RAMERR(PKA_TypeDef * PKAx)393 __STATIC_INLINE uint32_t LL_PKA_IsEnabledIT_RAMERR(PKA_TypeDef *PKAx)
394 {
395   return ((READ_BIT(PKAx->CR, PKA_CR_RAMERRIE) == (PKA_CR_RAMERRIE)) ? 1UL : 0UL);
396 }
397 
398 
399 /**
400   * @brief  Check if end of operation interrupt is enabled.
401   * @rmtoll CR           PROCENDIE     LL_PKA_IsEnabledIT_PROCEND
402   * @param  PKAx PKA Instance.
403   * @retval State of bit (1 or 0).
404   */
LL_PKA_IsEnabledIT_PROCEND(PKA_TypeDef * PKAx)405 __STATIC_INLINE uint32_t LL_PKA_IsEnabledIT_PROCEND(PKA_TypeDef *PKAx)
406 {
407   return ((READ_BIT(PKAx->CR, PKA_CR_PROCENDIE) == (PKA_CR_PROCENDIE)) ? 1UL : 0UL);
408 }
409 
410 /**
411   * @}
412   */
413 
414 /** @defgroup PKA_LL_EF_FLAG_Management PKA flag management
415   * @{
416   */
417 
418 /**
419   * @brief  Get PKA address error flag.
420   * @rmtoll SR           ADDRERRF      LL_PKA_IsActiveFlag_ADDRERR
421   * @param  PKAx PKA Instance.
422   * @retval State of bit (1 or 0).
423   */
LL_PKA_IsActiveFlag_ADDRERR(PKA_TypeDef * PKAx)424 __STATIC_INLINE uint32_t LL_PKA_IsActiveFlag_ADDRERR(PKA_TypeDef *PKAx)
425 {
426   return ((READ_BIT(PKAx->SR, PKA_SR_ADDRERRF) == (PKA_SR_ADDRERRF)) ? 1UL : 0UL);
427 }
428 
429 /**
430   * @brief  Get PKA RAM error flag.
431   * @rmtoll SR           RAMERRF       LL_PKA_IsActiveFlag_RAMERR
432   * @param  PKAx PKA Instance.
433   * @retval State of bit (1 or 0).
434   */
LL_PKA_IsActiveFlag_RAMERR(PKA_TypeDef * PKAx)435 __STATIC_INLINE uint32_t LL_PKA_IsActiveFlag_RAMERR(PKA_TypeDef *PKAx)
436 {
437   return ((READ_BIT(PKAx->SR, PKA_SR_RAMERRF) == (PKA_SR_RAMERRF)) ? 1UL : 0UL);
438 }
439 
440 
441 /**
442   * @brief  Get PKA end of operation flag.
443   * @rmtoll SR           PROCENDF      LL_PKA_IsActiveFlag_PROCEND
444   * @param  PKAx PKA Instance.
445   * @retval State of bit (1 or 0).
446   */
LL_PKA_IsActiveFlag_PROCEND(PKA_TypeDef * PKAx)447 __STATIC_INLINE uint32_t LL_PKA_IsActiveFlag_PROCEND(PKA_TypeDef *PKAx)
448 {
449   return ((READ_BIT(PKAx->SR, PKA_SR_PROCENDF) == (PKA_SR_PROCENDF)) ? 1UL : 0UL);
450 }
451 
452 /**
453   * @brief  Get PKA busy flag.
454   * @rmtoll SR           BUSY          LL_PKA_IsActiveFlag_BUSY
455   * @param  PKAx PKA Instance.
456   * @retval State of bit (1 or 0).
457   */
LL_PKA_IsActiveFlag_BUSY(PKA_TypeDef * PKAx)458 __STATIC_INLINE uint32_t LL_PKA_IsActiveFlag_BUSY(PKA_TypeDef *PKAx)
459 {
460   return ((READ_BIT(PKAx->SR, PKA_SR_BUSY) == (PKA_SR_BUSY)) ? 1UL : 0UL);
461 }
462 
463 /**
464   * @brief  Clear PKA address error flag.
465   * @rmtoll CLRFR        ADDRERRFC     LL_PKA_ClearFlag_ADDERR
466   * @param  PKAx PKA Instance.
467   * @retval None
468   */
LL_PKA_ClearFlag_ADDERR(PKA_TypeDef * PKAx)469 __STATIC_INLINE void LL_PKA_ClearFlag_ADDERR(PKA_TypeDef *PKAx)
470 {
471   SET_BIT(PKAx->CLRFR, PKA_CLRFR_ADDRERRFC);
472 }
473 
474 /**
475   * @brief  Clear PKA RAM error flag.
476   * @rmtoll CLRFR        RAMERRFC      LL_PKA_ClearFlag_RAMERR
477   * @param  PKAx PKA Instance.
478   * @retval None
479   */
LL_PKA_ClearFlag_RAMERR(PKA_TypeDef * PKAx)480 __STATIC_INLINE void LL_PKA_ClearFlag_RAMERR(PKA_TypeDef *PKAx)
481 {
482   SET_BIT(PKAx->CLRFR, PKA_CLRFR_RAMERRFC);
483 }
484 
485 
486 /**
487   * @brief  Clear PKA end of operation flag.
488   * @rmtoll CLRFR        PROCENDFC     LL_PKA_ClearFlag_PROCEND
489   * @param  PKAx PKA Instance.
490   * @retval None
491   */
LL_PKA_ClearFlag_PROCEND(PKA_TypeDef * PKAx)492 __STATIC_INLINE void LL_PKA_ClearFlag_PROCEND(PKA_TypeDef *PKAx)
493 {
494   SET_BIT(PKAx->CLRFR, PKA_CLRFR_PROCENDFC);
495 }
496 
497 /**
498   * @}
499   */
500 
501 #if defined(USE_FULL_LL_DRIVER)
502 
503 /** @defgroup PKA_LL_EF_Init Initialization and de-initialization functions
504   * @{
505   */
506 
507 ErrorStatus LL_PKA_DeInit(PKA_TypeDef *PKAx);
508 ErrorStatus LL_PKA_Init(PKA_TypeDef *PKAx, LL_PKA_InitTypeDef *PKA_InitStruct);
509 void LL_PKA_StructInit(LL_PKA_InitTypeDef *PKA_InitStruct);
510 
511 /**
512   * @}
513   */
514 
515 #endif /* USE_FULL_LL_DRIVER */
516 /**
517   * @}
518   */
519 
520 /**
521   * @}
522   */
523 
524 #endif /* defined(PKA) */
525 
526 /**
527   * @}
528   */
529 
530 #ifdef __cplusplus
531 }
532 #endif
533 
534 #endif /* STM32WBxx_LL_PKA_H */
535