summaryrefslogtreecommitdiff
path: root/drivers/clock_control/Kconfig.stm32l4x
blob: 8683308a9272c425835ca039a9030f4112074d93 (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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# Kconfig - STM32L4 MCU clock control driver config
#
# Copyright (c) 2016 Open-RnD Sp. z o.o.
# Copyright (c) 2016 BayLibre, SAS
#
# SPDX-License-Identifier: Apache-2.0
#

if SOC_SERIES_STM32L4X

menuconfig CLOCK_CONTROL_STM32L4X
	bool
	prompt "STM32L4x Reset & Clock Control"
	depends on CLOCK_CONTROL && SOC_SERIES_STM32L4X
	default y if SOC_SERIES_STM32L4X
	help
	  Enable driver for Reset & Clock Control subsystem found
	  in STM32L4 family of MCUs

config CLOCK_CONTROL_STM32L4X_DEVICE_INIT_PRIORITY
	int "Clock Control Device Priority"
	default 1
	depends on CLOCK_CONTROL_STM32L4X
	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 "STM32L4X System Clock Source"
depends on CLOCK_CONTROL_STM32L4X
default CLOCK_STM32L4X_SYSCLK_SRC_PLL

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

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

endchoice

choice
prompt "STM32L4X PLL Clock Source"
depends on CLOCK_CONTROL_STM32L4X && CLOCK_STM32L4X_SYSCLK_SRC_PLL
default CLOCK_STM32L4X_PLL_SRC_HSI

config CLOCK_STM32L4X_PLL_SRC_MSI
	bool "MSI"
	help
	  Use MSI as source of PLL

config CLOCK_STM32L4X_PLL_SRC_HSI
	bool "HSI"
	help
	  Use HSI as source of PLL

endchoice

config CLOCK_STM32L4X_HSE_BYPASS
	bool "HSE bypass"
	depends on CLOCK_CONTROL_STM32L4X && CLOCK_STM32L4X_SYSCLK_SRC_HSE
	help
	  Enable this option to bypass external high-speed clock (HSE).

config CLOCK_STM32L4X_PLL_DIVISOR
	int "PLL divisor"
	depends on CLOCK_CONTROL_STM32L4X && CLOCK_STM32L4X_SYSCLK_SRC_PLL
	default 1
	range 1 8
	help
	  PLL divisor, allowed values: 1-8. With this ensure that the PLL
	  VCO input frequency ranges from 4 to 16MHz.

config CLOCK_STM32L4X_PLL_MULTIPLIER
	int "PLL multiplier"
	depends on CLOCK_CONTROL_STM32L4X && CLOCK_STM32L4X_SYSCLK_SRC_PLL
	default 20
	range 8 86
	help
	  PLL multiplier, allowed values: 2-16. PLL output must not
	  exceed 344MHz.

config CLOCK_STM32L4X_PLL_P_DIVISOR
	int "PLL P Divisor"
	depends on CLOCK_CONTROL_STM32L4X
	default 7
	range 0 17
	help
	  PLL P Output divisor, allowed values: 0, 7, 17.

config CLOCK_STM32L4X_PLL_Q_DIVISOR
	int "PLL Q Divisor"
	depends on CLOCK_CONTROL_STM32L4X
	default 2
	range 0 8
	help
	  PLL Q Output divisor, allowed values: 0, 2, 4, 6, 8.

config CLOCK_STM32L4X_PLL_R_DIVISOR
	int "PLL R Divisor"
	depends on CLOCK_CONTROL_STM32L4X
	default 4
	range 0 8
	help
	  PLL R Output divisor, allowed values: 0, 2, 4, 6, 8.

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

config CLOCK_STM32L4X_APB1_PRESCALER
	int "APB1 prescaler"
	depends on CLOCK_CONTROL_STM32L4X
	default 0
	range 0 16
	help
	  APB1 Low speed clock (PCLK1) prescaler, allowed values:
	  0, 2, 4, 8, 16

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

endif