Skip to content

Commit da4df6a

Browse files
committed
cpu/samd5: valid XOSC32 statup time avoid gclk roundtrip for CPU FDPLL
1 parent cfaa76b commit da4df6a

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

cpu/samd5x/cpu.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ static void xosc32k_init(void)
107107
| OSC32KCTRL_XOSC32K_EN32K
108108
| OSC32KCTRL_XOSC32K_RUNSTDBY
109109
| OSC32KCTRL_XOSC32K_XTALEN
110-
| OSC32KCTRL_XOSC32K_STARTUP(7);
110+
| OSC32KCTRL_XOSC32K_STARTUP(5);
111111

112112
while (!(OSC32KCTRL->STATUS.reg & OSC32KCTRL_STATUS_XOSC32KRDY)) {}
113113
}
@@ -212,10 +212,16 @@ static void fdpll_init_nolock(uint8_t idx, uint32_t f_cpu, uint8_t flags)
212212
| OSCCTRL_DPLLRATIO_LDR((LDR >> 5) - 1);
213213

214214
/* Without LBYPASS, startup takes very long, see errata section 2.13. */
215+
if(idx == 0){
216+
OSCCTRL->Dpll[idx].DPLLCTRLB.reg = OSCCTRL_DPLLCTRLB_REFCLK_XOSC32;
217+
// | OSCCTRL_DPLLCTRLB_WUF
218+
// | OSCCTRL_DPLLCTRLB_LBYPASS;
219+
}
215220
OSCCTRL->Dpll[idx].DPLLCTRLB.reg = OSCCTRL_DPLLCTRLB_REFCLK_GCLK
216221
| OSCCTRL_DPLLCTRLB_WUF
217222
| OSCCTRL_DPLLCTRLB_LBYPASS;
218223

224+
219225
OSCCTRL->Dpll[idx].DPLLCTRLA.reg = OSCCTRL_DPLLCTRLA_ENABLE | flags;
220226

221227
while (OSCCTRL->Dpll[idx].DPLLSYNCBUSY.reg) {}

0 commit comments

Comments
 (0)