@@ -1984,6 +1984,32 @@ bool CLOCK_EnableUsbfs0HostClock(clock_usbfs_src_t src, uint32_t freq)
19841984 /* Select FRO 96 MHz */
19851985 CLOCK_AttachClk (kFRO_HF_to_USB0_CLK );
19861986 }
1987+ else if (kCLOCK_UsbfsSrcPll0 == src )
1988+ {
1989+ /*!< Configure XTAL32M */
1990+ POWER_DisablePD (kPDRUNCFG_PD_XTAL32M ); /* Ensure XTAL32M is powered */
1991+ POWER_DisablePD (kPDRUNCFG_PD_LDOXO32M ); /* Ensure XTAL32M is powered */
1992+ (void )CLOCK_SetupExtClocking (16000000U ); /* Enable clk_in clock */
1993+ SYSCON -> CLOCK_CTRL |= SYSCON_CLOCK_CTRL_CLKIN_ENA_MASK ; /* Enable clk_in from XTAL32M clock */
1994+ ANACTRL -> XO32M_CTRL |= ANACTRL_XO32M_CTRL_ENABLE_SYSTEM_CLK_OUT_MASK ; /* Enable clk_in to system */
1995+
1996+ /*!< Set up PLL0 */
1997+ POWER_DisablePD (kPDRUNCFG_PD_PLL0 );
1998+ CLOCK_AttachClk (kEXT_CLK_to_PLL0 ); /*!< Switch PLL0CLKSEL to EXT_CLK */
1999+ POWER_DisablePD (kPDRUNCFG_PD_PLL0_SSCG );
2000+ const pll_setup_t pll1Setup = {
2001+ .pllctrl = SYSCON_PLL0CTRL_CLKEN_MASK | SYSCON_PLL0CTRL_SELI (19U ) | SYSCON_PLL0CTRL_SELP (9U ),
2002+ .pllndec = SYSCON_PLL0NDEC_NDIV (1U ),
2003+ .pllpdec = SYSCON_PLL0PDEC_PDIV (5U ),
2004+ .pllsscg = {0x0U ,(SYSCON_PLL0SSCG1_MDIV_EXT (30U ) | SYSCON_PLL0SSCG1_SEL_EXT_MASK )},
2005+ .pllRate = 48000000U ,
2006+ .flags = PLL_SETUPFLAG_WAITLOCK };
2007+ (void )CLOCK_SetPLL0Freq (& pll1Setup );
2008+
2009+ CLOCK_SetClkDiv (kCLOCK_DivUsb0Clk , 1U , false);
2010+ CLOCK_AttachClk (kPLL0_to_USB0_CLK );
2011+ SDK_DelayAtLeastUs (50U , SDK_DEVICE_MAXIMUM_CPU_CLOCK_FREQUENCY );
2012+ }
19872013 else
19882014 {
19892015 /*!< Configure XTAL32M */
0 commit comments