This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / arch / arm / mach-s3c2410 / usb-simtec.c
index 7f2b613..b8f8ded 100644 (file)
@@ -13,7 +13,6 @@
  *
  * Modifications:
  *     14-Sep-2004 BJD  Created
- *     18-Oct-2004 BJD  Cleanups, and added code to report OC cleared
 */
 
 #define DEBUG
@@ -52,8 +51,10 @@ usb_simtec_powercontrol(int port, int to)
 {
        pr_debug("usb_simtec_powercontrol(%d,%d)\n", port, to);
 
-       if (port == 1)
+       if (port == 1) {
                s3c2410_gpio_setpin(S3C2410_GPB4, to ? 0:1);
+               pr_debug("GPBDAT now %08x\n", __raw_readl(S3C2410_GPBDAT));
+       }
 }
 
 static irqreturn_t
@@ -66,7 +67,6 @@ usb_simtec_ocirq(int irq, void *pw, struct pt_regs *regs)
                s3c2410_report_oc(info, 3);
        } else {
                pr_debug("usb_simtec: over-current irq (oc cleared)\n");
-               s3c2410_report_oc(info, 0);
        }
 
        return IRQ_HANDLED;
@@ -77,15 +77,16 @@ static void usb_simtec_enableoc(struct s3c2410_hcd_info *info, int on)
        int ret;
 
        if (on) {
+               pr_debug("claiming usb overccurent\n");
                ret = request_irq(IRQ_USBOC, usb_simtec_ocirq, SA_INTERRUPT,
-                                 "USB Over-current", info);
+                                 "usb-oc", info);
                if (ret != 0) {
                        printk(KERN_ERR "failed to request usb oc irq\n");
                }
 
                set_irq_type(IRQ_USBOC, IRQT_BOTHEDGE);
        } else {
-               free_irq(IRQ_USBOC, info);
+               free_irq(IRQ_USBOC, NULL);
        }
 }
 
@@ -109,5 +110,14 @@ int usb_simtec_init(void)
 
        s3c2410_gpio_cfgpin(S3C2410_GPB4, S3C2410_GPB4_OUTP);
        s3c2410_gpio_setpin(S3C2410_GPB4, 1);
+
+       pr_debug("GPB: CON=%08x, DAT=%08x\n",
+                __raw_readl(S3C2410_GPBCON), __raw_readl(S3C2410_GPBDAT));
+
+       if (0) {
+               s3c2410_modify_misccr(S3C2410_MISCCR_USBHOST,
+                                     S3C2410_MISCCR_USBDEV);
+       }
+
        return 0;
 }