From 0f011d53de504b164eec9ac9fd313d9cb43707e0 Mon Sep 17 00:00:00 2001 From: Dan Evans <dan.evans@nelsonirrigation.com> Date: Tue, 23 Jan 2018 16:24:17 -0700 Subject: [PATCH] samd21/cpu DFLL lock loop error --- cpu/samd21/cpu.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/cpu/samd21/cpu.c b/cpu/samd21/cpu.c index f6c59bccb2..9590e9fccd 100644 --- a/cpu/samd21/cpu.c +++ b/cpu/samd21/cpu.c @@ -161,11 +161,10 @@ static void clk_init(void) } SYSCTRL->DFLLCTRL.bit.ENABLE = 1; - while ((SYSCTRL->PCLKSR.reg & (SYSCTRL_PCLKSR_DFLLRDY | - SYSCTRL_PCLKSR_DFLLLCKF | - SYSCTRL_PCLKSR_DFLLLCKC)) == 0) { - /* Wait for DFLLLXXX sync */ - } + uint32_t mask = SYSCTRL_PCLKSR_DFLLRDY | + SYSCTRL_PCLKSR_DFLLLCKF | + SYSCTRL_PCLKSR_DFLLLCKC; + while ((SYSCTRL->PCLKSR.reg & mask) != mask) { } /* Wait for DFLL lock */ /* select the DFLL as source for clock generator 0 (CPU core clock) */ GCLK->GENDIV.reg = (GCLK_GENDIV_DIV(1U) | GCLK_GENDIV_ID(0)); -- GitLab