27#ifndef LIBOPENCM3_RCC_H
28#define LIBOPENCM3_RCC_H
37#define RCC_CR MMIO32(RCC_BASE + 0x000)
38#define RCC_ICSCR MMIO32(RCC_BASE + 0x004)
39#define RCC_HSICFGR MMIO32(RCC_BASE + 0x004)
40#define RCC_CRRCR MMIO32(RCC_BASE + 0x008)
41#define RCC_CSICFGR MMIO32(RCC_BASE + 0x00C)
42#define RCC_CFGR MMIO32(RCC_BASE + 0x010)
43#define RCC_D1CFGR MMIO32(RCC_BASE + 0x018)
44#define RCC_D2CFGR MMIO32(RCC_BASE + 0x01C)
45#define RCC_D3CFGR MMIO32(RCC_BASE + 0x020)
46#define RCC_PLLCKSELR MMIO32(RCC_BASE + 0x028)
47#define RCC_PLLCFGR MMIO32(RCC_BASE + 0x02C)
49#define RCC_PLLDIVR(n) MMIO32(RCC_BASE + 0x030 + (0x08 * ((n) - 1)))
50#define RCC_PLLFRACR(n) MMIO32(RCC_BASE + 0x030 + (0x08 * ((n) - 1)))
51#define RCC_PLL1DIVR RCC_PLLDIVR(1)
52#define RCC_PLL1FRACR RCC_PLLFRACR(1)
53#define RCC_PLL2DIVR RCC_PLLDIVR(2)
54#define RCC_PLL2FRACR RCC_PLLFRACR(2)
55#define RCC_PLL3DIVR RCC_PLLDIVR(3)
56#define RCC_PLL3FRACR RCC_PLLFRACR(3)
57#define RCC_D1CCIPR MMIO32(RCC_BASE + 0x04C)
58#define RCC_D2CCIP1R MMIO32(RCC_BASE + 0x050)
59#define RCC_D2CCIP2R MMIO32(RCC_BASE + 0x054)
60#define RCC_D3CCIPR MMIO32(RCC_BASE + 0x058)
61#define RCC_AHB1RSTR MMIO32(RCC_BASE + 0x080)
62#define RCC_AHB2RSTR MMIO32(RCC_BASE + 0x084)
63#define RCC_AHB3RSTR MMIO32(RCC_BASE + 0x07C)
64#define RCC_AHB4RSTR MMIO32(RCC_BASE + 0x088)
65#define RCC_APB1LRSTR MMIO32(RCC_BASE + 0x090)
66#define RCC_APB1HRSTR MMIO32(RCC_BASE + 0x094)
67#define RCC_APB2RSTR MMIO32(RCC_BASE + 0x098)
68#define RCC_APB3RSTR MMIO32(RCC_BASE + 0x08C)
69#define RCC_APB4RSTR MMIO32(RCC_BASE + 0x09C)
70#define RCC_AHB1ENR MMIO32(RCC_BASE + 0x0D8)
71#define RCC_AHB2ENR MMIO32(RCC_BASE + 0x0DC)
72#define RCC_AHB3ENR MMIO32(RCC_BASE + 0x0D4)
73#define RCC_AHB4ENR MMIO32(RCC_BASE + 0x0E0)
74#define RCC_APB1LENR MMIO32(RCC_BASE + 0x0E8)
75#define RCC_APB1HENR MMIO32(RCC_BASE + 0x0EC)
76#define RCC_APB2ENR MMIO32(RCC_BASE + 0x0F0)
77#define RCC_APB3ENR MMIO32(RCC_BASE + 0x0E4)
78#define RCC_APB4ENR MMIO32(RCC_BASE + 0x0F4)
79#define RCC_AHB1LPENR MMIO32(RCC_BASE + 0x100)
80#define RCC_AHB2LPENR MMIO32(RCC_BASE + 0x104)
81#define RCC_AHB4LPENR MMIO32(RCC_BASE + 0x108)
82#define RCC_APB1LLPENR MMIO32(RCC_BASE + 0x110)
83#define RCC_APB1HLPENR MMIO32(RCC_BASE + 0x114)
84#define RCC_APB2LPENR MMIO32(RCC_BASE + 0x118)
85#define RCC_APB3LPENR MMIO32(RCC_BASE + 0x10C)
86#define RCC_APB4LPENR MMIO32(RCC_BASE + 0x11C)
87#define RCC_BDCR MMIO32(RCC_BASE + 0x70)
88#define RCC_CSR MMIO32(RCC_BASE + 0x74)
89#define RCC_SSCGR MMIO32(RCC_BASE + 0x80)
90#define RCC_PLLI2SCFGR MMIO32(RCC_BASE + 0x84)
91#define RCC_PLLSAICFGR MMIO32(RCC_BASE + 0x88)
92#define RCC_DCKCFGR1 MMIO32(RCC_BASE + 0x8C)
93#define RCC_DCKCFGR2 MMIO32(RCC_BASE + 0x90)
99#define RCC_CR_PLL3RDY BIT29
100#define RCC_CR_PLL3ON BIT28
101#define RCC_CR_PLL2RDY BIT27
102#define RCC_CR_PLL2ON BIT26
103#define RCC_CR_PLL1RDY BIT25
104#define RCC_CR_PLL1ON BIT24
105#define RCC_CR_HSECSSON BIT19
106#define RCC_CR_HSEBYP BIT18
107#define RCC_CR_HSERDY BIT17
108#define RCC_CR_HSEON BIT16
109#define RCC_CR_D2CKRDY BIT15
110#define RCC_CR_D1CKRDY BIT14
111#define RCC_CR_HSI48RDY BIT13
112#define RCC_CR_HSI48ON BIT12
113#define RCC_CR_CSIKERON BIT9
114#define RCC_CR_CSIRDY BIT8
115#define RCC_CR_CSION BIT7
116#define RCC_CR_HSIDIVF BIT5
117#define RCC_CR_HSIDIV_MASK (0x03)
118#define RCC_CR_HSIDIV_SHIFT 3
119#define RCC_CR_HSIDIV(n) (((n) & RCC_CR_HSIDIV_MASK) << RCC_CR_HSIDIV_MASK)
120#define RCC_CR_HSIRDY BIT2
121#define RCC_CR_HSIKERON BIT1
122#define RCC_CR_HSION BIT0
130#define RCC_CFGR_MCO2_MASK 0x7
131#define RCC_CFGR_MCO2_SHIFT 29
132#define RCC_CFGR_MCO2_SYSCLK 0x0
133#define RCC_CFGR_MCO2_PLL2 0x1
134#define RCC_CFGR_MCO2_HSE 0x2
135#define RCC_CFGR_MCO2_PLL1 0x3
136#define RCC_CFGR_MCO2_CSI 0x4
137#define RCC_CFGR_MCO2_LSI 0x5
140#define RCC_CFGR_MCOPRE_MASK 0xf
141#define RCC_CFGR_MCO2PRE_SHIFT 25
142#define RCC_CFGR_MCO1PRE_SHIFT 18
143#define RCC_CFGR_MCOPRE_DIV_NONE 0x0
144#define RCC_CFGR_MCOPRE_DIV_BYP 0x1
145#define RCC_CFGR_MCOPRE_DIV_2 0x2
146#define RCC_CFGR_MCOPRE_DIV_3 0x3
147#define RCC_CFGR_MCOPRE_DIV_4 0x4
151#define RCC_CFGR_MCO1_MASK 0x7
152#define RCC_CFGR_MCO1_SHIFT 22
153#define RCC_CFGR_MCO1_HSI 0x0
154#define RCC_CFGR_MCO1_LSE 0x1
155#define RCC_CFGR_MCO1_HSE 0x2
156#define RCC_CFGR_MCO1_PLL1 0x3
157#define RCC_CFGR_MCO1_HSI48 0x4
158#define RCC_CFGR_MCO_SHIFT RCC_CFGR_MCO1_SHIFT
159#define RCC_CFGR_MCO_MASK RCC_CFGR_MCO1_MASK
162#define RCC_CFGR_RTCPRE_SHIFT 8
163#define RCC_CFGR_RTCPRE_MASK 0x3f
166#define RCC_CFGR_SWS_SHIFT 3
167#define RCC_CFGR_SWS_MASK 0x7
168#define RCC_CFGR_SWS_HSI 0x0
169#define RCC_CFGR_SWS_CSI 0x1
170#define RCC_CFGR_SWS_HSE 0x2
171#define RCC_CFGR_SWS_PLL1 0x3
174#define RCC_CFGR_SW_SHIFT 0
175#define RCC_CFGR_SW_MASK 0x7
176#define RCC_CFGR_SW_HSI 0x0
177#define RCC_CFGR_SW_CSI 0x1
178#define RCC_CFGR_SW_HSE 0x2
179#define RCC_CFGR_SW_PLL1 0x3
185#define RCC_D1CFGR_D1CPRE_BYP 0x0
186#define RCC_D1CFGR_D1CPRE_DIV2 0x8
187#define RCC_D1CFGR_D1CPRE_DIV4 0x9
188#define RCC_D1CFGR_D1CPRE_DIV8 0xA
189#define RCC_D1CFGR_D1CPRE_DIV16 0xB
190#define RCC_D1CFGR_D1CPRE_DIV64 0xC
191#define RCC_D1CFGR_D1CPRE_DIV128 0xD
192#define RCC_D1CFGR_D1CPRE_DIV256 0xE
193#define RCC_D1CFGR_D1CPRE_DIV512 0xF
194#define RCC_D1CFGR_D1PPRE_BYP 0x0
195#define RCC_D1CFGR_D1PPRE_DIV2 0x4
196#define RCC_D1CFGR_D1PPRE_DIV4 0x5
197#define RCC_D1CFGR_D1PPRE_DIV8 0x6
198#define RCC_D1CFGR_D1PPRE_DIV16 0x7
199#define RCC_D1CFGR_D1HPRE_BYP 0x0
200#define RCC_D1CFGR_D1HPRE_DIV2 0x8
201#define RCC_D1CFGR_D1HPRE_DIV4 0x9
202#define RCC_D1CFGR_D1HPRE_DIV8 0xA
203#define RCC_D1CFGR_D1HPRE_DIV16 0xB
204#define RCC_D1CFGR_D1HPRE_DIV64 0xC
205#define RCC_D1CFGR_D1HPRE_DIV128 0xD
206#define RCC_D1CFGR_D1HPRE_DIV256 0xE
207#define RCC_D1CFGR_D1HPRE_DIV512 0xF
209#define RCC_D1CFGR_D1CPRE_SHIFT 8
210#define RCC_D1CFGR_D1PPRE_SHIFT 4
211#define RCC_D1CFGR_D1CPRE(cpre) (cpre << RCC_D1CFGR_D1CPRE_SHIFT)
212#define RCC_D1CFGR_D1PPRE(ppre) (ppre << RCC_D1CFGR_D1PPRE_SHIFT)
213#define RCC_D1CFGR_D1HPRE(hpre) (hpre)
219#define RCC_D2CFGR_D2PPRE_BYP 0x0
220#define RCC_D2CFGR_D2PPRE_DIV2 0x4
221#define RCC_D2CFGR_D2PPRE_DIV4 0x5
222#define RCC_D2CFGR_D2PPRE_DIV8 0x6
223#define RCC_D2CFGR_D2PPRE_DIV16 0x7
225#define RCC_D2CFGR_D2PPRE2_SHIFT 8
226#define RCC_D2CFGR_D2PPRE1_SHIFT 4
227#define RCC_D2CFGR_D2PPRE2(ppre) (ppre << RCC_D2CFGR_D2PPRE2_SHIFT)
228#define RCC_D2CFGR_D2PPRE1(ppre) (ppre << RCC_D2CFGR_D2PPRE1_SHIFT)
234#define RCC_D3CFGR_D3PPRE_BYP 0x0
235#define RCC_D3CFGR_D3PPRE_DIV2 0x4
236#define RCC_D3CFGR_D3PPRE_DIV4 0x5
237#define RCC_D3CFGR_D3PPRE_DIV8 0x6
238#define RCC_D3CFGR_D3PPRE_DIV16 0x7
239#define RCC_D3CFGR_D3PPRE_SHIFT 4
240#define RCC_D3CFGR_D3PPRE(ppre) (ppre << RCC_D3CFGR_D3PPRE_SHIFT)
246#define RCC_PLLCKSELR_PLLSRC_HSI 0x0
247#define RCC_PLLCKSELR_PLLSRC_CSI 0x1
248#define RCC_PLLCKSELR_PLLSRC_HSE 0x2
249#define RCC_PLLCKSELR_PLLSRC_NONE 0x3
250#define RCC_PLLCKSELR_DIVM_DIS 0
251#define RCC_PLLCKSELR_DIVM_BYP 1
252#define RCC_PLLCKSELR_DIVM_MASK 0x3f
254#define RCC_PLLCKSELR_DIVM3_SHIFT 20
255#define RCC_PLLCKSELR_DIVM2_SHIFT 12
256#define RCC_PLLCKSELR_DIVM1_SHIFT 4
258#define RCC_PLLCKSELR_DIVM3(n) ((n) << RCC_PLLCKSELR_DIVM3_SHIFT)
259#define RCC_PLLCKSELR_DIVM2(n) ((n) << RCC_PLLCKSELR_DIVM2_SHIFT)
260#define RCC_PLLCKSELR_DIVM1(n) ((n) << RCC_PLLCKSELR_DIVM1_SHIFT)
266#define RCC_PLLCFGR_PLLRGE_1_2MHZ 0
267#define RCC_PLLCFGR_PLLRGE_2_4MHZ 1
268#define RCC_PLLCFGR_PLLRGE_4_8MHZ 2
269#define RCC_PLLCFGR_PLLRGE_8_16MHZ 3
271#define RCC_PLLCFGR_DIVR3EN BIT24
272#define RCC_PLLCFGR_DIVQ3EN BIT23
273#define RCC_PLLCFGR_DIVP3EN BIT22
274#define RCC_PLLCFGR_DIVR2EN BIT21
275#define RCC_PLLCFGR_DIVQ2EN BIT20
276#define RCC_PLLCFGR_DIVP2EN BIT19
277#define RCC_PLLCFGR_DIVR1EN BIT18
278#define RCC_PLLCFGR_DIVQ1EN BIT17
279#define RCC_PLLCFGR_DIVP1EN BIT16
280#define RCC_PLLCFGR_PLL3RGE_SHIFT 10
281#define RCC_PLLCFGR_PLL3VCO_WIDE 0
282#define RCC_PLLCFGR_PLL3VCO_MED BIT9
283#define RCC_PLLCFGR_PLL3FRACEN BIT8
284#define RCC_PLLCFGR_PLL2RGE_SHIFT 6
285#define RCC_PLLCFGR_PLL2VCO_WIDE 0
286#define RCC_PLLCFGR_PLL2VCO_MED BIT5
287#define RCC_PLLCFGR_PLL2FRACEN BIT4
288#define RCC_PLLCFGR_PLL1RGE_SHIFT 2
289#define RCC_PLLCFGR_PLL1VCO_WIDE 0
290#define RCC_PLLCFGR_PLL1VCO_MED BIT1
291#define RCC_PLLCFGR_PLL1FRACEN BIT0
297#define RCC_PLLNDIVR_DIVR_SHIFT 24
298#define RCC_PLLNDIVR_DIVQ_SHIFT 16
299#define RCC_PLLNDIVR_DIVP_SHIFT 9
300#define RCC_PLLNDIVR_DIVN_SHIFT 0
303#define RCC_PLLNDIVR_DIVR(n) (((n) - 1) << RCC_PLLNDIVR_DIVR_SHIFT)
304#define RCC_PLLNDIVR_DIVQ(n) (((n) - 1) << RCC_PLLNDIVR_DIVQ_SHIFT)
305#define RCC_PLLNDIVR_DIVP(n) (((n) - 1) << RCC_PLLNDIVR_DIVP_SHIFT)
306#define RCC_PLLNDIVR_DIVN(n) (((n) - 1) << RCC_PLLNDIVR_DIVN_SHIFT)
312#define RCC_BDCR_BDRST (1 << 16)
313#define RCC_BDCR_RTCEN (1 << 15)
314#define RCC_BDCR_RTCSEL_MASK 0x3
315#define RCC_BDCR_RTCSEL_SHIFT 8
316#define RCC_BDCR_RTCSEL_NONE 0
317#define RCC_BDCR_RTCSEL_LSE 1
318#define RCC_BDCR_RTCSEL_LSI 2
319#define RCC_BDCR_RTCSEL_HSE 3
320#define RCC_BDCR_LSEDRV_MASK 0x3
321#define RCC_BDCR_LSEDRV_SHIFT 3
322#define RCC_BDCR_LSEDRV_LOW 0
323#define RCC_BDCR_LSEDRV_MEDH 1
324#define RCC_BDCR_LSEDRV_MEDL 2
325#define RCC_BDCR_LSEDRV_HIGH 3
326#define RCC_BDCR_LSEBYP (1 << 2)
327#define RCC_BDCR_LSERDY (1 << 1)
328#define RCC_BDCR_LSEON (1 << 0)
334#define RCC_CSR_LSIRDY (1 << 1)
335#define RCC_CSR_LSION (1 << 0)
341#define RCC_D1CCIPR_CKPERSEL_HSI 0
342#define RCC_D1CCIPR_CKPERSEL_CSI 1
343#define RCC_D1CCIPR_CKPERSEL_HSE 2
344#define RCC_D1CCIPR_CKPERSEL_DISABLE 3
346#define RCC_D1CCIPR_CKPERSEL_SHIFT 28
347#define RCC_D1CCIPR_CKPERSEL_MASK 3
349#define RCC_D2CCIP1R_SWPSEL_SHIFT 31
350#define RCC_D2CCIP1R_FDCANSEL_SHIFT 28
351#define RCC_D2CCIP1R_FDCANSEL_MASK 0x3
352#define RCC_D2CCIP1R_DFSDM1SEL_SHIFT 24
353#define RCC_D2CCIP1R_SPDIFSEL_SHIFT 20
354#define RCC_D2CCIP1R_SPI45SEL_SHIFT 16
355#define RCC_D2CCIP1R_SPI45SEL_MASK 0x7
356#define RCC_D2CCIP1R_SPI123SEL_SHIFT 12
357#define RCC_D2CCIP1R_SPI123SEL_MASK 0x7
358#define RCC_D2CCIP1R_SAI23SEL_SHIFT 6
359#define RCC_D2CCIP1R_SAISEL_MASK 0x7
364#define RCC_D2CCIP1R_SWPSEL_PCLK 0x0
365#define RCC_D2CCIP1R_SWPSEL_HSI 0x1
366#define RCC_D2CCIP1R_FDCANSEL_HSE 0x0
367#define RCC_D2CCIP1R_FDCANSEL_PLL1Q 0x1
368#define RCC_D2CCIP1R_FDCANSEL_PLL2Q 0x2
369#define RCC_D2CCIP1R_DFSDM1SEL_PCLK2 0x0
370#define RCC_D2CCIP1R_DFSDM1SEL_SYSCLK 0x1
371#define RCC_D2CCIP1R_SPDIFSEL_PLL1Q 0x0
372#define RCC_D2CCIP1R_SPDIFSEL_PLL2R 0x1
373#define RCC_D2CCIP1R_SPDIFSEL_PLL3R 0x2
374#define RCC_D2CCIP1R_SPDIFSEL_HSI 0x3
375#define RCC_D2CCIP1R_SPI45SEL_APB4 0x0
376#define RCC_D2CCIP1R_SPI45SEL_PLL2Q 0x1
377#define RCC_D2CCIP1R_SPI45SEL_PLL3Q 0x2
378#define RCC_D2CCIP1R_SPI45SEL_HSI 0x3
379#define RCC_D2CCIP1R_SPI45SEL_CSI 0x4
380#define RCC_D2CCIP1R_SPI45SEL_HSE 0x5
381#define RCC_D2CCIP1R_SPI123SEL_PLL1Q 0x0
382#define RCC_D2CCIP1R_SPI123SEL_PLL2P 0x1
383#define RCC_D2CCIP1R_SPI123SEL_PLL3P 0x2
384#define RCC_D2CCIP1R_SPI123SEL_I2SCKIN 0x3
385#define RCC_D2CCIP1R_SPI123SEL_PERCK 0x4
386#define RCC_D2CCIP1R_SAISEL_PLL1Q 0x0
387#define RCC_D2CCIP1R_SAISEL_PLL2P 0x1
388#define RCC_D2CCIP1R_SAISEL_PLL3P 0x2
389#define RCC_D2CCIP1R_SAISEL_I2SCKIN 0x3
390#define RCC_D2CCIP1R_SAISEL_PERCK 0x4
393#define RCC_D2CCIP2R_LPTIM1SEL_SHIFT 28
394#define RCC_D2CCIP2R_CECSEL_SHIFT 22
395#define RCC_D2CCIP2R_USBSEL_SHIFT 20
396#define RCC_D2CCIP2R_I2C123SEL_SHIFT 12
397#define RCC_D2CCIP2R_RNGSEL_MASK 0x3
398#define RCC_D2CCIP2R_RNGSEL_SHIFT 8
399#define RCC_D2CCIP2R_USART16SEL_SHIFT 3
400#define RCC_D2CCIP2R_USART234578SEL_SHIFT 0
401#define RCC_D2CCIP2R_USARTSEL_MASK 7
406#define RCC_D2CCIP2R_RNGSEL_HSI48 0
407#define RCC_D2CCIP2R_RNGSEL_PLL1Q 1
408#define RCC_D2CCIP2R_RNGSEL_LSE 2
409#define RCC_D2CCIP2R_RNGSEL_LSI 3
410#define RCC_D2CCIP2R_USART16SEL_PCLK2 0
411#define RCC_D2CCIP2R_USART234578SEL_PCLK1 0
412#define RCC_D2CCIP2R_USARTSEL_PCLK 0
413#define RCC_D2CCIP2R_USARTSEL_PLL2Q 1
414#define RCC_D2CCIP2R_USARTSEL_PLL3Q 2
415#define RCC_D2CCIP2R_USARTSEL_HSI 3
416#define RCC_D2CCIP2R_USARTSEL_CSI 4
417#define RCC_D2CCIP2R_USARTSEL_LSE 5
421#define RCC_HSI_BASE_FREQUENCY 64000000UL
470#define _REG_BIT(base, bit) (((base) << 5) + (bit))
#define _REG_BIT(base, bit)
rcc_clock_source
Enumerations for core system/bus clocks for user/driver/system access to base bus clocks not directly...
uint32_t rcc_get_fdcan_clk_freq(uint32_t fdcan)
Get the peripheral clock speed for the FDCAN device at base specified.
void rcc_clock_setup_pll(const struct rcc_pll_config *config)
Setup the base PLLs and clock domains for the STM32H7.
uint32_t rcc_get_bus_clk_freq(enum rcc_clock_source source)
Get the clock rate (in Hz) of the specified clock source.
uint32_t rcc_get_spi_clk_freq(uint32_t spi)
Get the peripheral clock speed for the SPI device at base specified.
uint32_t rcc_get_timer_clk_freq(uint32_t timer)
Get the peripheral clock speed for the Timer at base specified.
void rcc_set_rng_clksel(uint8_t clksel)
Set the clock select for the RNG device.
uint32_t rcc_get_usart_clk_freq(uint32_t usart)
Get the peripheral clock speed for the USART at base specified.
void rcc_set_fdcan_clksel(uint8_t clksel)
Set the clock select for the FDCAN devices.
void rcc_set_spi123_clksel(uint8_t clksel)
Set the clock select for the SPI 1/2/3 devices.
uint32_t rcc_get_i2c_clk_freq(uint32_t i2c)
Get the peripheral clock speed for the I2C device at base specified.
void rcc_set_peripheral_clk_sel(uint32_t periph, uint32_t clksel)
Set the clksel value for the specified peripheral.
void rcc_set_spi45_clksel(uint8_t clksel)
Set the clock select for the SPI 4/5 devices.
uint8_t divr
Post divider for PLLR clock.
uint8_t divq
Post divider for PLLQ clock.
uint16_t divn
Multiplier, 0-512 integer.
uint8_t divp
Post divider for PLLP clock.
uint8_t divm
Pre-divider value for each PLL.
PLL Configuration structure.
uint8_t ppre3
APB3 Peripheral prescaler note: domain 1.
uint8_t core_pre
Core prescaler note: domain 1.
struct rcc_pll_config::pll_config pll1
uint8_t ppre1
APB1 Peripheral prescaler note: domain 2.
struct rcc_pll_config::pll_config pll2
uint8_t smps_level
If using SMPS, voltage level to set.
uint8_t ppre2
APB2 Peripheral prescaler note: domain 2.
uint8_t hpre
HCLK3 prescaler note: domain 1.
uint8_t ppre4
APB4 Peripheral prescaler note: domain 3.
enum rcc_osc sysclock_source
SYSCLK source input selection.
uint8_t flash_waitstates
Latency Value to set for flahs.
enum pwr_vos_scale voltage_scale
LDO/SMPS Voltage scale used for this frequency.
uint32_t hse_frequency
User specified HSE frequency, 0 if none.
struct rcc_pll_config::pll_config pll3
PLL1-PLL3 configurations.
uint8_t pll_source
RCC_PLLCKSELR_PLLSRC_xxx value.
enum pwr_sys_mode power_mode
LDO/SMPS configuration for device.