Linux preempt-rt

Check our new training course

Real-Time Linux with PREEMPT_RT

Check our new training course
with Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

# Kconfig - STM32F1X Connectivity Line MCU clock control driver config
#
# Copyright (c) 2016 RnDity Sp. z o.o.
#
# SPDX-License-Identifier: Apache-2.0
#

if SOC_STM32F10X_CONNECTIVITY_LINE_DEVICE

menuconfig CLOCK_CONTROL_STM32F10X_CONN_LINE
	bool
	prompt "STM32F107x Reset & Clock Control"
	default y if SOC_STM32F10X_CONNECTIVITY_LINE_DEVICE
	help
	 Enable driver for Reset & Clock Control subsystem found
	 in STM32F105/STM32F107 family of MCUs

config CLOCK_CONTROL_STM32F10X_CONN_LINE_DEVICE_INIT_PRIORITY
	int "Clock Control Device Priority"
	default 1
	depends on CLOCK_CONTROL_STM32F10X_CONN_LINE
	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 "STM32F10x Connectivity Line System Clock Source"
depends on CLOCK_CONTROL_STM32F10X_CONN_LINE

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

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

config CLOCK_STM32F10X_CONN_LINE_SYSCLK_SRC_PLLCLK
	bool "PLLCLK"
	help
	 Use PLLCLK as source of SYSCLK

endchoice

choice
prompt "STM32F10x Connectivity Line PLL Clock Source"
depends on CLOCK_CONTROL_STM32F10X_CONN_LINE && CLOCK_STM32F10X_CONN_LINE_SYSCLK_SRC_PLLCLK

config CLOCK_STM32F10X_CONN_LINE_PLL_SRC_HSI
	bool "HSI"
	help
	 Use HSI divided by 2 as source of PLL

config CLOCK_STM32F10X_CONN_LINE_PLL_SRC_PREDIV1
	bool "PREDIV1"
	help
	 Use clock from PREDIV1 as source of PLL

endchoice

choice
prompt "STM32F10x Connectivity Line PREDIV1 entry clock source"
depends on CLOCK_CONTROL_STM32F10X_CONN_LINE && CLOCK_STM32F10X_CONN_LINE_PLL_SRC_PREDIV1

config CLOCK_STM32F10X_CONN_LINE_PREDIV1_SRC_HSE
	bool "HSE"
	help
	 Use HSE as source of PREDIV1

config CLOCK_STM32F10X_CONN_LINE_PREDIV1_SRC_PLL2CLK
	bool "PLL2CLK"
	help
	 Use clock from PLL2CLK as source of PLL

endchoice

config CLOCK_STM32F10X_CONN_LINE_HSE_BYPASS
	bool "HSE bypass"
	depends on CLOCK_CONTROL_STM32F10X_CONN_LINE && (CLOCK_STM32F10X_CONN_LINE_SYSCLK_SRC_HSE || CLOCK_STM32F10X_CONN_LINE_PREDIV1_SRC_HSE)
	help
	 Enable this option to bypass external high-speed clock (HSE).

config CLOCK_STM32F10X_CONN_LINE_PREDIV1
	int "PREDIV1 Prescaler"
	depends on CLOCK_CONTROL_STM32F10X_CONN_LINE && CLOCK_STM32F10X_CONN_LINE_PLL_SRC_PREDIV1
	default 0
	range 0 16
	help
	 PREDIV1 is PREDIV1SCR clock signal prescaler, allowed values: 0 - 16.

config CLOCK_STM32F10X_CONN_LINE_PLL_MULTIPLIER
	int "PLL multiplier"
	depends on CLOCK_CONTROL_STM32F10X_CONN_LINE && CLOCK_STM32F10X_CONN_LINE_SYSCLK_SRC_PLLCLK
	default 9
	range 4 13
	help
	 PLL multiplier, allowed values: 4 - 9 and 13 (in fact the multiplication factor is 6.5).
	 Values in range 10-12 are reserved. PLL output must not exceed 72MHz.

config CLOCK_STM32F10X_CONN_LINE_PLL2_MULTIPLIER
	int "PLL2 multiplier"
	depends on CLOCK_CONTROL_STM32F10X_CONN_LINE && CLOCK_STM32F10X_CONN_LINE_PREDIV1_SRC_PLL2CLK
	default 8
	range 8 20
	help
	 PLL2 multiplier, allowed values: 8 - 20. PLL2 output must not exceed 72MHz.

config CLOCK_STM32F10X_CONN_LINE_PREDIV2
	int "PREDIV2 Prescaler"
	depends on CLOCK_CONTROL_STM32F10X_CONN_LINE && CLOCK_STM32F10X_CONN_LINE_PREDIV1_SRC_PLL2CLK
	default 0
	range 0 16
	help
	 PREDIV2 is HSE prescaler, allowed values: 0 - 16.

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

config CLOCK_STM32F10X_CONN_LINE_APB1_PRESCALER
	int "APB1 prescaler"
	depends on CLOCK_CONTROL_STM32F10X_CONN_LINE
	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_STM32F10X_CONN_LINE_APB2_PRESCALER
	int "APB2 prescaler"
	depends on CLOCK_CONTROL_STM32F10X_CONN_LINE
	default 0
	range 0 16
	help
	 APB2 High speed clock (PCLK2) prescaler, allowed values:
	 0, 2, 4, 8, 16

endif