Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/thirdpin/libopencm3.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Revaillot <revaillot@archos.com>2019-01-30 16:53:20 +0300
committerKarl Palsson <karlp@tweak.net.au>2019-06-04 01:29:45 +0300
commit6953138a280bfab54464a780e5491e8bd6e1753e (patch)
tree0fdd0dbc452e9cc5bbbc93684102b7601a37ffc1
parent9051480e7f8e1dd1c43c53ea9e492ebc7bcb0bdd (diff)
stm32l0: add rcc_set_msi_range.
-rw-r--r--include/libopencm3/stm32/l0/rcc.h2
-rw-r--r--lib/stm32/l0/rcc.c11
2 files changed, 13 insertions, 0 deletions
diff --git a/include/libopencm3/stm32/l0/rcc.h b/include/libopencm3/stm32/l0/rcc.h
index ace255b1..c832a285 100644
--- a/include/libopencm3/stm32/l0/rcc.h
+++ b/include/libopencm3/stm32/l0/rcc.h
@@ -693,6 +693,8 @@ void rcc_set_ppre1(uint32_t ppre1);
void rcc_set_hpre(uint32_t hpre);
void rcc_clock_setup_pll(const struct rcc_clock_scale *clock);
+void rcc_set_msi_range(uint32_t msi_range);
+
END_DECLS
/**@}*/
diff --git a/lib/stm32/l0/rcc.c b/lib/stm32/l0/rcc.c
index 3048bef5..90d6b437 100644
--- a/lib/stm32/l0/rcc.c
+++ b/lib/stm32/l0/rcc.c
@@ -391,6 +391,17 @@ void rcc_set_hpre(uint32_t hpre)
RCC_CFGR = reg | (hpre << RCC_CFGR_HPRE_SHIFT);
}
+/*---------------------------------------------------------------------------*/
+/** @brief Set the range of the MSI oscillator
+*
+ * @param range desired range @ref rcc_icscr_msirange
+ */
+void rcc_set_msi_range(uint32_t msi_range)
+{
+ uint32_t reg32 = RCC_ICSCR & ~(RCC_ICSCR_MSIRANGE_MASK << RCC_ICSCR_MSIRANGE_SHIFT);
+ RCC_ICSCR = reg32 | (msi_range << RCC_ICSCR_MSIRANGE_SHIFT);
+}
+
/**
* Set up sysclock with PLL from HSI16
* @param clock full struct with desired parameters