1 /**
2   ******************************************************************************
3   * @file    stm32u5xx_hal.h
4   * @author  MCD Application Team
5   * @brief   This file contains all the functions prototypes for the HAL
6   *          module driver.
7   ******************************************************************************
8   * @attention
9   *
10   * Copyright (c) 2021 STMicroelectronics.
11   * All rights reserved.
12   *
13   * This software is licensed under terms that can be found in the LICENSE file
14   * in the root directory of this software component.
15   * If no LICENSE file comes with this software, it is provided AS-IS.
16   *
17   ******************************************************************************
18   */
19 
20 /* Define to prevent recursive inclusion -------------------------------------*/
21 #ifndef __STM32U5xx_HAL_H
22 #define __STM32U5xx_HAL_H
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /* Includes ------------------------------------------------------------------*/
29 #include "stm32u5xx_hal_conf.h"
30 
31 /** @addtogroup STM32U5xx_HAL_Driver
32   * @{
33   */
34 
35 /** @addtogroup HAL
36   * @{
37   */
38 
39 /* Exported types ------------------------------------------------------------*/
40 /** @defgroup HAL_Exported_Types HAL Exported Types
41   * @{
42   */
43 
44 /** @defgroup HAL_TICK_FREQ Tick Frequency
45   * @{
46   */
47 typedef enum
48 {
49   HAL_TICK_FREQ_10HZ         = 100U,
50   HAL_TICK_FREQ_100HZ        = 10U,
51   HAL_TICK_FREQ_1KHZ         = 1U,
52   HAL_TICK_FREQ_DEFAULT      = HAL_TICK_FREQ_1KHZ
53 } HAL_TickFreqTypeDef;
54 /**
55   * @}
56   */
57 
58 /**
59   * @}
60   */
61 
62 /* Exported variables --------------------------------------------------------*/
63 /** @defgroup HAL_Exported_Variables HAL Exported Variables
64   * @{
65   */
66 extern __IO uint32_t            uwTick;
67 extern uint32_t                 uwTickPrio;
68 extern HAL_TickFreqTypeDef      uwTickFreq;
69 /**
70   * @}
71   */
72 
73 /* Exported constants --------------------------------------------------------*/
74 /** @defgroup REV_ID device revision ID
75   * @{
76   */
77 #define REV_ID_A 0x1000U  /*!< STM32U5 rev.A */
78 #define REV_ID_B 0x2000U  /*!< STM32U5 rev.B */
79 /**
80   * @}
81   */
82 
83 
84 /** @defgroup SYSCFG_Exported_Constants SYSCFG Exported Constants
85   * @{
86   */
87 
88 /** @defgroup SYSCFG_FPU_Interrupts FPU Interrupts
89   * @{
90   */
91 #define SYSCFG_IT_FPU_IOC              SYSCFG_FPUIMR_FPU_IE_0  /*!< Floating Point Unit Invalid operation Interrupt */
92 #define SYSCFG_IT_FPU_DZC              SYSCFG_FPUIMR_FPU_IE_1  /*!< Floating Point Unit Divide-by-zero Interrupt */
93 #define SYSCFG_IT_FPU_UFC              SYSCFG_FPUIMR_FPU_IE_2  /*!< Floating Point Unit Underflow Interrupt */
94 #define SYSCFG_IT_FPU_OFC              SYSCFG_FPUIMR_FPU_IE_3  /*!< Floating Point Unit Overflow Interrupt */
95 #define SYSCFG_IT_FPU_IDC              SYSCFG_FPUIMR_FPU_IE_4  /*!< Floating Point Unit Input denormal Interrupt */
96 #define SYSCFG_IT_FPU_IXC              SYSCFG_FPUIMR_FPU_IE_5  /*!< Floating Point Unit Inexact Interrupt */
97 
98 /**
99   * @}
100   */
101 
102 /** @defgroup SYSCFG_VREFBUF_VoltageScale VREFBUF Voltage Scale
103   * @{
104   */
105 #define SYSCFG_VREFBUF_VOLTAGE_SCALE0  ((uint32_t)0x00000000)                  /*!< Voltage reference scale 0 (VREF_OUT1) */
106 #define SYSCFG_VREFBUF_VOLTAGE_SCALE1  VREFBUF_CSR_VRS_0                       /*!< Voltage reference scale 1 (VREF_OUT2) */
107 #define SYSCFG_VREFBUF_VOLTAGE_SCALE2  VREFBUF_CSR_VRS_1                       /*!< Voltage reference scale 2 (VREF_OUT3) */
108 #define SYSCFG_VREFBUF_VOLTAGE_SCALE3  (VREFBUF_CSR_VRS_0 | VREFBUF_CSR_VRS_1) /*!< Voltage reference scale 3 (VREF_OUT4) */
109 
110 /**
111   * @}
112   */
113 
114 /** @defgroup SYSCFG_VREFBUF_HighImpedance VREFBUF High Impedance
115   * @{
116   */
117 #define SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE  ((uint32_t)0x00000000) /*!< VREF_plus pin is internally connected to
118                                                                            Voltage reference buffer output */
119 #define SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE   VREFBUF_CSR_HIZ        /*!< VREF_plus pin is high impedance */
120 
121 /**
122   * @}
123   */
124 
125 /** @defgroup SYSCFG_flags_definition Flags
126   * @{
127   */
128 
129 #define SYSCFG_FLAG_SRAM2_PE            SYSCFG_CFGR2_SPF       /*!< SRAM2 parity error */
130 #define SYSCFG_FLAG_SRAM2_BUSY          SYSCFG_SCSR_SRAM2BSY   /*!< SRAM2 busy by erase operation */
131 
132 /**
133   * @}
134   */
135 
136 /** @defgroup SYSCFG_FastModePlus_GPIO Fast-mode Plus on GPIO
137   * @{
138   */
139 
140 /** @brief  Fast-mode Plus driving capability on a specific GPIO
141   */
142 #define SYSCFG_FASTMODEPLUS_PB6        SYSCFG_CFGR1_PB6_FMP  /*!< Enable Fast-mode Plus on PB6 */
143 #define SYSCFG_FASTMODEPLUS_PB7        SYSCFG_CFGR1_PB7_FMP  /*!< Enable Fast-mode Plus on PB7 */
144 #define SYSCFG_FASTMODEPLUS_PB8        SYSCFG_CFGR1_PB8_FMP  /*!< Enable Fast-mode Plus on PB8 */
145 #define SYSCFG_FASTMODEPLUS_PB9        SYSCFG_CFGR1_PB9_FMP  /*!< Enable Fast-mode Plus on PB9 */
146 /**
147   * @}
148   */
149 
150 #if defined(SYSCFG_CFGR1_ENDCAP)
151 /** @defgroup SYSCFG_DECOUPLING_CAPACITANCE SYSCFG DECOUPLING CAPACITANCE
152   * @{
153   */
154 #define SYSCFG_HSPI_CAPACITANCE_OFF      0x00000000U            /*!< Decoupling with no capacitance value on HSPI supply */
155 #define SYSCFG_HSPI_CAPACITANCE_1_DIV_3  SYSCFG_CFGR1_ENDCAP_0  /*!< Decoupling with 1/3 of capacitance value on HSPI supply */
156 #define SYSCFG_HSPI_CAPACITANCE_2_DIV_3  SYSCFG_CFGR1_ENDCAP_1  /*!< Decoupling with 2/3 of capacitance value on HSPI supply */
157 #define SYSCFG_HSPI_CAPACITANCE_FULL     SYSCFG_CFGR1_ENDCAP    /*!< Decoupling with full capacitance value on HSPI supply */
158 /**
159   * @}
160   */
161 #endif /* SYSCFG_CFGR1_ENDCAP */
162 
163 /** @defgroup SYSCFG_Lock_items SYSCFG Lock items
164   * @brief SYSCFG items to set lock on
165   * @{
166   */
167 #define SYSCFG_MPU_NSEC                SYSCFG_CNSLCKR_LOCKNSMPU            /*!< Non-secure MPU lock (privileged secure or non-secure only) */
168 #define SYSCFG_VTOR_NSEC               SYSCFG_CNSLCKR_LOCKNSVTOR           /*!< Non-secure VTOR lock (privileged secure or non-secure only) */
169 #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U)
170 #define SYSCFG_SAU                     (SYSCFG_CSLCKR_LOCKSAU << 16U)      /*!< SAU lock (privileged secure code only) */
171 #define SYSCFG_MPU_SEC                 (SYSCFG_CSLCKR_LOCKSMPU << 16U)     /*!< Secure MPU lock (privileged secure code only) */
172 #define SYSCFG_VTOR_AIRCR_SEC          (SYSCFG_CSLCKR_LOCKSVTAIRCR << 16U) /*!< VTOR_S and AIRCR lock (privileged secure code only) */
173 #define SYSCFG_LOCK_ALL                (SYSCFG_MPU_NSEC|SYSCFG_VTOR_NSEC|SYSCFG_SAU|SYSCFG_MPU_SEC|SYSCFG_VTOR_AIRCR_SEC)  /*!< All */
174 #else
175 #define SYSCFG_LOCK_ALL                (SYSCFG_MPU_NSEC|SYSCFG_VTOR_NSEC)  /*!< All (privileged secure or non-secure only) */
176 #endif /* __ARM_FEATURE_CMSE */
177 /**
178   * @}
179   */
180 
181 #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U)
182 
183 /** @defgroup SYSCFG_Attributes_items SYSCFG Attributes items
184   * @brief SYSCFG items to configure secure or non-secure attributes on
185   * @{
186   */
187 #define SYSCFG_CLK                     SYSCFG_SECCFGR_SYSCFGSEC   /*!< SYSCFG clock control */
188 #define SYSCFG_CLASSB                  SYSCFG_SECCFGR_CLASSBSEC   /*!< Class B */
189 #define SYSCFG_FPU                     SYSCFG_SECCFGR_FPUSEC      /*!< FPU */
190 #define SYSCFG_ALL                     (SYSCFG_CLK | SYSCFG_CLASSB | SYSCFG_FPU) /*!< All */
191 /**
192   * @}
193   */
194 
195 /** @defgroup SYSCFG_attributes SYSCFG attributes
196   * @brief SYSCFG secure or non-secure attributes
197   * @{
198   */
199 #define SYSCFG_SEC                     0x00000001U   /*!< Secure attribute      */
200 #define SYSCFG_NSEC                    0x00000000U   /*!< Non-secure attribute  */
201 /**
202   * @}
203   */
204 
205 #endif /* __ARM_FEATURE_CMSE */
206 
207 #ifdef SYSCFG_OTGHSPHYCR_EN
208 /** @defgroup SYSCFG_OTG_PHY_RefenceClockSelection  OTG PHY Reference Clock Selection
209   * @{
210   */
211 
212 /** @brief  OTG HS PHY reference clock frequency selection
213   */
214 #define SYSCFG_OTG_HS_PHY_CLK_SELECT_1    (SYSCFG_OTGHSPHYCR_CLKSEL_0 | SYSCFG_OTGHSPHYCR_CLKSEL_1)                               /*!< 16Mhz */
215 #define SYSCFG_OTG_HS_PHY_CLK_SELECT_2    SYSCFG_OTGHSPHYCR_CLKSEL_3                                                              /*!< 19.2Mhz */
216 #define SYSCFG_OTG_HS_PHY_CLK_SELECT_3    (SYSCFG_OTGHSPHYCR_CLKSEL_0 | SYSCFG_OTGHSPHYCR_CLKSEL_3)                               /*!< 20Mhz */
217 #define SYSCFG_OTG_HS_PHY_CLK_SELECT_4    (SYSCFG_OTGHSPHYCR_CLKSEL_1 | SYSCFG_OTGHSPHYCR_CLKSEL_3)                               /*!< 24Mhz */
218 #define SYSCFG_OTG_HS_PHY_CLK_SELECT_5    (SYSCFG_OTGHSPHYCR_CLKSEL_1 | SYSCFG_OTGHSPHYCR_CLKSEL_2 | SYSCFG_OTGHSPHYCR_CLKSEL_3)  /*!< 26Mhz */
219 #define SYSCFG_OTG_HS_PHY_CLK_SELECT_6    (SYSCFG_OTGHSPHYCR_CLKSEL_0 | SYSCFG_OTGHSPHYCR_CLKSEL_1 | SYSCFG_OTGHSPHYCR_CLKSEL_3)  /*!< 32Mhz */
220 /**
221   * @}
222   */
223 
224 /** @defgroup SYSCFG_OTG_PHY_PowerDown  OTG PHY Power Down
225   * @{
226   */
227 
228 /** @brief  OTG HS PHY Power Down config
229   */
230 
231 #define SYSCFG_OTG_HS_PHY_POWER_ON        0x00000000U                /*!< PHY state machine, bias and OTG PHY PLL are powered down */
232 #define SYSCFG_OTG_HS_PHY_POWER_DOWN      SYSCFG_OTGHSPHYCR_PDCTRL   /*!< PHY state machine, bias and OTG PHY PLL remain powered */
233 
234 /**
235   * @}
236   */
237 
238 /** @defgroup SYSCFG_OTG_PHY_Enable  OTG PHY Enable
239   * @{
240   */
241 
242 #define SYSCFG_OTG_HS_PHY_UNDERRESET  0x00000000U              /*!< PHY under reset */
243 #define SYSCFG_OTG_HS_PHY_ENABLE      SYSCFG_OTGHSPHYCR_EN     /*!< PHY enabled */
244 
245 /**
246   * @}
247   */
248 
249 /** @defgroup SYSCFG_OTG_PHYTUNER_PreemphasisCurrent  OTG PHYTUNER Preemphasis Current
250   * @{
251   */
252 
253 /** @brief  High-speed (HS) transmitter preemphasis current control
254   */
255 #define SYSCFG_OTG_HS_PHY_PREEMP_DISABLED   0x00000000U                                                                             /*!< HS transmitter preemphasis circuit disabled */
256 #define SYSCFG_OTG_HS_PHY_PREEMP_1X         SYSCFG_OTGHSPHYTUNER2_TXPREEMPAMPTUNE_0                                                 /*!< HS transmitter preemphasis circuit sources 1x preemphasis current */
257 #define SYSCFG_OTG_HS_PHY_PREEMP_2X         SYSCFG_OTGHSPHYTUNER2_TXPREEMPAMPTUNE_1                                                 /*!< HS transmitter preemphasis circuit sources 2x preemphasis current */
258 #define SYSCFG_OTG_HS_PHY_PREEMP_3X         (SYSCFG_OTGHSPHYTUNER2_TXPREEMPAMPTUNE_0 | SYSCFG_OTGHSPHYTUNER2_TXPREEMPAMPTUNE_1)     /*!< HS transmitter preemphasis circuit sources 3x preemphasis current */
259 
260 /**
261   * @}
262   */
263 
264 /** @defgroup SYSCFG_OTG_PHYTUNER_SquelchThreshold  OTG PHYTUNER Squelch Threshold
265   * @{
266   */
267 
268 /** @brief Squelch threshold adjustment
269   */
270 #define SYSCFG_OTG_HS_PHY_SQUELCH_15PERCENT       0x00000000U                                                                             /*!< +15% (recommended value) */
271 #define SYSCFG_OTG_HS_PHY_SQUELCH_0PERCENT        (SYSCFG_OTGHSPHYTUNER2_SQRXTUNE_0 | SYSCFG_OTGHSPHYTUNER2_SQRXTUNE_1)                   /*!< 0% (default value) */
272 
273 /**
274   * @}
275   */
276 
277 /** @defgroup SYSCFG_OTG_PHYTUNER_DisconnectThreshold  OTG PHYTUNER Disconnect Threshold
278   * @{
279   */
280 
281 /** @brief Disconnect threshold adjustment
282   */
283 #define SYSCFG_OTG_HS_PHY_DISCONNECT_5_9PERCENT    SYSCFG_OTGHSPHYTUNER2_COMPDISTUNE_1     /*!< +5.9% (recommended value) */
284 #define SYSCFG_OTG_HS_PHY_DISCONNECT_0PERCENT      SYSCFG_OTGHSPHYTUNER2_COMPDISTUNE_0     /*!< 0% (default value) */
285 
286 /**
287   * @}
288   */
289 
290 #endif /* SYSCFG_OTGHSPHYCR_EN */
291 /**
292   * @}
293   */
294 
295 /* Exported macros -----------------------------------------------------------*/
296 
297 /** @defgroup DBGMCU_Exported_Macros DBGMCU Exported Macros
298   * @{
299   */
300 
301 /** @brief  Freeze/Unfreeze Peripherals in Debug mode
302   */
303 #if defined(DBGMCU_APB1FZR1_DBG_TIM2_STOP)
304 #define __HAL_DBGMCU_FREEZE_TIM2()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM2_STOP)
305 #define __HAL_DBGMCU_UNFREEZE_TIM2()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM2_STOP)
306 #endif /* DBGMCU_APB1FZR1_DBG_TIM2_STOP */
307 
308 #if defined(DBGMCU_APB1FZR1_DBG_TIM3_STOP)
309 #define __HAL_DBGMCU_FREEZE_TIM3()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM3_STOP)
310 #define __HAL_DBGMCU_UNFREEZE_TIM3()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM3_STOP)
311 #endif /* DBGMCU_APB1FZR1_DBG_TIM3_STOP */
312 
313 #if defined(DBGMCU_APB1FZR1_DBG_TIM4_STOP)
314 #define __HAL_DBGMCU_FREEZE_TIM4()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM4_STOP)
315 #define __HAL_DBGMCU_UNFREEZE_TIM4()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM4_STOP)
316 #endif /* DBGMCU_APB1FZR1_DBG_TIM4_STOP */
317 
318 #if defined(DBGMCU_APB1FZR1_DBG_TIM5_STOP)
319 #define __HAL_DBGMCU_FREEZE_TIM5()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM5_STOP)
320 #define __HAL_DBGMCU_UNFREEZE_TIM5()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM5_STOP)
321 #endif /* DBGMCU_APB1FZR1_DBG_TIM5_STOP */
322 
323 #if defined(DBGMCU_APB1FZR1_DBG_TIM6_STOP)
324 #define __HAL_DBGMCU_FREEZE_TIM6()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM6_STOP)
325 #define __HAL_DBGMCU_UNFREEZE_TIM6()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM6_STOP)
326 #endif /* DBGMCU_APB1FZR1_DBG_TIM6_STOP */
327 
328 #if defined(DBGMCU_APB1FZR1_DBG_TIM7_STOP)
329 #define __HAL_DBGMCU_FREEZE_TIM7()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM7_STOP)
330 #define __HAL_DBGMCU_UNFREEZE_TIM7()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM7_STOP)
331 #endif /* DBGMCU_APB1FZR1_DBG_TIM7_STOP */
332 
333 #if defined(DBGMCU_APB1FZR1_DBG_WWDG_STOP)
334 #define __HAL_DBGMCU_FREEZE_WWDG()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_WWDG_STOP)
335 #define __HAL_DBGMCU_UNFREEZE_WWDG()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_WWDG_STOP)
336 #endif /* DBGMCU_APB1FZR1_DBG_WWDG_STOP */
337 
338 #if defined(DBGMCU_APB1FZR1_DBG_IWDG_STOP)
339 #define __HAL_DBGMCU_FREEZE_IWDG()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_IWDG_STOP)
340 #define __HAL_DBGMCU_UNFREEZE_IWDG()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_IWDG_STOP)
341 #endif /* DBGMCU_APB1FZR1_DBG_IWDG_STOP */
342 
343 #if defined(DBGMCU_APB1FZR1_DBG_I2C1_STOP)
344 #define __HAL_DBGMCU_FREEZE_I2C1()              SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C1_STOP)
345 #define __HAL_DBGMCU_UNFREEZE_I2C1()            CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C1_STOP)
346 #endif /* DBGMCU_APB1FZR1_DBG_I2C1_STOP */
347 
348 #if defined(DBGMCU_APB1FZR1_DBG_I2C2_STOP)
349 #define __HAL_DBGMCU_FREEZE_I2C2()              SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C2_STOP)
350 #define __HAL_DBGMCU_UNFREEZE_I2C2()            CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C2_STOP)
351 #endif /* DBGMCU_APB1FZR1_DBG_I2C2_STOP */
352 
353 #if defined(DBGMCU_APB1FZR2_DBG_I2C4_STOP)
354 #define __HAL_DBGMCU_FREEZE_I2C4()              SET_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_I2C4_STOP)
355 #define __HAL_DBGMCU_UNFREEZE_I2C4()            CLEAR_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_I2C4_STOP)
356 #endif /* DBGMCU_APB1FZR2_DBG_I2C4_STOP */
357 
358 #if defined(DBGMCU_APB1FZR2_DBG_I2C5_STOP)
359 #define __HAL_DBGMCU_FREEZE_I2C5()              SET_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_I2C5_STOP)
360 #define __HAL_DBGMCU_UNFREEZE_I2C5()            CLEAR_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_I2C5_STOP)
361 #endif /* DBGMCU_APB1FZR2_DBG_I2C5_STOP */
362 
363 #if defined(DBGMCU_APB1FZR2_DBG_I2C6_STOP)
364 #define __HAL_DBGMCU_FREEZE_I2C6()              SET_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_I2C6_STOP)
365 #define __HAL_DBGMCU_UNFREEZE_I2C6()            CLEAR_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_I2C6_STOP)
366 #endif /* DBGMCU_APB1FZR2_DBG_I2C6_STOP */
367 
368 #if defined(DBGMCU_APB1FZR2_DBG_LPTIM2_STOP)
369 #define __HAL_DBGMCU_FREEZE_LPTIM2()            SET_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_LPTIM2_STOP)
370 #define __HAL_DBGMCU_UNFREEZE_LPTIM2()          CLEAR_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_LPTIM2_STOP)
371 #endif /* DBGMCU_APB1FZR2_DBG_LPTIM2_STOP */
372 
373 #if defined(DBGMCU_APB2FZR_DBG_TIM1_STOP)
374 #define __HAL_DBGMCU_FREEZE_TIM1()              SET_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM1_STOP)
375 #define __HAL_DBGMCU_UNFREEZE_TIM1()            CLEAR_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM1_STOP)
376 #endif /* DBGMCU_APB2FZR_DBG_TIM1_STOP */
377 
378 #if defined(DBGMCU_APB2FZR_DBG_TIM8_STOP)
379 #define __HAL_DBGMCU_FREEZE_TIM8()              SET_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM8_STOP)
380 #define __HAL_DBGMCU_UNFREEZE_TIM8()            CLEAR_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM8_STOP)
381 #endif /* DBGMCU_APB2FZR_DBG_TIM8_STOP */
382 
383 #if defined(DBGMCU_APB2FZR_DBG_TIM15_STOP)
384 #define __HAL_DBGMCU_FREEZE_TIM15()             SET_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM15_STOP)
385 #define __HAL_DBGMCU_UNFREEZE_TIM15()           CLEAR_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM15_STOP)
386 #endif /* DBGMCU_APB2FZR_DBG_TIM15_STOP */
387 
388 #if defined(DBGMCU_APB2FZR_DBG_TIM16_STOP)
389 #define __HAL_DBGMCU_FREEZE_TIM16()             SET_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM16_STOP)
390 #define __HAL_DBGMCU_UNFREEZE_TIM16()           CLEAR_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM16_STOP)
391 #endif /* DBGMCU_APB2FZR_DBG_TIM16_STOP */
392 
393 #if defined(DBGMCU_APB2FZR_DBG_TIM17_STOP)
394 #define __HAL_DBGMCU_FREEZE_TIM17()             SET_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM17_STOP)
395 #define __HAL_DBGMCU_UNFREEZE_TIM17()           CLEAR_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM17_STOP)
396 #endif /* DBGMCU_APB2FZR_DBG_TIM17_STOP */
397 
398 #if defined(DBGMCU_APB3FZR_DBG_I2C3_STOP)
399 #define __HAL_DBGMCU_FREEZE_I2C3()              SET_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_I2C3_STOP)
400 #define __HAL_DBGMCU_UNFREEZE_I2C3()            CLEAR_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_I2C3_STOP)
401 #endif /* DBGMCU_APB3FZR_DBG_I2C3_STOP */
402 
403 #if defined(DBGMCU_APB3FZR_DBG_LPTIM1_STOP)
404 #define __HAL_DBGMCU_FREEZE_LPTIM1()            SET_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_LPTIM1_STOP)
405 #define __HAL_DBGMCU_UNFREEZE_LPTIM1()          CLEAR_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_LPTIM1_STOP)
406 #endif /* DBGMCU_APB3FZR_DBG_LPTIM1_STOP */
407 
408 #if defined(DBGMCU_APB3FZR_DBG_LPTIM3_STOP)
409 #define __HAL_DBGMCU_FREEZE_LPTIM3()            SET_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_LPTIM3_STOP)
410 #define __HAL_DBGMCU_UNFREEZE_LPTIM3()          CLEAR_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_LPTIM3_STOP)
411 #endif /* DBGMCU_APB3FZR_DBG_LPTIM3_STOP */
412 
413 #if defined(DBGMCU_APB3FZR_DBG_LPTIM4_STOP)
414 #define __HAL_DBGMCU_FREEZE_LPTIM4()            SET_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_LPTIM4_STOP)
415 #define __HAL_DBGMCU_UNFREEZE_LPTIM4()          CLEAR_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_LPTIM4_STOP)
416 #endif /* DBGMCU_APB3FZR_DBG_LPTIM4_STOP */
417 
418 #if defined(DBGMCU_APB3FZR_DBG_RTC_STOP)
419 #define __HAL_DBGMCU_FREEZE_RTC()               SET_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_RTC_STOP)
420 #define __HAL_DBGMCU_UNFREEZE_RTC()             CLEAR_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_RTC_STOP)
421 #endif /* DBGMCU_APB3FZR_DBG_RTC_STOP */
422 
423 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA0_STOP)
424 #define __HAL_DBGMCU_FREEZE_GPDMA0()            SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA0_STOP)
425 #define __HAL_DBGMCU_UNFREEZE_GPDMA0()          CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA0_STOP)
426 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA0_STOP */
427 
428 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA1_STOP)
429 #define __HAL_DBGMCU_FREEZE_GPDMA1()            SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_STOP)
430 #define __HAL_DBGMCU_UNFREEZE_GPDMA1()          CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_STOP)
431 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA1_STOP */
432 
433 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA2_STOP)
434 #define __HAL_DBGMCU_FREEZE_GPDMA2()            SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_STOP)
435 #define __HAL_DBGMCU_UNFREEZE_GPDMA2()          CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_STOP)
436 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA2_STOP */
437 
438 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA3_STOP)
439 #define __HAL_DBGMCU_FREEZE_GPDMA3()            SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA3_STOP)
440 #define __HAL_DBGMCU_UNFREEZE_GPDMA3()          CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA3_STOP)
441 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA3_STOP */
442 
443 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA4_STOP)
444 #define __HAL_DBGMCU_FREEZE_GPDMA4()            SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA4_STOP)
445 #define __HAL_DBGMCU_UNFREEZE_GPDMA4()          CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA4_STOP)
446 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA4_STOP */
447 
448 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA5_STOP)
449 #define __HAL_DBGMCU_FREEZE_GPDMA5()            SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA5_STOP)
450 #define __HAL_DBGMCU_UNFREEZE_GPDMA5()          CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA5_STOP)
451 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA5_STOP */
452 
453 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA6_STOP)
454 #define __HAL_DBGMCU_FREEZE_GPDMA6()            SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA6_STOP)
455 #define __HAL_DBGMCU_UNFREEZE_GPDMA6()          CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA6_STOP)
456 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA6_STOP */
457 
458 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA7_STOP)
459 #define __HAL_DBGMCU_FREEZE_GPDMA7()            SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA7_STOP)
460 #define __HAL_DBGMCU_UNFREEZE_GPDMA7()          CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA7_STOP)
461 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA7_STOP */
462 
463 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA8_STOP)
464 #define __HAL_DBGMCU_FREEZE_GPDMA8()            SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA8_STOP)
465 #define __HAL_DBGMCU_UNFREEZE_GPDMA8()          CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA8_STOP)
466 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA8_STOP */
467 
468 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA9_STOP)
469 #define __HAL_DBGMCU_FREEZE_GPDMA9()            SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA9_STOP)
470 #define __HAL_DBGMCU_UNFREEZE_GPDMA9()          CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA9_STOP)
471 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA9_STOP */
472 
473 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA10_STOP)
474 #define __HAL_DBGMCU_FREEZE_GPDMA10()           SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA10_STOP)
475 #define __HAL_DBGMCU_UNFREEZE_GPDMA10()         CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA10_STOP)
476 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA10_STOP */
477 
478 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA11_STOP)
479 #define __HAL_DBGMCU_FREEZE_GPDMA11()           SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA11_STOP)
480 #define __HAL_DBGMCU_UNFREEZE_GPDMA11()         CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA11_STOP)
481 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA11_STOP */
482 
483 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA12_STOP)
484 #define __HAL_DBGMCU_FREEZE_GPDMA12()           SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA12_STOP)
485 #define __HAL_DBGMCU_UNFREEZE_GPDMA12()         CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA12_STOP)
486 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA12_STOP */
487 
488 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA13_STOP)
489 #define __HAL_DBGMCU_FREEZE_GPDMA13()           SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA13_STOP)
490 #define __HAL_DBGMCU_UNFREEZE_GPDMA13()         CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA13_STOP)
491 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA13_STOP */
492 
493 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA14_STOP)
494 #define __HAL_DBGMCU_FREEZE_GPDMA14()           SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA14_STOP)
495 #define __HAL_DBGMCU_UNFREEZE_GPDMA14()         CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA14_STOP)
496 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA14_STOP */
497 
498 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA15_STOP)
499 #define __HAL_DBGMCU_FREEZE_GPDMA15()           SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA15_STOP)
500 #define __HAL_DBGMCU_UNFREEZE_GPDMA15()         CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA15_STOP)
501 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA15_STOP */
502 
503 #if defined(DBGMCU_AHB3FZR_DBG_LPDMA0_STOP)
504 #define __HAL_DBGMCU_FREEZE_LPDMA0()            SET_BIT(DBGMCU->AHB3FZR, DBGMCU_AHB3FZR_DBG_LPDMA0_STOP)
505 #define __HAL_DBGMCU_UNFREEZE_LPDMA0()          CLEAR_BIT(DBGMCU->AHB3FZR, DBGMCU_AHB3FZR_DBG_LPDMA0_STOP)
506 #endif /* DBGMCU_AHB3FZR_DBG_LPDMA0_STOP */
507 
508 #if defined(DBGMCU_AHB3FZR_DBG_LPDMA1_STOP)
509 #define __HAL_DBGMCU_FREEZE_LPDMA1()            SET_BIT(DBGMCU->AHB3FZR, DBGMCU_AHB3FZR_DBG_LPDMA1_STOP)
510 #define __HAL_DBGMCU_UNFREEZE_LPDMA1()          CLEAR_BIT(DBGMCU->AHB3FZR, DBGMCU_AHB3FZR_DBG_LPDMA1_STOP)
511 #endif /* DBGMCU_AHB3FZR_DBG_LPDMA1_STOP */
512 
513 #if defined(DBGMCU_AHB3FZR_DBG_LPDMA2_STOP)
514 #define __HAL_DBGMCU_FREEZE_LPDMA2()            SET_BIT(DBGMCU->AHB3FZR, DBGMCU_AHB3FZR_DBG_LPDMA2_STOP)
515 #define __HAL_DBGMCU_UNFREEZE_LPDMA2()          CLEAR_BIT(DBGMCU->AHB3FZR, DBGMCU_AHB3FZR_DBG_LPDMA2_STOP)
516 #endif /* DBGMCU_AHB3FZR_DBG_LPDMA2_STOP */
517 
518 #if defined(DBGMCU_AHB3FZR_DBG_LPDMA3_STOP)
519 #define __HAL_DBGMCU_FREEZE_LPDMA3()            SET_BIT(DBGMCU->AHB3FZR, DBGMCU_AHB3FZR_DBG_LPDMA3_STOP)
520 #define __HAL_DBGMCU_UNFREEZE_LPDMA3()          CLEAR_BIT(DBGMCU->AHB3FZR, DBGMCU_AHB3FZR_DBG_LPDMA3_STOP)
521 #endif /* DBGMCU_AHB3FZR_DBG_LPDMA3_STOP */
522 
523 /**
524   * @}
525   */
526 
527 /** @defgroup SYSCFG_Exported_Macros SYSCFG Exported Macros
528   * @{
529   */
530 
531 /** @brief  Floating Point Unit interrupt enable/disable macros
532   * @param __INTERRUPT__: This parameter can be a value of @ref SYSCFG_FPU_Interrupts
533   */
534 #define __HAL_SYSCFG_FPU_INTERRUPT_ENABLE(__INTERRUPT__)    do {assert_param(IS_SYSCFG_FPU_INTERRUPT((__INTERRUPT__)));\
535                                                                  SET_BIT(SYSCFG->FPUIMR, (__INTERRUPT__));\
536                                                                }while(0)
537 
538 #define __HAL_SYSCFG_FPU_INTERRUPT_DISABLE(__INTERRUPT__)   do {assert_param(IS_SYSCFG_FPU_INTERRUPT((__INTERRUPT__)));\
539                                                                  CLEAR_BIT(SYSCFG->FPUIMR, (__INTERRUPT__));\
540                                                                }while(0)
541 
542 /** @brief  SYSCFG Break ECC lock.
543   *         Enable and lock the connection of Flash ECC error connection to TIM1/8/15/16/17 Break input.
544   * @note   The selected configuration is locked and can be unlocked only by system reset.
545   */
546 #define __HAL_SYSCFG_BREAK_ECC_LOCK()        SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_ECCL)
547 
548 /** @brief  SYSCFG Break Cortex-M33 Lockup lock.
549   *         Enable and lock the connection of Cortex-M33 LOCKUP (Hardfault) output to TIM1/8/15/16/17 Break input.
550   * @note   The selected configuration is locked and can be unlocked only by system reset.
551   */
552 #define __HAL_SYSCFG_BREAK_LOCKUP_LOCK()     SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_CLL)
553 
554 /** @brief  SYSCFG Break PVD lock.
555   *         Enable and lock the PVD connection to Timer1/8/15/16/17 Break input, as well as the PVDE and PLS[2:0] in
556   *         the PWR_CR2 register.
557   * @note   The selected configuration is locked and can be unlocked only by system reset.
558   */
559 #define __HAL_SYSCFG_BREAK_PVD_LOCK()        SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_PVDL)
560 
561 /** @brief  SYSCFG Break SRAM2 parity lock.
562   *         Enable and lock the SRAM2 parity error signal connection to TIM1/8/15/16/17 Break input.
563   * @note   The selected configuration is locked and can be unlocked by system reset.
564   */
565 #define __HAL_SYSCFG_BREAK_SRAM2PARITY_LOCK()  SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_SPL)
566 
567 /** @brief  Check SYSCFG flag is set or not.
568   * @param  __FLAG__: specifies the flag to check.
569   *         This parameter can be one of the following values:
570   *            @arg @ref SYSCFG_FLAG_SRAM2_PE   SRAM2 Parity Error Flag
571   *            @arg @ref SYSCFG_FLAG_SRAM2_BUSY SRAM2 Erase Ongoing
572   * @retval The new state of __FLAG__ (TRUE or FALSE).
573   */
574 #define __HAL_SYSCFG_GET_FLAG(__FLAG__)      ((((((__FLAG__) == SYSCFG_SCSR_SRAM2BSY)? SYSCFG->SCSR : SYSCFG->CFGR2)\
575                                                 & (__FLAG__))!= 0) ? 1 : 0)
576 
577 /** @brief  Set the SPF bit to clear the SRAM Parity Error Flag.
578   */
579 #define __HAL_SYSCFG_CLEAR_FLAG()            SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_SPF)
580 
581 /** @brief  Fast-mode Plus driving capability enable/disable macros
582   * @param __FASTMODEPLUS__: This parameter can be a value of :
583   *     @arg @ref SYSCFG_FASTMODEPLUS_PB6 Fast-mode Plus driving capability activation on PB6
584   *     @arg @ref SYSCFG_FASTMODEPLUS_PB7 Fast-mode Plus driving capability activation on PB7
585   *     @arg @ref SYSCFG_FASTMODEPLUS_PB8 Fast-mode Plus driving capability activation on PB8
586   *     @arg @ref SYSCFG_FASTMODEPLUS_PB9 Fast-mode Plus driving capability activation on PB9
587   */
588 #define __HAL_SYSCFG_FASTMODEPLUS_ENABLE(__FASTMODEPLUS__) \
589   do {assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\
590     SET_BIT(SYSCFG->CFGR1, (__FASTMODEPLUS__));\
591   }while(0)
592 
593 #define __HAL_SYSCFG_FASTMODEPLUS_DISABLE(__FASTMODEPLUS__) \
594   do {assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\
595     CLEAR_BIT(SYSCFG->CFGR1, (__FASTMODEPLUS__));\
596   }while(0)
597 
598 /**
599   * @}
600   */
601 
602 /* Private macros ------------------------------------------------------------*/
603 
604 /** @defgroup SYSCFG_Private_Macros SYSCFG Private Macros
605   * @{
606   */
607 
608 #define IS_SYSCFG_FPU_INTERRUPT(__INTERRUPT__) ((((__INTERRUPT__) & SYSCFG_IT_FPU_IOC) == SYSCFG_IT_FPU_IOC) || \
609                                                 (((__INTERRUPT__) & SYSCFG_IT_FPU_DZC) == SYSCFG_IT_FPU_DZC) || \
610                                                 (((__INTERRUPT__) & SYSCFG_IT_FPU_UFC) == SYSCFG_IT_FPU_UFC) || \
611                                                 (((__INTERRUPT__) & SYSCFG_IT_FPU_OFC) == SYSCFG_IT_FPU_OFC) || \
612                                                 (((__INTERRUPT__) & SYSCFG_IT_FPU_IDC) == SYSCFG_IT_FPU_IDC) || \
613                                                 (((__INTERRUPT__) & SYSCFG_IT_FPU_IXC) == SYSCFG_IT_FPU_IXC))
614 
615 #define IS_SYSCFG_BREAK_CONFIG(__CONFIG__) (((__CONFIG__) == SYSCFG_BREAK_ECC)           || \
616                                             ((__CONFIG__) == SYSCFG_BREAK_PVD)           || \
617                                             ((__CONFIG__) == SYSCFG_BREAK_SRAM2_PARITY)  || \
618                                             ((__CONFIG__) == SYSCFG_BREAK_LOCKUP))
619 
620 #define IS_SYSCFG_VREFBUF_VOLTAGE_SCALE(__SCALE__)  (((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE0) || \
621                                                      ((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE1) || \
622                                                      ((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE2) || \
623                                                      ((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE3))
624 
625 #define IS_SYSCFG_VREFBUF_HIGH_IMPEDANCE(__VALUE__)  (((__VALUE__) == SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE) || \
626                                                       ((__VALUE__) == SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE))
627 
628 #define IS_SYSCFG_VREFBUF_TRIMMING(__VALUE__)  (((__VALUE__) > 0U) && ((__VALUE__) <= VREFBUF_CCR_TRIM))
629 
630 #define IS_SYSCFG_FASTMODEPLUS(__PIN__) ((((__PIN__) & SYSCFG_FASTMODEPLUS_PB6) == SYSCFG_FASTMODEPLUS_PB6) || \
631                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7) == SYSCFG_FASTMODEPLUS_PB7) || \
632                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB8) == SYSCFG_FASTMODEPLUS_PB8) || \
633                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB9) == SYSCFG_FASTMODEPLUS_PB9))
634 
635 #if defined(SYSCFG_CFGR1_ENDCAP)
636 #define IS_SYSCFG_DECOUPLING_CAPACITANCE(__CAPA__) (((__CAPA__) == SYSCFG_HSPI_CAPACITANCE_OFF)     || \
637                                                     ((__CAPA__) == SYSCFG_HSPI_CAPACITANCE_1_DIV_3) || \
638                                                     ((__CAPA__) == SYSCFG_HSPI_CAPACITANCE_2_DIV_3) || \
639                                                     ((__CAPA__) == SYSCFG_HSPI_CAPACITANCE_FULL))
640 #endif /* SYSCFG_CFGR1_ENDCAP */
641 
642 #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U)
643 #define IS_SYSCFG_ATTRIBUTES(__ATTRIBUTES__) (((__ATTRIBUTES__) == SYSCFG_SEC)  ||\
644                                               ((__ATTRIBUTES__) == SYSCFG_NSEC))
645 
646 #define IS_SYSCFG_ITEMS_ATTRIBUTES(__ITEM__) ((((__ITEM__) & SYSCFG_CLK)    == SYSCFG_CLK)    || \
647                                               (((__ITEM__) & SYSCFG_CLASSB) == SYSCFG_CLASSB) || \
648                                               (((__ITEM__) & SYSCFG_FPU)    == SYSCFG_FPU)    || \
649                                               (((__ITEM__) & ~(SYSCFG_ALL)) == 0U))
650 
651 #define IS_SYSCFG_LOCK_ITEMS(__ITEM__) ((((__ITEM__) & SYSCFG_MPU_NSEC)       == SYSCFG_MPU_NSEC)       || \
652                                         (((__ITEM__) & SYSCFG_VTOR_NSEC)      == SYSCFG_VTOR_NSEC)      || \
653                                         (((__ITEM__) & SYSCFG_SAU)            == SYSCFG_SAU)            || \
654                                         (((__ITEM__) & SYSCFG_MPU_SEC)        == SYSCFG_MPU_SEC)        || \
655                                         (((__ITEM__) & SYSCFG_VTOR_AIRCR_SEC) == SYSCFG_VTOR_AIRCR_SEC) || \
656                                         (((__ITEM__) & ~(SYSCFG_LOCK_ALL)) == 0U))
657 
658 #else
659 
660 #define IS_SYSCFG_LOCK_ITEMS(__ITEM__) ((((__ITEM__) & SYSCFG_MPU_NSEC)  == SYSCFG_MPU_NSEC)    || \
661                                         (((__ITEM__) & SYSCFG_VTOR_NSEC) == SYSCFG_VTOR_NSEC)   || \
662                                         (((__ITEM__) & ~(SYSCFG_LOCK_ALL)) == 0U))
663 #endif /* __ARM_FEATURE_CMSE */
664 
665 #if defined SYSCFG_OTGHSPHYCR_EN
666 #define IS_SYSCFG_OTGPHY_REFERENCE_CLOCK(__VALUE__)   (((__VALUE__) == SYSCFG_OTG_HS_PHY_CLK_SELECT_1) || \
667                                                        ((__VALUE__) == SYSCFG_OTG_HS_PHY_CLK_SELECT_2) || \
668                                                        ((__VALUE__) == SYSCFG_OTG_HS_PHY_CLK_SELECT_3) || \
669                                                        ((__VALUE__) == SYSCFG_OTG_HS_PHY_CLK_SELECT_4) || \
670                                                        ((__VALUE__) == SYSCFG_OTG_HS_PHY_CLK_SELECT_5) || \
671                                                        ((__VALUE__) == SYSCFG_OTG_HS_PHY_CLK_SELECT_6))
672 
673 #define IS_SYSCFG_OTGPHY_POWERDOWN_CONFIG(__VALUE__)  (((__VALUE__) == SYSCFG_OTG_HS_PHY_POWER_DOWN) || \
674                                                        ((__VALUE__) == SYSCFG_OTG_HS_PHY_POWER_ON))
675 
676 #define IS_SYSCFG_OTGPHY_CONFIG(__VALUE__)            (((__VALUE__) == SYSCFG_OTG_HS_PHY_UNDERRESET) || \
677                                                        ((__VALUE__) == SYSCFG_OTG_HS_PHY_ENABLE))
678 
679 #define IS_SYSCFG_OTGPHY_DISCONNECT(__VALUE__)        (((__VALUE__) == SYSCFG_OTG_HS_PHY_DISCONNECT_5_9PERCENT) || \
680                                                        ((__VALUE__) == SYSCFG_OTG_HS_PHY_DISCONNECT_0PERCENT))
681 
682 #define IS_SYSCFG_OTGPHY_SQUELCH(__VALUE__)           (((__VALUE__) == SYSCFG_OTG_HS_PHY_SQUELCH_0PERCENT) || \
683                                                        ((__VALUE__) == SYSCFG_OTG_HS_PHY_SQUELCH_15PERCENT))
684 
685 #define IS_SYSCFG_OTGPHY_PREEMPHASIS(__VALUE__)       (((__VALUE__) == SYSCFG_OTG_HS_PHY_PREEMP_DISABLED) || \
686                                                        ((__VALUE__) == SYSCFG_OTG_HS_PHY_PREEMP_1X) || \
687                                                        ((__VALUE__) == SYSCFG_OTG_HS_PHY_PREEMP_2X) || \
688                                                        ((__VALUE__) == SYSCFG_OTG_HS_PHY_PREEMP_3X))
689 #endif /* SYSCFG_OTGHSPHYCR_EN */
690 
691 /**
692   * @}
693   */
694 
695 /** @defgroup HAL_Private_Macros HAL Private Macros
696   * @{
697   */
698 #define IS_TICKFREQ(FREQ) (((FREQ) == HAL_TICK_FREQ_10HZ)  || \
699                            ((FREQ) == HAL_TICK_FREQ_100HZ) || \
700                            ((FREQ) == HAL_TICK_FREQ_1KHZ))
701 /**
702   * @}
703   */
704 
705 /* Exported functions --------------------------------------------------------*/
706 
707 /** @addtogroup HAL_Exported_Functions HAL Exported Functions
708   * @{
709   */
710 
711 /** @addtogroup HAL_Exported_Functions_Group1 HAL Initialization and de-initialization Functions
712   * @{
713   */
714 
715 /* Initialization and de-initialization functions  ******************************/
716 HAL_StatusTypeDef HAL_Init(void);
717 HAL_StatusTypeDef HAL_DeInit(void);
718 void HAL_MspInit(void);
719 void HAL_MspDeInit(void);
720 HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority);
721 
722 /**
723   * @}
724   */
725 
726 /** @addtogroup HAL_Exported_Functions_Group2 HAL Control functions
727   * @{
728   */
729 
730 /* Peripheral Control functions  ************************************************/
731 void HAL_IncTick(void);
732 void HAL_Delay(uint32_t Delay);
733 uint32_t HAL_GetTick(void);
734 uint32_t HAL_GetTickPrio(void);
735 HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq);
736 HAL_TickFreqTypeDef HAL_GetTickFreq(void);
737 void HAL_SuspendTick(void);
738 void HAL_ResumeTick(void);
739 uint32_t HAL_GetHalVersion(void);
740 uint32_t HAL_GetREVID(void);
741 uint32_t HAL_GetDEVID(void);
742 uint32_t HAL_GetUIDw0(void);
743 uint32_t HAL_GetUIDw1(void);
744 uint32_t HAL_GetUIDw2(void);
745 
746 /**
747   * @}
748   */
749 
750 /** @addtogroup HAL_Exported_Functions_Group3 HAL Debug functions
751   * @{
752   */
753 
754 /* DBGMCU Peripheral Control functions  *****************************************/
755 void HAL_DBGMCU_EnableDBGStopMode(void);
756 void HAL_DBGMCU_DisableDBGStopMode(void);
757 void HAL_DBGMCU_EnableDBGStandbyMode(void);
758 void HAL_DBGMCU_DisableDBGStandbyMode(void);
759 
760 /**
761   * @}
762   */
763 
764 /** @addtogroup HAL_Exported_Functions_Group4 HAL SYSCFG configuration functions
765   * @{
766   */
767 
768 /* SYSCFG Control functions  ****************************************************/
769 void HAL_SYSCFG_VREFBUF_VoltageScalingConfig(uint32_t VoltageScaling);
770 void HAL_SYSCFG_VREFBUF_HighImpedanceConfig(uint32_t Mode);
771 void HAL_SYSCFG_VREFBUF_TrimmingConfig(uint32_t TrimmingValue);
772 HAL_StatusTypeDef HAL_SYSCFG_EnableVREFBUF(void);
773 void HAL_SYSCFG_DisableVREFBUF(void);
774 #ifdef SYSCFG_OTGHSPHYCR_EN
775 void HAL_SYSCFG_SetOTGPHYReferenceClockSelection(uint32_t RefClkSelection);
776 void HAL_SYSCFG_SetOTGPHYPowerDownConfig(uint32_t PowerDownConfig);
777 void HAL_SYSCFG_EnableOTGPHY(uint32_t OTGPHYConfig);
778 void HAL_SYSCFG_SetOTGPHYDisconnectThreshold(uint32_t DisconnectThreshold);
779 void HAL_SYSCFG_SetOTGPHYSquelchThreshold(uint32_t SquelchThreshold);
780 void HAL_SYSCFG_SetOTGPHYPreemphasisCurrent(uint32_t PreemphasisCurrent);
781 #endif /* SYSCFG_OTGHSPHYCR_EN */
782 void HAL_SYSCFG_EnableIOAnalogBooster(void);
783 void HAL_SYSCFG_DisableIOAnalogBooster(void);
784 void HAL_SYSCFG_EnableIOAnalogVoltageSelection(void);
785 void HAL_SYSCFG_DisableIOAnalogVoltageSelection(void);
786 #if defined(SYSCFG_CFGR1_ENDCAP)
787 void HAL_SYSCFG_SetHSPIDecouplingCapacitance(uint32_t Capacitance);
788 uint32_t HAL_SYSCFG_GetHSPIDecouplingCapacitance(void);
789 #endif /* SYSCFG_CFGR1_ENDCAP */
790 void HAL_SYSCFG_EnableSRAMCached(void);
791 void HAL_SYSCFG_DisableSRAMCached(void);
792 void HAL_SYSCFG_EnableVddCompensationCell(void);
793 void HAL_SYSCFG_EnableVddIO2CompensationCell(void);
794 #if defined(SYSCFG_CCCSR_EN3)
795 void HAL_SYSCFG_EnableVddHSPICompensationCell(void);
796 #endif /* SYSCFG_CCCSR_EN3 */
797 void HAL_SYSCFG_DisableVddCompensationCell(void);
798 void HAL_SYSCFG_DisableVddIO2CompensationCell(void);
799 #if defined(SYSCFG_CCCSR_EN3)
800 void HAL_SYSCFG_DisableVddHSPICompensationCell(void);
801 #endif /* SYSCFG_CCCSR_EN3 */
802 /**
803   * @}
804   */
805 
806 /** @addtogroup HAL_Exported_Functions_Group5 HAL SYSCFG lock management functions
807   * @{
808   */
809 
810 /* SYSCFG Lock functions ********************************************/
811 void              HAL_SYSCFG_Lock(uint32_t Item);
812 HAL_StatusTypeDef HAL_SYSCFG_GetLock(uint32_t *pItem);
813 
814 /**
815   * @}
816   */
817 
818 #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U)
819 
820 /** @addtogroup HAL_Exported_Functions_Group6 HAL SYSCFG attributes management functions
821   * @{
822   */
823 
824 /* SYSCFG Attributes functions ********************************************/
825 void              HAL_SYSCFG_ConfigAttributes(uint32_t Item, uint32_t Attributes);
826 HAL_StatusTypeDef HAL_SYSCFG_GetConfigAttributes(uint32_t Item, uint32_t *pAttributes);
827 
828 /**
829   * @}
830   */
831 
832 #endif /* __ARM_FEATURE_CMSE */
833 
834 /**
835   * @}
836   */
837 
838 /**
839   * @}
840   */
841 
842 /**
843   * @}
844   */
845 
846 #ifdef __cplusplus
847 }
848 #endif
849 
850 #endif /* __STM32U5xx_HAL_H */
851