1 /**
2   *******************************************************************************************************
3   * @file    fm33lc0xx_fl_rcc.h
4   * @author  FMSH Application Team
5   * @brief   Head file of RCC FL Module
6   *******************************************************************************************************
7   * @attention
8   *
9   * Copyright (c) [2021] [Fudan Microelectronics]
10   * THIS SOFTWARE is licensed under Mulan PSL v2.
11   * You can use this software according to the terms and conditions of the Mulan PSL v2.
12   * You may obtain a copy of Mulan PSL v2 at:
13   *          http://license.coscl.org.cn/MulanPSL2
14   * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
15   * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
16   * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
17   * See the Mulan PSL v2 for more details.
18   *
19   *******************************************************************************************************
20   */
21 
22 
23 /* Define to prevent recursive inclusion---------------------------------------------------------------*/
24 #ifndef __FM33LC0XX_FL_RCC_H
25 #define __FM33LC0XX_FL_RCC_H
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 /* Includes -------------------------------------------------------------------------------------------*/
31 #include "fm33lc0xx_fl_def.h"
32 /** @addtogroup FM33LC0XX_FL_Driver
33   * @{
34   */
35 
36 /** @defgroup RCC RCC
37   * @brief RCC FL driver
38   * @{
39   */
40 
41 /* Exported types -------------------------------------------------------------------------------------*/
42 /** @defgroup RCC_FL_ES_INIT RCC Exported Init structures
43   * @{
44   */
45 
46 /**
47   * @}
48   */
49 /* Exported constants ---------------------------------------------------------------------------------*/
50 /** @defgroup RCC_FL_Exported_Constants RCC Exported Constants
51   * @{
52   */
53 
54 #define    FDET_IER_HFDET_IE_Pos                                  (1U)
55 #define    FDET_IER_HFDET_IE_Msk                                  (0x1U << FDET_IER_HFDET_IE_Pos)
56 #define    FDET_IER_HFDET_IE                                      FDET_IER_HFDET_IE_Msk
57 
58 #define    FDET_IER_LFDET_IE_Pos                                  (0U)
59 #define    FDET_IER_LFDET_IE_Msk                                  (0x1U << FDET_IER_LFDET_IE_Pos)
60 #define    FDET_IER_LFDET_IE                                      FDET_IER_LFDET_IE_Msk
61 
62 #define    FDET_ISR_HFDETO_Pos                                    (9U)
63 #define    FDET_ISR_HFDETO_Msk                                    (0x1U << FDET_ISR_HFDETO_Pos)
64 #define    FDET_ISR_HFDETO                                        FDET_ISR_HFDETO_Msk
65 
66 #define    FDET_ISR_LFDETO_Pos                                    (8U)
67 #define    FDET_ISR_LFDETO_Msk                                    (0x1U << FDET_ISR_LFDETO_Pos)
68 #define    FDET_ISR_LFDETO                                        FDET_ISR_LFDETO_Msk
69 
70 #define    FDET_ISR_HFDETIF_Pos                                   (1U)
71 #define    FDET_ISR_HFDETIF_Msk                                   (0x1U << FDET_ISR_HFDETIF_Pos)
72 #define    FDET_ISR_HFDETIF                                       FDET_ISR_HFDETIF_Msk
73 
74 #define    FDET_ISR_LFDETIF_Pos                                   (0U)
75 #define    FDET_ISR_LFDETIF_Msk                                   (0x1U << FDET_ISR_LFDETIF_Pos)
76 #define    FDET_ISR_LFDETIF                                       FDET_ISR_LFDETIF_Msk
77 
78 #define    RCC_SYSCLKCR_LSCATS_Pos                                (27U)
79 #define    RCC_SYSCLKCR_LSCATS_Msk                                (0x1U << RCC_SYSCLKCR_LSCATS_Pos)
80 #define    RCC_SYSCLKCR_LSCATS                                    RCC_SYSCLKCR_LSCATS_Msk
81 
82 #define    RCC_SYSCLKCR_SLP_ENEXTI_Pos                            (25U)
83 #define    RCC_SYSCLKCR_SLP_ENEXTI_Msk                            (0x1U << RCC_SYSCLKCR_SLP_ENEXTI_Pos)
84 #define    RCC_SYSCLKCR_SLP_ENEXTI                                RCC_SYSCLKCR_SLP_ENEXTI_Msk
85 
86 #define    RCC_SYSCLKCR_APBPRES2_Pos                              (19U)
87 #define    RCC_SYSCLKCR_APBPRES2_Msk                              (0x7U << RCC_SYSCLKCR_APBPRES2_Pos)
88 #define    RCC_SYSCLKCR_APBPRES2                                  RCC_SYSCLKCR_APBPRES2_Msk
89 
90 #define    RCC_SYSCLKCR_APBPRES1_Pos                              (16U)
91 #define    RCC_SYSCLKCR_APBPRES1_Msk                              (0x7U << RCC_SYSCLKCR_APBPRES1_Pos)
92 #define    RCC_SYSCLKCR_APBPRES1                                  RCC_SYSCLKCR_APBPRES1_Msk
93 
94 #define    RCC_SYSCLKCR_AHBPRES_Pos                               (8U)
95 #define    RCC_SYSCLKCR_AHBPRES_Msk                               (0x7U << RCC_SYSCLKCR_AHBPRES_Pos)
96 #define    RCC_SYSCLKCR_AHBPRES                                   RCC_SYSCLKCR_AHBPRES_Msk
97 
98 #define    RCC_SYSCLKCR_STCLKSEL_Pos                              (6U)
99 #define    RCC_SYSCLKCR_STCLKSEL_Msk                              (0x3U << RCC_SYSCLKCR_STCLKSEL_Pos)
100 #define    RCC_SYSCLKCR_STCLKSEL                                  RCC_SYSCLKCR_STCLKSEL_Msk
101 
102 #define    RCC_SYSCLKCR_BCKOSEL_Pos                               (3U)
103 #define    RCC_SYSCLKCR_BCKOSEL_Msk                               (0x1U << RCC_SYSCLKCR_BCKOSEL_Pos)
104 #define    RCC_SYSCLKCR_BCKOSEL                                   RCC_SYSCLKCR_BCKOSEL_Msk
105 
106 #define    RCC_SYSCLKCR_SYSCLKSEL_Pos                             (0U)
107 #define    RCC_SYSCLKCR_SYSCLKSEL_Msk                             (0x7U << RCC_SYSCLKCR_SYSCLKSEL_Pos)
108 #define    RCC_SYSCLKCR_SYSCLKSEL                                 RCC_SYSCLKCR_SYSCLKSEL_Msk
109 
110 #define    RCC_RCHFCR_FSEL_Pos                                    (16U)
111 #define    RCC_RCHFCR_FSEL_Msk                                    (0xfU << RCC_RCHFCR_FSEL_Pos)
112 #define    RCC_RCHFCR_FSEL                                        RCC_RCHFCR_FSEL_Msk
113 
114 #define    RCC_RCHFCR_EN_Pos                                      (0U)
115 #define    RCC_RCHFCR_EN_Msk                                      (0x1U << RCC_RCHFCR_EN_Pos)
116 #define    RCC_RCHFCR_EN                                          RCC_RCHFCR_EN_Msk
117 
118 #define    RCC_RCMFTR_TRIM_Pos                                    (0U)
119 #define    RCC_RCMFTR_TRIM_Msk                                    (0x7fU << RCC_RCMFTR_TRIM_Pos)
120 #define    RCC_RCMFTR_TRIM                                        RCC_RCMFTR_TRIM_Msk
121 
122 #define    RCC_PLLCR_EN_Pos                                       (0U)
123 #define    RCC_PLLCR_EN_Msk                                       (0x1U << RCC_PLLCR_EN_Pos)
124 #define    RCC_PLLCR_EN                                           RCC_PLLCR_EN_Msk
125 
126 #define    RCC_PLLCR_LOCKED_Pos                                   (7U)
127 #define    RCC_PLLCR_LOCKED_Msk                                   (0x1U << RCC_PLLCR_LOCKED_Pos)
128 #define    RCC_PLLCR_LOCKED                                       RCC_PLLCR_LOCKED_Msk
129 
130 #define    RCC_PLLCR_INSEL_Pos                                    (1U)
131 #define    RCC_PLLCR_INSEL_Msk                                    (0x1U << RCC_PLLCR_INSEL_Pos)
132 #define    RCC_PLLCR_INSEL                                        RCC_PLLCR_INSEL_Msk
133 
134 #define    RCC_PLLCR_DB_Pos                                       (16U)
135 #define    RCC_PLLCR_DB_Msk                                       (0x7fU << RCC_PLLCR_DB_Pos)
136 #define    RCC_PLLCR_DB                                           RCC_PLLCR_DB_Msk
137 
138 #define    RCC_PLLCR_REFPRSC_Pos                                  (4U)
139 #define    RCC_PLLCR_REFPRSC_Msk                                  (0x7U << RCC_PLLCR_REFPRSC_Pos)
140 #define    RCC_PLLCR_REFPRSC                                      RCC_PLLCR_REFPRSC_Msk
141 
142 #define    RCC_PLLCR_OSEL_Pos                                     (3U)
143 #define    RCC_PLLCR_OSEL_Msk                                     (0x1U << RCC_PLLCR_OSEL_Pos)
144 #define    RCC_PLLCR_OSEL                                         RCC_PLLCR_OSEL_Msk
145 
146 #define    RCC_LPOSCCR_LPOENB_Pos                                 (1U)
147 #define    RCC_LPOSCCR_LPOENB_Msk                                 (0x1U << RCC_LPOSCCR_LPOENB_Pos)
148 #define    RCC_LPOSCCR_LPOENB                                     RCC_LPOSCCR_LPOENB_Msk
149 
150 #define    RCC_LPOSCCR_LPM_LPO_OFF_Pos                            (0U)
151 #define    RCC_LPOSCCR_LPM_LPO_OFF_Msk                            (0x1U << RCC_LPOSCCR_LPM_LPO_OFF_Pos)
152 #define    RCC_LPOSCCR_LPM_LPO_OFF                                RCC_LPOSCCR_LPM_LPO_OFF_Msk
153 
154 #define    RCC_LPOSCCR_LPO_CHOP_EN_Pos                            (2U)
155 #define    RCC_LPOSCCR_LPO_CHOP_EN_Msk                            (0x1U << RCC_LPOSCCR_LPO_CHOP_EN_Pos)
156 #define    RCC_LPOSCCR_LPO_CHOP_EN                                RCC_LPOSCCR_LPO_CHOP_EN_Msk
157 
158 #define    RCC_LPOSCTR_TRIM_Pos                                   (0U)
159 #define    RCC_LPOSCTR_TRIM_Msk                                   (0xffU << RCC_LPOSCTR_TRIM_Pos)
160 #define    RCC_LPOSCTR_TRIM                                       RCC_LPOSCTR_TRIM_Msk
161 
162 #define    RCC_XTLFCR_EN_Pos                                      (8U)
163 #define    RCC_XTLFCR_EN_Msk                                      (0xfU << RCC_XTLFCR_EN_Pos)
164 #define    RCC_XTLFCR_EN                                          RCC_XTLFCR_EN_Msk
165 
166 #define    RCC_XTLFCR_IPW_Pos                                     (0U)
167 #define    RCC_XTLFCR_IPW_Msk                                     (0x7U << RCC_XTLFCR_IPW_Pos)
168 #define    RCC_XTLFCR_IPW                                         RCC_XTLFCR_IPW_Msk
169 
170 #define    RCC_XTHFCR_CFG_Pos                                     (8U)
171 #define    RCC_XTHFCR_CFG_Msk                                     (0x7U << RCC_XTHFCR_CFG_Pos)
172 #define    RCC_XTHFCR_CFG                                         RCC_XTHFCR_CFG_Msk
173 
174 #define    RCC_XTHFCR_EN_Pos                                      (0U)
175 #define    RCC_XTHFCR_EN_Msk                                      (0x1U << RCC_XTHFCR_EN_Pos)
176 #define    RCC_XTHFCR_EN                                          RCC_XTHFCR_EN_Msk
177 
178 #define    RCC_RCMFCR_PSC_Pos                                     (16U)
179 #define    RCC_RCMFCR_PSC_Msk                                     (0x3U << RCC_RCMFCR_PSC_Pos)
180 #define    RCC_RCMFCR_PSC                                         RCC_RCMFCR_PSC_Msk
181 
182 #define    RCC_RCMFCR_EN_Pos                                      (0U)
183 #define    RCC_RCMFCR_EN_Msk                                      (0x1U << RCC_RCMFCR_EN_Pos)
184 #define    RCC_RCMFCR_EN                                          RCC_RCMFCR_EN_Msk
185 
186 #define    RCC_RCHFTR_TRIM_Pos                                    (0U)
187 #define    RCC_RCHFTR_TRIM_Msk                                    (0x7fU << RCC_RCHFTR_TRIM_Pos)
188 #define    RCC_RCHFTR_TRIM                                        RCC_RCHFTR_TRIM_Msk
189 
190 #define    RCC_OPCCR1_EXTICKS_Pos                                 (30U)
191 #define    RCC_OPCCR1_EXTICKS_Msk                                 (0x1U << RCC_OPCCR1_EXTICKS_Pos)
192 #define    RCC_OPCCR1_EXTICKS                                     RCC_OPCCR1_EXTICKS_Msk
193 
194 #define    RCC_OPCCR1_LPUART1CKS_Pos                              (26U)
195 #define    RCC_OPCCR1_LPUART1CKS_Msk                              (0x3U << RCC_OPCCR1_LPUART1CKS_Pos)
196 #define    RCC_OPCCR1_LPUART1CKS                                  RCC_OPCCR1_LPUART1CKS_Msk
197 
198 #define    RCC_OPCCR1_LPUART0CKS_Pos                              (24U)
199 #define    RCC_OPCCR1_LPUART0CKS_Msk                              (0x3U << RCC_OPCCR1_LPUART0CKS_Pos)
200 #define    RCC_OPCCR1_LPUART0CKS                                  RCC_OPCCR1_LPUART0CKS_Msk
201 
202 #define    RCC_OPCCR1_I2CCKS_Pos                                  (16U)
203 #define    RCC_OPCCR1_I2CCKS_Msk                                  (0x3U << RCC_OPCCR1_I2CCKS_Pos)
204 #define    RCC_OPCCR1_I2CCKS                                      RCC_OPCCR1_I2CCKS_Msk
205 
206 #define    RCC_OPCCR1_ATCKS_Pos                                   (6U)
207 #define    RCC_OPCCR1_ATCKS_Msk                                   (0x3U << RCC_OPCCR1_ATCKS_Pos)
208 #define    RCC_OPCCR1_ATCKS                                       RCC_OPCCR1_ATCKS_Msk
209 
210 #define    RCC_OPCCR1_UART1CKS_Pos                                (2U)
211 #define    RCC_OPCCR1_UART1CKS_Msk                                (0x3U << RCC_OPCCR1_UART1CKS_Pos)
212 #define    RCC_OPCCR1_UART1CKS                                    RCC_OPCCR1_UART1CKS_Msk
213 
214 #define    RCC_OPCCR1_UART0CKS_Pos                                (0U)
215 #define    RCC_OPCCR1_UART0CKS_Msk                                (0x3U << RCC_OPCCR1_UART0CKS_Pos)
216 #define    RCC_OPCCR1_UART0CKS                                    RCC_OPCCR1_UART0CKS_Msk
217 
218 #define    RCC_OPCCR2_RNGPRSC_Pos                                 (28U)
219 #define    RCC_OPCCR2_RNGPRSC_Msk                                 (0x7U << RCC_OPCCR2_RNGPRSC_Pos)
220 #define    RCC_OPCCR2_RNGPRSC                                     RCC_OPCCR2_RNGPRSC_Msk
221 
222 #define    RCC_OPCCR2_ADCPRSC_Pos                                 (24U)
223 #define    RCC_OPCCR2_ADCPRSC_Msk                                 (0x7U << RCC_OPCCR2_ADCPRSC_Pos)
224 #define    RCC_OPCCR2_ADCPRSC                                     RCC_OPCCR2_ADCPRSC_Msk
225 
226 #define    RCC_OPCCR2_USBCKS_Pos                                  (18U)
227 #define    RCC_OPCCR2_USBCKS_Msk                                  (0x3U << RCC_OPCCR2_USBCKS_Pos)
228 #define    RCC_OPCCR2_USBCKS                                      RCC_OPCCR2_USBCKS_Msk
229 
230 #define    RCC_OPCCR2_ADCCKS_Pos                                  (16U)
231 #define    RCC_OPCCR2_ADCCKS_Msk                                  (0x3U << RCC_OPCCR2_ADCCKS_Pos)
232 #define    RCC_OPCCR2_ADCCKS                                      RCC_OPCCR2_ADCCKS_Msk
233 
234 #define    RCC_OPCCR2_LPT32CKS_Pos                                (8U)
235 #define    RCC_OPCCR2_LPT32CKS_Msk                                (0x3U << RCC_OPCCR2_LPT32CKS_Pos)
236 #define    RCC_OPCCR2_LPT32CKS                                    RCC_OPCCR2_LPT32CKS_Msk
237 
238 #define    RCC_OPCCR2_BT32CKS_Pos                                 (0U)
239 #define    RCC_OPCCR2_BT32CKS_Msk                                 (0x3U << RCC_OPCCR2_BT32CKS_Pos)
240 #define    RCC_OPCCR2_BT32CKS                                     RCC_OPCCR2_BT32CKS_Msk
241 
242 #define    RCC_AHBMCR_MPRIL_Pos                                   (0U)
243 #define    RCC_AHBMCR_MPRIL_Msk                                   (0x1U << RCC_AHBMCR_MPRIL_Pos)
244 #define    RCC_AHBMCR_MPRIL                                       RCC_AHBMCR_MPRIL_Msk
245 
246 #define    RCC_LSCLKSEL_SEL_Pos                                   (0U)
247 #define    RCC_LSCLKSEL_SEL_Msk                                   (0xffU << RCC_LSCLKSEL_SEL_Pos)
248 #define    RCC_LSCLKSEL_SEL                                       RCC_LSCLKSEL_SEL_Msk
249 
250 #define    RCC_PHYCR_PHYRST_Pos                                   (4U)
251 #define    RCC_PHYCR_PHYRST_Msk                                   (0x1U << RCC_PHYCR_PHYRST_Pos)
252 #define    RCC_PHYCR_PHYRST                                       RCC_PHYCR_PHYRST_Msk
253 
254 #define    RCC_PHYCR_PD_Pos                                       (3U)
255 #define    RCC_PHYCR_PD_Msk                                       (0x1U << RCC_PHYCR_PD_Pos)
256 #define    RCC_PHYCR_PD                                           RCC_PHYCR_PD_Msk
257 
258 #define    RCC_PHYCR_PLVREADY_Pos                                 (2U)
259 #define    RCC_PHYCR_PLVREADY_Msk                                 (0x1U << RCC_PHYCR_PLVREADY_Pos)
260 #define    RCC_PHYCR_PLVREADY                                     RCC_PHYCR_PLVREADY_Msk
261 
262 #define    RCC_PHYCR_BCKPD_Pos                                    (1U)
263 #define    RCC_PHYCR_BCKPD_Msk                                    (0x1U << RCC_PHYCR_BCKPD_Pos)
264 #define    RCC_PHYCR_BCKPD                                        RCC_PHYCR_BCKPD_Msk
265 
266 #define    RCC_PHYCR_BCKRST_Pos                                   (0U)
267 #define    RCC_PHYCR_BCKRST_Msk                                   (0x1U << RCC_PHYCR_BCKRST_Pos)
268 #define    RCC_PHYCR_BCKRST                                       RCC_PHYCR_BCKRST_Msk
269 
270 #define    RCC_PHYBCKCR_CK48M_EN_Pos                              (8U)
271 #define    RCC_PHYBCKCR_CK48M_EN_Msk                              (0x1U << RCC_PHYBCKCR_CK48M_EN_Pos)
272 #define    RCC_PHYBCKCR_CK48M_EN                                  RCC_PHYBCKCR_CK48M_EN_Msk
273 
274 #define    RCC_PHYBCKCR_CLKRDY_Pos                                (7U)
275 #define    RCC_PHYBCKCR_CLKRDY_Msk                                (0x1U << RCC_PHYBCKCR_CLKRDY_Pos)
276 #define    RCC_PHYBCKCR_CLKRDY                                    RCC_PHYBCKCR_CLKRDY_Msk
277 
278 #define    RCC_PHYBCKCR_OUTCLKSEL_Pos                             (0U)
279 #define    RCC_PHYBCKCR_OUTCLKSEL_Msk                             (0x1U << RCC_PHYBCKCR_OUTCLKSEL_Pos)
280 #define    RCC_PHYBCKCR_OUTCLKSEL                                 RCC_PHYBCKCR_OUTCLKSEL_Msk
281 
282 #define    RCC_LKPCR_RST_EN_Pos                                   (1U)
283 #define    RCC_LKPCR_RST_EN_Msk                                   (0x1U << RCC_LKPCR_RST_EN_Pos)
284 #define    RCC_LKPCR_RST_EN                                       RCC_LKPCR_RST_EN_Msk
285 
286 #define    RCC_RSTFR_MDFN_FLAG_Pos                                (12U)
287 #define    RCC_RSTFR_MDFN_FLAG_Msk                                (0x1U << RCC_RSTFR_MDFN_FLAG_Pos)
288 #define    RCC_RSTFR_MDFN_FLAG                                    RCC_RSTFR_MDFN_FLAG_Msk
289 
290 #define    RCC_RSTFR_NRSTN_FLAG_Pos                               (11U)
291 #define    RCC_RSTFR_NRSTN_FLAG_Msk                               (0x1U << RCC_RSTFR_NRSTN_FLAG_Pos)
292 #define    RCC_RSTFR_NRSTN_FLAG                                   RCC_RSTFR_NRSTN_FLAG_Msk
293 
294 #define    RCC_RSTFR_TESTN_FLAG_Pos                               (10U)
295 #define    RCC_RSTFR_TESTN_FLAG_Msk                               (0x1U << RCC_RSTFR_TESTN_FLAG_Pos)
296 #define    RCC_RSTFR_TESTN_FLAG                                   RCC_RSTFR_TESTN_FLAG_Msk
297 
298 #define    RCC_RSTFR_PORN_FLAG_Pos                                (9U)
299 #define    RCC_RSTFR_PORN_FLAG_Msk                                (0x1U << RCC_RSTFR_PORN_FLAG_Pos)
300 #define    RCC_RSTFR_PORN_FLAG                                    RCC_RSTFR_PORN_FLAG_Msk
301 
302 #define    RCC_RSTFR_PDRN_FLAG_Pos                                (8U)
303 #define    RCC_RSTFR_PDRN_FLAG_Msk                                (0x1U << RCC_RSTFR_PDRN_FLAG_Pos)
304 #define    RCC_RSTFR_PDRN_FLAG                                    RCC_RSTFR_PDRN_FLAG_Msk
305 
306 #define    RCC_RSTFR_SOFTN_FLAG_Pos                               (5U)
307 #define    RCC_RSTFR_SOFTN_FLAG_Msk                               (0x1U << RCC_RSTFR_SOFTN_FLAG_Pos)
308 #define    RCC_RSTFR_SOFTN_FLAG                                   RCC_RSTFR_SOFTN_FLAG_Msk
309 
310 #define    RCC_RSTFR_IWDTN_FLAG_Pos                               (4U)
311 #define    RCC_RSTFR_IWDTN_FLAG_Msk                               (0x1U << RCC_RSTFR_IWDTN_FLAG_Pos)
312 #define    RCC_RSTFR_IWDTN_FLAG                                   RCC_RSTFR_IWDTN_FLAG_Msk
313 
314 #define    RCC_RSTFR_WWDTN_FLAG_Pos                               (2U)
315 #define    RCC_RSTFR_WWDTN_FLAG_Msk                               (0x1U << RCC_RSTFR_WWDTN_FLAG_Pos)
316 #define    RCC_RSTFR_WWDTN_FLAG                                   RCC_RSTFR_WWDTN_FLAG_Msk
317 
318 #define    RCC_RSTFR_LKUPN_FLAG_Pos                               (1U)
319 #define    RCC_RSTFR_LKUPN_FLAG_Msk                               (0x1U << RCC_RSTFR_LKUPN_FLAG_Pos)
320 #define    RCC_RSTFR_LKUPN_FLAG                                   RCC_RSTFR_LKUPN_FLAG_Msk
321 
322 #define    RCC_RSTFR_NVICN_FLAG_Pos                               (0U)
323 #define    RCC_RSTFR_NVICN_FLAG_Msk                               (0x1U << RCC_RSTFR_NVICN_FLAG_Pos)
324 #define    RCC_RSTFR_NVICN_FLAG                                   RCC_RSTFR_NVICN_FLAG_Msk
325 
326 
327 
328 #define    FL_RCC_GROUP1_BUSCLK_LPTIM32                           (0x1U << 0U)
329 #define    FL_RCC_GROUP1_BUSCLK_USB                               (0x1U << 1U)
330 #define    FL_RCC_GROUP1_BUSCLK_RTC                               (0x1U << 2U)
331 #define    FL_RCC_GROUP1_BUSCLK_PMU                               (0x1U << 3U)
332 #define    FL_RCC_GROUP1_BUSCLK_SCU                               (0x1U << 4U)
333 #define    FL_RCC_GROUP1_BUSCLK_IWDT                              (0x1U << 5U)
334 #define    FL_RCC_GROUP1_BUSCLK_ANAC                              (0x1U << 6U)
335 #define    FL_RCC_GROUP1_BUSCLK_PAD                               (0x1U << 7U)
336 #define    FL_RCC_GROUP1_BUSCLK_DCU                               (0x1U << 31U)
337 #define    FL_RCC_GROUP2_BUSCLK_CRC                               (0x1U << 0U)
338 #define    FL_RCC_GROUP2_BUSCLK_RNG                               (0x1U << 1U)
339 #define    FL_RCC_GROUP2_BUSCLK_AES                               (0x1U << 2U)
340 #define    FL_RCC_GROUP2_BUSCLK_LCD                               (0x1U << 3U)
341 #define    FL_RCC_GROUP2_BUSCLK_DMA                               (0x1U << 4U)
342 #define    FL_RCC_GROUP2_BUSCLK_FLASH                             (0x1U << 5U)
343 #define    FL_RCC_GROUP2_BUSCLK_RAMBIST                           (0x1U << 6U)
344 #define    FL_RCC_GROUP2_BUSCLK_WWDT                              (0x1U << 7U)
345 #define    FL_RCC_GROUP2_BUSCLK_ADC                               (0x1U << 8U)
346 #define    FL_RCC_GROUP2_BUSCLK_HDIV                              (0x1U << 9U)
347 #define    FL_RCC_GROUP3_BUSCLK_SPI1                              (0x1U << 0U)
348 #define    FL_RCC_GROUP3_BUSCLK_SPI2                              (0x1U << 1U)
349 #define    FL_RCC_GROUP3_BUSCLK_UART0                             (0x1U << 8U)
350 #define    FL_RCC_GROUP3_BUSCLK_UART1                             (0x1U << 9U)
351 #define    FL_RCC_GROUP3_BUSCLK_UART4                             (0x1U << 12U)
352 #define    FL_RCC_GROUP3_BUSCLK_UART5                             (0x1U << 13U)
353 #define    FL_RCC_GROUP3_BUSCLK_UARTIR                            (0x1U << 14U)
354 #define    FL_RCC_GROUP3_BUSCLK_LPUART0                           (0x1U << 15U)
355 #define    FL_RCC_GROUP3_BUSCLK_U7816                             (0x1U << 16U)
356 #define    FL_RCC_GROUP3_BUSCLK_LPUART1                           (0x1U << 18U)
357 #define    FL_RCC_GROUP3_BUSCLK_I2C                               (0x1U << 24U)
358 #define    FL_RCC_GROUP4_BUSCLK_BSTIM32                           (0x1U << 0U)
359 #define    FL_RCC_GROUP4_BUSCLK_GPTIM0                            (0x1U << 2U)
360 #define    FL_RCC_GROUP4_BUSCLK_GPTIM1                            (0x1U << 3U)
361 #define    FL_RCC_GROUP4_BUSCLK_ATIM                              (0x1U << 4U)
362 #define    FL_RCC_GROUP1_OPCLK_EXTI                               (0x1U << 31U)
363 #define    FL_RCC_GROUP1_OPCLK_LPUART1                            (0x1U << 29U)
364 #define    FL_RCC_GROUP1_OPCLK_LPUART0                            (0x1U << 28U)
365 #define    FL_RCC_GROUP1_OPCLK_I2C                                (0x1U << 20U)
366 #define    FL_RCC_GROUP1_OPCLK_ATIM                               (0x1U << 15U)
367 #define    FL_RCC_GROUP1_OPCLK_UART1                              (0x1U << 9U)
368 #define    FL_RCC_GROUP1_OPCLK_UART0                              (0x1U << 8U)
369 #define    FL_RCC_GROUP2_OPCLK_USB                                (0x1U << 23U)
370 #define    FL_RCC_GROUP2_OPCLK_FLASH                              (0x1U << 22U)
371 #define    FL_RCC_GROUP2_OPCLK_RNG                                (0x1U << 21U)
372 #define    FL_RCC_GROUP2_OPCLK_ADC                                (0x1U << 20U)
373 #define    FL_RCC_GROUP2_OPCLK_LPTIM32                            (0x1U << 12U)
374 #define    FL_RCC_GROUP2_OPCLK_BSTIM32                            (0x1U << 4U)
375 #define    FL_RCC_RSTAHB_DMA                                      (0x1U << 0U)
376 #define    FL_RCC_RSTAHB_USB                                      (0x1U << 1U)
377 #define    FL_RCC_RSTAPB_UART5                                    (0x1U << 31U)
378 #define    FL_RCC_RSTAPB_UART4                                    (0x1U << 30U)
379 #define    FL_RCC_RSTAPB_GPTIM1                                   (0x1U << 25U)
380 #define    FL_RCC_RSTAPB_GPTIM0                                   (0x1U << 24U)
381 #define    FL_RCC_RSTAPB_LCD                                      (0x1U << 16U)
382 #define    FL_RCC_RSTAPB_U7816                                    (0x1U << 14U)
383 #define    FL_RCC_RSTAPB_SPI2                                     (0x1U << 10U)
384 #define    FL_RCC_RSTAPB_LPUART0                                  (0x1U << 6U)
385 #define    FL_RCC_RSTAPB_I2C                                      (0x1U << 3U)
386 #define    FL_RCC_RSTAPB_LPTIM32                                  (0x1U << 0U)
387 #define    FL_RCC_RSTAPB_ATIM                                     (0x1U << 31U)
388 #define    FL_RCC_RSTAPB_BSTIM32                                  (0x1U << 28U)
389 #define    FL_RCC_RSTAPB_ADCCR                                    (0x1U << 24U)
390 #define    FL_RCC_RSTAPB_ADC                                      (0x1U << 23U)
391 #define    FL_RCC_RSTAPB_OPA                                      (0x1U << 22U)
392 #define    FL_RCC_RSTAPB_DIVAS                                    (0x1U << 19U)
393 #define    FL_RCC_RSTAPB_AES                                      (0x1U << 18U)
394 #define    FL_RCC_RSTAPB_CRC                                      (0x1U << 17U)
395 #define    FL_RCC_RSTAPB_RNG                                      (0x1U << 16U)
396 #define    FL_RCC_RSTAPB_UART1                                    (0x1U << 12U)
397 #define    FL_RCC_RSTAPB_UART0                                    (0x1U << 11U)
398 #define    FL_RCC_RSTAPB_SPI1                                     (0x1U << 9U)
399 #define    FL_RCC_RSTAPB_UCIR                                     (0x1U << 8U)
400 #define    FL_RCC_RSTAPB_LPUART1                                  (0x1U << 7U)
401 #define    FL_RCC_PERIPHERAL_RESET_KEY                            0x13579BDFU
402 #define    FL_RCC_SOFTWARE_RESET_KEY                              0x5C5CAABBU
403 #define    FL_RCC_LPUART_CLK_SOURCE_LSCLK                         0x0U
404 #define    FL_RCC_LPUART_CLK_SOURCE_RCHF                          0x1U
405 #define    FL_RCC_LPUART_CLK_SOURCE_RCMF                          0x2U
406 
407 
408 
409 #define    FL_RCC_APB2CLK_PSC_DIV1                                (0x0U << RCC_SYSCLKCR_APBPRES2_Pos)
410 #define    FL_RCC_APB2CLK_PSC_DIV2                                (0x4U << RCC_SYSCLKCR_APBPRES2_Pos)
411 #define    FL_RCC_APB2CLK_PSC_DIV4                                (0x5U << RCC_SYSCLKCR_APBPRES2_Pos)
412 #define    FL_RCC_APB2CLK_PSC_DIV8                                (0x6U << RCC_SYSCLKCR_APBPRES2_Pos)
413 #define    FL_RCC_APB2CLK_PSC_DIV16                               (0x7U << RCC_SYSCLKCR_APBPRES2_Pos)
414 
415 
416 #define    FL_RCC_APB1CLK_PSC_DIV1                                (0x0U << RCC_SYSCLKCR_APBPRES1_Pos)
417 #define    FL_RCC_APB1CLK_PSC_DIV2                                (0x4U << RCC_SYSCLKCR_APBPRES1_Pos)
418 #define    FL_RCC_APB1CLK_PSC_DIV4                                (0x5U << RCC_SYSCLKCR_APBPRES1_Pos)
419 #define    FL_RCC_APB1CLK_PSC_DIV8                                (0x6U << RCC_SYSCLKCR_APBPRES1_Pos)
420 #define    FL_RCC_APB1CLK_PSC_DIV16                               (0x7U << RCC_SYSCLKCR_APBPRES1_Pos)
421 
422 
423 #define    FL_RCC_AHBCLK_PSC_DIV1                                 (0x0U << RCC_SYSCLKCR_AHBPRES_Pos)
424 #define    FL_RCC_AHBCLK_PSC_DIV2                                 (0x4U << RCC_SYSCLKCR_AHBPRES_Pos)
425 #define    FL_RCC_AHBCLK_PSC_DIV4                                 (0x5U << RCC_SYSCLKCR_AHBPRES_Pos)
426 #define    FL_RCC_AHBCLK_PSC_DIV8                                 (0x6U << RCC_SYSCLKCR_AHBPRES_Pos)
427 #define    FL_RCC_AHBCLK_PSC_DIV16                                (0x7U << RCC_SYSCLKCR_AHBPRES_Pos)
428 
429 
430 #define    FL_RCC_SYSTICK_CLK_SOURCE_SCLK                         (0x0U << RCC_SYSCLKCR_STCLKSEL_Pos)
431 #define    FL_RCC_SYSTICK_CLK_SOURCE_LSCLK                        (0x1U << RCC_SYSCLKCR_STCLKSEL_Pos)
432 #define    FL_RCC_SYSTICK_CLK_SOURCE_RCMF                         (0x2U << RCC_SYSCLKCR_STCLKSEL_Pos)
433 #define    FL_RCC_SYSTICK_CLK_SOURCE_SYSCLK                       (0x3U << RCC_SYSCLKCR_STCLKSEL_Pos)
434 
435 
436 #define    FL_RCC_USB_CLK_OUT_48M                                 (0x0U << RCC_SYSCLKCR_BCKOSEL_Pos)
437 #define    FL_RCC_USB_CLK_OUT_120M                                (0x1U << RCC_SYSCLKCR_BCKOSEL_Pos)
438 
439 
440 #define    FL_RCC_SYSTEM_CLK_SOURCE_RCHF                          (0x0U << RCC_SYSCLKCR_SYSCLKSEL_Pos)
441 #define    FL_RCC_SYSTEM_CLK_SOURCE_XTHF                          (0x1U << RCC_SYSCLKCR_SYSCLKSEL_Pos)
442 #define    FL_RCC_SYSTEM_CLK_SOURCE_PLL                           (0x2U << RCC_SYSCLKCR_SYSCLKSEL_Pos)
443 #define    FL_RCC_SYSTEM_CLK_SOURCE_RCMF_PSC                      (0x4U << RCC_SYSCLKCR_SYSCLKSEL_Pos)
444 #define    FL_RCC_SYSTEM_CLK_SOURCE_LSCLK                         (0x5U << RCC_SYSCLKCR_SYSCLKSEL_Pos)
445 #define    FL_RCC_SYSTEM_CLK_SOURCE_LPOSC                         (0x6U << RCC_SYSCLKCR_SYSCLKSEL_Pos)
446 #define    FL_RCC_SYSTEM_CLK_SOURCE_USBCLK                        (0x7U << RCC_SYSCLKCR_SYSCLKSEL_Pos)
447 
448 
449 #define    FL_RCC_RCHF_FREQUENCY_8MHZ                             (0x0U << RCC_RCHFCR_FSEL_Pos)
450 #define    FL_RCC_RCHF_FREQUENCY_16MHZ                            (0x1U << RCC_RCHFCR_FSEL_Pos)
451 #define    FL_RCC_RCHF_FREQUENCY_24MHZ                            (0x2U << RCC_RCHFCR_FSEL_Pos)
452 
453 
454 #define    FL_RCC_PLL_CLK_SOURCE_RCHF                             (0x0U << RCC_PLLCR_INSEL_Pos)
455 #define    FL_RCC_PLL_CLK_SOURCE_XTHF                             (0x1U << RCC_PLLCR_INSEL_Pos)
456 
457 
458 #define    FL_RCC_PLL_MUL_32                                      (0x1fU << RCC_PLLCR_DB_Pos)
459 
460 #define    FL_RCC_PLL_MUL_48                                      (0x2fU << RCC_PLLCR_DB_Pos)
461 
462 #define    FL_RCC_PLL_PSC_DIV1                                    (0x0U << RCC_PLLCR_REFPRSC_Pos)
463 #define    FL_RCC_PLL_PSC_DIV2                                    (0x1U << RCC_PLLCR_REFPRSC_Pos)
464 #define    FL_RCC_PLL_PSC_DIV4                                    (0x2U << RCC_PLLCR_REFPRSC_Pos)
465 #define    FL_RCC_PLL_PSC_DIV8                                    (0x3U << RCC_PLLCR_REFPRSC_Pos)
466 #define    FL_RCC_PLL_PSC_DIV12                                   (0x4U << RCC_PLLCR_REFPRSC_Pos)
467 #define    FL_RCC_PLL_PSC_DIV16                                   (0x5U << RCC_PLLCR_REFPRSC_Pos)
468 #define    FL_RCC_PLL_PSC_DIV24                                   (0x6U << RCC_PLLCR_REFPRSC_Pos)
469 #define    FL_RCC_PLL_PSC_DIV32                                   (0x7U << RCC_PLLCR_REFPRSC_Pos)
470 
471 
472 #define    FL_RCC_PLL_OUTPUT_X1                                   (0x0U << RCC_PLLCR_OSEL_Pos)
473 #define    FL_RCC_PLL_OUTPUT_X2                                   (0x1U << RCC_PLLCR_OSEL_Pos)
474 
475 
476 #define    FL_RCC_XTLF_FDET_ENABLE                                (0x5U << RCC_XTLFCR_EN_Pos)
477 #define    FL_RCC_XTLF_FDET_DISABLE                               (0xaU << RCC_XTLFCR_EN_Pos)
478 
479 #define    FL_RCC_XTLF_WORK_CURRENT_450NA                         (0x0U << RCC_XTLFCR_IPW_Pos)
480 #define    FL_RCC_XTLF_WORK_CURRENT_400NA                         (0x1U << RCC_XTLFCR_IPW_Pos)
481 #define    FL_RCC_XTLF_WORK_CURRENT_350NA                         (0x2U << RCC_XTLFCR_IPW_Pos)
482 #define    FL_RCC_XTLF_WORK_CURRENT_300NA                         (0x3U << RCC_XTLFCR_IPW_Pos)
483 #define    FL_RCC_XTLF_WORK_CURRENT_250NA                         (0x4U << RCC_XTLFCR_IPW_Pos)
484 #define    FL_RCC_XTLF_WORK_CURRENT_200NA                         (0x5U << RCC_XTLFCR_IPW_Pos)
485 #define    FL_RCC_XTLF_WORK_CURRENT_150NA                         (0x6U << RCC_XTLFCR_IPW_Pos)
486 #define    FL_RCC_XTLF_WORK_CURRENT_100NA                         (0x7U << RCC_XTLFCR_IPW_Pos)
487 
488 
489 #define    FL_RCC_RCMF_PSC_DIV1                                   (0x0U << RCC_RCMFCR_PSC_Pos)
490 #define    FL_RCC_RCMF_PSC_DIV4                                   (0x1U << RCC_RCMFCR_PSC_Pos)
491 #define    FL_RCC_RCMF_PSC_DIV8                                   (0x2U << RCC_RCMFCR_PSC_Pos)
492 #define    FL_RCC_RCMF_PSC_DIV16                                  (0x3U << RCC_RCMFCR_PSC_Pos)
493 
494 
495 #define    FL_RCC_EXTI_CLK_SOURCE_LSCLK                           (0x1U << RCC_OPCCR1_EXTICKS_Pos)
496 #define    FL_RCC_EXTI_CLK_SOURCE_HCLK                            (0x0U << RCC_OPCCR1_EXTICKS_Pos)
497 
498 
499 #define    FL_RCC_LPUART1_CLK_SOURCE_LSCLK                        (0x0U << RCC_OPCCR1_LPUART1CKS_Pos)
500 #define    FL_RCC_LPUART1_CLK_SOURCE_RCHF                         (0x1U << RCC_OPCCR1_LPUART1CKS_Pos)
501 #define    FL_RCC_LPUART1_CLK_SOURCE_RCMF                         (0x2U << RCC_OPCCR1_LPUART1CKS_Pos)
502 
503 
504 #define    FL_RCC_LPUART0_CLK_SOURCE_LSCLK                        (0x0U << RCC_OPCCR1_LPUART0CKS_Pos)
505 #define    FL_RCC_LPUART0_CLK_SOURCE_RCHF                         (0x1U << RCC_OPCCR1_LPUART0CKS_Pos)
506 #define    FL_RCC_LPUART0_CLK_SOURCE_RCMF                         (0x2U << RCC_OPCCR1_LPUART0CKS_Pos)
507 
508 
509 #define    FL_RCC_I2C_CLK_SOURCE_APB1CLK                          (0x0U << RCC_OPCCR1_I2CCKS_Pos)
510 #define    FL_RCC_I2C_CLK_SOURCE_RCHF                             (0x1U << RCC_OPCCR1_I2CCKS_Pos)
511 #define    FL_RCC_I2C_CLK_SOURCE_SYSCLK                           (0x2U << RCC_OPCCR1_I2CCKS_Pos)
512 #define    FL_RCC_I2C_CLK_SOURCE_RCMF_PSC                         (0x3U << RCC_OPCCR1_I2CCKS_Pos)
513 
514 
515 #define    FL_RCC_ATIM_CLK_SOURCE_APB2CLK                         (0x0U << RCC_OPCCR1_ATCKS_Pos)
516 #define    FL_RCC_ATIM_CLK_SOURCE_USBPHYBCK120M                   (0x1U << RCC_OPCCR1_ATCKS_Pos)
517 #define    FL_RCC_ATIM_CLK_SOURCE_PLLx2                           (0x3U << RCC_OPCCR1_ATCKS_Pos)
518 
519 
520 #define    FL_RCC_UART1_CLK_SOURCE_APB1CLK                        (0x0U << RCC_OPCCR1_UART1CKS_Pos)
521 #define    FL_RCC_UART1_CLK_SOURCE_RCHF                           (0x1U << RCC_OPCCR1_UART1CKS_Pos)
522 #define    FL_RCC_UART1_CLK_SOURCE_SYSCLK                         (0x2U << RCC_OPCCR1_UART1CKS_Pos)
523 #define    FL_RCC_UART1_CLK_SOURCE_RCMF_PSC                       (0x3U << RCC_OPCCR1_UART1CKS_Pos)
524 
525 
526 #define    FL_RCC_UART0_CLK_SOURCE_APB1CLK                        (0x0U << RCC_OPCCR1_UART0CKS_Pos)
527 #define    FL_RCC_UART0_CLK_SOURCE_RCHF                           (0x1U << RCC_OPCCR1_UART0CKS_Pos)
528 #define    FL_RCC_UART0_CLK_SOURCE_SYSCLK                         (0x2U << RCC_OPCCR1_UART0CKS_Pos)
529 #define    FL_RCC_UART0_CLK_SOURCE_RCMF_PSC                       (0x3U << RCC_OPCCR1_UART0CKS_Pos)
530 
531 
532 #define    FL_RCC_RNG_PSC_DIV1                                    (0x0U << RCC_OPCCR2_RNGPRSC_Pos)
533 #define    FL_RCC_RNG_PSC_DIV2                                    (0x1U << RCC_OPCCR2_RNGPRSC_Pos)
534 #define    FL_RCC_RNG_PSC_DIV4                                    (0x2U << RCC_OPCCR2_RNGPRSC_Pos)
535 #define    FL_RCC_RNG_PSC_DIV8                                    (0x3U << RCC_OPCCR2_RNGPRSC_Pos)
536 #define    FL_RCC_RNG_PSC_DIV16                                   (0x4U << RCC_OPCCR2_RNGPRSC_Pos)
537 #define    FL_RCC_RNG_PSC_DIV32                                   (0x5U << RCC_OPCCR2_RNGPRSC_Pos)
538 
539 
540 #define    FL_RCC_ADC_PSC_DIV1                                    (0x0U << RCC_OPCCR2_ADCPRSC_Pos)
541 #define    FL_RCC_ADC_PSC_DIV2                                    (0x1U << RCC_OPCCR2_ADCPRSC_Pos)
542 #define    FL_RCC_ADC_PSC_DIV4                                    (0x2U << RCC_OPCCR2_ADCPRSC_Pos)
543 #define    FL_RCC_ADC_PSC_DIV8                                    (0x3U << RCC_OPCCR2_ADCPRSC_Pos)
544 #define    FL_RCC_ADC_PSC_DIV16                                   (0x4U << RCC_OPCCR2_ADCPRSC_Pos)
545 #define    FL_RCC_ADC_PSC_DIV32                                   (0x5U << RCC_OPCCR2_ADCPRSC_Pos)
546 
547 
548 #define    FL_RCC_USB_CLK_REF_XTLF                                (0x0U << RCC_OPCCR2_USBCKS_Pos)
549 #define    FL_RCC_USB_CLK_REF_XTHF                                (0x1U << RCC_OPCCR2_USBCKS_Pos)
550 #define    FL_RCC_USB_CLK_REF_RCHF                                (0x2U << RCC_OPCCR2_USBCKS_Pos)
551 
552 
553 #define    FL_RCC_ADC_CLK_SOURCE_RCMF_PSC                         (0x0U << RCC_OPCCR2_ADCCKS_Pos)
554 #define    FL_RCC_ADC_CLK_SOURCE_RCHF                             (0x1U << RCC_OPCCR2_ADCCKS_Pos)
555 #define    FL_RCC_ADC_CLK_SOURCE_XTHF                             (0x2U << RCC_OPCCR2_ADCCKS_Pos)
556 #define    FL_RCC_ADC_CLK_SOURCE_PLL                              (0x3U << RCC_OPCCR2_ADCCKS_Pos)
557 
558 
559 #define    FL_RCC_LPTIM32_CLK_SOURCE_APB1CLK                      (0x0U << RCC_OPCCR2_LPT32CKS_Pos)
560 #define    FL_RCC_LPTIM32_CLK_SOURCE_LSCLK                        (0x1U << RCC_OPCCR2_LPT32CKS_Pos)
561 #define    FL_RCC_LPTIM32_CLK_SOURCE_LPOSC                        (0x2U << RCC_OPCCR2_LPT32CKS_Pos)
562 #define    FL_RCC_LPTIM32_CLK_SOURCE_RCMF_PSC                     (0x3U << RCC_OPCCR2_LPT32CKS_Pos)
563 
564 
565 #define    FL_RCC_BSTIM32_CLK_SOURCE_APB2CLK                      (0x0U << RCC_OPCCR2_BT32CKS_Pos)
566 #define    FL_RCC_BSTIM32_CLK_SOURCE_LSCLK                        (0x1U << RCC_OPCCR2_BT32CKS_Pos)
567 #define    FL_RCC_BSTIM32_CLK_SOURCE_LPOSC                        (0x2U << RCC_OPCCR2_BT32CKS_Pos)
568 #define    FL_RCC_BSTIM32_CLK_SOURCE_RCMF_PSC                     (0x3U << RCC_OPCCR2_BT32CKS_Pos)
569 
570 
571 #define    FL_RCC_AHB_MASTER_PRIORITY_DMA_FIRST                   (0x0U << RCC_AHBMCR_MPRIL_Pos)
572 #define    FL_RCC_AHB_MASTER_PRIORITY_CPU_FIRST                   (0x1U << RCC_AHBMCR_MPRIL_Pos)
573 
574 
575 #define    FL_RCC_LSCLK_CLK_SOURCE_LPOSC                          (0x55U << RCC_LSCLKSEL_SEL_Pos)
576 #define    FL_RCC_LSCLK_CLK_SOURCE_XTLF                           (0xAAU << RCC_LSCLKSEL_SEL_Pos)
577 
578 #define    FL_RCC_USB_CLK_REF_SOURCE_SOF                          (0x0U << RCC_PHYBCKCR_OUTCLKSEL_Pos)
579 #define    FL_RCC_USB_CLK_REF_SOURCE_CORECLKIN                    (0x1U << RCC_PHYBCKCR_OUTCLKSEL_Pos)
580 
581 
582 /**
583   * @}
584   */
585 /* Exported functions ---------------------------------------------------------------------------------*/
586 /** @defgroup RCC_FL_Exported_Functions RCC Exported Functions
587   * @{
588   */
589 
590 /**
591   * @brief    Enable XTHF Fail Interrupt
592   * @rmtoll   IER    HFDET_IE    FL_FDET_EnableIT_XTHFFail
593   * @retval   None
594   */
FL_FDET_EnableIT_XTHFFail(void)595 __STATIC_INLINE void FL_FDET_EnableIT_XTHFFail(void)
596 {
597     SET_BIT(FDET->IER, FDET_IER_HFDET_IE_Msk);
598 }
599 
600 /**
601   * @brief    Get XTHF Fail Interrupt Enable Status
602   * @rmtoll   IER    HFDET_IE    FL_FDET_IsEnabledIT_XTHFFail
603   * @retval   State of bit (1 or 0).
604   */
FL_FDET_IsEnabledIT_XTHFFail(void)605 __STATIC_INLINE uint32_t FL_FDET_IsEnabledIT_XTHFFail(void)
606 {
607     return (uint32_t)(READ_BIT(FDET->IER, FDET_IER_HFDET_IE_Msk) == FDET_IER_HFDET_IE_Msk);
608 }
609 
610 /**
611   * @brief    Disable XTHF Fail Interrupt
612   * @rmtoll   IER    HFDET_IE    FL_FDET_DisableIT_XTHFFail
613   * @retval   None
614   */
FL_FDET_DisableIT_XTHFFail(void)615 __STATIC_INLINE void FL_FDET_DisableIT_XTHFFail(void)
616 {
617     CLEAR_BIT(FDET->IER, FDET_IER_HFDET_IE_Msk);
618 }
619 
620 /**
621   * @brief    Enable XTLF Fail Interrupt
622   * @rmtoll   IER    LFDET_IE    FL_FDET_EnableIT_XTLFFail
623   * @retval   None
624   */
FL_FDET_EnableIT_XTLFFail(void)625 __STATIC_INLINE void FL_FDET_EnableIT_XTLFFail(void)
626 {
627     SET_BIT(FDET->IER, FDET_IER_LFDET_IE_Msk);
628 }
629 
630 /**
631   * @brief    Get XTLF Fail Interrupt Enable Status
632   * @rmtoll   IER    LFDET_IE    FL_FDET_IsEnabledIT_XTLFFail
633   * @retval   State of bit (1 or 0).
634   */
FL_FDET_IsEnabledIT_XTLFFail(void)635 __STATIC_INLINE uint32_t FL_FDET_IsEnabledIT_XTLFFail(void)
636 {
637     return (uint32_t)(READ_BIT(FDET->IER, FDET_IER_LFDET_IE_Msk) == FDET_IER_LFDET_IE_Msk);
638 }
639 
640 /**
641   * @brief    Disable XTLF Fail Interrupt
642   * @rmtoll   IER    LFDET_IE    FL_FDET_DisableIT_XTLFFail
643   * @retval   None
644   */
FL_FDET_DisableIT_XTLFFail(void)645 __STATIC_INLINE void FL_FDET_DisableIT_XTLFFail(void)
646 {
647     CLEAR_BIT(FDET->IER, FDET_IER_LFDET_IE_Msk);
648 }
649 
650 /**
651   * @brief    Get XTHF Vibrating Output
652   * @rmtoll   ISR    HFDETO    FL_FDET_IsActiveFlag_XTHFFailOutput
653   * @retval   State of bit (1 or 0).
654   */
FL_FDET_IsActiveFlag_XTHFFailOutput(void)655 __STATIC_INLINE uint32_t FL_FDET_IsActiveFlag_XTHFFailOutput(void)
656 {
657     return (uint32_t)(READ_BIT(FDET->ISR, FDET_ISR_HFDETO_Msk) == (FDET_ISR_HFDETO_Msk));
658 }
659 
660 /**
661   * @brief    Get XTLF Vibrating Output
662   * @rmtoll   ISR    LFDETO    FL_FDET_IsActiveFlag_XTLFFailOutput
663   * @retval   State of bit (1 or 0).
664   */
FL_FDET_IsActiveFlag_XTLFFailOutput(void)665 __STATIC_INLINE uint32_t FL_FDET_IsActiveFlag_XTLFFailOutput(void)
666 {
667     return (uint32_t)(READ_BIT(FDET->ISR, FDET_ISR_LFDETO_Msk) == (FDET_ISR_LFDETO_Msk));
668 }
669 
670 /**
671   * @brief    Get XTHF Vibrating Flag
672   * @rmtoll   ISR    HFDETIF    FL_FDET_IsActiveFlag_XTHFFail
673   * @retval   State of bit (1 or 0).
674   */
FL_FDET_IsActiveFlag_XTHFFail(void)675 __STATIC_INLINE uint32_t FL_FDET_IsActiveFlag_XTHFFail(void)
676 {
677     return (uint32_t)(READ_BIT(FDET->ISR, FDET_ISR_HFDETIF_Msk) == (FDET_ISR_HFDETIF_Msk));
678 }
679 
680 /**
681   * @brief    Clear XTHF Vibrating Flag
682   * @rmtoll   ISR    HFDETIF    FL_FDET_ClearFlag_XTHFFail
683   * @retval   None
684   */
FL_FDET_ClearFlag_XTHFFail(void)685 __STATIC_INLINE void FL_FDET_ClearFlag_XTHFFail(void)
686 {
687     WRITE_REG(FDET->ISR, FDET_ISR_LFDETIF_Msk);
688 }
689 
690 /**
691   * @brief    Get XTLF Vibrating Output
692   * @rmtoll   ISR    LFDETIF    FL_FDET_IsActiveFlag_XTLFFail
693   * @retval   State of bit (1 or 0).
694   */
FL_FDET_IsActiveFlag_XTLFFail(void)695 __STATIC_INLINE uint32_t FL_FDET_IsActiveFlag_XTLFFail(void)
696 {
697     return (uint32_t)(READ_BIT(FDET->ISR, FDET_ISR_LFDETIF_Msk) == (FDET_ISR_LFDETIF_Msk));
698 }
699 
700 /**
701   * @brief    Clear XTLF Vibrating Output
702   * @rmtoll   ISR    LFDETIF    FL_FDET_ClearFlag_XTLFFail
703   * @retval   None
704   */
FL_FDET_ClearFlag_XTLFFail(void)705 __STATIC_INLINE void FL_FDET_ClearFlag_XTLFFail(void)
706 {
707     WRITE_REG(FDET->ISR, FDET_ISR_HFDETIF_Msk);
708 }
709 
710 /**
711   * @brief    Enable LSCLK Auto Switch
712   * @rmtoll   SYSCLKCR    LSCATS    FL_RCC_EnableLSCLKAutoSwitch
713   * @retval   None
714   */
FL_RCC_EnableLSCLKAutoSwitch(void)715 __STATIC_INLINE void FL_RCC_EnableLSCLKAutoSwitch(void)
716 {
717     SET_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_LSCATS_Msk);
718 }
719 
720 /**
721   * @brief    Get LSCLK Auto Switch Enable Status
722   * @rmtoll   SYSCLKCR    LSCATS    FL_RCC_IsEnabledLSCLKAutoSwitch
723   * @retval   State of bit (1 or 0).
724   */
FL_RCC_IsEnabledLSCLKAutoSwitch(void)725 __STATIC_INLINE uint32_t FL_RCC_IsEnabledLSCLKAutoSwitch(void)
726 {
727     return (uint32_t)(READ_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_LSCATS_Msk) == RCC_SYSCLKCR_LSCATS_Msk);
728 }
729 
730 /**
731   * @brief    Disable LSCLK Auto Switch
732   * @rmtoll   SYSCLKCR    LSCATS    FL_RCC_DisableLSCLKAutoSwitch
733   * @retval   None
734   */
FL_RCC_DisableLSCLKAutoSwitch(void)735 __STATIC_INLINE void FL_RCC_DisableLSCLKAutoSwitch(void)
736 {
737     CLEAR_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_LSCATS_Msk);
738 }
739 
740 /**
741   * @brief    Enable Sleep/DeepSleep Mode External Interrupt
742   * @rmtoll   SYSCLKCR    SLP_ENEXTI    FL_RCC_EnableEXTIOnSleep
743   * @retval   None
744   */
FL_RCC_EnableEXTIOnSleep(void)745 __STATIC_INLINE void FL_RCC_EnableEXTIOnSleep(void)
746 {
747     SET_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_SLP_ENEXTI_Msk);
748 }
749 
750 /**
751   * @brief    Get Sleep/DeepSleep Mode External Interrupt Enable Status
752   * @rmtoll   SYSCLKCR    SLP_ENEXTI    FL_RCC_IsEnabledEXTIOnSleep
753   * @retval   State of bit (1 or 0).
754   */
FL_RCC_IsEnabledEXTIOnSleep(void)755 __STATIC_INLINE uint32_t FL_RCC_IsEnabledEXTIOnSleep(void)
756 {
757     return (uint32_t)(READ_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_SLP_ENEXTI_Msk) == RCC_SYSCLKCR_SLP_ENEXTI_Msk);
758 }
759 
760 /**
761   * @brief    Disable Sleep/DeepSleep Mode External Interrupt
762   * @rmtoll   SYSCLKCR    SLP_ENEXTI    FL_RCC_DisableEXTIOnSleep
763   * @retval   None
764   */
FL_RCC_DisableEXTIOnSleep(void)765 __STATIC_INLINE void FL_RCC_DisableEXTIOnSleep(void)
766 {
767     CLEAR_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_SLP_ENEXTI_Msk);
768 }
769 
770 /**
771   * @brief    Set APB2 Prescaler
772   * @rmtoll   SYSCLKCR    APBPRES2    FL_RCC_SetAPB2Prescaler
773   * @param    prescaler This parameter can be one of the following values:
774   *           @arg @ref FL_RCC_APB2CLK_PSC_DIV1
775   *           @arg @ref FL_RCC_APB2CLK_PSC_DIV2
776   *           @arg @ref FL_RCC_APB2CLK_PSC_DIV4
777   *           @arg @ref FL_RCC_APB2CLK_PSC_DIV8
778   *           @arg @ref FL_RCC_APB2CLK_PSC_DIV16
779   * @retval   None
780   */
FL_RCC_SetAPB2Prescaler(uint32_t prescaler)781 __STATIC_INLINE void FL_RCC_SetAPB2Prescaler(uint32_t prescaler)
782 {
783     MODIFY_REG(RCC->SYSCLKCR, RCC_SYSCLKCR_APBPRES2_Msk, prescaler);
784 }
785 
786 /**
787   * @brief    Get APB2 Prescaler
788   * @rmtoll   SYSCLKCR    APBPRES2    FL_RCC_GetAPB2Prescaler
789   * @retval   Returned value can be one of the following values:
790   *           @arg @ref FL_RCC_APB2CLK_PSC_DIV1
791   *           @arg @ref FL_RCC_APB2CLK_PSC_DIV2
792   *           @arg @ref FL_RCC_APB2CLK_PSC_DIV4
793   *           @arg @ref FL_RCC_APB2CLK_PSC_DIV8
794   *           @arg @ref FL_RCC_APB2CLK_PSC_DIV16
795   */
FL_RCC_GetAPB2Prescaler(void)796 __STATIC_INLINE uint32_t FL_RCC_GetAPB2Prescaler(void)
797 {
798     return (uint32_t)(READ_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_APBPRES2_Msk));
799 }
800 
801 /**
802   * @brief    Set APB1 Prescaler
803   * @rmtoll   SYSCLKCR    APBPRES1    FL_RCC_SetAPB1Prescaler
804   * @param    prescaler This parameter can be one of the following values:
805   *           @arg @ref FL_RCC_APB1CLK_PSC_DIV1
806   *           @arg @ref FL_RCC_APB1CLK_PSC_DIV2
807   *           @arg @ref FL_RCC_APB1CLK_PSC_DIV4
808   *           @arg @ref FL_RCC_APB1CLK_PSC_DIV8
809   *           @arg @ref FL_RCC_APB1CLK_PSC_DIV16
810   * @retval   None
811   */
FL_RCC_SetAPB1Prescaler(uint32_t prescaler)812 __STATIC_INLINE void FL_RCC_SetAPB1Prescaler(uint32_t prescaler)
813 {
814     MODIFY_REG(RCC->SYSCLKCR, RCC_SYSCLKCR_APBPRES1_Msk, prescaler);
815 }
816 
817 /**
818   * @brief    Get APB1 Prescaler
819   * @rmtoll   SYSCLKCR    APBPRES1    FL_RCC_GetAPB1Prescaler
820   * @retval   Returned value can be one of the following values:
821   *           @arg @ref FL_RCC_APB1CLK_PSC_DIV1
822   *           @arg @ref FL_RCC_APB1CLK_PSC_DIV2
823   *           @arg @ref FL_RCC_APB1CLK_PSC_DIV4
824   *           @arg @ref FL_RCC_APB1CLK_PSC_DIV8
825   *           @arg @ref FL_RCC_APB1CLK_PSC_DIV16
826   */
FL_RCC_GetAPB1Prescaler(void)827 __STATIC_INLINE uint32_t FL_RCC_GetAPB1Prescaler(void)
828 {
829     return (uint32_t)(READ_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_APBPRES1_Msk));
830 }
831 
832 /**
833   * @brief    Set AHB Prescaler
834   * @rmtoll   SYSCLKCR    AHBPRES    FL_RCC_SetAHBPrescaler
835   * @param    prescaler This parameter can be one of the following values:
836   *           @arg @ref FL_RCC_AHBCLK_PSC_DIV1
837   *           @arg @ref FL_RCC_AHBCLK_PSC_DIV2
838   *           @arg @ref FL_RCC_AHBCLK_PSC_DIV4
839   *           @arg @ref FL_RCC_AHBCLK_PSC_DIV8
840   *           @arg @ref FL_RCC_AHBCLK_PSC_DIV16
841   * @retval   None
842   */
FL_RCC_SetAHBPrescaler(uint32_t prescaler)843 __STATIC_INLINE void FL_RCC_SetAHBPrescaler(uint32_t prescaler)
844 {
845     MODIFY_REG(RCC->SYSCLKCR, RCC_SYSCLKCR_AHBPRES_Msk, prescaler);
846 }
847 
848 /**
849   * @brief    Get AHB Prescaler
850   * @rmtoll   SYSCLKCR    AHBPRES    FL_RCC_GetAHBPrescaler
851   * @retval   Returned value can be one of the following values:
852   *           @arg @ref FL_RCC_AHBCLK_PSC_DIV1
853   *           @arg @ref FL_RCC_AHBCLK_PSC_DIV2
854   *           @arg @ref FL_RCC_AHBCLK_PSC_DIV4
855   *           @arg @ref FL_RCC_AHBCLK_PSC_DIV8
856   *           @arg @ref FL_RCC_AHBCLK_PSC_DIV16
857   */
FL_RCC_GetAHBPrescaler(void)858 __STATIC_INLINE uint32_t FL_RCC_GetAHBPrescaler(void)
859 {
860     return (uint32_t)(READ_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_AHBPRES_Msk));
861 }
862 
863 /**
864   * @brief    Set USB PHY BCK Output Clock Source
865   * @rmtoll   SYSCLKCR    BCKOSEL    FL_RCC_SetUSBClockOutput
866   * @param    output This parameter can be one of the following values:
867   *           @arg @ref FL_RCC_USB_CLK_OUT_48M
868   *           @arg @ref FL_RCC_USB_CLK_OUT_120M
869   * @retval   None
870   */
FL_RCC_SetUSBClockOutput(uint32_t output)871 __STATIC_INLINE void FL_RCC_SetUSBClockOutput(uint32_t output)
872 {
873     MODIFY_REG(RCC->SYSCLKCR, RCC_SYSCLKCR_BCKOSEL_Msk, output);
874 }
875 
876 /**
877   * @brief    Get USB PHY BCK Output Clock Source Setting
878   * @rmtoll   SYSCLKCR    BCKOSEL    FL_RCC_GetUSBClockOutput
879   * @retval   Returned value can be one of the following values:
880   *           @arg @ref FL_RCC_USB_CLK_OUT_48M
881   *           @arg @ref FL_RCC_USB_CLK_OUT_120M
882   */
FL_RCC_GetUSBClockOutput(void)883 __STATIC_INLINE uint32_t FL_RCC_GetUSBClockOutput(void)
884 {
885     return (uint32_t)(READ_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_BCKOSEL_Msk));
886 }
887 
888 /**
889   * @brief    Set System Clock Source
890   * @rmtoll   SYSCLKCR    SYSCLKSEL    FL_RCC_SetSystemClockSource
891   * @param    clock This parameter can be one of the following values:
892   *           @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_RCHF
893   *           @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_XTHF
894   *           @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_PLL
895   *           @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_RCMF_PSC
896   *           @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_LSCLK
897   *           @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_LPOSC
898   *           @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_USBCLK
899   * @retval   None
900   */
FL_RCC_SetSystemClockSource(uint32_t clock)901 __STATIC_INLINE void FL_RCC_SetSystemClockSource(uint32_t clock)
902 {
903     MODIFY_REG(RCC->SYSCLKCR, RCC_SYSCLKCR_SYSCLKSEL_Msk, clock);
904 }
905 
906 /**
907   * @brief    Set System Clock Source Setting
908   * @rmtoll   SYSCLKCR    SYSCLKSEL    FL_RCC_GetSystemClockSource
909   * @retval   Returned value can be one of the following values:
910   *           @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_RCHF
911   *           @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_XTHF
912   *           @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_PLL
913   *           @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_RCMF_PSC
914   *           @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_LSCLK
915   *           @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_LPOSC
916   *           @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_USBCLK
917   */
FL_RCC_GetSystemClockSource(void)918 __STATIC_INLINE uint32_t FL_RCC_GetSystemClockSource(void)
919 {
920     return (uint32_t)(READ_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_SYSCLKSEL_Msk));
921 }
922 
923 /**
924   * @brief    Set RCHF Frequency
925   * @rmtoll   RCHFCR    FSEL    FL_RCC_RCHF_SetFrequency
926   * @param    frequency This parameter can be one of the following values:
927   *           @arg @ref FL_RCC_RCHF_FREQUENCY_8MHZ
928   *           @arg @ref FL_RCC_RCHF_FREQUENCY_16MHZ
929   *           @arg @ref FL_RCC_RCHF_FREQUENCY_24MHZ
930   * @retval   None
931   */
FL_RCC_RCHF_SetFrequency(uint32_t frequency)932 __STATIC_INLINE void FL_RCC_RCHF_SetFrequency(uint32_t frequency)
933 {
934     MODIFY_REG(RCC->RCHFCR, RCC_RCHFCR_FSEL_Msk, frequency);
935 }
936 
937 /**
938   * @brief    Get RCHF Frequency Setting
939   * @rmtoll   RCHFCR    FSEL    FL_RCC_RCHF_GetFrequency
940   * @retval   Returned value can be one of the following values:
941   *           @arg @ref FL_RCC_RCHF_FREQUENCY_8MHZ
942   *           @arg @ref FL_RCC_RCHF_FREQUENCY_16MHZ
943   *           @arg @ref FL_RCC_RCHF_FREQUENCY_24MHZ
944   */
FL_RCC_RCHF_GetFrequency(void)945 __STATIC_INLINE uint32_t FL_RCC_RCHF_GetFrequency(void)
946 {
947     return (uint32_t)(READ_BIT(RCC->RCHFCR, RCC_RCHFCR_FSEL_Msk));
948 }
949 
950 /**
951   * @brief    Enable RCHF
952   * @rmtoll   RCHFCR    EN    FL_RCC_RCHF_Enable
953   * @retval   None
954   */
FL_RCC_RCHF_Enable(void)955 __STATIC_INLINE void FL_RCC_RCHF_Enable(void)
956 {
957     SET_BIT(RCC->RCHFCR, RCC_RCHFCR_EN_Msk);
958 }
959 
960 /**
961   * @brief    Get RCHF Enable Status
962   * @rmtoll   RCHFCR    EN    FL_RCC_RCHF_IsEnabled
963   * @retval   State of bit (1 or 0).
964   */
FL_RCC_RCHF_IsEnabled(void)965 __STATIC_INLINE uint32_t FL_RCC_RCHF_IsEnabled(void)
966 {
967     return (uint32_t)(READ_BIT(RCC->RCHFCR, RCC_RCHFCR_EN_Msk) == RCC_RCHFCR_EN_Msk);
968 }
969 
970 /**
971   * @brief    Disable RCHF
972   * @rmtoll   RCHFCR    EN    FL_RCC_RCHF_Disable
973   * @retval   None
974   */
FL_RCC_RCHF_Disable(void)975 __STATIC_INLINE void FL_RCC_RCHF_Disable(void)
976 {
977     CLEAR_BIT(RCC->RCHFCR, RCC_RCHFCR_EN_Msk);
978 }
979 
980 /**
981   * @brief    Set RCMF Frequency Trim Value
982   * @rmtoll   RCMFTR    TRIM    FL_RCC_RCMF_WriteTrimValue
983   * @param    value TrimValue The value of RCMF trim
984   * @retval   None
985   */
FL_RCC_RCMF_WriteTrimValue(uint32_t value)986 __STATIC_INLINE void FL_RCC_RCMF_WriteTrimValue(uint32_t value)
987 {
988     MODIFY_REG(RCC->RCMFTR, (0x7fU << 0U), (value << 0U));
989 }
990 
991 /**
992   * @brief    Get RCMF Frequency Trim Value
993   * @rmtoll   RCMFTR    TRIM    FL_RCC_RCMF_ReadTrimValue
994   * @retval   The Value of RCMF trim
995   */
FL_RCC_RCMF_ReadTrimValue(void)996 __STATIC_INLINE uint32_t FL_RCC_RCMF_ReadTrimValue(void)
997 {
998     return (uint32_t)(READ_BIT(RCC->RCMFTR, 0x7fU) >> 0U);
999 }
1000 
1001 /**
1002   * @brief    Enable PLL
1003   * @rmtoll   PLLCR    EN    FL_RCC_PLL_Enable
1004   * @retval   None
1005   */
FL_RCC_PLL_Enable(void)1006 __STATIC_INLINE void FL_RCC_PLL_Enable(void)
1007 {
1008     SET_BIT(RCC->PLLCR, RCC_PLLCR_EN_Msk);
1009 }
1010 
1011 /**
1012   * @brief    Get PLL Enable Status
1013   * @rmtoll   PLLCR    EN    FL_RCC_PLL_Disable
1014   * @retval   None
1015   */
FL_RCC_PLL_Disable(void)1016 __STATIC_INLINE void FL_RCC_PLL_Disable(void)
1017 {
1018     CLEAR_BIT(RCC->PLLCR, RCC_PLLCR_EN_Msk);
1019 }
1020 
1021 /**
1022   * @brief    Disable PLL
1023   * @rmtoll   PLLCR    EN    FL_RCC_PLL_IsEnabled
1024   * @retval   State of bit (1 or 0).
1025   */
FL_RCC_PLL_IsEnabled(void)1026 __STATIC_INLINE uint32_t FL_RCC_PLL_IsEnabled(void)
1027 {
1028     return (uint32_t)(READ_BIT(RCC->PLLCR, RCC_PLLCR_EN_Msk) == RCC_PLLCR_EN_Msk);
1029 }
1030 
1031 /**
1032   * @brief    Get PLL Ready Status
1033   * @rmtoll   PLLCR    LOCKED    FL_RCC_IsActiveFlag_PLLReady
1034   * @retval   State of bit (1 or 0).
1035   */
FL_RCC_IsActiveFlag_PLLReady(void)1036 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_PLLReady(void)
1037 {
1038     return (uint32_t)(READ_BIT(RCC->PLLCR, RCC_PLLCR_LOCKED_Msk) == (RCC_PLLCR_LOCKED_Msk));
1039 }
1040 
1041 /**
1042   * @brief    Set PLL Input Source
1043   * @rmtoll   PLLCR    INSEL    FL_RCC_PLL_SetClockSource
1044   * @param    clock This parameter can be one of the following values:
1045   *           @arg @ref FL_RCC_PLL_CLK_SOURCE_RCHF
1046   *           @arg @ref FL_RCC_PLL_CLK_SOURCE_XTHF
1047   * @retval   None
1048   */
FL_RCC_PLL_SetClockSource(uint32_t clock)1049 __STATIC_INLINE void FL_RCC_PLL_SetClockSource(uint32_t clock)
1050 {
1051     MODIFY_REG(RCC->PLLCR, RCC_PLLCR_INSEL_Msk, clock);
1052 }
1053 
1054 /**
1055   * @brief    Get PLL Input Source Setting
1056   * @rmtoll   PLLCR    INSEL    FL_RCC_PLL_GetClockSource
1057   * @retval   Returned value can be one of the following values:
1058   *           @arg @ref FL_RCC_PLL_CLK_SOURCE_RCHF
1059   *           @arg @ref FL_RCC_PLL_CLK_SOURCE_XTHF
1060   */
FL_RCC_PLL_GetClockSource(void)1061 __STATIC_INLINE uint32_t FL_RCC_PLL_GetClockSource(void)
1062 {
1063     return (uint32_t)(READ_BIT(RCC->PLLCR, RCC_PLLCR_INSEL_Msk));
1064 }
1065 
1066 /**
1067   * @brief    Set PLL Multiplier
1068   * @rmtoll   PLLCR    DB    FL_RCC_PLL_WriteMultiplier
1069   * @param    multiplier
1070   * @retval   None
1071   */
FL_RCC_PLL_WriteMultiplier(uint32_t multiplier)1072 __STATIC_INLINE void FL_RCC_PLL_WriteMultiplier(uint32_t multiplier)
1073 {
1074     MODIFY_REG(RCC->PLLCR, (0x7fU << 16U), (multiplier << 16U));
1075 }
1076 
1077 /**
1078   * @brief    Get PLL Multiplier Setting
1079   * @rmtoll   PLLCR    DB    FL_RCC_PLL_ReadMultiplier
1080   * @retval
1081   */
FL_RCC_PLL_ReadMultiplier(void)1082 __STATIC_INLINE uint32_t FL_RCC_PLL_ReadMultiplier(void)
1083 {
1084     return (uint32_t)(READ_BIT(RCC->PLLCR, (0x7fU << 16U)) >> 16U);
1085 }
1086 
1087 /**
1088   * @brief    Set PLL Prescaler
1089   * @rmtoll   PLLCR    REFPRSC    FL_RCC_PLL_SetPrescaler
1090   * @param    prescaler This parameter can be one of the following values:
1091   *           @arg @ref FL_RCC_PLL_PSC_DIV1
1092   *           @arg @ref FL_RCC_PLL_PSC_DIV2
1093   *           @arg @ref FL_RCC_PLL_PSC_DIV4
1094   *           @arg @ref FL_RCC_PLL_PSC_DIV8
1095   *           @arg @ref FL_RCC_PLL_PSC_DIV12
1096   *           @arg @ref FL_RCC_PLL_PSC_DIV16
1097   *           @arg @ref FL_RCC_PLL_PSC_DIV24
1098   *           @arg @ref FL_RCC_PLL_PSC_DIV32
1099   * @retval   None
1100   */
FL_RCC_PLL_SetPrescaler(uint32_t prescaler)1101 __STATIC_INLINE void FL_RCC_PLL_SetPrescaler(uint32_t prescaler)
1102 {
1103     MODIFY_REG(RCC->PLLCR, RCC_PLLCR_REFPRSC_Msk, prescaler);
1104 }
1105 
1106 /**
1107   * @brief    Get PLL Prescaler Setting
1108   * @rmtoll   PLLCR    REFPRSC    FL_RCC_PLL_GetPrescaler
1109   * @retval   Returned value can be one of the following values:
1110   *           @arg @ref FL_RCC_PLL_PSC_DIV1
1111   *           @arg @ref FL_RCC_PLL_PSC_DIV2
1112   *           @arg @ref FL_RCC_PLL_PSC_DIV4
1113   *           @arg @ref FL_RCC_PLL_PSC_DIV8
1114   *           @arg @ref FL_RCC_PLL_PSC_DIV12
1115   *           @arg @ref FL_RCC_PLL_PSC_DIV16
1116   *           @arg @ref FL_RCC_PLL_PSC_DIV24
1117   *           @arg @ref FL_RCC_PLL_PSC_DIV32
1118   */
FL_RCC_PLL_GetPrescaler(void)1119 __STATIC_INLINE uint32_t FL_RCC_PLL_GetPrescaler(void)
1120 {
1121     return (uint32_t)(READ_BIT(RCC->PLLCR, RCC_PLLCR_REFPRSC_Msk));
1122 }
1123 
1124 /**
1125   * @brief    Set PLL Digital Domain Output
1126   * @rmtoll   PLLCR    OSEL    FL_RCC_PLL_SetOutputMultiplier
1127   * @param    multiplier This parameter can be one of the following values:
1128   *           @arg @ref FL_RCC_PLL_OUTPUT_X1
1129   *           @arg @ref FL_RCC_PLL_OUTPUT_X2
1130   * @retval   None
1131   */
FL_RCC_PLL_SetOutputMultiplier(uint32_t multiplier)1132 __STATIC_INLINE void FL_RCC_PLL_SetOutputMultiplier(uint32_t multiplier)
1133 {
1134     MODIFY_REG(RCC->PLLCR, RCC_PLLCR_OSEL_Msk, multiplier);
1135 }
1136 
1137 /**
1138   * @brief    Get PLL Digital Domain Output Setting
1139   * @rmtoll   PLLCR    OSEL    FL_RCC_PLL_GetOutputMultiplier
1140   * @retval   Returned value can be one of the following values:
1141   *           @arg @ref FL_RCC_PLL_OUTPUT_X1
1142   *           @arg @ref FL_RCC_PLL_OUTPUT_X2
1143   */
FL_RCC_PLL_GetOutputMultiplier(void)1144 __STATIC_INLINE uint32_t FL_RCC_PLL_GetOutputMultiplier(void)
1145 {
1146     return (uint32_t)(READ_BIT(RCC->PLLCR, RCC_PLLCR_OSEL_Msk));
1147 }
1148 
1149 /**
1150   * @brief    Get LPOSC Enable Flag
1151   * @rmtoll   LPOSCCR    LPOENB    FL_RCC_LPOSC_IsEnabled
1152   * @retval   State of bit (1 or 0).
1153   */
FL_RCC_LPOSC_IsEnabled(void)1154 __STATIC_INLINE uint32_t FL_RCC_LPOSC_IsEnabled(void)
1155 {
1156     return (uint32_t)!(READ_BIT(RCC->LPOSCCR, RCC_LPOSCCR_LPOENB_Msk) == RCC_LPOSCCR_LPOENB_Msk);
1157 }
1158 
1159 /**
1160   * @brief    Enable LPOSC On/Off in Low Power Mode
1161   * @rmtoll   LPOSCCR    LPM_LPO_OFF    FL_RCC_LPOSC_EnableSleepModeWork
1162   * @retval   None
1163   */
FL_RCC_LPOSC_EnableSleepModeWork(void)1164 __STATIC_INLINE void FL_RCC_LPOSC_EnableSleepModeWork(void)
1165 {
1166     CLEAR_BIT(RCC->LPOSCCR, RCC_LPOSCCR_LPM_LPO_OFF_Msk);
1167 }
1168 
1169 /**
1170   * @brief    Get LPOSC On/Off Setting in Low Power Mode
1171   * @rmtoll   LPOSCCR    LPM_LPO_OFF    FL_RCC_LPOSC_IsEnableSleepModeWork
1172   * @retval   State of bit (1 or 0).
1173   */
FL_RCC_LPOSC_IsEnableSleepModeWork(void)1174 __STATIC_INLINE uint32_t FL_RCC_LPOSC_IsEnableSleepModeWork(void)
1175 {
1176     return (uint32_t)!(READ_BIT(RCC->LPOSCCR, RCC_LPOSCCR_LPM_LPO_OFF_Msk) == RCC_LPOSCCR_LPM_LPO_OFF_Msk);
1177 }
1178 
1179 /**
1180   * @brief    Disable LPOSC On/Off Setting in Low Power Mode
1181   * @rmtoll   LPOSCCR    LPM_LPO_OFF    FL_RCC_LPOSC_DisableSleepModeWork
1182   * @retval   None
1183   */
FL_RCC_LPOSC_DisableSleepModeWork(void)1184 __STATIC_INLINE void FL_RCC_LPOSC_DisableSleepModeWork(void)
1185 {
1186     SET_BIT(RCC->LPOSCCR, RCC_LPOSCCR_LPM_LPO_OFF_Msk);
1187 }
1188 
1189 /**
1190   * @brief    Enable LPOSC Chopper
1191   * @rmtoll   LPOSCCR    LPO_CHOP_EN    FL_RCC_LPOSC_EnableChopper
1192   * @retval   None
1193   */
FL_RCC_LPOSC_EnableChopper(void)1194 __STATIC_INLINE void FL_RCC_LPOSC_EnableChopper(void)
1195 {
1196     SET_BIT(RCC->LPOSCCR, RCC_LPOSCCR_LPO_CHOP_EN_Msk);
1197 }
1198 
1199 /**
1200   * @brief    Get LPOSC Chopper Enable Status
1201   * @rmtoll   LPOSCCR    LPO_CHOP_EN    FL_RCC_LPOSC_IsEnabledChopper
1202   * @retval   State of bit (1 or 0).
1203   */
FL_RCC_LPOSC_IsEnabledChopper(void)1204 __STATIC_INLINE uint32_t FL_RCC_LPOSC_IsEnabledChopper(void)
1205 {
1206     return (uint32_t)(READ_BIT(RCC->LPOSCCR, RCC_LPOSCCR_LPO_CHOP_EN_Msk) == RCC_LPOSCCR_LPO_CHOP_EN_Msk);
1207 }
1208 
1209 /**
1210   * @brief    Disable LPOSC Chopper
1211   * @rmtoll   LPOSCCR    LPO_CHOP_EN    FL_RCC_LPOSC_DisableChopper
1212   * @retval   None
1213   */
FL_RCC_LPOSC_DisableChopper(void)1214 __STATIC_INLINE void FL_RCC_LPOSC_DisableChopper(void)
1215 {
1216     CLEAR_BIT(RCC->LPOSCCR, RCC_LPOSCCR_LPO_CHOP_EN_Msk);
1217 }
1218 
1219 /**
1220   * @brief    Set LPOSC Frequency Trim Value
1221   * @rmtoll   LPOSCTR    TRIM    FL_RCC_LPOSC_WriteTrimValue
1222   * @param    value TrimValue The value of LPOSC trim
1223   * @retval   None
1224   */
FL_RCC_LPOSC_WriteTrimValue(uint32_t value)1225 __STATIC_INLINE void FL_RCC_LPOSC_WriteTrimValue(uint32_t value)
1226 {
1227     MODIFY_REG(RCC->LPOSCTR, (0xffU << 0U), (value << 0U));
1228 }
1229 
1230 /**
1231   * @brief    Get LPOSC Frequency Trim Value
1232   * @rmtoll   LPOSCTR    TRIM    FL_RCC_LPOSC_ReadTrimValue
1233   * @retval   The Value of LPOSC trim
1234   */
FL_RCC_LPOSC_ReadTrimValue(void)1235 __STATIC_INLINE uint32_t FL_RCC_LPOSC_ReadTrimValue(void)
1236 {
1237     return (uint32_t)(READ_BIT(RCC->LPOSCTR, 0xffU) >> 0U);
1238 }
1239 
1240 /**
1241   * @brief    Enable XTLF
1242   * @rmtoll   XTLFCR    EN    FL_RCC_XTLF_Enable
1243   * @retval   None
1244   */
FL_RCC_XTLF_Enable(void)1245 __STATIC_INLINE void FL_RCC_XTLF_Enable(void)
1246 {
1247     MODIFY_REG(RCC->XTLFCR, RCC_XTLFCR_EN_Msk, FL_RCC_XTLF_FDET_ENABLE);
1248 }
1249 
1250 /**
1251   * @brief    Disable XTLF
1252   * @rmtoll   XTLFCR    EN    FL_RCC_XTLF_Disable
1253   * @retval   None
1254   */
FL_RCC_XTLF_Disable(void)1255 __STATIC_INLINE void FL_RCC_XTLF_Disable(void)
1256 {
1257     MODIFY_REG(RCC->XTLFCR, RCC_XTLFCR_EN_Msk, FL_RCC_XTLF_FDET_DISABLE);
1258 }
1259 
1260 /**
1261   * @brief    Set XTLF Current
1262   * @rmtoll   XTLFCR    IPW    FL_RCC_XTLF_SetWorkCurrent
1263   * @param    current This parameter can be one of the following values:
1264   *           @arg @ref FL_RCC_XTLF_WORK_CURRENT_450NA
1265   *           @arg @ref FL_RCC_XTLF_WORK_CURRENT_400NA
1266   *           @arg @ref FL_RCC_XTLF_WORK_CURRENT_350NA
1267   *           @arg @ref FL_RCC_XTLF_WORK_CURRENT_300NA
1268   *           @arg @ref FL_RCC_XTLF_WORK_CURRENT_250NA
1269   *           @arg @ref FL_RCC_XTLF_WORK_CURRENT_200NA
1270   *           @arg @ref FL_RCC_XTLF_WORK_CURRENT_150NA
1271   *           @arg @ref FL_RCC_XTLF_WORK_CURRENT_100NA
1272   * @retval   None
1273   */
FL_RCC_XTLF_SetWorkCurrent(uint32_t current)1274 __STATIC_INLINE void FL_RCC_XTLF_SetWorkCurrent(uint32_t current)
1275 {
1276     MODIFY_REG(RCC->XTLFCR, RCC_XTLFCR_IPW_Msk, current);
1277 }
1278 
1279 /**
1280   * @brief    Get XTLF Current Setting
1281   * @rmtoll   XTLFCR    IPW    FL_RCC_XTLF_GetWorkCurrent
1282   * @retval   Returned value can be one of the following values:
1283   *           @arg @ref FL_RCC_XTLF_WORK_CURRENT_450NA
1284   *           @arg @ref FL_RCC_XTLF_WORK_CURRENT_400NA
1285   *           @arg @ref FL_RCC_XTLF_WORK_CURRENT_350NA
1286   *           @arg @ref FL_RCC_XTLF_WORK_CURRENT_300NA
1287   *           @arg @ref FL_RCC_XTLF_WORK_CURRENT_250NA
1288   *           @arg @ref FL_RCC_XTLF_WORK_CURRENT_200NA
1289   *           @arg @ref FL_RCC_XTLF_WORK_CURRENT_150NA
1290   *           @arg @ref FL_RCC_XTLF_WORK_CURRENT_100NA
1291   */
FL_RCC_XTLF_GetWorkCurrent(void)1292 __STATIC_INLINE uint32_t FL_RCC_XTLF_GetWorkCurrent(void)
1293 {
1294     return (uint32_t)(READ_BIT(RCC->XTLFCR, RCC_XTLFCR_IPW_Msk));
1295 }
1296 
1297 /**
1298   * @brief    Set XTHF Oscillation Strength
1299   * @rmtoll   XTHFCR    CFG    FL_RCC_XTHF_WriteDriverStrength
1300   * @param    strength
1301   * @retval   None
1302   */
FL_RCC_XTHF_WriteDriverStrength(uint32_t strength)1303 __STATIC_INLINE void FL_RCC_XTHF_WriteDriverStrength(uint32_t strength)
1304 {
1305     MODIFY_REG(RCC->XTHFCR, (0x7U << 8U), (strength << 8U));
1306 }
1307 
1308 /**
1309   * @brief    Get XTHF Oscillation Strength Setting
1310   * @rmtoll   XTHFCR    CFG    FL_RCC_XTHF_ReadDriverStrength
1311   * @retval
1312   */
FL_RCC_XTHF_ReadDriverStrength(void)1313 __STATIC_INLINE uint32_t FL_RCC_XTHF_ReadDriverStrength(void)
1314 {
1315     return (uint32_t)(READ_BIT(RCC->XTHFCR, (0x7U << 8U)) >> 8U);
1316 }
1317 
1318 /**
1319   * @brief    Enable XTHF
1320   * @rmtoll   XTHFCR    EN    FL_RCC_XTHF_Enable
1321   * @retval   None
1322   */
FL_RCC_XTHF_Enable(void)1323 __STATIC_INLINE void FL_RCC_XTHF_Enable(void)
1324 {
1325     SET_BIT(RCC->XTHFCR, RCC_XTHFCR_EN_Msk);
1326 }
1327 
1328 /**
1329   * @brief    Get XTHF Enable Status
1330   * @rmtoll   XTHFCR    EN    FL_RCC_XTHF_IsEnabled
1331   * @retval   State of bit (1 or 0).
1332   */
FL_RCC_XTHF_IsEnabled(void)1333 __STATIC_INLINE uint32_t FL_RCC_XTHF_IsEnabled(void)
1334 {
1335     return (uint32_t)(READ_BIT(RCC->XTHFCR, RCC_XTHFCR_EN_Msk) == RCC_XTHFCR_EN_Msk);
1336 }
1337 
1338 /**
1339   * @brief    Disable XTHF
1340   * @rmtoll   XTHFCR    EN    FL_RCC_XTHF_Disable
1341   * @retval   None
1342   */
FL_RCC_XTHF_Disable(void)1343 __STATIC_INLINE void FL_RCC_XTHF_Disable(void)
1344 {
1345     CLEAR_BIT(RCC->XTHFCR, RCC_XTHFCR_EN_Msk);
1346 }
1347 
1348 /**
1349   * @brief    Set RCMF Output Prescaler
1350   * @rmtoll   RCMFCR    PSC    FL_RCC_RCMF_SetPrescaler
1351   * @param    Prescaler This parameter can be one of the following values:
1352   *           @arg @ref FL_RCC_RCMF_PSC_DIV1
1353   *           @arg @ref FL_RCC_RCMF_PSC_DIV4
1354   *           @arg @ref FL_RCC_RCMF_PSC_DIV8
1355   *           @arg @ref FL_RCC_RCMF_PSC_DIV16
1356   * @retval   None
1357   */
FL_RCC_RCMF_SetPrescaler(uint32_t Prescaler)1358 __STATIC_INLINE void FL_RCC_RCMF_SetPrescaler(uint32_t Prescaler)
1359 {
1360     MODIFY_REG(RCC->RCMFCR, RCC_RCMFCR_PSC_Msk, Prescaler);
1361 }
1362 
1363 /**
1364   * @brief    Get RCMF Output Prescaler Setting
1365   * @rmtoll   RCMFCR    PSC    FL_RCC_RCMF_GetPrescaler
1366   * @retval   Returned value can be one of the following values:
1367   *           @arg @ref FL_RCC_RCMF_PSC_DIV1
1368   *           @arg @ref FL_RCC_RCMF_PSC_DIV4
1369   *           @arg @ref FL_RCC_RCMF_PSC_DIV8
1370   *           @arg @ref FL_RCC_RCMF_PSC_DIV16
1371   */
FL_RCC_RCMF_GetPrescaler(void)1372 __STATIC_INLINE uint32_t FL_RCC_RCMF_GetPrescaler(void)
1373 {
1374     return (uint32_t)(READ_BIT(RCC->RCMFCR, RCC_RCMFCR_PSC_Msk));
1375 }
1376 
1377 /**
1378   * @brief    Enable RCMF
1379   * @rmtoll   RCMFCR    EN    FL_RCC_RCMF_Enable
1380   * @retval   None
1381   */
FL_RCC_RCMF_Enable(void)1382 __STATIC_INLINE void FL_RCC_RCMF_Enable(void)
1383 {
1384     SET_BIT(RCC->RCMFCR, RCC_RCMFCR_EN_Msk);
1385 }
1386 
1387 /**
1388   * @brief    Get RCMF Enable Status
1389   * @rmtoll   RCMFCR    EN    FL_RCC_RCMF_IsEnabled
1390   * @retval   State of bit (1 or 0).
1391   */
FL_RCC_RCMF_IsEnabled(void)1392 __STATIC_INLINE uint32_t FL_RCC_RCMF_IsEnabled(void)
1393 {
1394     return (uint32_t)(READ_BIT(RCC->RCMFCR, RCC_RCMFCR_EN_Msk) == RCC_RCMFCR_EN_Msk);
1395 }
1396 
1397 /**
1398   * @brief    Disable RCMF
1399   * @rmtoll   RCMFCR    EN    FL_RCC_RCMF_Disable
1400   * @retval   None
1401   */
FL_RCC_RCMF_Disable(void)1402 __STATIC_INLINE void FL_RCC_RCMF_Disable(void)
1403 {
1404     CLEAR_BIT(RCC->RCMFCR, RCC_RCMFCR_EN_Msk);
1405 }
1406 
1407 /**
1408   * @brief    Set RCHF Freqency Trim Value
1409   * @rmtoll   RCHFTR    TRIM    FL_RCC_RCHF_WriteTrimValue
1410   * @param    value TrimValue The value of RCHF trim
1411   * @retval   None
1412   */
FL_RCC_RCHF_WriteTrimValue(uint32_t value)1413 __STATIC_INLINE void FL_RCC_RCHF_WriteTrimValue(uint32_t value)
1414 {
1415     MODIFY_REG(RCC->RCHFTR, (0x7fU << 0U), (value << 0U));
1416 }
1417 
1418 /**
1419   * @brief    Get RCHF Freqency Trim Value
1420   * @rmtoll   RCHFTR    TRIM    FL_RCC_RCHF_ReadTrimValue
1421   * @retval   The value of RCHF trim
1422   */
FL_RCC_RCHF_ReadTrimValue(void)1423 __STATIC_INLINE uint32_t FL_RCC_RCHF_ReadTrimValue(void)
1424 {
1425     return (uint32_t)(READ_BIT(RCC->RCHFTR, 0x7fU) >> 0U);
1426 }
1427 
1428 /**
1429   * @brief    Enable Group1 Periph Bus Clock
1430   * @rmtoll   PCLKCR1        FL_RCC_EnableGroup1BusClock
1431   * @param    Peripheral This parameter can be one of the following values:
1432   *           @arg @ref FL_RCC_GROUP1_BUSCLK_LPTIM32
1433   *           @arg @ref FL_RCC_GROUP1_BUSCLK_USB
1434   *           @arg @ref FL_RCC_GROUP1_BUSCLK_RTC
1435   *           @arg @ref FL_RCC_GROUP1_BUSCLK_PMU
1436   *           @arg @ref FL_RCC_GROUP1_BUSCLK_SCU
1437   *           @arg @ref FL_RCC_GROUP1_BUSCLK_IWDT
1438   *           @arg @ref FL_RCC_GROUP1_BUSCLK_ANAC
1439   *           @arg @ref FL_RCC_GROUP1_BUSCLK_PAD
1440   *           @arg @ref FL_RCC_GROUP1_BUSCLK_DCU
1441   * @retval   None
1442   */
FL_RCC_EnableGroup1BusClock(uint32_t Peripheral)1443 __STATIC_INLINE void FL_RCC_EnableGroup1BusClock(uint32_t Peripheral)
1444 {
1445     SET_BIT(RCC->PCLKCR1, ((Peripheral & 0xffffffff) << 0x0U));
1446 }
1447 
1448 /**
1449   * @brief    Enable Group2 Periph Bus Clock
1450   * @rmtoll   PCLKCR2        FL_RCC_EnableGroup2BusClock
1451   * @param    Peripheral This parameter can be one of the following values:
1452   *           @arg @ref FL_RCC_GROUP2_BUSCLK_CRC
1453   *           @arg @ref FL_RCC_GROUP2_BUSCLK_RNG
1454   *           @arg @ref FL_RCC_GROUP2_BUSCLK_AES
1455   *           @arg @ref FL_RCC_GROUP2_BUSCLK_LCD
1456   *           @arg @ref FL_RCC_GROUP2_BUSCLK_DMA
1457   *           @arg @ref FL_RCC_GROUP2_BUSCLK_FLASH
1458   *           @arg @ref FL_RCC_GROUP2_BUSCLK_RAMBIST
1459   *           @arg @ref FL_RCC_GROUP2_BUSCLK_WWDT
1460   *           @arg @ref FL_RCC_GROUP2_BUSCLK_ADC
1461   *           @arg @ref FL_RCC_GROUP2_BUSCLK_HDIV
1462   * @retval   None
1463   */
FL_RCC_EnableGroup2BusClock(uint32_t Peripheral)1464 __STATIC_INLINE void FL_RCC_EnableGroup2BusClock(uint32_t Peripheral)
1465 {
1466     SET_BIT(RCC->PCLKCR2, ((Peripheral & 0xffffffff) << 0x0U));
1467 }
1468 
1469 /**
1470   * @brief    Enable Group3 Periph Bus Clock
1471   * @rmtoll   PCLKCR3        FL_RCC_EnableGroup3BusClock
1472   * @param    Peripheral This parameter can be one of the following values:
1473   *           @arg @ref FL_RCC_GROUP3_BUSCLK_SPI1
1474   *           @arg @ref FL_RCC_GROUP3_BUSCLK_SPI2
1475   *           @arg @ref FL_RCC_GROUP3_BUSCLK_UART0
1476   *           @arg @ref FL_RCC_GROUP3_BUSCLK_UART1
1477   *           @arg @ref FL_RCC_GROUP3_BUSCLK_UART4
1478   *           @arg @ref FL_RCC_GROUP3_BUSCLK_UART5
1479   *           @arg @ref FL_RCC_GROUP3_BUSCLK_UARTIR
1480   *           @arg @ref FL_RCC_GROUP3_BUSCLK_LPUART0
1481   *           @arg @ref FL_RCC_GROUP3_BUSCLK_U7816
1482   *           @arg @ref FL_RCC_GROUP3_BUSCLK_LPUART1
1483   *           @arg @ref FL_RCC_GROUP3_BUSCLK_I2C
1484   * @retval   None
1485   */
FL_RCC_EnableGroup3BusClock(uint32_t Peripheral)1486 __STATIC_INLINE void FL_RCC_EnableGroup3BusClock(uint32_t Peripheral)
1487 {
1488     SET_BIT(RCC->PCLKCR3, ((Peripheral & 0xffffffff) << 0x0U));
1489 }
1490 
1491 /**
1492   * @brief    Enable Group4 Periph Bus Clock
1493   * @rmtoll   PCLKCR4        FL_RCC_EnableGroup4BusClock
1494   * @param    Peripheral This parameter can be one of the following values:
1495   *           @arg @ref FL_RCC_GROUP4_BUSCLK_BSTIM32
1496   *           @arg @ref FL_RCC_GROUP4_BUSCLK_GPTIM0
1497   *           @arg @ref FL_RCC_GROUP4_BUSCLK_GPTIM1
1498   *           @arg @ref FL_RCC_GROUP4_BUSCLK_ATIM
1499   * @retval   None
1500   */
FL_RCC_EnableGroup4BusClock(uint32_t Peripheral)1501 __STATIC_INLINE void FL_RCC_EnableGroup4BusClock(uint32_t Peripheral)
1502 {
1503     SET_BIT(RCC->PCLKCR4, ((Peripheral & 0xffffffff) << 0x0U));
1504 }
1505 
1506 /**
1507   * @brief    Disable Group1 Periph Bus Clock
1508   * @rmtoll   PCLKCR1        FL_RCC_DisableGroup1BusClock
1509   * @param    Peripheral This parameter can be one of the following values:
1510   *           @arg @ref FL_RCC_GROUP1_BUSCLK_LPTIM32
1511   *           @arg @ref FL_RCC_GROUP1_BUSCLK_USB
1512   *           @arg @ref FL_RCC_GROUP1_BUSCLK_RTC
1513   *           @arg @ref FL_RCC_GROUP1_BUSCLK_PMU
1514   *           @arg @ref FL_RCC_GROUP1_BUSCLK_SCU
1515   *           @arg @ref FL_RCC_GROUP1_BUSCLK_IWDT
1516   *           @arg @ref FL_RCC_GROUP1_BUSCLK_ANAC
1517   *           @arg @ref FL_RCC_GROUP1_BUSCLK_PAD
1518   *           @arg @ref FL_RCC_GROUP1_BUSCLK_DCU
1519   * @retval   None
1520   */
FL_RCC_DisableGroup1BusClock(uint32_t Peripheral)1521 __STATIC_INLINE void FL_RCC_DisableGroup1BusClock(uint32_t Peripheral)
1522 {
1523     CLEAR_BIT(RCC->PCLKCR1, ((Peripheral & 0xffffffff) << 0x0U));
1524 }
1525 
1526 /**
1527   * @brief    Disable Group2 Periph Bus Clock
1528   * @rmtoll   PCLKCR2        FL_RCC_DisableGroup2BusClock
1529   * @param    Peripheral This parameter can be one of the following values:
1530   *           @arg @ref FL_RCC_GROUP2_BUSCLK_CRC
1531   *           @arg @ref FL_RCC_GROUP2_BUSCLK_RNG
1532   *           @arg @ref FL_RCC_GROUP2_BUSCLK_AES
1533   *           @arg @ref FL_RCC_GROUP2_BUSCLK_LCD
1534   *           @arg @ref FL_RCC_GROUP2_BUSCLK_DMA
1535   *           @arg @ref FL_RCC_GROUP2_BUSCLK_FLASH
1536   *           @arg @ref FL_RCC_GROUP2_BUSCLK_RAMBIST
1537   *           @arg @ref FL_RCC_GROUP2_BUSCLK_WWDT
1538   *           @arg @ref FL_RCC_GROUP2_BUSCLK_ADC
1539   *           @arg @ref FL_RCC_GROUP2_BUSCLK_HDIV
1540   * @retval   None
1541   */
FL_RCC_DisableGroup2BusClock(uint32_t Peripheral)1542 __STATIC_INLINE void FL_RCC_DisableGroup2BusClock(uint32_t Peripheral)
1543 {
1544     CLEAR_BIT(RCC->PCLKCR2, ((Peripheral & 0xffffffff) << 0x0U));
1545 }
1546 
1547 /**
1548   * @brief    Disable Group3 Periph Bus Clock
1549   * @rmtoll   PCLKCR3        FL_RCC_DisableGroup3BusClock
1550   * @param    Peripheral This parameter can be one of the following values:
1551   *           @arg @ref FL_RCC_GROUP3_BUSCLK_SPI1
1552   *           @arg @ref FL_RCC_GROUP3_BUSCLK_SPI2
1553   *           @arg @ref FL_RCC_GROUP3_BUSCLK_UART0
1554   *           @arg @ref FL_RCC_GROUP3_BUSCLK_UART1
1555   *           @arg @ref FL_RCC_GROUP3_BUSCLK_UART4
1556   *           @arg @ref FL_RCC_GROUP3_BUSCLK_UART5
1557   *           @arg @ref FL_RCC_GROUP3_BUSCLK_UARTIR
1558   *           @arg @ref FL_RCC_GROUP3_BUSCLK_LPUART0
1559   *           @arg @ref FL_RCC_GROUP3_BUSCLK_U7816
1560   *           @arg @ref FL_RCC_GROUP3_BUSCLK_LPUART1
1561   *           @arg @ref FL_RCC_GROUP3_BUSCLK_I2C
1562   * @retval   None
1563   */
FL_RCC_DisableGroup3BusClock(uint32_t Peripheral)1564 __STATIC_INLINE void FL_RCC_DisableGroup3BusClock(uint32_t Peripheral)
1565 {
1566     CLEAR_BIT(RCC->PCLKCR3, ((Peripheral & 0xffffffff) << 0x0U));
1567 }
1568 
1569 /**
1570   * @brief    Disable Group4 Periph Bus Clock
1571   * @rmtoll   PCLKCR4        FL_RCC_DisableGroup4BusClock
1572   * @param    Peripheral This parameter can be one of the following values:
1573   *           @arg @ref FL_RCC_GROUP4_BUSCLK_BSTIM32
1574   *           @arg @ref FL_RCC_GROUP4_BUSCLK_GPTIM0
1575   *           @arg @ref FL_RCC_GROUP4_BUSCLK_GPTIM1
1576   *           @arg @ref FL_RCC_GROUP4_BUSCLK_ATIM
1577   * @retval   None
1578   */
FL_RCC_DisableGroup4BusClock(uint32_t Peripheral)1579 __STATIC_INLINE void FL_RCC_DisableGroup4BusClock(uint32_t Peripheral)
1580 {
1581     CLEAR_BIT(RCC->PCLKCR4, ((Peripheral & 0xffffffff) << 0x0U));
1582 }
1583 
1584 /**
1585   * @brief    Get Group1 Periph Bus Clock Enable Status
1586   * @rmtoll   PCLKCR1        FL_RCC_IsEnabledGroup1BusClock
1587   * @param    Peripheral This parameter can be one of the following values:
1588   *           @arg @ref FL_RCC_GROUP1_BUSCLK_LPTIM32
1589   *           @arg @ref FL_RCC_GROUP1_BUSCLK_USB
1590   *           @arg @ref FL_RCC_GROUP1_BUSCLK_RTC
1591   *           @arg @ref FL_RCC_GROUP1_BUSCLK_PMU
1592   *           @arg @ref FL_RCC_GROUP1_BUSCLK_SCU
1593   *           @arg @ref FL_RCC_GROUP1_BUSCLK_IWDT
1594   *           @arg @ref FL_RCC_GROUP1_BUSCLK_ANAC
1595   *           @arg @ref FL_RCC_GROUP1_BUSCLK_PAD
1596   *           @arg @ref FL_RCC_GROUP1_BUSCLK_DCU
1597   * @retval   State of bit (1 or 0).
1598   */
FL_RCC_IsEnabledGroup1BusClock(uint32_t Peripheral)1599 __STATIC_INLINE uint32_t FL_RCC_IsEnabledGroup1BusClock(uint32_t Peripheral)
1600 {
1601     return (uint32_t)(READ_BIT(RCC->PCLKCR1, ((Peripheral & 0xffffffff) << 0x0U)) == ((Peripheral & 0xffffffff) << 0x0U));
1602 }
1603 
1604 /**
1605   * @brief    Get Group2 Periph Bus Clock Enable Status
1606   * @rmtoll   PCLKCR2        FL_RCC_IsEnabledGroup2BusClock
1607   * @param    Peripheral This parameter can be one of the following values:
1608   *           @arg @ref FL_RCC_GROUP2_BUSCLK_CRC
1609   *           @arg @ref FL_RCC_GROUP2_BUSCLK_RNG
1610   *           @arg @ref FL_RCC_GROUP2_BUSCLK_AES
1611   *           @arg @ref FL_RCC_GROUP2_BUSCLK_LCD
1612   *           @arg @ref FL_RCC_GROUP2_BUSCLK_DMA
1613   *           @arg @ref FL_RCC_GROUP2_BUSCLK_FLASH
1614   *           @arg @ref FL_RCC_GROUP2_BUSCLK_RAMBIST
1615   *           @arg @ref FL_RCC_GROUP2_BUSCLK_WWDT
1616   *           @arg @ref FL_RCC_GROUP2_BUSCLK_ADC
1617   * @retval   State of bit (1 or 0).
1618   */
FL_RCC_IsEnabledGroup2BusClock(uint32_t Peripheral)1619 __STATIC_INLINE uint32_t FL_RCC_IsEnabledGroup2BusClock(uint32_t Peripheral)
1620 {
1621     return (uint32_t)(READ_BIT(RCC->PCLKCR2, ((Peripheral & 0xffffffff) << 0x0U)) == ((Peripheral & 0xffffffff) << 0x0U));
1622 }
1623 
1624 /**
1625   * @brief    Get Group3 Periph Bus Clock Enable Status
1626   * @rmtoll   PCLKCR3        FL_RCC_IsEnabledGroup3BusClock
1627   * @param    Peripheral This parameter can be one of the following values:
1628   *           @arg @ref FL_RCC_GROUP3_BUSCLK_SPI1
1629   *           @arg @ref FL_RCC_GROUP3_BUSCLK_SPI2
1630   *           @arg @ref FL_RCC_GROUP3_BUSCLK_UART0
1631   *           @arg @ref FL_RCC_GROUP3_BUSCLK_UART1
1632   *           @arg @ref FL_RCC_GROUP3_BUSCLK_UART4
1633   *           @arg @ref FL_RCC_GROUP3_BUSCLK_UART5
1634   *           @arg @ref FL_RCC_GROUP3_BUSCLK_UARTIR
1635   *           @arg @ref FL_RCC_GROUP3_BUSCLK_LPUART0
1636   *           @arg @ref FL_RCC_GROUP3_BUSCLK_U7816
1637   *           @arg @ref FL_RCC_GROUP3_BUSCLK_LPUART1
1638   *           @arg @ref FL_RCC_GROUP3_BUSCLK_I2C
1639   * @retval   State of bit (1 or 0).
1640   */
FL_RCC_IsEnabledGroup3BusClock(uint32_t Peripheral)1641 __STATIC_INLINE uint32_t FL_RCC_IsEnabledGroup3BusClock(uint32_t Peripheral)
1642 {
1643     return (uint32_t)(READ_BIT(RCC->PCLKCR3, ((Peripheral & 0xffffffff) << 0x0U)) == ((Peripheral & 0xffffffff) << 0x0U));
1644 }
1645 
1646 /**
1647   * @brief    Get Group4 Periph Bus Clock Enable Status
1648   * @rmtoll   PCLKCR4        FL_RCC_IsEnabledGroup4BusClock
1649   * @param    Peripheral This parameter can be one of the following values:
1650   *           @arg @ref FL_RCC_GROUP4_BUSCLK_BSTIM32
1651   *           @arg @ref FL_RCC_GROUP4_BUSCLK_GPTIM0
1652   *           @arg @ref FL_RCC_GROUP4_BUSCLK_GPTIM1
1653   *           @arg @ref FL_RCC_GROUP4_BUSCLK_ATIM
1654   * @retval   State of bit (1 or 0).
1655   */
FL_RCC_IsEnabledGroup4BusClock(uint32_t Peripheral)1656 __STATIC_INLINE uint32_t FL_RCC_IsEnabledGroup4BusClock(uint32_t Peripheral)
1657 {
1658     return (uint32_t)(READ_BIT(RCC->PCLKCR4, ((Peripheral & 0xffffffff) << 0x0U)) == ((Peripheral & 0xffffffff) << 0x0U));
1659 }
1660 
1661 /**
1662   * @brief    Enable Group1 Periph Operation Clock
1663   * @rmtoll   OPCCR1        FL_RCC_EnableGroup1OperationClock
1664   * @param    Peripheral This parameter can be one of the following values:
1665   *           @arg @ref FL_RCC_GROUP1_OPCLK_EXTI
1666   *           @arg @ref FL_RCC_GROUP1_OPCLK_LPUART1
1667   *           @arg @ref FL_RCC_GROUP1_OPCLK_LPUART0
1668   *           @arg @ref FL_RCC_GROUP1_OPCLK_I2C
1669   *           @arg @ref FL_RCC_GROUP1_OPCLK_ATIM
1670   *           @arg @ref FL_RCC_GROUP1_OPCLK_UART1
1671   *           @arg @ref FL_RCC_GROUP1_OPCLK_UART0
1672   * @retval   None
1673   */
FL_RCC_EnableGroup1OperationClock(uint32_t Peripheral)1674 __STATIC_INLINE void FL_RCC_EnableGroup1OperationClock(uint32_t Peripheral)
1675 {
1676     SET_BIT(RCC->OPCCR1, ((Peripheral & 0xffffffff) << 0x0U));
1677 }
1678 
1679 /**
1680   * @brief    Enable Group2 Periph Operation Clock
1681   * @rmtoll   OPCCR2        FL_RCC_EnableGroup2OperationClock
1682   * @param    Peripheral This parameter can be one of the following values:
1683   *           @arg @ref FL_RCC_GROUP2_OPCLK_USB
1684   *           @arg @ref FL_RCC_GROUP2_OPCLK_FLASH
1685   *           @arg @ref FL_RCC_GROUP2_OPCLK_RNG
1686   *           @arg @ref FL_RCC_GROUP2_OPCLK_ADC
1687   *           @arg @ref FL_RCC_GROUP2_OPCLK_LPTIM32
1688   *           @arg @ref FL_RCC_GROUP2_OPCLK_BSTIM32
1689   * @retval   None
1690   */
FL_RCC_EnableGroup2OperationClock(uint32_t Peripheral)1691 __STATIC_INLINE void FL_RCC_EnableGroup2OperationClock(uint32_t Peripheral)
1692 {
1693     SET_BIT(RCC->OPCCR2, ((Peripheral & 0xffffffff) << 0x0U));
1694 }
1695 
1696 /**
1697   * @brief    Disable Group1 Periph Operation Clock
1698   * @rmtoll   OPCCR1        FL_RCC_DisableGroup1OperationClock
1699   * @param    Peripheral This parameter can be one of the following values:
1700   *           @arg @ref FL_RCC_GROUP1_OPCLK_EXTI
1701   *           @arg @ref FL_RCC_GROUP1_OPCLK_LPUART1
1702   *           @arg @ref FL_RCC_GROUP1_OPCLK_LPUART0
1703   *           @arg @ref FL_RCC_GROUP1_OPCLK_I2C
1704   *           @arg @ref FL_RCC_GROUP1_OPCLK_ATIM
1705   *           @arg @ref FL_RCC_GROUP1_OPCLK_UART1
1706   * @retval   None
1707   */
FL_RCC_DisableGroup1OperationClock(uint32_t Peripheral)1708 __STATIC_INLINE void FL_RCC_DisableGroup1OperationClock(uint32_t Peripheral)
1709 {
1710     CLEAR_BIT(RCC->OPCCR1, ((Peripheral & 0xffffffff) << 0x0U));
1711 }
1712 
1713 /**
1714   * @brief    Disable Group2 Periph Operation Clock
1715   * @rmtoll   OPCCR2        FL_RCC_DisableGroup2OperationClock
1716   * @param    Peripheral This parameter can be one of the following values:
1717   *           @arg @ref FL_RCC_GROUP2_OPCLK_USB
1718   *           @arg @ref FL_RCC_GROUP2_OPCLK_FLASH
1719   *           @arg @ref FL_RCC_GROUP2_OPCLK_RNG
1720   *           @arg @ref FL_RCC_GROUP2_OPCLK_ADC
1721   *           @arg @ref FL_RCC_GROUP2_OPCLK_LPTIM32
1722   *           @arg @ref FL_RCC_GROUP2_OPCLK_BSTIM32
1723   * @retval   None
1724   */
FL_RCC_DisableGroup2OperationClock(uint32_t Peripheral)1725 __STATIC_INLINE void FL_RCC_DisableGroup2OperationClock(uint32_t Peripheral)
1726 {
1727     CLEAR_BIT(RCC->OPCCR2, ((Peripheral & 0xffffffff) << 0x0U));
1728 }
1729 
1730 /**
1731   * @brief    Get Group1 Periph Operation Clock Enable Status
1732   * @rmtoll   OPCCR1        FL_RCC_IsEnabledGroup1OperationClock
1733   * @param    Peripheral This parameter can be one of the following values:
1734   *           @arg @ref FL_RCC_GROUP1_OPCLK_EXTI
1735   *           @arg @ref FL_RCC_GROUP1_OPCLK_LPUART1
1736   *           @arg @ref FL_RCC_GROUP1_OPCLK_LPUART0
1737   *           @arg @ref FL_RCC_GROUP1_OPCLK_I2C
1738   *           @arg @ref FL_RCC_GROUP1_OPCLK_ATIM
1739   *           @arg @ref FL_RCC_GROUP1_OPCLK_UART1
1740   *           @arg @ref FL_RCC_GROUP1_OPCLK_UART0
1741   * @retval   State of bit (1 or 0).
1742   */
FL_RCC_IsEnabledGroup1OperationClock(uint32_t Peripheral)1743 __STATIC_INLINE uint32_t FL_RCC_IsEnabledGroup1OperationClock(uint32_t Peripheral)
1744 {
1745     return (uint32_t)(READ_BIT(RCC->OPCCR1, ((Peripheral & 0xffffffff) << 0x0U)) == ((Peripheral & 0xffffffff) << 0x0U));
1746 }
1747 
1748 /**
1749   * @brief    Get Group2 Periph Operation Clock Enable Status
1750   * @rmtoll   OPCCR2        FL_RCC_IsEnabledGroup2OperationClock
1751   * @param    Peripheral This parameter can be one of the following values:
1752   *           @arg @ref FL_RCC_GROUP2_OPCLK_USB
1753   *           @arg @ref FL_RCC_GROUP2_OPCLK_FLASH
1754   *           @arg @ref FL_RCC_GROUP2_OPCLK_RNG
1755   *           @arg @ref FL_RCC_GROUP2_OPCLK_ADC
1756   *           @arg @ref FL_RCC_GROUP2_OPCLK_LPTIM32
1757   *           @arg @ref FL_RCC_GROUP2_OPCLK_BSTIM32
1758   * @retval   State of bit (1 or 0).
1759   */
FL_RCC_IsEnabledGroup2OperationClock(uint32_t Peripheral)1760 __STATIC_INLINE uint32_t FL_RCC_IsEnabledGroup2OperationClock(uint32_t Peripheral)
1761 {
1762     return (uint32_t)(READ_BIT(RCC->OPCCR2, ((Peripheral & 0xffffffff) << 0x0U)) == ((Peripheral & 0xffffffff) << 0x0U));
1763 }
1764 
1765 /**
1766   * @brief    Set EXTI Clock Source
1767   * @rmtoll   OPCCR1    EXTICKS    FL_RCC_SetEXTIClockSource
1768   * @param    clock This parameter can be one of the following values:
1769   *           @arg @ref FL_RCC_EXTI_CLK_SOURCE_LSCLK
1770   *           @arg @ref FL_RCC_EXTI_CLK_SOURCE_HCLK
1771   * @retval   None
1772   */
FL_RCC_SetEXTIClockSource(uint32_t clock)1773 __STATIC_INLINE void FL_RCC_SetEXTIClockSource(uint32_t clock)
1774 {
1775     MODIFY_REG(RCC->OPCCR1, RCC_OPCCR1_EXTICKS_Msk, clock);
1776 }
1777 
1778 /**
1779   * @brief    Get EXTI Clock Source Setting
1780   * @rmtoll   OPCCR1    EXTICKS    FL_RCC_GetEXTIClockSource
1781   * @retval   Returned value can be one of the following values:
1782   *           @arg @ref FL_RCC_EXTI_CLK_SOURCE_LSCLK
1783   *           @arg @ref FL_RCC_EXTI_CLK_SOURCE_HCLK
1784   */
FL_RCC_GetEXTIClockSource(void)1785 __STATIC_INLINE uint32_t FL_RCC_GetEXTIClockSource(void)
1786 {
1787     return (uint32_t)(READ_BIT(RCC->OPCCR1, RCC_OPCCR1_EXTICKS_Msk));
1788 }
1789 
1790 /**
1791   * @brief    Set LPUART1 Clock Source
1792   * @rmtoll   OPCCR1    LPUART1CKS    FL_RCC_SetLPUART1ClockSource
1793   * @param    clock This parameter can be one of the following values:
1794   *           @arg @ref FL_RCC_LPUART1_CLK_SOURCE_LSCLK
1795   *           @arg @ref FL_RCC_LPUART1_CLK_SOURCE_RCHF
1796   *           @arg @ref FL_RCC_LPUART1_CLK_SOURCE_RCMF
1797   * @retval   None
1798   */
FL_RCC_SetLPUART1ClockSource(uint32_t clock)1799 __STATIC_INLINE void FL_RCC_SetLPUART1ClockSource(uint32_t clock)
1800 {
1801     MODIFY_REG(RCC->OPCCR1, RCC_OPCCR1_LPUART1CKS_Msk, clock);
1802 }
1803 
1804 /**
1805   * @brief    Get LPUART1 Clock Source Setting
1806   * @rmtoll   OPCCR1    LPUART1CKS    FL_RCC_GetLPUART1ClockSource
1807   * @retval   Returned value can be one of the following values:
1808   *           @arg @ref FL_RCC_LPUART1_CLK_SOURCE_LSCLK
1809   *           @arg @ref FL_RCC_LPUART1_CLK_SOURCE_RCHF
1810   *           @arg @ref FL_RCC_LPUART1_CLK_SOURCE_RCMF
1811   */
FL_RCC_GetLPUART1ClockSource(void)1812 __STATIC_INLINE uint32_t FL_RCC_GetLPUART1ClockSource(void)
1813 {
1814     return (uint32_t)(READ_BIT(RCC->OPCCR1, RCC_OPCCR1_LPUART1CKS_Msk));
1815 }
1816 
1817 /**
1818   * @brief    Set LPUART0 Clock Source
1819   * @rmtoll   OPCCR1    LPUART0CKS    FL_RCC_SetLPUART0ClockSource
1820   * @param    clock This parameter can be one of the following values:
1821   *           @arg @ref FL_RCC_LPUART0_CLK_SOURCE_LSCLK
1822   *           @arg @ref FL_RCC_LPUART0_CLK_SOURCE_RCHF
1823   *           @arg @ref FL_RCC_LPUART0_CLK_SOURCE_RCMF
1824   * @retval   None
1825   */
FL_RCC_SetLPUART0ClockSource(uint32_t clock)1826 __STATIC_INLINE void FL_RCC_SetLPUART0ClockSource(uint32_t clock)
1827 {
1828     MODIFY_REG(RCC->OPCCR1, RCC_OPCCR1_LPUART0CKS_Msk, clock);
1829 }
1830 
1831 /**
1832   * @brief    Get LPUART0 Clock Source Setting
1833   * @rmtoll   OPCCR1    LPUART0CKS    FL_RCC_GetLPUART0ClockSource
1834   * @retval   Returned value can be one of the following values:
1835   *           @arg @ref FL_RCC_LPUART0_CLK_SOURCE_LSCLK
1836   *           @arg @ref FL_RCC_LPUART0_CLK_SOURCE_RCHF
1837   *           @arg @ref FL_RCC_LPUART0_CLK_SOURCE_RCMF
1838   */
FL_RCC_GetLPUART0ClockSource(void)1839 __STATIC_INLINE uint32_t FL_RCC_GetLPUART0ClockSource(void)
1840 {
1841     return (uint32_t)(READ_BIT(RCC->OPCCR1, RCC_OPCCR1_LPUART0CKS_Msk));
1842 }
1843 
1844 /**
1845   * @brief    Set I2C Clock Source
1846   * @rmtoll   OPCCR1    I2CCKS    FL_RCC_SetI2CClockSource
1847   * @param    clock This parameter can be one of the following values:
1848   *           @arg @ref FL_RCC_I2C_CLK_SOURCE_APB1CLK
1849   *           @arg @ref FL_RCC_I2C_CLK_SOURCE_RCHF
1850   *           @arg @ref FL_RCC_I2C_CLK_SOURCE_SYSCLK
1851   *           @arg @ref FL_RCC_I2C_CLK_SOURCE_RCMF_PSC
1852   * @retval   None
1853   */
FL_RCC_SetI2CClockSource(uint32_t clock)1854 __STATIC_INLINE void FL_RCC_SetI2CClockSource(uint32_t clock)
1855 {
1856     MODIFY_REG(RCC->OPCCR1, RCC_OPCCR1_I2CCKS_Msk, clock);
1857 }
1858 
1859 /**
1860   * @brief    Get I2C Clock Source Setting
1861   * @rmtoll   OPCCR1    I2CCKS    FL_RCC_GetI2CClockSource
1862   * @retval   Returned value can be one of the following values:
1863   *           @arg @ref FL_RCC_I2C_CLK_SOURCE_APB1CLK
1864   *           @arg @ref FL_RCC_I2C_CLK_SOURCE_RCHF
1865   *           @arg @ref FL_RCC_I2C_CLK_SOURCE_SYSCLK
1866   *           @arg @ref FL_RCC_I2C_CLK_SOURCE_RCMF_PSC
1867   */
FL_RCC_GetI2CClockSource(void)1868 __STATIC_INLINE uint32_t FL_RCC_GetI2CClockSource(void)
1869 {
1870     return (uint32_t)(READ_BIT(RCC->OPCCR1, RCC_OPCCR1_I2CCKS_Msk));
1871 }
1872 
1873 /**
1874   * @brief    Set ATIM Clock Source
1875   * @rmtoll   OPCCR1    ATCKS    FL_RCC_SetATIMClockSource
1876   * @param    clock This parameter can be one of the following values:
1877   *           @arg @ref FL_RCC_ATIM_CLK_SOURCE_APB2CLK
1878   *           @arg @ref FL_RCC_ATIM_CLK_SOURCE_USBPHYBCK120M
1879   *           @arg @ref FL_RCC_ATIM_CLK_SOURCE_PLLx2
1880   * @retval   None
1881   */
FL_RCC_SetATIMClockSource(uint32_t clock)1882 __STATIC_INLINE void FL_RCC_SetATIMClockSource(uint32_t clock)
1883 {
1884     MODIFY_REG(RCC->OPCCR1, RCC_OPCCR1_ATCKS_Msk, clock);
1885 }
1886 
1887 /**
1888   * @brief    Get ATIM Clock Source Setting
1889   * @rmtoll   OPCCR1    ATCKS    FL_RCC_GetATIMClockSource
1890   * @retval   Returned value can be one of the following values:
1891   *           @arg @ref FL_RCC_ATIM_CLK_SOURCE_APB2CLK
1892   *           @arg @ref FL_RCC_ATIM_CLK_SOURCE_USBPHYBCK120M
1893   *           @arg @ref FL_RCC_ATIM_CLK_SOURCE_PLLx2
1894   */
FL_RCC_GetATIMClockSource(void)1895 __STATIC_INLINE uint32_t FL_RCC_GetATIMClockSource(void)
1896 {
1897     return (uint32_t)(READ_BIT(RCC->OPCCR1, RCC_OPCCR1_ATCKS_Msk));
1898 }
1899 
1900 /**
1901   * @brief    Set UART1 Clock Source
1902   * @rmtoll   OPCCR1    UART1CKS    FL_RCC_SetUART1ClockSource
1903   * @param    clock This parameter can be one of the following values:
1904   *           @arg @ref FL_RCC_UART1_CLK_SOURCE_APB1CLK
1905   *           @arg @ref FL_RCC_UART1_CLK_SOURCE_RCHF
1906   *           @arg @ref FL_RCC_UART1_CLK_SOURCE_SYSCLK
1907   *           @arg @ref FL_RCC_UART1_CLK_SOURCE_RCMF_PSC
1908   * @retval   None
1909   */
FL_RCC_SetUART1ClockSource(uint32_t clock)1910 __STATIC_INLINE void FL_RCC_SetUART1ClockSource(uint32_t clock)
1911 {
1912     MODIFY_REG(RCC->OPCCR1, RCC_OPCCR1_UART1CKS_Msk, clock);
1913 }
1914 
1915 /**
1916   * @brief    Get UART1 Clock Source Setting
1917   * @rmtoll   OPCCR1    UART1CKS    FL_RCC_GetUART1ClockSource
1918   * @retval   Returned value can be one of the following values:
1919   *           @arg @ref FL_RCC_UART1_CLK_SOURCE_APB1CLK
1920   *           @arg @ref FL_RCC_UART1_CLK_SOURCE_RCHF
1921   *           @arg @ref FL_RCC_UART1_CLK_SOURCE_SYSCLK
1922   *           @arg @ref FL_RCC_UART1_CLK_SOURCE_RCMF_PSC
1923   */
FL_RCC_GetUART1ClockSource(void)1924 __STATIC_INLINE uint32_t FL_RCC_GetUART1ClockSource(void)
1925 {
1926     return (uint32_t)(READ_BIT(RCC->OPCCR1, RCC_OPCCR1_UART1CKS_Msk));
1927 }
1928 
1929 /**
1930   * @brief    Set UART0 Clock Source
1931   * @rmtoll   OPCCR1    UART0CKS    FL_RCC_SetUART0ClockSource
1932   * @param    clock This parameter can be one of the following values:
1933   *           @arg @ref FL_RCC_UART0_CLK_SOURCE_APB1CLK
1934   *           @arg @ref FL_RCC_UART0_CLK_SOURCE_RCHF
1935   *           @arg @ref FL_RCC_UART0_CLK_SOURCE_SYSCLK
1936   *           @arg @ref FL_RCC_UART0_CLK_SOURCE_RCMF_PSC
1937   * @retval   None
1938   */
FL_RCC_SetUART0ClockSource(uint32_t clock)1939 __STATIC_INLINE void FL_RCC_SetUART0ClockSource(uint32_t clock)
1940 {
1941     MODIFY_REG(RCC->OPCCR1, RCC_OPCCR1_UART0CKS_Msk, clock);
1942 }
1943 
1944 /**
1945   * @brief    Get UART0 Clock Source Setting
1946   * @rmtoll   OPCCR1    UART0CKS    FL_RCC_GetUART0ClockSource
1947   * @retval   Returned value can be one of the following values:
1948   *           @arg @ref FL_RCC_UART0_CLK_SOURCE_APB1CLK
1949   *           @arg @ref FL_RCC_UART0_CLK_SOURCE_RCHF
1950   *           @arg @ref FL_RCC_UART0_CLK_SOURCE_SYSCLK
1951   *           @arg @ref FL_RCC_UART0_CLK_SOURCE_RCMF_PSC
1952   */
FL_RCC_GetUART0ClockSource(void)1953 __STATIC_INLINE uint32_t FL_RCC_GetUART0ClockSource(void)
1954 {
1955     return (uint32_t)(READ_BIT(RCC->OPCCR1, RCC_OPCCR1_UART0CKS_Msk));
1956 }
1957 
1958 /**
1959   * @brief    Set RNG Prescaler
1960   * @rmtoll   OPCCR2    RNGPRSC    FL_RCC_SetRNGPrescaler
1961   * @param    prescaler This parameter can be one of the following values:
1962   *           @arg @ref FL_RCC_RNG_PSC_DIV1
1963   *           @arg @ref FL_RCC_RNG_PSC_DIV2
1964   *           @arg @ref FL_RCC_RNG_PSC_DIV4
1965   *           @arg @ref FL_RCC_RNG_PSC_DIV8
1966   *           @arg @ref FL_RCC_RNG_PSC_DIV16
1967   *           @arg @ref FL_RCC_RNG_PSC_DIV32
1968   * @retval   None
1969   */
FL_RCC_SetRNGPrescaler(uint32_t prescaler)1970 __STATIC_INLINE void FL_RCC_SetRNGPrescaler(uint32_t prescaler)
1971 {
1972     MODIFY_REG(RCC->OPCCR2, RCC_OPCCR2_RNGPRSC_Msk, prescaler);
1973 }
1974 
1975 /**
1976   * @brief    Get RNG Prescaler Setting
1977   * @rmtoll   OPCCR2    RNGPRSC    FL_RCC_GetRNGPrescaler
1978   * @retval   Returned value can be one of the following values:
1979   *           @arg @ref FL_RCC_RNG_PSC_DIV1
1980   *           @arg @ref FL_RCC_RNG_PSC_DIV2
1981   *           @arg @ref FL_RCC_RNG_PSC_DIV4
1982   *           @arg @ref FL_RCC_RNG_PSC_DIV8
1983   *           @arg @ref FL_RCC_RNG_PSC_DIV16
1984   *           @arg @ref FL_RCC_RNG_PSC_DIV32
1985   */
FL_RCC_GetRNGPrescaler(void)1986 __STATIC_INLINE uint32_t FL_RCC_GetRNGPrescaler(void)
1987 {
1988     return (uint32_t)(READ_BIT(RCC->OPCCR2, RCC_OPCCR2_RNGPRSC_Msk));
1989 }
1990 
1991 /**
1992   * @brief    Set ADC Prescaler
1993   * @rmtoll   OPCCR2    ADCPRSC    FL_RCC_SetADCPrescaler
1994   * @param    prescaler This parameter can be one of the following values:
1995   *           @arg @ref FL_RCC_ADC_PSC_DIV1
1996   *           @arg @ref FL_RCC_ADC_PSC_DIV2
1997   *           @arg @ref FL_RCC_ADC_PSC_DIV4
1998   *           @arg @ref FL_RCC_ADC_PSC_DIV8
1999   *           @arg @ref FL_RCC_ADC_PSC_DIV16
2000   *           @arg @ref FL_RCC_ADC_PSC_DIV32
2001   * @retval   None
2002   */
FL_RCC_SetADCPrescaler(uint32_t prescaler)2003 __STATIC_INLINE void FL_RCC_SetADCPrescaler(uint32_t prescaler)
2004 {
2005     MODIFY_REG(RCC->OPCCR2, RCC_OPCCR2_ADCPRSC_Msk, prescaler);
2006 }
2007 
2008 /**
2009   * @brief    Get ADC Prescaler Setting
2010   * @rmtoll   OPCCR2    ADCPRSC    FL_RCC_GetADCPrescaler
2011   * @retval   Returned value can be one of the following values:
2012   *           @arg @ref FL_RCC_ADC_PSC_DIV1
2013   *           @arg @ref FL_RCC_ADC_PSC_DIV2
2014   *           @arg @ref FL_RCC_ADC_PSC_DIV4
2015   *           @arg @ref FL_RCC_ADC_PSC_DIV8
2016   *           @arg @ref FL_RCC_ADC_PSC_DIV16
2017   *           @arg @ref FL_RCC_ADC_PSC_DIV32
2018   */
FL_RCC_GetADCPrescaler(void)2019 __STATIC_INLINE uint32_t FL_RCC_GetADCPrescaler(void)
2020 {
2021     return (uint32_t)(READ_BIT(RCC->OPCCR2, RCC_OPCCR2_ADCPRSC_Msk));
2022 }
2023 
2024 /**
2025   * @brief    Set USB Reference Clock
2026   * @rmtoll   OPCCR2    USBCKS    FL_RCC_SetUSBClockReference
2027   * @param    ref This parameter can be one of the following values:
2028   *           @arg @ref FL_RCC_USB_CLK_REF_XTLF
2029   *           @arg @ref FL_RCC_USB_CLK_REF_XTHF
2030   *           @arg @ref FL_RCC_USB_CLK_REF_RCHF
2031   * @retval   None
2032   */
FL_RCC_SetUSBClockReference(uint32_t ref)2033 __STATIC_INLINE void FL_RCC_SetUSBClockReference(uint32_t ref)
2034 {
2035     MODIFY_REG(RCC->OPCCR2, RCC_OPCCR2_USBCKS_Msk, ref);
2036 }
2037 
2038 /**
2039   * @brief    Get USB Reference Clock Setting
2040   * @rmtoll   OPCCR2    USBCKS    FL_RCC_GetUSBClockReference
2041   * @retval   Returned value can be one of the following values:
2042   *           @arg @ref FL_RCC_USB_CLK_REF_XTLF
2043   *           @arg @ref FL_RCC_USB_CLK_REF_XTHF
2044   *           @arg @ref FL_RCC_USB_CLK_REF_RCHF
2045   */
FL_RCC_GetUSBClockReference(void)2046 __STATIC_INLINE uint32_t FL_RCC_GetUSBClockReference(void)
2047 {
2048     return (uint32_t)(READ_BIT(RCC->OPCCR2, RCC_OPCCR2_USBCKS_Msk));
2049 }
2050 
2051 /**
2052   * @brief    Set ADC Clock Source
2053   * @rmtoll   OPCCR2    ADCCKS    FL_RCC_SetADCClockSource
2054   * @param    clock This parameter can be one of the following values:
2055   *           @arg @ref FL_RCC_ADC_CLK_SOURCE_RCMF_PSC
2056   *           @arg @ref FL_RCC_ADC_CLK_SOURCE_RCHF
2057   *           @arg @ref FL_RCC_ADC_CLK_SOURCE_XTHF
2058   *           @arg @ref FL_RCC_ADC_CLK_SOURCE_PLL
2059   * @retval   None
2060   */
FL_RCC_SetADCClockSource(uint32_t clock)2061 __STATIC_INLINE void FL_RCC_SetADCClockSource(uint32_t clock)
2062 {
2063     MODIFY_REG(RCC->OPCCR2, RCC_OPCCR2_ADCCKS_Msk, clock);
2064 }
2065 
2066 /**
2067   * @brief    Get ADC Clock Source Setting
2068   * @rmtoll   OPCCR2    ADCCKS    FL_RCC_GetADCClockSource
2069   * @retval   Returned value can be one of the following values:
2070   *           @arg @ref FL_RCC_ADC_CLK_SOURCE_RCMF_PSC
2071   *           @arg @ref FL_RCC_ADC_CLK_SOURCE_RCHF
2072   *           @arg @ref FL_RCC_ADC_CLK_SOURCE_XTHF
2073   *           @arg @ref FL_RCC_ADC_CLK_SOURCE_PLL
2074   */
FL_RCC_GetADCClockSource(void)2075 __STATIC_INLINE uint32_t FL_RCC_GetADCClockSource(void)
2076 {
2077     return (uint32_t)(READ_BIT(RCC->OPCCR2, RCC_OPCCR2_ADCCKS_Msk));
2078 }
2079 
2080 /**
2081   * @brief    Set LPTIM Clock Source
2082   * @rmtoll   OPCCR2    LPT32CKS    FL_RCC_SetLPTIM32ClockSource
2083   * @param    clock This parameter can be one of the following values:
2084   *           @arg @ref FL_RCC_LPTIM32_CLK_SOURCE_APB1CLK
2085   *           @arg @ref FL_RCC_LPTIM32_CLK_SOURCE_LSCLK
2086   *           @arg @ref FL_RCC_LPTIM32_CLK_SOURCE_LPOSC
2087   *           @arg @ref FL_RCC_LPTIM32_CLK_SOURCE_RCMF_PSC
2088   * @retval   None
2089   */
FL_RCC_SetLPTIM32ClockSource(uint32_t clock)2090 __STATIC_INLINE void FL_RCC_SetLPTIM32ClockSource(uint32_t clock)
2091 {
2092     MODIFY_REG(RCC->OPCCR2, RCC_OPCCR2_LPT32CKS_Msk, clock);
2093 }
2094 
2095 /**
2096   * @brief    Get LPTIM Clock Source Setting
2097   * @rmtoll   OPCCR2    LPT32CKS    FL_RCC_GetLPTIM32ClockSource
2098   * @retval   Returned value can be one of the following values:
2099   *           @arg @ref FL_RCC_LPTIM32_CLK_SOURCE_APB1CLK
2100   *           @arg @ref FL_RCC_LPTIM32_CLK_SOURCE_LSCLK
2101   *           @arg @ref FL_RCC_LPTIM32_CLK_SOURCE_LPOSC
2102   *           @arg @ref FL_RCC_LPTIM32_CLK_SOURCE_RCMF_PSC
2103   */
FL_RCC_GetLPTIM32ClockSource(void)2104 __STATIC_INLINE uint32_t FL_RCC_GetLPTIM32ClockSource(void)
2105 {
2106     return (uint32_t)(READ_BIT(RCC->OPCCR2, RCC_OPCCR2_LPT32CKS_Msk));
2107 }
2108 
2109 /**
2110   * @brief    Set BSTIM Clock Source
2111   * @rmtoll   OPCCR2    BT32CKS    FL_RCC_SetBSTIM32ClockSource
2112   * @param    clock This parameter can be one of the following values:
2113   *           @arg @ref FL_RCC_BSTIM32_CLK_SOURCE_APB2CLK
2114   *           @arg @ref FL_RCC_BSTIM32_CLK_SOURCE_LSCLK
2115   *           @arg @ref FL_RCC_BSTIM32_CLK_SOURCE_LPOSC
2116   *           @arg @ref FL_RCC_BSTIM32_CLK_SOURCE_RCMF_PSC
2117   * @retval   None
2118   */
FL_RCC_SetBSTIM32ClockSource(uint32_t clock)2119 __STATIC_INLINE void FL_RCC_SetBSTIM32ClockSource(uint32_t clock)
2120 {
2121     MODIFY_REG(RCC->OPCCR2, RCC_OPCCR2_BT32CKS_Msk, clock);
2122 }
2123 
2124 /**
2125   * @brief    Get BSTIM Clock Source Setting
2126   * @rmtoll   OPCCR2    BT32CKS    FL_RCC_GetBSTIM32ClockSource
2127   * @retval   Returned value can be one of the following values:
2128   *           @arg @ref FL_RCC_BSTIM32_CLK_SOURCE_APB2CLK
2129   *           @arg @ref FL_RCC_BSTIM32_CLK_SOURCE_LSCLK
2130   *           @arg @ref FL_RCC_BSTIM32_CLK_SOURCE_LPOSC
2131   *           @arg @ref FL_RCC_BSTIM32_CLK_SOURCE_RCMF_PSC
2132   */
FL_RCC_GetBSTIM32ClockSource(void)2133 __STATIC_INLINE uint32_t FL_RCC_GetBSTIM32ClockSource(void)
2134 {
2135     return (uint32_t)(READ_BIT(RCC->OPCCR2, RCC_OPCCR2_BT32CKS_Msk));
2136 }
2137 
2138 /**
2139   * @brief    Set AHB Master Priority
2140   * @rmtoll   AHBMCR    MPRIL    FL_RCC_SetAHBMasterPriority
2141   * @param    priority This parameter can be one of the following values:
2142   *           @arg @ref FL_RCC_AHB_MASTER_PRIORITY_DMA_FIRST
2143   *           @arg @ref FL_RCC_AHB_MASTER_PRIORITY_CPU_FIRST
2144   * @retval   None
2145   */
FL_RCC_SetAHBMasterPriority(uint32_t priority)2146 __STATIC_INLINE void FL_RCC_SetAHBMasterPriority(uint32_t priority)
2147 {
2148     MODIFY_REG(RCC->AHBMCR, RCC_AHBMCR_MPRIL_Msk, priority);
2149 }
2150 
2151 /**
2152   * @brief    Get AHB Master Priority Setting
2153   * @rmtoll   AHBMCR    MPRIL    FL_RCC_GetAHBMasterPriority
2154   * @retval   Returned value can be one of the following values:
2155   *           @arg @ref FL_RCC_AHB_MASTER_PRIORITY_DMA_FIRST
2156   *           @arg @ref FL_RCC_AHB_MASTER_PRIORITY_CPU_FIRST
2157   */
FL_RCC_GetAHBMasterPriority(void)2158 __STATIC_INLINE uint32_t FL_RCC_GetAHBMasterPriority(void)
2159 {
2160     return (uint32_t)(READ_BIT(RCC->AHBMCR, RCC_AHBMCR_MPRIL_Msk));
2161 }
2162 
2163 /**
2164   * @brief    Set LSCLK Clock Source
2165   * @rmtoll   LSCLKSEL    SEL    FL_RCC_SetLSCLKClockSource
2166   * @param    clock This parameter can be one of the following values:
2167   *           @arg @ref FL_RCC_LSCLK_CLK_SOURCE_LPOSC
2168   *           @arg @ref FL_RCC_LSCLK_CLK_SOURCE_XTLF
2169   * @retval   None
2170   */
FL_RCC_SetLSCLKClockSource(uint32_t clock)2171 __STATIC_INLINE void FL_RCC_SetLSCLKClockSource(uint32_t clock)
2172 {
2173     MODIFY_REG(RCC->LSCLKSEL, RCC_LSCLKSEL_SEL_Msk, clock);
2174 }
2175 
2176 /**
2177   * @brief    Enable USB PHY Reset
2178   * @rmtoll   PHYCR    PHYRST    FL_RCC_EnableUSBPHYReset
2179   * @retval   None
2180   */
FL_RCC_EnableUSBPHYReset(void)2181 __STATIC_INLINE void FL_RCC_EnableUSBPHYReset(void)
2182 {
2183     CLEAR_BIT(RCC->PHYCR, RCC_PHYCR_PHYRST_Msk);
2184 }
2185 
2186 /**
2187   * @brief    Get USB PHY Enable Status
2188   * @rmtoll   PHYCR    PHYRST    FL_RCC_IsEnabledUSBPHYReset
2189   * @retval   State of bit (1 or 0).
2190   */
FL_RCC_IsEnabledUSBPHYReset(void)2191 __STATIC_INLINE uint32_t FL_RCC_IsEnabledUSBPHYReset(void)
2192 {
2193     return (uint32_t)!(READ_BIT(RCC->PHYCR, RCC_PHYCR_PHYRST_Msk) == RCC_PHYCR_PHYRST_Msk);
2194 }
2195 
2196 /**
2197   * @brief    Disable USB PHY Reset
2198   * @rmtoll   PHYCR    PHYRST    FL_RCC_DisableUSBPHYReset
2199   * @retval   None
2200   */
FL_RCC_DisableUSBPHYReset(void)2201 __STATIC_INLINE void FL_RCC_DisableUSBPHYReset(void)
2202 {
2203     SET_BIT(RCC->PHYCR, RCC_PHYCR_PHYRST_Msk);
2204 }
2205 
2206 /**
2207   * @brief    Enable USB PHY Power Down
2208   * @rmtoll   PHYCR    PD    FL_RCC_EnableUSBPHYPowerDown
2209   * @retval   None
2210   */
FL_RCC_EnableUSBPHYPowerDown(void)2211 __STATIC_INLINE void FL_RCC_EnableUSBPHYPowerDown(void)
2212 {
2213     SET_BIT(RCC->PHYCR, RCC_PHYCR_PD_Msk);
2214 }
2215 
2216 /**
2217   * @brief    Get USB PHY Power Down Enable Status
2218   * @rmtoll   PHYCR    PD    FL_RCC_IsEnabledUSBPHYPowerDown
2219   * @retval   State of bit (1 or 0).
2220   */
FL_RCC_IsEnabledUSBPHYPowerDown(void)2221 __STATIC_INLINE uint32_t FL_RCC_IsEnabledUSBPHYPowerDown(void)
2222 {
2223     return (uint32_t)(READ_BIT(RCC->PHYCR, RCC_PHYCR_PD_Msk) == RCC_PHYCR_PD_Msk);
2224 }
2225 
2226 /**
2227   * @brief    Disable USB PHY Power Down
2228   * @rmtoll   PHYCR    PD    FL_RCC_DisableUSBPHYPowerDown
2229   * @retval   None
2230   */
FL_RCC_DisableUSBPHYPowerDown(void)2231 __STATIC_INLINE void FL_RCC_DisableUSBPHYPowerDown(void)
2232 {
2233     CLEAR_BIT(RCC->PHYCR, RCC_PHYCR_PD_Msk);
2234 }
2235 
2236 /**
2237   * @brief    Set USB PHY Power Ready Flag
2238   * @rmtoll   PHYCR    PLVREADY    FL_RCC_SetUSBPHYPowerReadyFlag
2239   * @retval   None
2240   */
FL_RCC_SetUSBPHYPowerReadyFlag(void)2241 __STATIC_INLINE void FL_RCC_SetUSBPHYPowerReadyFlag(void)
2242 {
2243     SET_BIT(RCC->PHYCR, RCC_PHYCR_PLVREADY_Msk);
2244 }
2245 
2246 /**
2247   * @brief    Reset USB PHY Power Ready Flag
2248   * @rmtoll   PHYCR    PLVREADY    FL_RCC_ResetUSBPHYPowerReadyFlag
2249   * @retval   None
2250   */
FL_RCC_ResetUSBPHYPowerReadyFlag(void)2251 __STATIC_INLINE void FL_RCC_ResetUSBPHYPowerReadyFlag(void)
2252 {
2253     CLEAR_BIT(RCC->PHYCR, RCC_PHYCR_PLVREADY_Msk);
2254 }
2255 
2256 /**
2257   * @brief    Enable USB BCK
2258   * @rmtoll   PHYCR    BCKPD    FL_RCC_EnableUSBBCK
2259   * @retval   None
2260   */
FL_RCC_EnableUSBBCK(void)2261 __STATIC_INLINE void FL_RCC_EnableUSBBCK(void)
2262 {
2263     CLEAR_BIT(RCC->PHYCR, RCC_PHYCR_BCKPD_Msk);
2264 }
2265 
2266 /**
2267   * @brief    Get USB BCK Enable Status
2268   * @rmtoll   PHYCR    BCKPD    FL_RCC_IsEnabledUSBBCK
2269   * @retval   State of bit (1 or 0).
2270   */
FL_RCC_IsEnabledUSBBCK(void)2271 __STATIC_INLINE uint32_t FL_RCC_IsEnabledUSBBCK(void)
2272 {
2273     return (uint32_t)(READ_BIT(RCC->PHYCR, RCC_PHYCR_BCKPD_Msk) == RCC_PHYCR_BCKPD_Msk);
2274 }
2275 
2276 /**
2277   * @brief    Disable USB BCK
2278   * @rmtoll   PHYCR    BCKPD    FL_RCC_DisableUSBBCK
2279   * @retval   None
2280   */
FL_RCC_DisableUSBBCK(void)2281 __STATIC_INLINE void FL_RCC_DisableUSBBCK(void)
2282 {
2283     SET_BIT(RCC->PHYCR, RCC_PHYCR_BCKPD_Msk);
2284 }
2285 
2286 /**
2287   * @brief    Enable USB BCK Reset
2288   * @rmtoll   PHYCR    BCKRST    FL_RCC_EnableUSBBCKReset
2289   * @retval   None
2290   */
FL_RCC_EnableUSBBCKReset(void)2291 __STATIC_INLINE void FL_RCC_EnableUSBBCKReset(void)
2292 {
2293     CLEAR_BIT(RCC->PHYCR, RCC_PHYCR_BCKRST_Msk);
2294 }
2295 
2296 /**
2297   * @brief    Get USB BCK Reset Enable Status
2298   * @rmtoll   PHYCR    BCKRST    FL_RCC_IsEnabledUSBBCKReset
2299   * @retval   State of bit (1 or 0).
2300   */
FL_RCC_IsEnabledUSBBCKReset(void)2301 __STATIC_INLINE uint32_t FL_RCC_IsEnabledUSBBCKReset(void)
2302 {
2303     return (uint32_t)!(READ_BIT(RCC->PHYCR, RCC_PHYCR_BCKRST_Msk) == RCC_PHYCR_BCKRST_Msk);
2304 }
2305 
2306 /**
2307   * @brief    Disable USB BCK Reset
2308   * @rmtoll   PHYCR    BCKRST    FL_RCC_DisableUSBBCKReset
2309   * @retval   None
2310   */
FL_RCC_DisableUSBBCKReset(void)2311 __STATIC_INLINE void FL_RCC_DisableUSBBCKReset(void)
2312 {
2313     SET_BIT(RCC->PHYCR, RCC_PHYCR_BCKRST_Msk);
2314 }
2315 
2316 /**
2317   * @brief    Enable USB 48M Clock
2318   * @rmtoll   PHYBCKCR    CK48M_EN    FL_RCC_EnableUSB48MClock
2319   * @retval   None
2320   */
FL_RCC_EnableUSB48MClock(void)2321 __STATIC_INLINE void FL_RCC_EnableUSB48MClock(void)
2322 {
2323     SET_BIT(RCC->PHYBCKCR, RCC_PHYBCKCR_CK48M_EN_Msk);
2324 }
2325 
2326 /**
2327   * @brief    Get USB 48M Clock  Enable Status
2328   * @rmtoll   PHYBCKCR    CK48M_EN    FL_RCC_IsEnabledUSB48MClock
2329   * @retval   State of bit (1 or 0).
2330   */
FL_RCC_IsEnabledUSB48MClock(void)2331 __STATIC_INLINE uint32_t FL_RCC_IsEnabledUSB48MClock(void)
2332 {
2333     return (uint32_t)(READ_BIT(RCC->PHYBCKCR, RCC_PHYBCKCR_CK48M_EN_Msk) == RCC_PHYBCKCR_CK48M_EN_Msk);
2334 }
2335 
2336 /**
2337   * @brief    Disable USB 48M Clock
2338   * @rmtoll   PHYBCKCR    CK48M_EN    FL_RCC_DisableUSB48MClock
2339   * @retval   None
2340   */
FL_RCC_DisableUSB48MClock(void)2341 __STATIC_INLINE void FL_RCC_DisableUSB48MClock(void)
2342 {
2343     CLEAR_BIT(RCC->PHYBCKCR, RCC_PHYBCKCR_CK48M_EN_Msk);
2344 }
2345 
2346 /**
2347   * @brief    Get USB Clock Ready Flag
2348   * @rmtoll   PHYBCKCR    CLKRDY    FL_RCC_IsActiveFlag_USBClockReady
2349   * @retval   State of bit (1 or 0).
2350   */
FL_RCC_IsActiveFlag_USBClockReady(void)2351 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_USBClockReady(void)
2352 {
2353     return (uint32_t)(READ_BIT(RCC->PHYBCKCR, RCC_PHYBCKCR_CLKRDY_Msk) == RCC_PHYBCKCR_CLKRDY_Msk);
2354 }
2355 
2356 /**
2357   * @brief    Set USB Reference Clock Source
2358   * @rmtoll   PHYBCKCR    OUTCLKSEL    FL_RCC_SetUSBClockReferenceSource
2359   * @param    clock This parameter can be one of the following values:
2360   *           @arg @ref FL_RCC_USB_CLK_REF_SOURCE_SOF
2361   *           @arg @ref FL_RCC_USB_CLK_REF_SOURCE_CORECLKIN
2362   * @retval   None
2363   */
FL_RCC_SetUSBClockReferenceSource(uint32_t clock)2364 __STATIC_INLINE void FL_RCC_SetUSBClockReferenceSource(uint32_t clock)
2365 {
2366     MODIFY_REG(RCC->PHYBCKCR, RCC_PHYBCKCR_OUTCLKSEL_Msk, clock);
2367 }
2368 
2369 /**
2370   * @brief    Get USB Reference Clock Source
2371   * @rmtoll   PHYBCKCR    OUTCLKSEL    FL_RCC_GetUSBClockReferenceSource
2372   * @retval   Returned value can be one of the following values:
2373   *           @arg @ref FL_RCC_USB_CLK_REF_SOURCE_SOF
2374   *           @arg @ref FL_RCC_USB_CLK_REF_SOURCE_CORECLKIN
2375   */
FL_RCC_GetUSBClockReferenceSource(void)2376 __STATIC_INLINE uint32_t FL_RCC_GetUSBClockReferenceSource(void)
2377 {
2378     return (uint32_t)(READ_BIT(RCC->PHYBCKCR, RCC_PHYBCKCR_OUTCLKSEL_Msk));
2379 }
2380 
2381 /**
2382   * @brief    Get LockUp Reset Enable Status
2383   * @rmtoll   LKPCR    RST_EN    FL_RCC_IsEnabledLockUpReset
2384   * @retval   State of bit (1 or 0).
2385   */
FL_RCC_IsEnabledLockUpReset(void)2386 __STATIC_INLINE uint32_t FL_RCC_IsEnabledLockUpReset(void)
2387 {
2388     return (uint32_t)(READ_BIT(RCC->LKPCR, RCC_LKPCR_RST_EN_Msk) == RCC_LKPCR_RST_EN_Msk);
2389 }
2390 
2391 /**
2392   * @brief    Disable LockUp Reset
2393   * @rmtoll   LKPCR    RST_EN    FL_RCC_DisableLockUpReset
2394   * @retval   None
2395   */
FL_RCC_DisableLockUpReset(void)2396 __STATIC_INLINE void FL_RCC_DisableLockUpReset(void)
2397 {
2398     CLEAR_BIT(RCC->LKPCR, RCC_LKPCR_RST_EN_Msk);
2399 }
2400 
2401 /**
2402   * @brief    Enable LockUp Reset
2403   * @rmtoll   LKPCR    RST_EN    FL_RCC_EnableLockUpReset
2404   * @retval   None
2405   */
FL_RCC_EnableLockUpReset(void)2406 __STATIC_INLINE void FL_RCC_EnableLockUpReset(void)
2407 {
2408     SET_BIT(RCC->LKPCR, RCC_LKPCR_RST_EN_Msk);
2409 }
2410 
2411 /**
2412   * @brief    SoftReset Chip
2413   * @rmtoll   SOFTRST        FL_RCC_SetSoftReset
2414   * @retval   None
2415   */
FL_RCC_SetSoftReset(void)2416 __STATIC_INLINE void FL_RCC_SetSoftReset(void)
2417 {
2418     WRITE_REG(RCC->SOFTRST, FL_RCC_SOFTWARE_RESET_KEY);
2419 }
2420 
2421 /**
2422   * @brief    Get MDFN Reset Flag
2423   * @rmtoll   RSTFR    MDFN_FLAG    FL_RCC_IsActiveFlag_MDF
2424   * @retval   State of bit (1 or 0).
2425   */
FL_RCC_IsActiveFlag_MDF(void)2426 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_MDF(void)
2427 {
2428     return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_MDFN_FLAG_Msk) == (RCC_RSTFR_MDFN_FLAG_Msk));
2429 }
2430 
2431 /**
2432   * @brief    Clear MDFN Reset Flag
2433   * @rmtoll   RSTFR    MDFN_FLAG    FL_RCC_ClearFlag_MDF
2434   * @retval   None
2435   */
FL_RCC_ClearFlag_MDF(void)2436 __STATIC_INLINE void FL_RCC_ClearFlag_MDF(void)
2437 {
2438     WRITE_REG(RCC->RSTFR, RCC_RSTFR_MDFN_FLAG_Msk);
2439 }
2440 
2441 /**
2442   * @brief    Get NRST Reset Flag
2443   * @rmtoll   RSTFR    NRSTN_FLAG    FL_RCC_IsActiveFlag_NRSTN
2444   * @retval   State of bit (1 or 0).
2445   */
FL_RCC_IsActiveFlag_NRSTN(void)2446 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_NRSTN(void)
2447 {
2448     return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_NRSTN_FLAG_Msk) == (RCC_RSTFR_NRSTN_FLAG_Msk));
2449 }
2450 
2451 /**
2452   * @brief    Clear NRST Reset Flag
2453   * @rmtoll   RSTFR    NRSTN_FLAG    FL_RCC_ClearFlag_NRSTN
2454   * @retval   None
2455   */
FL_RCC_ClearFlag_NRSTN(void)2456 __STATIC_INLINE void FL_RCC_ClearFlag_NRSTN(void)
2457 {
2458     WRITE_REG(RCC->RSTFR, RCC_RSTFR_NRSTN_FLAG_Msk);
2459 }
2460 
2461 /**
2462   * @brief    Get TESTN Reset Flag
2463   * @rmtoll   RSTFR    TESTN_FLAG    FL_RCC_IsActiveFlag_TESTN
2464   * @retval   State of bit (1 or 0).
2465   */
FL_RCC_IsActiveFlag_TESTN(void)2466 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_TESTN(void)
2467 {
2468     return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_TESTN_FLAG_Msk) == (RCC_RSTFR_TESTN_FLAG_Msk));
2469 }
2470 
2471 /**
2472   * @brief    Clear TESTN Reset Flag
2473   * @rmtoll   RSTFR    TESTN_FLAG    FL_RCC_ClearFlag_TESTN
2474   * @retval   None
2475   */
FL_RCC_ClearFlag_TESTN(void)2476 __STATIC_INLINE void FL_RCC_ClearFlag_TESTN(void)
2477 {
2478     WRITE_REG(RCC->RSTFR, RCC_RSTFR_TESTN_FLAG_Msk);
2479 }
2480 
2481 /**
2482   * @brief    Get Power Up Reset Flag
2483   * @rmtoll   RSTFR    PORN_FLAG    FL_RCC_IsActiveFlag_PORN
2484   * @retval   State of bit (1 or 0).
2485   */
FL_RCC_IsActiveFlag_PORN(void)2486 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_PORN(void)
2487 {
2488     return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_PORN_FLAG_Msk) == (RCC_RSTFR_PORN_FLAG_Msk));
2489 }
2490 
2491 /**
2492   * @brief    Clear Power Up Reset Flag
2493   * @rmtoll   RSTFR    PORN_FLAG    FL_RCC_ClearFlag_PORN
2494   * @retval   None
2495   */
FL_RCC_ClearFlag_PORN(void)2496 __STATIC_INLINE void FL_RCC_ClearFlag_PORN(void)
2497 {
2498     WRITE_REG(RCC->RSTFR, RCC_RSTFR_PORN_FLAG_Msk);
2499 }
2500 
2501 /**
2502   * @brief    Get Power Down Reset Flag
2503   * @rmtoll   RSTFR    PDRN_FLAG    FL_RCC_IsActiveFlag_PDRN
2504   * @retval   State of bit (1 or 0).
2505   */
FL_RCC_IsActiveFlag_PDRN(void)2506 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_PDRN(void)
2507 {
2508     return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_PDRN_FLAG_Msk) == (RCC_RSTFR_PDRN_FLAG_Msk));
2509 }
2510 
2511 /**
2512   * @brief    Clear Power Down Reset Flag
2513   * @rmtoll   RSTFR    PDRN_FLAG    FL_RCC_ClearFlag_PDRN
2514   * @retval   None
2515   */
FL_RCC_ClearFlag_PDRN(void)2516 __STATIC_INLINE void FL_RCC_ClearFlag_PDRN(void)
2517 {
2518     WRITE_REG(RCC->RSTFR, RCC_RSTFR_PDRN_FLAG_Msk);
2519 }
2520 
2521 /**
2522   * @brief    Get Software Reset Flag
2523   * @rmtoll   RSTFR    SOFTN_FLAG    FL_RCC_IsActiveFlag_SOFTN
2524   * @retval   State of bit (1 or 0).
2525   */
FL_RCC_IsActiveFlag_SOFTN(void)2526 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_SOFTN(void)
2527 {
2528     return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_SOFTN_FLAG_Msk) == (RCC_RSTFR_SOFTN_FLAG_Msk));
2529 }
2530 
2531 /**
2532   * @brief    Clear Software Reset Flag
2533   * @rmtoll   RSTFR    SOFTN_FLAG    FL_RCC_ClearFlag_SOFTN
2534   * @retval   None
2535   */
FL_RCC_ClearFlag_SOFTN(void)2536 __STATIC_INLINE void FL_RCC_ClearFlag_SOFTN(void)
2537 {
2538     WRITE_REG(RCC->RSTFR, RCC_RSTFR_SOFTN_FLAG_Msk);
2539 }
2540 
2541 /**
2542   * @brief    Get IWDT Reset Flag
2543   * @rmtoll   RSTFR    IWDTN_FLAG    FL_RCC_IsActiveFlag_IWDTN
2544   * @retval   State of bit (1 or 0).
2545   */
FL_RCC_IsActiveFlag_IWDTN(void)2546 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_IWDTN(void)
2547 {
2548     return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_IWDTN_FLAG_Msk) == (RCC_RSTFR_IWDTN_FLAG_Msk));
2549 }
2550 
2551 /**
2552   * @brief    Clear IWDT Reset Flag
2553   * @rmtoll   RSTFR    IWDTN_FLAG    FL_RCC_ClearFlag_IWDTN
2554   * @retval   None
2555   */
FL_RCC_ClearFlag_IWDTN(void)2556 __STATIC_INLINE void FL_RCC_ClearFlag_IWDTN(void)
2557 {
2558     WRITE_REG(RCC->RSTFR, RCC_RSTFR_IWDTN_FLAG_Msk);
2559 }
2560 
2561 /**
2562   * @brief    Get WWDT Reset Flag
2563   * @rmtoll   RSTFR    WWDTN_FLAG    FL_RCC_IsActiveFlag_WWDTN
2564   * @retval   State of bit (1 or 0).
2565   */
FL_RCC_IsActiveFlag_WWDTN(void)2566 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_WWDTN(void)
2567 {
2568     return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_WWDTN_FLAG_Msk) == (RCC_RSTFR_WWDTN_FLAG_Msk));
2569 }
2570 
2571 /**
2572   * @brief    Clear WWDT Reset Flag
2573   * @rmtoll   RSTFR    WWDTN_FLAG    FL_RCC_ClearFlag_WWDTN
2574   * @retval   None
2575   */
FL_RCC_ClearFlag_WWDTN(void)2576 __STATIC_INLINE void FL_RCC_ClearFlag_WWDTN(void)
2577 {
2578     WRITE_REG(RCC->RSTFR, RCC_RSTFR_WWDTN_FLAG_Msk);
2579 }
2580 
2581 /**
2582   * @brief    Get LockUp Reset Flag
2583   * @rmtoll   RSTFR    LKUPN_FLAG    FL_RCC_IsActiveFlag_LKUPN
2584   * @retval   State of bit (1 or 0).
2585   */
FL_RCC_IsActiveFlag_LKUPN(void)2586 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_LKUPN(void)
2587 {
2588     return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_LKUPN_FLAG_Msk) == (RCC_RSTFR_LKUPN_FLAG_Msk));
2589 }
2590 
2591 /**
2592   * @brief    Clear LockUp Reset Flag
2593   * @rmtoll   RSTFR    LKUPN_FLAG    FL_RCC_ClearFlag_LKUPN
2594   * @retval   None
2595   */
FL_RCC_ClearFlag_LKUPN(void)2596 __STATIC_INLINE void FL_RCC_ClearFlag_LKUPN(void)
2597 {
2598     WRITE_REG(RCC->RSTFR, RCC_RSTFR_LKUPN_FLAG_Msk);
2599 }
2600 
2601 /**
2602   * @brief    Get NVIC Reset Flag
2603   * @rmtoll   RSTFR    NVICN_FLAG    FL_RCC_IsActiveFlag_NVICN
2604   * @retval   State of bit (1 or 0).
2605   */
FL_RCC_IsActiveFlag_NVICN(void)2606 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_NVICN(void)
2607 {
2608     return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_NVICN_FLAG_Msk) == (RCC_RSTFR_NVICN_FLAG_Msk));
2609 }
2610 
2611 /**
2612   * @brief    Clear NVIC Reset Flag
2613   * @rmtoll   RSTFR    NVICN_FLAG    FL_RCC_ClearFlag_NVICN
2614   * @retval   None
2615   */
FL_RCC_ClearFlag_NVICN(void)2616 __STATIC_INLINE void FL_RCC_ClearFlag_NVICN(void)
2617 {
2618     WRITE_REG(RCC->RSTFR, RCC_RSTFR_NVICN_FLAG_Msk);
2619 }
2620 
2621 /**
2622   * @brief    Disable Peripheral Reset
2623   * @rmtoll   PRSTEN        FL_RCC_DisablePeripheralReset
2624   * @retval   None
2625   */
FL_RCC_DisablePeripheralReset(void)2626 __STATIC_INLINE void FL_RCC_DisablePeripheralReset(void)
2627 {
2628     WRITE_REG(RCC->PRSTEN, (~FL_RCC_PERIPHERAL_RESET_KEY));
2629 }
2630 
2631 /**
2632   * @brief    Enable Peripheral Reset
2633   * @rmtoll   PRSTEN        FL_RCC_EnablePeripheralReset
2634   * @retval   None
2635   */
FL_RCC_EnablePeripheralReset(void)2636 __STATIC_INLINE void FL_RCC_EnablePeripheralReset(void)
2637 {
2638     WRITE_REG(RCC->PRSTEN, FL_RCC_PERIPHERAL_RESET_KEY);
2639 }
2640 
2641 /**
2642   * @brief    Enable AHB Peripheral Reset
2643   * @rmtoll   AHBRSTCR        FL_RCC_EnableResetAHBPeripheral
2644   * @param    peripheral This parameter can be one of the following values:
2645   *           @arg @ref FL_RCC_RSTAHB_DMA
2646   *           @arg @ref FL_RCC_RSTAHB_USB
2647   * @retval   None
2648   */
FL_RCC_EnableResetAHBPeripheral(uint32_t peripheral)2649 __STATIC_INLINE void FL_RCC_EnableResetAHBPeripheral(uint32_t peripheral)
2650 {
2651     SET_BIT(RCC->AHBRSTCR, ((peripheral & 0xffffffff) << 0x0U));
2652 }
2653 
2654 /**
2655   * @brief    Enable APB1 Peripheral Reset
2656   * @rmtoll   APBRSTCR1        FL_RCC_EnableResetAPB1Peripheral
2657   * @param    peripheral This parameter can be one of the following values:
2658   *           @arg @ref FL_RCC_RSTAPB_UART5
2659   *           @arg @ref FL_RCC_RSTAPB_UART4
2660   *           @arg @ref FL_RCC_RSTAPB_GPTIM1
2661   *           @arg @ref FL_RCC_RSTAPB_GPTIM0
2662   *           @arg @ref FL_RCC_RSTAPB_LCD
2663   *           @arg @ref FL_RCC_RSTAPB_U7816
2664   *           @arg @ref FL_RCC_RSTAPB_SPI2
2665   *           @arg @ref FL_RCC_RSTAPB_LPUART0
2666   *           @arg @ref FL_RCC_RSTAPB_I2C
2667   *           @arg @ref FL_RCC_RSTAPB_LPTIM32
2668   * @retval   None
2669   */
FL_RCC_EnableResetAPB1Peripheral(uint32_t peripheral)2670 __STATIC_INLINE void FL_RCC_EnableResetAPB1Peripheral(uint32_t peripheral)
2671 {
2672     SET_BIT(RCC->APBRSTCR1, ((peripheral & 0xffffffff) << 0x0U));
2673 }
2674 
2675 /**
2676   * @brief    Enable APB2 Peripheral Reset
2677   * @rmtoll   APBRSTCR2        FL_RCC_EnableResetAPB2Peripheral
2678   * @param    peripheral This parameter can be one of the following values:
2679   *           @arg @ref FL_RCC_RSTAPB_ATIM
2680   *           @arg @ref FL_RCC_RSTAPB_BSTIM32
2681   *           @arg @ref FL_RCC_RSTAPB_ADCCR
2682   *           @arg @ref FL_RCC_RSTAPB_ADC
2683   *           @arg @ref FL_RCC_RSTAPB_OPA
2684   *           @arg @ref FL_RCC_RSTAPB_DIVAS
2685   *           @arg @ref FL_RCC_RSTAPB_AES
2686   *           @arg @ref FL_RCC_RSTAPB_CRC
2687   *           @arg @ref FL_RCC_RSTAPB_RNG
2688   *           @arg @ref FL_RCC_RSTAPB_UART1
2689   *           @arg @ref FL_RCC_RSTAPB_UART0
2690   *           @arg @ref FL_RCC_RSTAPB_SPI1
2691   *           @arg @ref FL_RCC_RSTAPB_UCIR
2692   *           @arg @ref FL_RCC_RSTAPB_LPUART1
2693   * @retval   None
2694   */
FL_RCC_EnableResetAPB2Peripheral(uint32_t peripheral)2695 __STATIC_INLINE void FL_RCC_EnableResetAPB2Peripheral(uint32_t peripheral)
2696 {
2697     SET_BIT(RCC->APBRSTCR2, ((peripheral & 0xffffffff) << 0x0U));
2698 }
2699 
2700 /**
2701   * @brief    Disable AHB Peripheral Reset
2702   * @rmtoll   AHBRSTCR        FL_RCC_DisableResetAHBPeripheral
2703   * @param    peripheral This parameter can be one of the following values:
2704   *           @arg @ref FL_RCC_RSTAHB_DMA
2705   *           @arg @ref FL_RCC_RSTAHB_USB
2706   * @retval   None
2707   */
FL_RCC_DisableResetAHBPeripheral(uint32_t peripheral)2708 __STATIC_INLINE void FL_RCC_DisableResetAHBPeripheral(uint32_t peripheral)
2709 {
2710     CLEAR_BIT(RCC->AHBRSTCR, ((peripheral & 0xffffffff) << 0x0U));
2711 }
2712 
2713 /**
2714   * @brief    Disable APB1 Peripheral Reset
2715   * @rmtoll   APBRSTCR1        FL_RCC_DisableResetAPB1Peripheral
2716   * @param    peripheral This parameter can be one of the following values:
2717   *           @arg @ref FL_RCC_RSTAPB_UART5
2718   *           @arg @ref FL_RCC_RSTAPB_UART4
2719   *           @arg @ref FL_RCC_RSTAPB_GPTIM1
2720   *           @arg @ref FL_RCC_RSTAPB_GPTIM0
2721   *           @arg @ref FL_RCC_RSTAPB_LCD
2722   *           @arg @ref FL_RCC_RSTAPB_U7816
2723   *           @arg @ref FL_RCC_RSTAPB_SPI2
2724   *           @arg @ref FL_RCC_RSTAPB_LPUART0
2725   *           @arg @ref FL_RCC_RSTAPB_I2C
2726   *           @arg @ref FL_RCC_RSTAPB_LPTIM32
2727   * @retval   None
2728   */
FL_RCC_DisableResetAPB1Peripheral(uint32_t peripheral)2729 __STATIC_INLINE void FL_RCC_DisableResetAPB1Peripheral(uint32_t peripheral)
2730 {
2731     CLEAR_BIT(RCC->APBRSTCR1, ((peripheral & 0xffffffff) << 0x0U));
2732 }
2733 
2734 /**
2735   * @brief    Disable APB2 Peripheral Reset
2736   * @rmtoll   APBRSTCR2        FL_RCC_DisableResetAPB2Peripheral
2737   * @param    peripheral This parameter can be one of the following values:
2738   *           @arg @ref FL_RCC_RSTAPB_ATIM
2739   *           @arg @ref FL_RCC_RSTAPB_BSTIM32
2740   *           @arg @ref FL_RCC_RSTAPB_ADCCR
2741   *           @arg @ref FL_RCC_RSTAPB_ADC
2742   *           @arg @ref FL_RCC_RSTAPB_OPA
2743   *           @arg @ref FL_RCC_RSTAPB_DIVAS
2744   *           @arg @ref FL_RCC_RSTAPB_AES
2745   *           @arg @ref FL_RCC_RSTAPB_CRC
2746   *           @arg @ref FL_RCC_RSTAPB_RNG
2747   *           @arg @ref FL_RCC_RSTAPB_UART1
2748   *           @arg @ref FL_RCC_RSTAPB_UART0
2749   *           @arg @ref FL_RCC_RSTAPB_SPI1
2750   *           @arg @ref FL_RCC_RSTAPB_UCIR
2751   *           @arg @ref FL_RCC_RSTAPB_LPUART1
2752   * @retval   None
2753   */
FL_RCC_DisableResetAPB2Peripheral(uint32_t peripheral)2754 __STATIC_INLINE void FL_RCC_DisableResetAPB2Peripheral(uint32_t peripheral)
2755 {
2756     CLEAR_BIT(RCC->APBRSTCR2, ((peripheral & 0xffffffff) << 0x0U));
2757 }
2758 
2759 /**
2760   * @}
2761   */
2762 
2763 /** @defgroup RCC_FL_EF_Init Initialization and de-initialization functions
2764   * @{
2765   */
2766 
2767 /**
2768   * @}
2769   */
2770 
2771 
2772 /** @defgroup RCC_FL_EF_Operation Opeartion functions
2773   * @{
2774   */
2775 
2776 uint32_t FL_RCC_GetSystemClockFreq(void);
2777 uint32_t FL_RCC_GetAHBClockFreq(void);
2778 uint32_t FL_RCC_GetAPB1ClockFreq(void);
2779 uint32_t FL_RCC_GetAPB2ClockFreq(void);
2780 
2781 uint32_t FL_RCC_GetRCMFClockFreq(void);
2782 uint32_t FL_RCC_GetRCHFClockFreq(void);
2783 uint32_t FL_RCC_GetPLLClockFreq(void);
2784 
2785 /**
2786   * @}
2787   */
2788 
2789 /**
2790   * @}
2791   */
2792 
2793 /**
2794   * @}
2795   */
2796 
2797 #ifdef __cplusplus
2798 }
2799 #endif
2800 
2801 #endif /* __FM33LC0XX_FL_RCC_H*/
2802 
2803 /*************************Py_Code_Generator Version: 0.1-0.14-0.2 @ 2021-07-08*************************/
2804 /********************** (C) COPYRIGHT Fudan Microelectronics **** END OF FILE ***********************/
2805