summaryrefslogtreecommitdiff
path: root/drivers/clock_control/Kconfig.stm32f3x
blob: e8fde609f115ef3f0c4a84dd4227717f4dc0ea65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# Kconfig - STM32F3 MCU clock control driver config
#
# Copyright (c) 2016 RnDity Sp. z o.o.
#
# SPDX-License-Identifier: Apache-2.0
#

if SOC_SERIES_STM32F3X

menuconfig CLOCK_CONTROL_STM32F3X
	bool
	prompt "STM32F3x Reset & Clock Control"
	depends on CLOCK_CONTROL && SOC_SERIES_STM32F3X
	default y if SOC_SERIES_STM32F3X
	help
	 Enable driver for Reset & Clock Control subsystem found
	 in STM32F3 family of MCUs

config CLOCK_CONTROL_STM32F3X_DEVICE_INIT_PRIORITY
	int "Clock Control Device Priority"
	default 1
	depends on CLOCK_CONTROL_STM32F3X
	help
	 This option controls the priority of clock control
	 device initialization. Higher priority ensures that the device
	 is initialized earlier in the startup cycle. If unsure, leave
	 at default value 1

choice
prompt "STM32F3x System Clock Source"
depends on CLOCK_CONTROL_STM32F3X

config CLOCK_STM32F3X_SYSCLK_SRC_HSI
	bool "HSI"
	help
	 Use HSI as source of SYSCLK

config CLOCK_STM32F3X_SYSCLK_SRC_HSE
	bool "HSE"
	help
	 Use HSE as source of SYSCLK

config CLOCK_STM32F3X_SYSCLK_SRC_PLL
	bool "PLL"
	help
	 Use PLL as source of SYSCLK

endchoice

choice
prompt "STM32F3x PLL Clock Source"
depends on CLOCK_CONTROL_STM32F3X && CLOCK_STM32F3X_SYSCLK_SRC_PLL

config CLOCK_STM32F3X_PLL_SRC_HSI
	bool "HSI"
	help
	 Use HSI/2 as source of PLL

config CLOCK_STM32F3X_PLL_SRC_HSE
	bool "HSE"
	help
	 Use HSE as source of PLL

endchoice

config CLOCK_STM32F3X_HSE_BYPASS
	bool "HSE bypass"
	depends on CLOCK_CONTROL_STM32F3X && (CLOCK_STM32F3X_PLL_SRC_HSE || CLOCK_STM32F3X_SYSCLK_SRC_HSE)
	help
	 Enable this option to bypass external high-speed clock (HSE).

config CLOCK_STM32F3X_PLL_PREDIV
	int "PREDIV1 Prescler"
	depends on CLOCK_CONTROL_STM32F3X && CLOCK_STM32F3X_PLL_SRC_HSE
	default 0
	range 0 16
	help
	 PREDIV is PLLSCR clock signal prescaler, allowed values: 0 - 16.

config CLOCK_STM32F3X_PLL_MULTIPLIER
	int "PLL multiplier"
	depends on CLOCK_CONTROL_STM32F3X && CLOCK_STM32F3X_SYSCLK_SRC_PLL
	default 9
	range 2 16
	help
	 PLL multiplier, allowed values: 2-16. PLL output must not exceed 72MHz.

config CLOCK_STM32F3X_AHB_PRESCALER
	int "AHB prescaler"
	depends on CLOCK_CONTROL_STM32F3X
	default 0
	range 0 512
	help
	 AHB prescaler, allowed values: 0, 2, 4, 8, 16, 64, 128,
	 256, 512.

config CLOCK_STM32F3X_APB1_PRESCALER
	int "APB1 prescaler"
	depends on CLOCK_CONTROL_STM32F3X
	default 0
	range 0 16
	help
	 APB1 Low speed clock (PCLK1) prescaler, allowed values:
	 0, 2, 4, 8, 16. The APB1 clock must not exceed 36MHz.

config CLOCK_STM32F3X_APB2_PRESCALER
	int "APB2 prescaler"
	depends on CLOCK_CONTROL_STM32F3X
	default 0
	range 0 16
	help
	 APB2 High speed clock (PCLK2) prescaler, allowed values:
	 0, 2, 4, 8, 16

endif