[ARM] pxa/cm-x300: enable USB port 2 for PXA300
authorIgor Grinberg <grinberg@compulab.co.il>
Wed, 14 Oct 2009 07:20:23 +0000 (09:20 +0200)
committerEric Miao <eric.y.miao@gmail.com>
Tue, 1 Dec 2009 01:03:09 +0000 (09:03 +0800)
Port 2 requires setting of UP2OCR register to function as USB host.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Mike Rapoport <mike@compulab.co.il>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
arch/arm/mach-pxa/cm-x300.c

index d9006c271e8bdf1b7bf4881e2bf0995fc2df9d2b..2142fe74666c960a4ab0247c203ef1526a7c74e3 100644 (file)
@@ -36,6 +36,7 @@
 #include <asm/setup.h>
 
 #include <mach/pxa300.h>
+#include <mach/pxa27x-udc.h>
 #include <mach/pxafb.h>
 #include <mach/mmc.h>
 #include <mach/ohci.h>
@@ -437,9 +438,19 @@ static inline void cm_x300_init_mmc(void) {}
 #endif
 
 #if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
+static int cm_x300_ohci_init(struct device *dev)
+{
+       if (cpu_is_pxa300())
+               UP2OCR = UP2OCR_HXS
+                       | UP2OCR_HXOE | UP2OCR_DMPDE | UP2OCR_DPPDE;
+
+       return 0;
+}
+
 static struct pxaohci_platform_data cm_x300_ohci_platform_data = {
        .port_mode      = PMM_PERPORT_MODE,
-       .flags          = ENABLE_PORT1 | ENABLE_PORT2 | POWER_CONTROL_LOW,
+       .flags          = ENABLE_PORT_ALL | POWER_CONTROL_LOW,
+       .init           = cm_x300_ohci_init,
 };
 
 static void __init cm_x300_init_ohci(void)