+
+
+ u32 temp = 0;
+ u32 hcctrl = read32(OHCI0_HC_CONTROL);
+ switch(hcctrl & OHCI_CTRL_HCFS) {
+ case OHCI_USB_OPER:
+ temp = 0;
+ break;
+ case OHCI_USB_SUSPEND:
+ case OHCI_USB_RESUME:
+ hcctrl &= OHCI_CTRL_RWC;
+ hcctrl |= OHCI_USB_RESUME;
+ temp = 10;
+ break;
+ case OHCI_USB_RESET:
+ hcctrl &= OHCI_CTRL_RWC;
+ hcctrl |= OHCI_USB_RESET;
+ temp = 50;
+ break;
+ }
+ write32(OHCI0_HC_CONTROL, hcctrl);
+ (void) read32(OHCI0_HC_CONTROL);
+ udelay(temp*1000);
+
+ memset(&hcca_oh0, 0, sizeof(struct ohci_hcca));
+
+
+ dbg_op_state();
+
+