aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnaud Patard <arnaud.patard@rtp-net.org>2007-02-12 18:18:33 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2007-02-14 10:04:13 -0500
commit0dcfc328ccd1d475f10a33c0ccf10bda869d4a83 (patch)
tree22bff25e953a60e4b049eceb8f353b39cef2c27b
parentb05f87172f904b28bd5ac058ebfb4e216b843efe (diff)
[ARM] 4173/1: S3C24XX usb device platform datas
This patch is adding the functions and structures used for handling the S3C24XX udc driver platform datas. Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org> Acked-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--arch/arm/plat-s3c24xx/devs.c15
-rw-r--r--include/asm-arm/arch-s3c2410/udc.h34
2 files changed, 49 insertions, 0 deletions
diff --git a/arch/arm/plat-s3c24xx/devs.c b/arch/arm/plat-s3c24xx/devs.c
index 6d46c4e2a4f7..0fe53b39cb2f 100644
--- a/arch/arm/plat-s3c24xx/devs.c
+++ b/arch/arm/plat-s3c24xx/devs.c
@@ -29,6 +29,7 @@
29#include <asm/irq.h> 29#include <asm/irq.h>
30 30
31#include <asm/arch/regs-serial.h> 31#include <asm/arch/regs-serial.h>
32#include <asm/arch/udc.h>
32 33
33#include <asm/plat-s3c24xx/devs.h> 34#include <asm/plat-s3c24xx/devs.h>
34#include <asm/plat-s3c24xx/cpu.h> 35#include <asm/plat-s3c24xx/cpu.h>
@@ -230,6 +231,20 @@ struct platform_device s3c_device_usbgadget = {
230 231
231EXPORT_SYMBOL(s3c_device_usbgadget); 232EXPORT_SYMBOL(s3c_device_usbgadget);
232 233
234void __init s3c24xx_udc_set_platdata(struct s3c2410_udc_mach_info *pd)
235{
236 struct s3c2410_udc_mach_info *npd;
237
238 npd = kmalloc(sizeof(*npd), GFP_KERNEL);
239 if (npd) {
240 memcpy(npd, pd, sizeof(*npd));
241 s3c_device_usbgadget.dev.platform_data = npd;
242 } else {
243 printk(KERN_ERR "no memory for udc platform data\n");
244 }
245}
246
247
233/* Watchdog */ 248/* Watchdog */
234 249
235static struct resource s3c_wdt_resource[] = { 250static struct resource s3c_wdt_resource[] = {
diff --git a/include/asm-arm/arch-s3c2410/udc.h b/include/asm-arm/arch-s3c2410/udc.h
new file mode 100644
index 000000000000..2529effb8078
--- /dev/null
+++ b/include/asm-arm/arch-s3c2410/udc.h
@@ -0,0 +1,34 @@
1/* linux/include/asm/arch-s3c2410/udc.h
2 *
3 * Copyright (c) 2005 Arnaud Patard <arnaud.patard@rtp-net.org>
4 *
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 *
10 *
11 * Changelog:
12 * 14-Mar-2005 RTP Created file
13 * 02-Aug-2005 RTP File rename
14 * 07-Sep-2005 BJD Minor cleanups, changed cmd to enum
15*/
16
17#ifndef __ASM_ARM_ARCH_UDC_H
18#define __ASM_ARM_ARCH_UDC_H
19
20enum s3c2410_udc_cmd_e {
21 S3C2410_UDC_P_ENABLE = 1, /* Pull-up enable */
22 S3C2410_UDC_P_DISABLE = 2, /* Pull-up disable */
23 S3C2410_UDC_P_RESET = 3, /* UDC reset, in case of */
24};
25
26struct s3c2410_udc_mach_info {
27 void (*udc_command)(enum s3c2410_udc_cmd_e);
28 unsigned int vbus_pin;
29 unsigned char vbus_pin_inverted;
30};
31
32extern void __init s3c24xx_udc_set_platdata(struct s3c2410_udc_mach_info *);
33
34#endif /* __ASM_ARM_ARCH_UDC_H */