1 /**
2   ******************************************************************************
3   * @file    stm32u5xx_hal_pssi.h
4   * @author  MCD Application Team
5   * @brief   Header file of PSSI HAL 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 STM32U5xx_HAL_PSSI_H
21 #define STM32U5xx_HAL_PSSI_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32u5xx_hal_def.h"
29 
30 /** @addtogroup STM32U5xx_HAL_Driver
31   * @{
32   */
33 #if defined(PSSI)
34 
35 #ifndef USE_HAL_PSSI_REGISTER_CALLBACKS
36 /* For backward compatibility, if USE_HAL_PSSI_REGISTER_CALLBACKS not defined, define it to 1*/
37 #define USE_HAL_PSSI_REGISTER_CALLBACKS 0U
38 #endif /* USE_HAL_PSSI_REGISTER_CALLBACKS */
39 
40 /** @addtogroup PSSI PSSI
41   * @brief PSSI HAL module driver
42   * @{
43   */
44 
45 /* Exported types ------------------------------------------------------------*/
46 /** @defgroup PSSI_Exported_Types PSSI Exported Types
47   * @{
48   */
49 
50 
51 /**
52   * @brief PSSI Init structure definition
53   */
54 typedef struct
55 {
56   uint32_t  DataWidth;          /* !< Configures the parallel bus width 8 lines or 16 lines */
57   uint32_t  BusWidth;           /* !< Configures the parallel bus width 8 lines or 16 lines */
58   uint32_t  ControlSignal;      /* !< Configures Data enable and Data ready */
59   uint32_t  ClockPolarity;      /* !< Configures the PSSI Input Clock polarity */
60   uint32_t  DataEnablePolarity; /* !< Configures the PSSI Data Enable polarity */
61   uint32_t  ReadyPolarity;      /* !< Configures the PSSI Ready polarity */
62 
63 } PSSI_InitTypeDef;
64 
65 
66 /**
67   * @brief  HAL PSSI State structures definition
68   */
69 typedef enum
70 {
71   HAL_PSSI_STATE_RESET   = 0x00U, /* !< PSSI not yet initialized or disabled     */
72   HAL_PSSI_STATE_READY   = 0x01U, /* !< Peripheral initialized and ready for use */
73   HAL_PSSI_STATE_BUSY    = 0x02U, /* !< An internal process is ongoing           */
74   HAL_PSSI_STATE_BUSY_TX = 0x03U, /* !< Transmit process is ongoing              */
75   HAL_PSSI_STATE_BUSY_RX = 0x04U, /* !< Receive process is ongoing               */
76   HAL_PSSI_STATE_TIMEOUT = 0x05U, /* !< Timeout state                            */
77   HAL_PSSI_STATE_ERROR   = 0x06U, /* !< PSSI state error                         */
78   HAL_PSSI_STATE_ABORT   = 0x07U, /* !< PSSI process is aborted                  */
79 
80 } HAL_PSSI_StateTypeDef;
81 
82 /**
83   * @brief  PSSI handle Structure definition
84   */
85 #if (USE_HAL_PSSI_REGISTER_CALLBACKS == 1)
86 typedef struct __PSSI_HandleTypeDef
87 #else
88 typedef struct
89 #endif /* USE_HAL_PSSI_REGISTER_CALLBACKS */
90 {
91   PSSI_TypeDef         *Instance;    /*!< PSSI register base address.    */
92   PSSI_InitTypeDef      Init;        /*!< PSSI Initialization Structure. */
93   uint32_t             *pBuffPtr;    /*!< PSSI Data buffer.              */
94   uint32_t              XferCount;   /*!< PSSI transfer count            */
95   uint32_t              XferSize;    /*!< PSSI  transfer size            */
96 #if defined(HAL_DMA_MODULE_ENABLED)
97   DMA_HandleTypeDef    *hdmatx;      /*!< PSSI Tx DMA Handle parameters  */
98   DMA_HandleTypeDef    *hdmarx;      /*!< PSSI Rx DMA Handle parameters  */
99 #endif /*HAL_DMA_MODULE_ENABLED*/
100 
101 #if (USE_HAL_PSSI_REGISTER_CALLBACKS == 1)
102   void (* TxCpltCallback)(struct __PSSI_HandleTypeDef *hpssi);    /*!< PSSI transfer complete callback. */
103   void (* RxCpltCallback)(struct __PSSI_HandleTypeDef *hpssi);    /*!< PSSI transfer complete callback. */
104   void (* ErrorCallback)(struct __PSSI_HandleTypeDef *hpssi);     /*!< PSSI transfer complete callback. */
105   void (* AbortCpltCallback)(struct __PSSI_HandleTypeDef *hpssi); /*!< PSSI transfer error callback.    */
106 
107   void (* MspInitCallback)(struct __PSSI_HandleTypeDef *hpssi);   /*!< PSSI Msp Init callback.          */
108   void (* MspDeInitCallback)(struct __PSSI_HandleTypeDef *hpssi); /*!< PSSI Msp DeInit callback.        */
109 #endif /* USE_HAL_PSSI_REGISTER_CALLBACKS */
110 
111   HAL_LockTypeDef             Lock;                               /*!< PSSI lock.                       */
112   __IO HAL_PSSI_StateTypeDef State;                               /*!< PSSI transfer state.             */
113   __IO uint32_t               ErrorCode;                          /*!< PSSI error code.                 */
114 
115 } PSSI_HandleTypeDef;
116 
117 #if (USE_HAL_PSSI_REGISTER_CALLBACKS == 1)
118 /**
119   * @brief  HAL PSSI Callback pointer definition
120   */
121 typedef  void (*pPSSI_CallbackTypeDef)(PSSI_HandleTypeDef *hpssi);  /*!< Pointer to a PSSI common callback function */
122 
123 /**
124   * @brief  HAL PSSI Callback ID enumeration definition
125   */
126 typedef enum
127 {
128   HAL_PSSI_TX_COMPLETE_CB_ID = 0x00U, /*!< PSSI Tx Transfer completed callback ID  */
129   HAL_PSSI_RX_COMPLETE_CB_ID = 0x01U, /*!< PSSI Rx Transfer completed callback ID  */
130   HAL_PSSI_ERROR_CB_ID       = 0x03U, /*!< PSSI Error callback ID                  */
131   HAL_PSSI_ABORT_CB_ID       = 0x04U, /*!< PSSI Abort callback ID                  */
132 
133   HAL_PSSI_MSPINIT_CB_ID     = 0x05U, /*!< PSSI Msp Init callback ID               */
134   HAL_PSSI_MSPDEINIT_CB_ID   = 0x06U  /*!< PSSI Msp DeInit callback ID             */
135 
136 } HAL_PSSI_CallbackIDTypeDef;
137 #endif /* USE_HAL_PSSI_REGISTER_CALLBACKS */
138 
139 /**
140   * @}
141   */
142 
143 /* Exported constants --------------------------------------------------------*/
144 /** @defgroup PSSI_Exported_Constants PSSI Exported Constants
145   * @{
146   */
147 
148 /** @defgroup PSSI_Error_Code PSSI Error Code
149   * @{
150   */
151 #define HAL_PSSI_ERROR_NONE             0x00000000U /*!< No error                */
152 #define HAL_PSSI_ERROR_NOT_SUPPORTED    0x00000001U /*!< Not supported operation */
153 #define HAL_PSSI_ERROR_UNDER_RUN        0x00000002U /*!< FIFO Under-run error    */
154 #define HAL_PSSI_ERROR_OVER_RUN         0x00000004U /*!< FIFO Over-run  error    */
155 #define HAL_PSSI_ERROR_DMA              0x00000008U /*!< Dma     error           */
156 #define HAL_PSSI_ERROR_TIMEOUT          0x00000010U /*!< Timeout error           */
157 #if (USE_HAL_PSSI_REGISTER_CALLBACKS == 1)
158 #define HAL_PSSI_ERROR_INVALID_CALLBACK 0x00000020U /*!< Invalid callback error  */
159 #endif /* USE_HAL_PSSI_REGISTER_CALLBACKS */
160 
161 /**
162   * @}
163   */
164 
165 /** @defgroup PSSI_DATA_WIDTH PSSI Data Width
166   * @{
167   */
168 
169 #define HAL_PSSI_8BITS                  0x00000000U   /*!<  8 Bits  */
170 #define HAL_PSSI_16BITS                 0x00000001U   /*!< 16 Bits  */
171 #define HAL_PSSI_32BITS                 0x00000002U   /*!< 32 Bits  */
172 /**
173   * @}
174   */
175 
176 /** @defgroup PSSI_BUS_WIDTH PSSI Bus Width
177   * @{
178   */
179 
180 #define HAL_PSSI_8LINES                 0x00000000U   /*!< 8 data lines  */
181 #define HAL_PSSI_16LINES                PSSI_CR_EDM   /*!< 16 data lines */
182 /**
183   * @}
184   */
185 /** @defgroup PSSI_MODE PSSI mode
186   * @{
187   */
188 #define HAL_PSSI_UNIDIRECTIONAL         0x00000000U /*!< Uni-directional mode */
189 #define HAL_PSSI_BIDIRECTIONAL          0x00000001U /*!< Bi-directional mode  */
190 /**
191   * @}
192   */
193 
194 /** @defgroup ControlSignal_Configuration ControlSignal Configuration
195   * @{
196   */
197 #define HAL_PSSI_DE_RDY_DISABLE           (0x0U << PSSI_CR_DERDYCFG_Pos) /*!< Neither DE nor RDY are enabled */
198 #define HAL_PSSI_RDY_ENABLE               (0x1U << PSSI_CR_DERDYCFG_Pos) /*!< Only RDY enabled */
199 #define HAL_PSSI_DE_ENABLE                (0x2U << PSSI_CR_DERDYCFG_Pos) /*!< Only DE enabled */
200 #define HAL_PSSI_DE_RDY_ALT_ENABLE        (0x3U << PSSI_CR_DERDYCFG_Pos) /*!< Both RDY and DE alternate functions enabled */
201 #define HAL_PSSI_MAP_RDY_BIDIR_ENABLE     (0x4U << PSSI_CR_DERDYCFG_Pos) /*!< Bi-directional on RDY pin */
202 #define HAL_PSSI_RDY_MAP_ENABLE           (0x5U << PSSI_CR_DERDYCFG_Pos) /*!< Only RDY enabled, mapped to DE pin */
203 #define HAL_PSSI_DE_MAP_ENABLE            (0x6U << PSSI_CR_DERDYCFG_Pos) /*!< Only DE enabled, mapped to RDY pin */
204 #define HAL_PSSI_MAP_DE_BIDIR_ENABLE      (0x7U << PSSI_CR_DERDYCFG_Pos) /*!< Bi-directional on DE pin */
205 
206 /**
207   * @}
208   */
209 
210 
211 /** @defgroup Data_Enable_Polarity Data Enable Polarity
212   * @{
213   */
214 #define HAL_PSSI_DEPOL_ACTIVE_LOW         0x0U            /*!< Active Low */
215 #define HAL_PSSI_DEPOL_ACTIVE_HIGH        PSSI_CR_DEPOL   /*!< Active High */
216 /**
217   * @}
218   */
219 /** @defgroup Reday_Polarity Reday Polarity
220   * @{
221   */
222 #define HAL_PSSI_RDYPOL_ACTIVE_LOW        0x0U            /*!< Active Low */
223 #define HAL_PSSI_RDYPOL_ACTIVE_HIGH       PSSI_CR_RDYPOL  /*!< Active High */
224 /**
225   * @}
226   */
227 
228 /** @defgroup Clock_Polarity Clock Polarity
229   * @{
230   */
231 #define HAL_PSSI_FALLING_EDGE             0x0U            /*!< Fallling Edge */
232 #define HAL_PSSI_RISING_EDGE              0x1U            /*!< Rising Edge */
233 
234 
235 /**
236   * @}
237   */
238 
239 
240 /** @defgroup PSSI_DEFINITION PSSI definitions
241   * @{
242   */
243 
244 #define PSSI_MAX_NBYTE_SIZE         0x10000U         /* 64 KB */
245 #define PSSI_TIMEOUT_TRANSMIT       0x0000FFFFU      /*!< Timeout Value   */
246 
247 #define PSSI_CR_OUTEN_INPUT         0x00000000U      /*!< Input Mode      */
248 #define PSSI_CR_OUTEN_OUTPUT        PSSI_CR_OUTEN    /*!< Output Mode     */
249 
250 #define PSSI_CR_DMA_ENABLE          PSSI_CR_DMAEN    /*!< DMA Mode Enable */
251 #define PSSI_CR_DMA_DISABLE         (~PSSI_CR_DMAEN) /*!< DMA Mode Disable*/
252 
253 #define PSSI_CR_16BITS              PSSI_CR_EDM      /*!< 16 Lines Mode   */
254 #define PSSI_CR_8BITS               (~PSSI_CR_EDM)   /*!< 8 Lines Mode    */
255 
256 #define PSSI_FLAG_RTT1B             PSSI_SR_RTT1B    /*!< 1 Byte Fifo Flag */
257 #define PSSI_FLAG_RTT4B             PSSI_SR_RTT4B    /*!< 4 Bytes Fifo Flag*/
258 
259 
260 
261 /**
262   * @}
263   */
264 
265 /** @defgroup PSSI_Interrupts PSSI Interrupts
266   * @{
267   */
268 
269 #define PSSI_FLAG_OVR_RIS            PSSI_RIS_OVR_RIS     /*!< Overrun, Underrun errors flag */
270 #define PSSI_FLAG_MASK               PSSI_RIS_OVR_RIS_Msk /*!< Overrun, Underrun errors Mask */
271 #define PSSI_FLAG_OVR_MIS            PSSI_MIS_OVR_MIS     /*!< Overrun, Underrun masked errors flag */
272 /**
273   * @}
274   */
275 
276 
277 
278 /**
279   * @}
280   */
281 /* Exported macros ------------------------------------------------------------*/
282 /** @defgroup PSSI_Exported_Macros PSSI Exported Macros
283   * @{
284   */
285 
286 /** @brief Reset PSSI handle state
287   * @param  __HANDLE__ specifies the PSSI handle.
288   * @retval None
289   */
290 #if (USE_HAL_PSSI_REGISTER_CALLBACKS == 1)
291 #define HAL_PSSI_RESET_HANDLE_STATE(__HANDLE__) do{                                            \
292                                                       (__HANDLE__)->State = HAL_PSSI_STATE_RESET;\
293                                                       (__HANDLE__)->MspInitCallback = NULL;       \
294                                                       (__HANDLE__)->MspDeInitCallback = NULL;     \
295                                                      }while(0)
296 #else
297 #define HAL_PSSI_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_PSSI_STATE_RESET)
298 #endif /* USE_HAL_PSSI_REGISTER_CALLBACKS */
299 
300 
301 /**
302   * @brief  Enable the PSSI.
303   * @param  __HANDLE__ PSSI handle
304   * @retval None.
305   */
306 #define HAL_PSSI_ENABLE(__HANDLE__)        ((__HANDLE__)->Instance->CR |= PSSI_CR_ENABLE)
307 /**
308   * @brief  Disable the PSSI.
309   * @param  __HANDLE__ PSSI handle
310   * @retval None.
311   */
312 #define HAL_PSSI_DISABLE(__HANDLE__)        ((__HANDLE__)->Instance->CR &= (~PSSI_CR_ENABLE))
313 
314 /* PSSI pripheral STATUS */
315 /**
316   * @brief  Get the PSSI pending flags.
317   * @param  __HANDLE__ PSSI handle
318   * @param  __FLAG__ flag to check.
319   *          This parameter can be any combination of the following values:
320   *            @arg PSSI_FLAG_RTT1B:  FIFO is ready to transfer one byte
321   *            @arg PSSI_FLAG_RTT4B: FIFO is ready to transfer four bytes
322   * @retval The state of FLAG.
323   */
324 
325 #define HAL_PSSI_GET_STATUS(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR & (__FLAG__))
326 
327 
328 
329 /* Interrupt & Flag management */
330 /**
331   * @brief  Get the PSSI pending flags.
332   * @param  __HANDLE__ PSSI handle
333   * @param  __FLAG__ flag to check.
334   *          This parameter can be any combination of the following values:
335   *            @arg PSSI_FLAG_OVR_RIS: Data Buffer overrun/underrun error flag
336   * @retval The state of FLAG.
337   */
338 #define HAL_PSSI_GET_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->RIS & (__FLAG__))
339 
340 /**
341   * @brief  Clear the PSSI pending flags.
342   * @param  __HANDLE__ PSSI handle
343   * @param  __FLAG__ specifies the flag to clear.
344   *          This parameter can be any combination of the following values:
345   *            @arg PSSI_FLAG_OVR_RIS: Data Buffer overrun/underrun error flag
346   * @retval None
347   */
348 #define HAL_PSSI_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__))
349 
350 /**
351   * @brief  Enable the specified PSSI interrupts.
352   * @param  __HANDLE__ PSSI handle
353   * @param __INTERRUPT__ specifies the PSSI interrupt sources to be enabled.
354   *          This parameter can be any combination of the following values:
355   *            @arg PSSI_FLAG_OVR_RIS: Configuration error mask
356   * @retval None
357   */
358 #define HAL_PSSI_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER |= (__INTERRUPT__))
359 
360 /**
361   * @brief  Disable the specified PSSI interrupts.
362   * @param  __HANDLE__ PSSI handle
363   * @param __INTERRUPT__ specifies the PSSI interrupt sources to be disabled.
364   *          This parameter can be any combination of the following values:
365   *            @arg PSSI_IT_OVR_IE: Configuration error mask
366   * @retval None
367   */
368 #define HAL_PSSI_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER &= ~(__INTERRUPT__))
369 
370 /**
371   * @brief  Check whether the specified PSSI interrupt source is enabled or not.
372   * @param  __HANDLE__ PSSI handle
373   * @param  __INTERRUPT__ specifies the PSSI interrupt source to check.
374   *          This parameter can be one of the following values:
375   *            @arg PSSI_IT_OVR_IE: Data Buffer overrun/underrun error interrupt mask
376   * @retval The state of INTERRUPT source.
377   */
378 #define HAL_PSSI_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER & (__INTERRUPT__))
379 
380 
381 /**
382   * @brief  Check whether the PSSI Control signal is valid.
383   * @param  __CONTROL__ Control signals configuration
384   * @retval Valid or not.
385   */
386 
387 #define IS_PSSI_CONTROL_SIGNAL(__CONTROL__) (((__CONTROL__) == HAL_PSSI_DE_RDY_DISABLE        ) || \
388                                              ((__CONTROL__) == HAL_PSSI_RDY_ENABLE            ) || \
389                                              ((__CONTROL__) == HAL_PSSI_DE_ENABLE             ) || \
390                                              ((__CONTROL__) == HAL_PSSI_DE_RDY_ALT_ENABLE     ) || \
391                                              ((__CONTROL__) == HAL_PSSI_MAP_RDY_BIDIR_ENABLE  ) || \
392                                              ((__CONTROL__) == HAL_PSSI_RDY_MAP_ENABLE        ) || \
393                                              ((__CONTROL__) == HAL_PSSI_DE_MAP_ENABLE         ) || \
394                                              ((__CONTROL__) == HAL_PSSI_MAP_DE_BIDIR_ENABLE   ))
395 
396 
397 
398 /**
399   * @brief  Check whether the PSSI Bus Width is valid.
400   * @param  __BUSWIDTH__ PSSI Bush width
401   * @retval Valid or not.
402   */
403 
404 #define IS_PSSI_BUSWIDTH(__BUSWIDTH__) (((__BUSWIDTH__) == HAL_PSSI_8LINES    ) || \
405                                         ((__BUSWIDTH__) == HAL_PSSI_16LINES   ))
406 
407 /**
408 
409   * @brief  Check whether the PSSI Clock Polarity is valid.
410   * @param  __CLOCKPOL__ PSSI Clock Polarity
411   * @retval Valid or not.
412   */
413 
414 #define IS_PSSI_CLOCK_POLARITY(__CLOCKPOL__) (((__CLOCKPOL__) == HAL_PSSI_FALLING_EDGE   ) || \
415                                               ((__CLOCKPOL__) == HAL_PSSI_RISING_EDGE    ))
416 
417 
418 /**
419   * @brief  Check whether the PSSI Data Enable Polarity is valid.
420   * @param  __DEPOL__ PSSI DE Polarity
421   * @retval Valid or not.
422   */
423 
424 #define IS_PSSI_DE_POLARITY(__DEPOL__) (((__DEPOL__) == HAL_PSSI_DEPOL_ACTIVE_LOW    ) || \
425                                         ((__DEPOL__) == HAL_PSSI_DEPOL_ACTIVE_HIGH   ))
426 
427 /**
428   * @brief  Check whether the PSSI Ready Polarity is valid.
429   * @param  __RDYPOL__ PSSI RDY Polarity
430   * @retval Valid or not.
431   */
432 
433 #define IS_PSSI_RDY_POLARITY(__RDYPOL__) (((__RDYPOL__) == HAL_PSSI_RDYPOL_ACTIVE_LOW   ) || \
434                                           ((__RDYPOL__) == HAL_PSSI_RDYPOL_ACTIVE_HIGH   ))
435 /**
436   * @}
437   */
438 
439 
440 /* Exported functions --------------------------------------------------------*/
441 /** @addtogroup PSSI_Exported_Functions PSSI Exported Functions
442   * @{
443   */
444 
445 /** @addtogroup PSSI_Exported_Functions_Group1 Initialization and de-initialization functions
446   * @{
447   */
448 
449 /* Initialization and de-initialization functions *******************************/
450 HAL_StatusTypeDef HAL_PSSI_Init(PSSI_HandleTypeDef *hpssi);
451 HAL_StatusTypeDef HAL_PSSI_DeInit(PSSI_HandleTypeDef *hpssi);
452 void              HAL_PSSI_MspInit(PSSI_HandleTypeDef *hpssi);
453 void              HAL_PSSI_MspDeInit(PSSI_HandleTypeDef *hpssi);
454 /* Callbacks Register/UnRegister functions  ***********************************/
455 #if (USE_HAL_PSSI_REGISTER_CALLBACKS == 1)
456 HAL_StatusTypeDef HAL_PSSI_RegisterCallback(PSSI_HandleTypeDef *hpssi, HAL_PSSI_CallbackIDTypeDef CallbackID,
457                                             pPSSI_CallbackTypeDef pCallback);
458 HAL_StatusTypeDef HAL_PSSI_UnRegisterCallback(PSSI_HandleTypeDef *hpssi, HAL_PSSI_CallbackIDTypeDef CallbackID);
459 #endif /* USE_HAL_PSSI_REGISTER_CALLBACKS */
460 
461 /**
462   * @}
463   */
464 
465 
466 /** @addtogroup PSSI_Exported_Functions_Group2 Input and Output operation functions
467   * @{
468   */
469 
470 /* IO operation functions *******************************************************/
471 HAL_StatusTypeDef HAL_PSSI_Transmit(PSSI_HandleTypeDef *hpssi, uint8_t *pData, uint32_t Size, uint32_t Timeout);
472 HAL_StatusTypeDef HAL_PSSI_Receive(PSSI_HandleTypeDef *hpssi, uint8_t *pData, uint32_t Size, uint32_t Timeout);
473 #if defined(HAL_DMA_MODULE_ENABLED)
474 HAL_StatusTypeDef HAL_PSSI_Transmit_DMA(PSSI_HandleTypeDef *hpssi, uint32_t *pData, uint32_t Size);
475 HAL_StatusTypeDef HAL_PSSI_Receive_DMA(PSSI_HandleTypeDef *hpssi, uint32_t *pData, uint32_t Size);
476 HAL_StatusTypeDef HAL_PSSI_Abort_DMA(PSSI_HandleTypeDef *hpssi);
477 #endif /*HAL_DMA_MODULE_ENABLED*/
478 
479 /**
480   * @}
481   */
482 
483 /** @addtogroup PSSI_Exported_Functions_Group3 Peripheral State and Error functions
484   * @{
485   */
486 
487 /* Peripheral State functions ***************************************************/
488 HAL_PSSI_StateTypeDef HAL_PSSI_GetState(const PSSI_HandleTypeDef *hpssi);
489 uint32_t               HAL_PSSI_GetError(const PSSI_HandleTypeDef *hpssi);
490 
491 /**
492   * @}
493   */
494 
495 /** @addtogroup PSSI_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks
496   * @{
497   */
498 
499 void HAL_PSSI_IRQHandler(PSSI_HandleTypeDef *hpssi);
500 void HAL_PSSI_TxCpltCallback(PSSI_HandleTypeDef *hpssi);
501 void HAL_PSSI_RxCpltCallback(PSSI_HandleTypeDef *hpssi);
502 void HAL_PSSI_ErrorCallback(PSSI_HandleTypeDef *hpssi);
503 void HAL_PSSI_AbortCpltCallback(PSSI_HandleTypeDef *hpssi);
504 
505 /**
506   * @}
507   */
508 
509 
510 
511 /**
512   * @}
513   */
514 
515 /* Private constants ---------------------------------------------------------*/
516 
517 
518 /* Private macros ------------------------------------------------------------*/
519 
520 
521 /**
522   * @}
523   */
524 #endif /* PSSI */
525 
526 /**
527   * @}
528   */
529 
530 
531 #ifdef __cplusplus
532 }
533 #endif
534 
535 #endif /* STM32U5xx_HAL_PSSI_H */
536 
537