aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorisiora <none@example.com>2017-08-17 21:21:44 +0000
committerisiora <none@example.com>2017-08-17 21:21:44 +0000
commit8abd932cac221d2828edac7145154735a30c9e16 (patch)
tree8b9d23f747685da3cd81a50966acaf6ad1d20c49
parent4058d89f6148bc998ff35c41d3715543a97cd6c7 (diff)
downloadChibiOS-8abd932cac221d2828edac7145154735a30c9e16.tar.gz
ChibiOS-8abd932cac221d2828edac7145154735a30c9e16.tar.bz2
ChibiOS-8abd932cac221d2828edac7145154735a30c9e16.zip
Added matrix clock ratio setting.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10446 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r--os/hal/ports/SAMA/SAMA5D2x/hal_lld.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/os/hal/ports/SAMA/SAMA5D2x/hal_lld.c b/os/hal/ports/SAMA/SAMA5D2x/hal_lld.c
index b0162087e..fb3399316 100644
--- a/os/hal/ports/SAMA/SAMA5D2x/hal_lld.c
+++ b/os/hal/ports/SAMA/SAMA5D2x/hal_lld.c
@@ -138,6 +138,12 @@ void sama_clock_init(void) {
while (!(PMC->CKGR_MCFR & CKGR_MCFR_MAINFRDY))
;
mainf = CKGR_MCFR_MAINF(PMC->CKGR_MCFR);
+ /*
+ * TODO: check mainf
+ * select alternate clock source if mainf is out of range.
+ * This function should start trying to use crystal osc sources and
+ * should switch to alternate sources if mainf is invalid.
+ */
(void)mainf;
/* Switching Main Clock source. */
@@ -178,8 +184,8 @@ void sama_clock_init(void) {
while (!(PMC->PMC_SR & PMC_SR_MCKRDY))
; /* Waits until MCK is stable. */
- mckr &= ~(PMC_MCKR_PRES_Msk | PMC_MCKR_MDIV_Msk);
- mckr |= (SAMA_MCK_PRES | SAMA_MCK_MDIV);
+ mckr &= ~(PMC_MCKR_PRES_Msk | PMC_MCKR_MDIV_Msk | PMC_MCKR_H32MXDIV);
+ mckr |= (SAMA_MCK_PRES | SAMA_MCK_MDIV | SAMA_H64MX_H32MX_DIV);
#if SAMA_PLLADIV2_EN
mckr |= PMC_MCKR_PLLADIV2;
#else