Index: linux-2.6.33-rc6/arch/arm/mach-pxa/zeus.c =================================================================== --- linux-2.6.33-rc6.orig/arch/arm/mach-pxa/zeus.c 2010-02-10 11:37:47.456069467 +0530 +++ linux-2.6.33-rc6/arch/arm/mach-pxa/zeus.c 2010-02-10 11:40:30.443073251 +0530 @@ -482,7 +482,6 @@ { int err; - /* Switch on port 2. */ if ((err = gpio_request(ZEUS_USB2_PWREN_GPIO, "USB2_PWREN"))) { dev_err(dev, "Can't request USB2_PWREN\n"); return err; @@ -494,6 +493,9 @@ return err; } + /* Switch on port 2. */ + gpio_set_value(ZEUS_USB2_PWREN_GPIO, 1); + /* Port 2 is shared between host and client interface. */ UP2OCR = UP2OCR_HXOE | UP2OCR_HXS | UP2OCR_DMPDE | UP2OCR_DPPDE; @@ -503,13 +505,16 @@ static void zeus_ohci_exit(struct device *dev) { /* Power-off port 2 */ + gpio_set_value(ZEUS_USB2_PWREN_GPIO, 0); gpio_direction_output(ZEUS_USB2_PWREN_GPIO, 0); gpio_free(ZEUS_USB2_PWREN_GPIO); } static struct pxaohci_platform_data zeus_ohci_platform_data = { .port_mode = PMM_NPS_MODE, - .flags = ENABLE_PORT_ALL | POWER_CONTROL_LOW | POWER_SENSE_LOW, + /* Clear Power Control Polarity Low and set Power Sense + * Polarity Low. Supply power to USB ports. */ + .flags = ENABLE_PORT_ALL | ~(POWER_CONTROL_LOW) | POWER_SENSE_LOW, .init = zeus_ohci_init, .exit = zeus_ohci_exit, }; @@ -837,7 +842,7 @@ PCFR = PCFR_OPDE | PCFR_DC_EN | PCFR_FS | PCFR_FP; } -MACHINE_START(ARCOM_ZEUS, "Arcom ZEUS") +MACHINE_START(ARCOM_ZEUS, "Arcom/Eurotech ZEUS") /* Maintainer: Marc Zyngier */ .phys_io = 0x40000000, .io_pg_offst = ((io_p2v(0x40000000) >> 18) & 0xfffc),