rendered paste bodyFrom dc90f148f86b28ccde64302808234dd5142522b5 Mon Sep 17 00:00:00 2001From: Philipp Zabel <philipp.zabel@gmail.com>Date: Tue, 25 Dec 2007 14:19:45 +0100Subject: [PATCH] WIP: magician: enable pxa27x_udc--- arch/arm/mach-pxa/magician.c | 31 +++++++++++++++++++++++++++++++ arch/arm/mach-pxa/pxa27x.c | 2 +- 2 files changed, 32 insertions(+), 1 deletions(-)diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.cindex 6de2c13..6ecca0e 100644--- a/arch/arm/mach-pxa/magician.c+++ b/arch/arm/mach-pxa/magician.c@@ -33,6 +33,7 @@ #include <asm/mach/arch.h> #include <asm/arch/magician.h> #include <asm/arch/mfp-pxa27x.h>+#include <asm/arch/pxa27x-udc.h> #include <asm/arch/pxa-regs.h> #include <asm/arch/pxa2xx-regs.h> #include <asm/arch/pxafb.h>@@ -40,6 +41,7 @@ #include <asm/arch/mmc.h> #include <asm/arch/irda.h> #include <asm/arch/ohci.h>+#include <asm/arch/udc.h> #include "devices.h" #include "generic.h"@@ -717,6 +719,29 @@ static struct platform_device strataflash = { }; /*+ * USB Device Controller+ */++static void magician_udc_command(int cmd)+{+ switch (cmd) {+ case PXA2XX_UDC_CMD_CONNECT:+ pr_info("magician_udc_command: connect\n");+ UP2OCR = UP2OCR_HXOE | UP2OCR_DMPUE | UP2OCR_DMPUBE;+ gpio_set_value(GPIO27_MAGICIAN_USBC_PUEN, 1);+ break;+ case PXA2XX_UDC_CMD_DISCONNECT:+ pr_info("magician_udc_command: disconnect\n");+ gpio_set_value(GPIO27_MAGICIAN_USBC_PUEN, 0);+ break;+ }+}++static struct pxa2xx_udc_mach_info magician_udc_mach_info __initdata = {+ .udc_command = magician_udc_command,+};++/* * Platform devices */ @@ -752,6 +777,12 @@ static void __init magician_init(void) pxa_set_mci_info(&magician_mci_info); pxa_set_ohci_info(&magician_ohci_info); + err = gpio_request(GPIO27_MAGICIAN_USBC_PUEN, "USBC_PUEN");+ if (!err) {+ gpio_direction_output(GPIO27_MAGICIAN_USBC_PUEN, 0);+ pxa_set_udc_info(&magician_udc_mach_info);+ }+ /* Check LCD type we have */ cpld = ioremap_nocache(PXA_CS3_PHYS, 0x1000); if (cpld) {diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.cindex 4d7afae..5c688b3 100644--- a/arch/arm/mach-pxa/pxa27x.c+++ b/arch/arm/mach-pxa/pxa27x.c@@ -357,7 +357,7 @@ void __init pxa_set_i2c_power_info(struct i2c_pxa_platform_data *info) } static struct platform_device *devices[] __initdata = {-/* &pxa_device_udc, The UDC driver is PXA25x only */+ &pxa_device_udc, &pxa_device_ffuart, &pxa_device_btuart, &pxa_device_stuart,-- 1.5.5.3