]> git.hungrycats.org Git - linux/commitdiff
[ARM PATCH] 2426/1: PXA Corgi - Add USB Device Controller support
authorRichard Purdie <rpurdie@net.rmk.(none)>
Fri, 21 Jan 2005 23:27:47 +0000 (23:27 +0000)
committerRussell King <rmk@flint.arm.linux.org.uk>
Fri, 21 Jan 2005 23:27:47 +0000 (23:27 +0000)
Patch from Richard Purdie

Add USB Device Controller support to the corgi machines
(Sharp SL-C7xx series).

Signed-off-by: Richard Purdie
Signed-off-by: Russell King
arch/arm/mach-pxa/corgi.c

index 122b4096487baeaeb5c81dc8454f70f9ca486f82..861476af1babaff29fc08bcc1cb3f75124edeb86 100644 (file)
@@ -34,6 +34,7 @@
 #include <asm/arch/pxa-regs.h>
 #include <asm/arch/irq.h>
 #include <asm/arch/mmc.h>
+#include <asm/arch/udc.h>
 #include <asm/arch/corgi.h>
 
 #include <asm/hardware/scoop.h>
@@ -192,6 +193,27 @@ static struct pxamci_platform_data corgi_mci_platform_data = {
 };
 
 
+/*
+ * USB Device Controller
+ */
+static void corgi_udc_command(int cmd)
+{
+       switch(cmd)     {
+       case PXA2XX_UDC_CMD_CONNECT:
+               GPSR(CORGI_GPIO_USB_PULLUP) = GPIO_bit(CORGI_GPIO_USB_PULLUP);
+               break;
+       case PXA2XX_UDC_CMD_DISCONNECT:
+               GPCR(CORGI_GPIO_USB_PULLUP) = GPIO_bit(CORGI_GPIO_USB_PULLUP);
+               break;
+       }
+}
+
+static struct pxa2xx_udc_mach_info udc_info __initdata = {
+       /* no connect GPIO; corgi can't tell connection status */
+       .udc_command            = corgi_udc_command,
+};
+
+
 static struct platform_device *devices[] __initdata = {
        &corgiscoop_device,
        &corgissp_device,
@@ -221,6 +243,8 @@ static void __init corgi_init(void)
        else
                corgi_fb_info.phadadj=-1;
 
+       pxa_gpio_mode(CORGI_GPIO_USB_PULLUP | GPIO_OUT);
+       pxa_set_udc_info(&udc_info);
        pxa_set_mci_info(&corgi_mci_platform_data);
 
        platform_add_devices(devices, ARRAY_SIZE(devices));