void dfll_enable_config_defaults(unsigned int dfll_id) { struct dfll_config dfllcfg; if (dfll_is_fine_locked(dfll_id)) { return; // DFLL already running } switch (dfll_id) { #ifdef CONFIG_DFLL0_SOURCE case 0: dfll_enable_source(CONFIG_DFLL0_SOURCE); dfll_config_init_closed_loop_mode(&dfllcfg, CONFIG_DFLL0_SOURCE, CONFIG_DFLL0_DIV, CONFIG_DFLL0_MUL); break; #endif default: Assert(false); break; } dfll_enable_closed_loop(&dfllcfg, dfll_id); while (!dfll_is_fine_locked(dfll_id)); }
void dfll_enable_config_defaults(uint32_t dfll_id) { #ifdef CONFIG_DFLL0_SOURCE struct dfll_config dfllcfg; #endif static bool open_loop_done = false; if((SCIF->SCIF_DFLL0CONF & SCIF_DFLL0CONF_MODE) && (SCIF->SCIF_DFLL0CONF & SCIF_DFLL0CONF_EN)) { // Closed-loop mode if (dfll_is_fine_locked(dfll_id)) { return; // DFLL already running } } if (open_loop_done == true) { return; } switch (dfll_id) { #ifdef CONFIG_DFLL0_SOURCE case 0: dfll_enable_source(CONFIG_DFLL0_SOURCE); dfll_config_init_closed_loop_mode(&dfllcfg, CONFIG_DFLL0_SOURCE, CONFIG_DFLL0_DIV, CONFIG_DFLL0_MUL); dfll_enable_closed_loop(&dfllcfg, dfll_id); while (!dfll_is_fine_locked(dfll_id)); break; #endif default: Assert(false); break; } }