static void magician_udc_command(int cmd) { printk ("magician_udc_command(%d)\n", cmd); switch(cmd) { case PXA2XX_UDC_CMD_CONNECT: UP2OCR = UP2OCR_HXOE | UP2OCR_DMPUE | UP2OCR_DMPUBE; SET_MAGICIAN_GPIO(USB_PUEN, 1); break; case PXA2XX_UDC_CMD_DISCONNECT: UP2OCR = UP2OCR_HXOE | UP2OCR_DMPUE | UP2OCR_DMPUBE; SET_MAGICIAN_GPIO(USB_PUEN, 0); break; } } static struct pxa2xx_udc_mach_info magician_udc_mach_info __initdata = { /* .udc_is_connected = is not used by pxa27x_udc.c at all */ .udc_command = magician_udc_command, };