diff options
author | Arnaud Patard <arnaud.patard@rtp-net.org> | 2007-02-12 18:18:33 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2007-02-14 10:04:13 -0500 |
commit | 0dcfc328ccd1d475f10a33c0ccf10bda869d4a83 (patch) | |
tree | 22bff25e953a60e4b049eceb8f353b39cef2c27b | |
parent | b05f87172f904b28bd5ac058ebfb4e216b843efe (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.c | 15 | ||||
-rw-r--r-- | include/asm-arm/arch-s3c2410/udc.h | 34 |
2 files changed, 49 insertions, 0 deletions
diff --git a/arch/arm/plat-s3c24xx/devs.c b/arch/arm/plat-s3c24xx/devs.c index 6d46c4e2a4f..0fe53b39cb2 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 | ||
231 | EXPORT_SYMBOL(s3c_device_usbgadget); | 232 | EXPORT_SYMBOL(s3c_device_usbgadget); |
232 | 233 | ||
234 | void __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 | ||
235 | static struct resource s3c_wdt_resource[] = { | 250 | static 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 00000000000..2529effb807 --- /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 | |||
20 | enum 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 | |||
26 | struct 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 | |||
32 | extern void __init s3c24xx_udc_set_platdata(struct s3c2410_udc_mach_info *); | ||
33 | |||
34 | #endif /* __ASM_ARM_ARCH_UDC_H */ | ||