[RFC][PATCH 5/5] ARM: S5P64x0: Adding OTG device for smdk6440
p.paneri at samsung.com
p.paneri at samsung.com
Tue Jun 21 03:03:47 EDT 2011
From: Praveen Paneri <p.paneri at samsung.com>
Selected DWC OTG for smdk6440 and added platform specific
data in machine file.
Signed-off-by: Praveen Paneri <p.paneri at samsung.com>
---
arch/arm/Kconfig | 1 +
arch/arm/mach-s5p64x0/mach-smdk6440.c | 24 ++++++++++++++++++++++++
2 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 9adc278..e98bb53 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -728,6 +728,7 @@ config ARCH_S5P64X0
select HAVE_SCHED_CLOCK
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C_RTC if RTC_CLASS
+ select S3C_DEV_DWC_OTG
help
Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
SMDK6450.
diff --git a/arch/arm/mach-s5p64x0/mach-smdk6440.c b/arch/arm/mach-s5p64x0/mach-smdk6440.c
index 2d559f1..515e252 100644
--- a/arch/arm/mach-s5p64x0/mach-smdk6440.c
+++ b/arch/arm/mach-s5p64x0/mach-smdk6440.c
@@ -46,6 +46,7 @@
#include <plat/adc.h>
#include <plat/ts.h>
#include <plat/s5p-time.h>
+#include <plat/otg.h>
#define SMDK6440_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \
S3C2410_UCON_RXILEVEL | \
@@ -130,6 +131,27 @@ static struct platform_device smdk6440_backlight_device = {
},
};
+/* USB OTG */
+#define S3C_DEV_RX_FIFO_SIZ (4096>>2)
+#define S3C_DEV_NPTX_FIFO_SIZ (4096>>2)
+#define S3C_HOST_RX_FIFO_SIZ 0x0000010D
+#define S3C_HOST_NPTX_FIFO_SIZ 0x0080010D
+#define S3C_HOST_CH_NUM 12
+
+static struct s5p_otg_platdata smdk6440_otg_pdata = {
+ .dev_rx_fifo_size = S3C_DEV_RX_FIFO_SIZ,
+ .dev_nptx_fifo_size = S3C_DEV_NPTX_FIFO_SIZ,
+ .host_rx_fifo_size = S3C_HOST_RX_FIFO_SIZ,
+ .host_nptx_fifo_size = S3C_HOST_NPTX_FIFO_SIZ,
+ .host_ch_num = S3C_HOST_CH_NUM,
+};
+
+static void __init smdk6440_otg_init(void)
+{
+ struct s5p_otg_platdata *pdata = &smdk6440_otg_pdata;
+
+ s5p_otg_set_platdata(pdata);
+}
static struct platform_device *smdk6440_devices[] __initdata = {
&s3c_device_adc,
&s3c_device_rtc,
@@ -141,6 +163,7 @@ static struct platform_device *smdk6440_devices[] __initdata = {
&s5p6440_device_iis,
&s3c_device_timer[1],
&smdk6440_backlight_device,
+ &s3c_device_usb_hsotg,
};
static struct s3c2410_platform_i2c s5p6440_i2c0_data __initdata = {
@@ -193,6 +216,7 @@ static void __init smdk6440_machine_init(void)
ARRAY_SIZE(smdk6440_i2c_devs0));
i2c_register_board_info(1, smdk6440_i2c_devs1,
ARRAY_SIZE(smdk6440_i2c_devs1));
+ smdk6440_otg_init();
platform_add_devices(smdk6440_devices, ARRAY_SIZE(smdk6440_devices));
}
--
1.7.0.4
More information about the linux-arm-kernel
mailing list