Browse Source

USB: s3c-hsotg: SoftDisconnect minimum 3ms

The shortest period SoftDisconnect can be asserted for is 3 milliseconds
according to the V210 datasheet, so ensure that we add an msleep() to
the registration code to enforce this.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Ben Dooks 15 years ago
parent
commit
2e0e0777ec
1 changed files with 3 additions and 0 deletions
  1. 3 0
      drivers/usb/gadget/s3c-hsotg.c

+ 3 - 0
drivers/usb/gadget/s3c-hsotg.c

@@ -2599,6 +2599,9 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
 	writel(S3C_DCTL_CGOUTNak | S3C_DCTL_CGNPInNAK,
 	writel(S3C_DCTL_CGOUTNak | S3C_DCTL_CGNPInNAK,
 	       hsotg->regs + S3C_DCTL);
 	       hsotg->regs + S3C_DCTL);
 
 
+	/* must be at-least 3ms to allow bus to see disconnect */
+	msleep(3);
+
 	/* remove the soft-disconnect and let's go */
 	/* remove the soft-disconnect and let's go */
 	__bic32(hsotg->regs + S3C_DCTL, S3C_DCTL_SftDiscon);
 	__bic32(hsotg->regs + S3C_DCTL, S3C_DCTL_SftDiscon);