aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libopenstm32/rcc.h16
-rw-r--r--lib/rcc.c11
2 files changed, 27 insertions, 0 deletions
diff --git a/include/libopenstm32/rcc.h b/include/libopenstm32/rcc.h
index fb4d44e..7ba4108 100644
--- a/include/libopenstm32/rcc.h
+++ b/include/libopenstm32/rcc.h
@@ -363,4 +363,20 @@ typedef enum {
PLL, HSE, HSI, LSE, LSI
} osc_t;
+void rcc_osc_ready_int_clear(osc_t osc);
+void rcc_osc_ready_int_enable(osc_t osc);
+void rcc_osc_ready_int_disable(osc_t osc);
+int rcc_osc_ready_int_flag(osc_t osc);
+void rcc_css_int_clear(void);
+int rcc_css_int_flag(void);
+void rcc_wait_for_osc_ready(osc_t osc);
+void rcc_osc_on(osc_t osc);
+void rcc_osc_off(osc_t osc);
+void rcc_css_enable(void);
+void rcc_css_disable(void);
+void rcc_osc_bypass_enable(osc_t osc);
+void rcc_osc_bypass_disable(osc_t osc);
+void rcc_enable_peripheral_clock(volatile u32 *reg, u32 peripheral_en);
+void rcc_disable_peripheral_clock(volatile u32 *reg, u32 peripheral_en);
+
#endif
diff --git a/lib/rcc.c b/lib/rcc.c
index 47bcafb..30ad802 100644
--- a/lib/rcc.c
+++ b/lib/rcc.c
@@ -223,3 +223,14 @@ void rcc_osc_bypass_disable(osc_t osc)
break;
}
}
+
+void rcc_enable_peripheral_clock(volatile u32 *reg, u32 peripheral_en)
+{
+ *reg |= peripheral_en;
+}
+
+void rcc_disable_peripheral_clock(volatile u32 *reg, u32 peripheral_en)
+{
+ *reg &= ~peripheral_en;
+}
+