/* arch/arm/mach-s3c2410/include/mach/udc.h * * Copyright (c) 2005 Arnaud Patard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * * Changelog: * 14-Mar-2005 RTP Created file * 02-Aug-2005 RTP File rename * 07-Sep-2005 BJD Minor cleanups, changed cmd to enum * 18-Jan-2007 HMW Add per-platform vbus_draw function */ #ifndef __ASM_ARM_ARCH_UDC_H #define __ASM_ARM_ARCH_UDC_H enum s3c2410_udc_cmd_e { S3C2410_UDC_P_ENABLE = 1, /* Pull-up enable */ S3C2410_UDC_P_DISABLE = 2, /* Pull-up disable */ S3C2410_UDC_P_RESET = 3, /* UDC reset, in case of */ }; struct s3c2410_udc_mach_info { void (*udc_command)(enum s3c2410_udc_cmd_e); void (*vbus_draw)(unsigned int ma); unsigned int pullup_pin; unsigned int pullup_pin_inverted; unsigned int vbus_pin; unsigned char vbus_pin_inverted; }; extern void __init s3c24xx_udc_set_platdata(struct s3c2410_udc_mach_info *); /** * s3c24xx_hsudc_platdata - Platform data for USB High-Speed gadget controller. * @epnum: Number of endpoints to be instantiated by the controller driver. * @gpio_init: Platform specific USB related GPIO initialization. * @gpio_uninit: Platform specific USB releted GPIO uninitialzation. * * Representation of platform data for the S3C24XX USB 2.0 High Speed gadget * controllers. */ struct s3c24xx_hsudc_platdata { unsigned int epnum; void (*gpio_init)(void); void (*gpio_uninit)(void); }; extern void __init s3c24xx_hsudc_set_platdata(struct s3c24xx_hsudc_platdata *pd); #endif /* __ASM_ARM_ARCH_UDC_H */