From 8abd932cac221d2828edac7145154735a30c9e16 Mon Sep 17 00:00:00 2001 From: isiora Date: Thu, 17 Aug 2017 21:21:44 +0000 Subject: Added matrix clock ratio setting. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10446 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/ports/SAMA/SAMA5D2x/hal_lld.c | 10 ++++++++-- 1 file 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 -- cgit v1.2.3