zephyr/drivers/clock_control/Kconfig.stm32f10x
Maciek Borzecki 3f5af00529 clock_control/stm32f10x: introduce driver for STM32F10x RCC
The patch adds a driver for STM32F10x series RCC (Reset and Clock
Control) subsystem.

The module is primarily responsible for setting up of MCU's clock
tree. In particular the driver sets up SYSCLK, PLL (with source
configuration), AHB prescaler, and APB1/APB2 prescalers. As part of this
functionality, the subsystem can enable/disable clock signal for
particular peripherals, thus reducing the power consumption of the MCU.

The driver implements clock control driver API. However, subsystem IDs
being HW specific are exposed in driver public header that must be
included by callers. The driver registers a single device using a common
name STM32_CLOCK_CONTROL_NAME. The device is initialized at
the PRIMARY level with priority 1. This allows the initialization to
take place right after SoC initialization routine.

The driver depends on selection of SOC_STM32F1X config option and is MCU
specific.

Change-Id: I8bea5db20726a24bce7b7ffe0b95de543240429a
Origin: Original
Signed-off-by: Maciej Borzecki <maciek.borzecki@gmail.com>
2016-03-16 18:11:18 +00:00

113 lines
2.6 KiB
Plaintext

# Kconfig - STM32F1 MCU clock control driver config
#
# Copyright (c) 2016 Open-RnD Sp. z o.o.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
if SOC_STM32F1X
config CLOCK_CONTROL_STM32F10X
bool
prompt "STM32F10x Reset & Clock Control"
depends on CLOCK_CONTROL && SOC_STM32F1X
default y if SOC_STM32F1X
help
Enable driver for Reset & Clock Control subsystem found
in STM32F1 family of MCUs
config CLOCK_CONTROL_STM32F10X_DEVICE_PRIORITY
int "Clock Control Device Priority"
default 1
depends on CLOCK_CONTROL_STM32F10X
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 System Clock Source"
depends on CLOCK_CONTROL_STM32F10X
config CLOCK_STM32F10X_SYSCLK_SRC_HSI
bool "HSI"
help
Use HSI as source of SYSCLK
config CLOCK_STM32F10X_SYSCLK_SRC_HSE
bool "HSE"
help
Use HSE as source of SYSCLK
config CLOCK_STM32F10X_SYSCLK_SRC_PLL
bool "PLL"
help
Use PLL as source of SYSCLK
endchoice
choice
prompt "STM32F10x PLL Clock Source"
depends on CLOCK_CONTROL_STM32F10X
config CLOCK_STM32F10X_PLL_SRC_HSI
bool "HSI"
help
Use HSI as source of PLL
config CLOCK_STM32F10X_PLL_SRC_PREDIV1
bool "PREDIV1"
help
Use PREDIV1 as source of PLL
endchoice
config CLOCK_STM32F10X_PLL_MULTIPLIER
int "PLL multiplier"
depends on CLOCK_CONTROL_STM32F10X
default 9
range 2 16
help
PLL multiplier, allowed values: 2-16
config CLOCK_STM32F10X_AHB_PRESCALER
int "AHB prescaler"
depends on CLOCK_CONTROL_STM32F10X
default 0
range 0 512
help
AHB prescaler, allowed values: 0, 2, 4, 8, 16, 64, 128,
256, 512.
config CLOCK_STM32F10X_APB1_PRESCALER
int "APB1 prescaler"
depends on CLOCK_CONTROL_STM32F10X
default 0
range 0 16
help
APB1 Low speed clock (PCLK1) prescaler, allowed values:
0, 2, 4, 8, 16
config CLOCK_STM32F10X_APB2_PRESCALER
int "APB2 prescaler"
depends on CLOCK_CONTROL_STM32F10X
default 0
range 0 16
help
APB2 High speed clock (PCLK2) prescaler, allowed values:
0, 2, 4, 8, 16
endif