static void usb_startup(void) { usb_enable_module(1); dwc_mdelay(10); usb_ldo_switch(0); __raw_bits_and(~BIT_1, AHB_CTL3); __raw_bits_and(~BIT_2, AHB_CTL3); usb_ldo_switch(1); __raw_bits_or(BIT_6, AHB_CTL3); //__raw_bits_or(BIT_7, AHB_SOFT_RST); //dwc_mdelay(10); //__raw_bits_and(~BIT_7, AHB_SOFT_RST); __raw_bits_or(BIT_5, AHB_CTL0); dwc_mdelay(30); }
static void usb_startup(void) { usb_enable_module(1); mdelay(10); //usb_ldo_switch(0); sprd_greg_clear_bits(REG_TYPE_AHB_GLOBAL,BIT(1)|BIT(2),AHB_CTL3); usb_ldo_switch(1); sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,BIT(6),AHB_CTL3); // sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,BIT(8)|BIT(14)|BIT(15)|BIT(17),AHB_CTL3); // sprd_greg_clear_bits(REG_TYPE_AHB_GLOBAL,BIT(12)|BIT(13)|BIT(16),AHB_CTL3); sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,BIT(6)|BIT(7),AHB_SOFT_RST); mdelay(5); sprd_greg_clear_bits(REG_TYPE_AHB_GLOBAL,BIT(6)|BIT(7),AHB_SOFT_RST); sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,AHB_CTL0_USBD_EN,AHB_CTL0); }
static void usb_startup(void) { usb_ldo_switch(1); mdelay(10); usb_enable_module(1); mdelay(2); #if defined(CONFIG_ARCH_SCX35) sci_glb_set(REG_AP_AHB_AHB_RST,BIT(5)|BIT(6)|BIT(7)); mdelay(5); sci_glb_clr(REG_AP_AHB_AHB_RST,BIT(5)|BIT(6)|BIT(7)); #else sprd_greg_clear_bits(REG_TYPE_AHB_GLOBAL,BIT(1)|BIT(2),AHB_CTL3); sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,BIT(6),AHB_CTL3); sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,BIT(6)|BIT(7),AHB_SOFT_RST); mdelay(5); sprd_greg_clear_bits(REG_TYPE_AHB_GLOBAL,BIT(6)|BIT(7),AHB_SOFT_RST); sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,AHB_CTL0_USBD_EN,AHB_CTL0); #endif mdelay(3); }
static void usb_startup(void) { usb_ldo_switch(1); mdelay(10); usb_enable_module(1); mdelay(2); #if (defined(CONFIG_ARCH_SCX35)||defined(CONFIG_ARCH_SCX35L64)||defined(CONFIG_ARCH_SCX35LT8)) #if defined(CONFIG_ARCH_SCX30G) #if defined(CONFIG_ARCH_SCX20) sci_glb_set(REG_AP_AHB_AHB_RST, BIT(5)|BIT(6)); mdelay(5); sci_glb_clr(REG_AP_AHB_AHB_RST, BIT(5)|BIT(6)); sprd_usb_phy_rst(); #else sci_glb_set(REG_AP_AHB_AHB_RST,BIT(5)|BIT(6)|BIT(7)); mdelay(5); sci_glb_clr(REG_AP_AHB_AHB_RST,BIT(5)|BIT(6)|BIT(7)); #endif #else sci_glb_set(REG_AP_AHB_AHB_RST,BIT_OTG_SOFT_RST|BIT_OTG_UTMI_SOFT_RST|BIT_OTG_PHY_SOFT_RST); mdelay(5); sci_glb_clr(REG_AP_AHB_AHB_RST,BIT_OTG_SOFT_RST|BIT_OTG_UTMI_SOFT_RST|BIT_OTG_PHY_SOFT_RST); sci_glb_set(REG_AP_AHB_AHB_EB,BIT_USB_EB); #endif #else sprd_greg_clear_bits(REG_TYPE_AHB_GLOBAL,BIT_USB_S_HBIGEIDIAN|BIT_USB_M_HBIGENDIAN,REG_AHB_AHB_CTL3); sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,BIT_CLK_USB_REF_EN,REG_AHB_AHB_CTL3); sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,BIT_USBD_UTMI_SOFT_RST|BIT_USBPHY_SOFT_RST ,REG_AHB_SOFT_RST); mdelay(5); sprd_greg_clear_bits(REG_TYPE_AHB_GLOBAL,BIT_USBD_UTMI_SOFT_RST|BIT_USBPHY_SOFT_RST,REG_AHB_SOFT_RST); sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,BIT_USBD_EB,REG_AHB_AHB_CTL0); #endif mdelay(3); }
void udc_disable(void) { pr_info("%s \n", __func__); usb_enable_module(0); usb_ldo_switch(0); }
static void udc_disable(void) { usb_enable_module(0); usb_ldo_switch(0); }