[PATCH] mach-gta01: set udc_command at start from revision

Ben Dooks ben-linux at fluff.org
Sat Feb 17 01:59:28 CET 2007


The udc_command field is checked by the udc
driver for being non-null, so we can use the
revision passed in to set the ucd_command field
at initialisation time

Also changed gta01_udc_pullup to gta01_udc_command

Signed-off-by: Ben Dooks <ben-linux at fluff.org>

--- linux-2.6.20-dev6/arch/arm/mach-s3c2410/mach-gta01.c	2007-02-17 00:51:00.000000000 +0000
+++ linux-2.6.20-dev7/arch/arm/mach-s3c2410/mach-gta01.c	2007-02-17 00:56:44.000000000 +0000
@@ -242,26 +242,22 @@ static struct s3c24xx_mci_pdata gta01_mm
 			  MMC_VDD_30_31|MMC_VDD_31_32|MMC_VDD_32_33,
 };
 
-static void gta01_udc_pullup(enum s3c2410_udc_cmd_e cmd)
+static void gta01_udc_command(enum s3c2410_udc_cmd_e cmd)
 {
-	printk(KERN_DEBUG "udc: pullup(%d)\n", cmd);
+	printk(KERN_DEBUG "%s(%d)\n", __func__, cmd);
 
-	if (system_rev == GTA01v4_SYSTEM_REV ||
-	    system_rev == GTA01Bv2_SYSTEM_REV ||
-	    system_rev == GTA01Bv3_SYSTEM_REV) {
-		switch (cmd) {
-		case S3C2410_UDC_P_ENABLE:
-			s3c2410_gpio_setpin(GTA01_GPIO_USB_PULLUP, 1);
-			break;
-		case S3C2410_UDC_P_DISABLE:
-			s3c2410_gpio_setpin(GTA01_GPIO_USB_PULLUP, 0);
-			break;
-		case S3C2410_UDC_P_RESET:
-			/* FIXME! */
-			break;
-		default:
-			break;
-		}
+	switch (cmd) {
+	case S3C2410_UDC_P_ENABLE:
+		s3c2410_gpio_setpin(GTA01_GPIO_USB_PULLUP, 1);
+		break;
+	case S3C2410_UDC_P_DISABLE:
+		s3c2410_gpio_setpin(GTA01_GPIO_USB_PULLUP, 0);
+		break;
+	case S3C2410_UDC_P_RESET:
+		/* FIXME! */
+		break;
+	default:
+		break;
 	}
 }
 
@@ -294,7 +290,6 @@ static void gta01_udc_vbus_draw(unsigned
 }
 
 static struct s3c2410_udc_mach_info gta01_udc_cfg = {
-	.udc_command	= gta01_udc_pullup,
 	.vbus_draw	= gta01_udc_vbus_draw,
 };
 
@@ -427,6 +422,11 @@ static void __init gta01_map_io(void)
 
 static void __init gta01_machine_init(void)
 {
+	if (system_rev == GTA01v4_SYSTEM_REV ||
+	    system_rev == GTA01Bv2_SYSTEM_REV ||
+	    system_rev == GTA01Bv3_SYSTEM_REV)
+		gta01_udc_cfg.udc_command = gta01_udc_command;
+
 	s3c_device_usb.dev.platform_data = &gta01_usb_info;
 	s3c_device_nand.dev.platform_data = &gta01_nand_info;
 	s3c_device_sdi.dev.platform_data = &gta01_mmc_cfg;




More information about the openmoko-kernel mailing list