1 /**
2 ******************************************************************************
3 * @file stm32wlxx_ll_pka.h
4 * @author MCD Application Team
5 * @brief Header file of PKA LL module.
6 ******************************************************************************
7 * @attention
8 *
9 * Copyright (c) 2020 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 STM32WLxx_LL_PKA_H
21 #define STM32WLxx_LL_PKA_H
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32wlxx.h"
29
30 /** @addtogroup STM32WLxx_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 /* STM32WLxx_LL_PKA_H */
535