@@ -1984,6 +1984,32 @@ bool CLOCK_EnableUsbfs0HostClock(clock_usbfs_src_t src, uint32_t freq)
1984
1984
/* Select FRO 96 MHz */
1985
1985
CLOCK_AttachClk (kFRO_HF_to_USB0_CLK );
1986
1986
}
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
+ }
1987
2013
else
1988
2014
{
1989
2015
/*!< Configure XTAL32M */
0 commit comments