void usb_init_device(void) { /* Power up the core clocks to allow writing to some registers needed to power it down */ usb_dw_target_disable_irq(); usb_dw_target_enable_clocks(); usb_drv_exit(); }
void usb_core_exit(void) { int i; for(i = 0; i < USB_NUM_DRIVERS; i++) if(drivers[i].enabled && drivers[i].disconnect != NULL) { drivers[i].disconnect(); drivers[i].enabled = false; } if(initialized) { usb_drv_exit(); initialized = false; } usb_state = DEFAULT; #ifdef HAVE_USB_CHARGING_ENABLE usb_no_host = false; usb_charging_maxcurrent_change(usb_charging_maxcurrent()); #endif logf("usb_core_exit() finished"); }
void usb_init_device(void) { unsigned int i; for (i = 0; i < sizeof(endpoints)/sizeof(struct ep_type); i++) semaphore_init(&endpoints[i].complete, 1, 0); /* Power up the core clocks to allow writing to some registers needed to power it down */ PCGCCTL = 0; #if CONFIG_CPU==S5L8701 PWRCON &= ~0x4000; PWRCONEXT &= ~0x800; INTMSK |= INTMSK_USB_OTG; #elif CONFIG_CPU==S5L8702 PWRCON(0) &= ~0x4; PWRCON(1) &= ~0x8; VIC0INTENABLE |= 1 << 19; #endif usb_drv_exit(); }