All pastes #1038944 Raw Edit

ph5

public text v1 · immutable
#1038944 ·published 2008-06-04 20:15 UTC
rendered paste body
From 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