aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaulik Mankad <x0082077@ti.com>2010-02-17 17:09:32 -0500
committerTony Lindgren <tony@atomide.com>2010-02-23 13:57:39 -0500
commitbce066836644f12b239b86bbfdd475d7b24b9a49 (patch)
tree27484b45413022846731057d98e3b930d3278c59
parentbdfa35118c3149bfa7f6b259ca528f455af07c72 (diff)
omap: musb: Add USB support to 4430 SDP board file
This patch adds support for Mentor USB to 4430 SDP board file. It also defines the base address for HS USB OTG controller in OMAP4. Also updates platform specfic structure with base address and IRQ details. Signed-off-by: Maulik Mankad <x0082077@ti.com> Cc: Tony Lindgren <tony@atomide.com> Cc: Felipe Balbi <felipe.balbi@nokia.com> Cc: David Brownell <david-b@pacbell.net> Cc: Greg Kroah-Hartman <gregkh@suse.de> Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> Cc: Olof Johansson <olof@lixom.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c10
-rw-r--r--arch/arm/mach-omap2/usb-musb.c9
-rw-r--r--arch/arm/plat-omap/include/plat/omap44xx.h1
3 files changed, 18 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 793ce8f4e927..86b240e7aa7c 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -17,6 +17,7 @@
17#include <linux/platform_device.h> 17#include <linux/platform_device.h>
18#include <linux/io.h> 18#include <linux/io.h>
19#include <linux/gpio.h> 19#include <linux/gpio.h>
20#include <linux/usb/otg.h>
20 21
21#include <mach/hardware.h> 22#include <mach/hardware.h>
22#include <asm/mach-types.h> 23#include <asm/mach-types.h>
@@ -27,6 +28,7 @@
27#include <plat/common.h> 28#include <plat/common.h>
28#include <plat/control.h> 29#include <plat/control.h>
29#include <plat/timer-gp.h> 30#include <plat/timer-gp.h>
31#include <plat/usb.h>
30#include <asm/hardware/gic.h> 32#include <asm/hardware/gic.h>
31 33
32static struct platform_device sdp4430_lcd_device = { 34static struct platform_device sdp4430_lcd_device = {
@@ -73,11 +75,19 @@ static void __init omap_4430sdp_init_irq(void)
73 omap_gpio_init(); 75 omap_gpio_init();
74} 76}
75 77
78static struct omap_musb_board_data musb_board_data = {
79 .interface_type = MUSB_INTERFACE_UTMI,
80 .mode = MUSB_PERIPHERAL,
81 .power = 100,
82};
76 83
77static void __init omap_4430sdp_init(void) 84static void __init omap_4430sdp_init(void)
78{ 85{
79 platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices)); 86 platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices));
80 omap_serial_init(); 87 omap_serial_init();
88 /* OMAP4 SDP uses internal transceiver so register nop transceiver */
89 usb_nop_xceiv_register();
90 usb_musb_init(&musb_board_data);
81} 91}
82 92
83static void __init omap_4430sdp_map_io(void) 93static void __init omap_4430sdp_map_io(void)
diff --git a/arch/arm/mach-omap2/usb-musb.c b/arch/arm/mach-omap2/usb-musb.c
index 2221a6ccdeee..d5bea43e9422 100644
--- a/arch/arm/mach-omap2/usb-musb.c
+++ b/arch/arm/mach-omap2/usb-musb.c
@@ -88,10 +88,15 @@ static struct platform_device musb_device = {
88 88
89void __init usb_musb_init(struct omap_musb_board_data *board_data) 89void __init usb_musb_init(struct omap_musb_board_data *board_data)
90{ 90{
91 if (cpu_is_omap243x()) 91 if (cpu_is_omap243x()) {
92 musb_resources[0].start = OMAP243X_HS_BASE; 92 musb_resources[0].start = OMAP243X_HS_BASE;
93 else 93 } else if (cpu_is_omap34xx()) {
94 musb_resources[0].start = OMAP34XX_HSUSB_OTG_BASE; 94 musb_resources[0].start = OMAP34XX_HSUSB_OTG_BASE;
95 } else if (cpu_is_omap44xx()) {
96 musb_resources[0].start = OMAP44XX_HSUSB_OTG_BASE;
97 musb_resources[1].start = INT_44XX_HS_USB_MC;
98 musb_resources[2].start = INT_44XX_HS_USB_DMA;
99 }
95 musb_resources[0].end = musb_resources[0].start + SZ_4K - 1; 100 musb_resources[0].end = musb_resources[0].start + SZ_4K - 1;
96 101
97 /* 102 /*
diff --git a/arch/arm/plat-omap/include/plat/omap44xx.h b/arch/arm/plat-omap/include/plat/omap44xx.h
index 2068b39f76bb..8fc15d33089a 100644
--- a/arch/arm/plat-omap/include/plat/omap44xx.h
+++ b/arch/arm/plat-omap/include/plat/omap44xx.h
@@ -45,6 +45,7 @@
45#define OMAP44XX_MCPDM_L3_BASE 0x49032000 45#define OMAP44XX_MCPDM_L3_BASE 0x49032000
46 46
47#define OMAP44XX_MAILBOX_BASE (L4_44XX_BASE + 0xF4000) 47#define OMAP44XX_MAILBOX_BASE (L4_44XX_BASE + 0xF4000)
48#define OMAP44XX_HSUSB_OTG_BASE (L4_44XX_BASE + 0xAB000)
48 49
49#endif /* __ASM_ARCH_OMAP44XX_H */ 50#endif /* __ASM_ARCH_OMAP44XX_H */
50 51