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>
This commit is contained in:
parent
14482f0940
commit
3f5af00529
8 changed files with 600 additions and 0 deletions
28
include/drivers/clock_control/stm32_clock_control.h
Normal file
28
include/drivers/clock_control/stm32_clock_control.h
Normal file
|
@ -0,0 +1,28 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
#ifndef _STM32_CLOCK_CONTROL_H_
|
||||
#define _STM32_CLOCK_CONTROL_H_
|
||||
|
||||
#include <clock_control.h>
|
||||
|
||||
/* common clock control device name for all STM32 chips */
|
||||
#define STM32_CLOCK_CONTROL_NAME "stm32-cc"
|
||||
|
||||
#ifdef CONFIG_SOC_STM32F1X
|
||||
#include "stm32f1_clock_control.h"
|
||||
#endif
|
||||
|
||||
#endif /* _STM32_CLOCK_CONTROL_H_ */
|
Loading…
Add table
Add a link
Reference in a new issue