From 88d7ecb857ece0e3814e2ef84405bdb84b09afaa Mon Sep 17 00:00:00 2001 From: Alexandre Abadie Date: Sun, 30 Aug 2020 13:11:57 +0200 Subject: [PATCH] boards/stm32f0: introduce shared default clock configuration header --- .../stm32/include/f0/cfg_clock_default.h | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 boards/common/stm32/include/f0/cfg_clock_default.h diff --git a/boards/common/stm32/include/f0/cfg_clock_default.h b/boards/common/stm32/include/f0/cfg_clock_default.h new file mode 100644 index 0000000000..cb46d5b782 --- /dev/null +++ b/boards/common/stm32/include/f0/cfg_clock_default.h @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2020 Inria + * + * This file is subject to the terms and conditions of the GNU Lesser + * General Public License v2.1. See the file LICENSE in the top level + * directory for more details. + */ + +/** + * @ingroup boards_common_stm32 + * @{ + * + * @file + * @brief Default clock configuration for STM32F0 + * + * @author Hauke Petersen + * @author José Ignacio Alamos + * @author Alexandre Abadie + */ + +#ifndef F0_CFG_CLOCK_DEFAULT_H +#define F0_CFG_CLOCK_DEFAULT_H + +#include "periph_cpu.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @name Clock settings + * @{ + */ +/* give the target core clock (HCLK) frequency [in Hz], + * maximum: 48MHz */ +#define CLOCK_CORECLOCK MHZ(48) +/* 0: no external high speed crystal available + * else: actual crystal frequency [in Hz] */ +#ifndef CLOCK_HSE +#define CLOCK_HSE MHZ(8) +#endif +/* 0: no external low speed crystal available, + * 1: external crystal available (always 32.768kHz) */ +#ifndef CLOCK_LSE +#define CLOCK_LSE (0) +#endif +/* peripheral clock setup */ +#define CLOCK_AHB_DIV RCC_CFGR_HPRE_DIV1 +#define CLOCK_AHB (CLOCK_CORECLOCK / 1) +#define CLOCK_APB1_DIV RCC_CFGR_PPRE_DIV1 /* max 48MHz */ +#define CLOCK_APB1 (CLOCK_CORECLOCK / 1) +#define CLOCK_APB2 (CLOCK_APB1) + +/* PLL factors */ +#ifndef CLOCK_PLL_PREDIV +#define CLOCK_PLL_PREDIV (1) +#endif +#ifndef CLOCK_PLL_MUL +#define CLOCK_PLL_MUL (6) +#endif +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* F0_CFG_CLOCK_DEFAULT_H */ +/** @} */