@ -171,3 +171,73 @@ void disable_edma3_clocks(void)
1 ) ;
1 ) ;
}
}
# endif
# endif
# ifdef CONFIG_USB_DWC3
void enable_usb_clocks ( int index )
{
u32 * usbclkctrl = 0 ;
u32 * usbphyocp2scpclkctrl = 0 ;
if ( index = = 0 ) {
usbclkctrl = & cmper - > usb0clkctrl ;
usbphyocp2scpclkctrl = & cmper - > usbphyocp2scp0clkctrl ;
setbits_le32 ( & cmper - > usb0clkctrl ,
USBOTGSSX_CLKCTRL_OPTFCLKEN_REFCLK960 ) ;
setbits_le32 ( & cmwkup - > usbphy0clkctrl ,
USBPHY0_CLKCTRL_OPTFCLKEN_CLK32K ) ;
} else if ( index = = 1 ) {
usbclkctrl = & cmper - > usb1clkctrl ;
usbphyocp2scpclkctrl = & cmper - > usbphyocp2scp1clkctrl ;
setbits_le32 ( & cmper - > usb1clkctrl ,
USBOTGSSX_CLKCTRL_OPTFCLKEN_REFCLK960 ) ;
setbits_le32 ( & cmwkup - > usbphy1clkctrl ,
USBPHY0_CLKCTRL_OPTFCLKEN_CLK32K ) ;
}
u32 * const clk_domains_usb [ ] = {
0
} ;
u32 * const clk_modules_explicit_en_usb [ ] = {
usbclkctrl ,
usbphyocp2scpclkctrl ,
0
} ;
do_enable_clocks ( clk_domains_usb , clk_modules_explicit_en_usb , 1 ) ;
}
void disable_usb_clocks ( int index )
{
u32 * usbclkctrl = 0 ;
u32 * usbphyocp2scpclkctrl = 0 ;
if ( index = = 0 ) {
usbclkctrl = & cmper - > usb0clkctrl ;
usbphyocp2scpclkctrl = & cmper - > usbphyocp2scp0clkctrl ;
clrbits_le32 ( & cmper - > usb0clkctrl ,
USBOTGSSX_CLKCTRL_OPTFCLKEN_REFCLK960 ) ;
clrbits_le32 ( & cmwkup - > usbphy0clkctrl ,
USBPHY0_CLKCTRL_OPTFCLKEN_CLK32K ) ;
} else if ( index = = 1 ) {
usbclkctrl = & cmper - > usb1clkctrl ;
usbphyocp2scpclkctrl = & cmper - > usbphyocp2scp1clkctrl ;
clrbits_le32 ( & cmper - > usb1clkctrl ,
USBOTGSSX_CLKCTRL_OPTFCLKEN_REFCLK960 ) ;
clrbits_le32 ( & cmwkup - > usbphy1clkctrl ,
USBPHY0_CLKCTRL_OPTFCLKEN_CLK32K ) ;
}
u32 * const clk_domains_usb [ ] = {
0
} ;
u32 * const clk_modules_disable_usb [ ] = {
usbclkctrl ,
usbphyocp2scpclkctrl ,
0
} ;
do_disable_clocks ( clk_domains_usb , clk_modules_disable_usb , 1 ) ;
}
# endif