diff options
Diffstat (limited to 'drivers/usb/musb/omap2430.c')
-rw-r--r-- | drivers/usb/musb/omap2430.c | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c index 82592633502f..e06d65e36bf7 100644 --- a/drivers/usb/musb/omap2430.c +++ b/drivers/usb/musb/omap2430.c | |||
@@ -32,17 +32,11 @@ | |||
32 | #include <linux/clk.h> | 32 | #include <linux/clk.h> |
33 | #include <linux/io.h> | 33 | #include <linux/io.h> |
34 | 34 | ||
35 | #include <asm/mach-types.h> | ||
36 | #include <mach/hardware.h> | ||
37 | #include <plat/mux.h> | 35 | #include <plat/mux.h> |
38 | 36 | ||
39 | #include "musb_core.h" | 37 | #include "musb_core.h" |
40 | #include "omap2430.h" | 38 | #include "omap2430.h" |
41 | 39 | ||
42 | #ifdef CONFIG_ARCH_OMAP3430 | ||
43 | #define get_cpu_rev() 2 | ||
44 | #endif | ||
45 | |||
46 | 40 | ||
47 | static struct timer_list musb_idle_timer; | 41 | static struct timer_list musb_idle_timer; |
48 | 42 | ||
@@ -145,10 +139,6 @@ void musb_platform_enable(struct musb *musb) | |||
145 | void musb_platform_disable(struct musb *musb) | 139 | void musb_platform_disable(struct musb *musb) |
146 | { | 140 | { |
147 | } | 141 | } |
148 | static void omap_vbus_power(struct musb *musb, int is_on, int sleeping) | ||
149 | { | ||
150 | } | ||
151 | |||
152 | static void omap_set_vbus(struct musb *musb, int is_on) | 142 | static void omap_set_vbus(struct musb *musb, int is_on) |
153 | { | 143 | { |
154 | u8 devctl; | 144 | u8 devctl; |
@@ -199,9 +189,10 @@ int musb_platform_set_mode(struct musb *musb, u8 musb_mode) | |||
199 | return 0; | 189 | return 0; |
200 | } | 190 | } |
201 | 191 | ||
202 | int __init musb_platform_init(struct musb *musb) | 192 | int __init musb_platform_init(struct musb *musb, void *board_data) |
203 | { | 193 | { |
204 | u32 l; | 194 | u32 l; |
195 | struct omap_musb_board_data *data = board_data; | ||
205 | 196 | ||
206 | #if defined(CONFIG_ARCH_OMAP2430) | 197 | #if defined(CONFIG_ARCH_OMAP2430) |
207 | omap_cfg_reg(AE5_2430_USB0HS_STP); | 198 | omap_cfg_reg(AE5_2430_USB0HS_STP); |
@@ -235,7 +226,15 @@ int __init musb_platform_init(struct musb *musb) | |||
235 | musb_writel(musb->mregs, OTG_SYSCONFIG, l); | 226 | musb_writel(musb->mregs, OTG_SYSCONFIG, l); |
236 | 227 | ||
237 | l = musb_readl(musb->mregs, OTG_INTERFSEL); | 228 | l = musb_readl(musb->mregs, OTG_INTERFSEL); |
238 | l |= ULPI_12PIN; | 229 | |
230 | if (data->interface_type == MUSB_INTERFACE_UTMI) { | ||
231 | /* OMAP4 uses Internal PHY GS70 which uses UTMI interface */ | ||
232 | l &= ~ULPI_12PIN; /* Disable ULPI */ | ||
233 | l |= UTMI_8BIT; /* Enable UTMI */ | ||
234 | } else { | ||
235 | l |= ULPI_12PIN; | ||
236 | } | ||
237 | |||
239 | musb_writel(musb->mregs, OTG_INTERFSEL, l); | 238 | musb_writel(musb->mregs, OTG_INTERFSEL, l); |
240 | 239 | ||
241 | pr_debug("HS USB OTG: revision 0x%x, sysconfig 0x%02x, " | 240 | pr_debug("HS USB OTG: revision 0x%x, sysconfig 0x%02x, " |
@@ -246,8 +245,6 @@ int __init musb_platform_init(struct musb *musb) | |||
246 | musb_readl(musb->mregs, OTG_INTERFSEL), | 245 | musb_readl(musb->mregs, OTG_INTERFSEL), |
247 | musb_readl(musb->mregs, OTG_SIMENABLE)); | 246 | musb_readl(musb->mregs, OTG_SIMENABLE)); |
248 | 247 | ||
249 | omap_vbus_power(musb, musb->board_mode == MUSB_HOST, 1); | ||
250 | |||
251 | if (is_host_enabled(musb)) | 248 | if (is_host_enabled(musb)) |
252 | musb->board_set_vbus = omap_set_vbus; | 249 | musb->board_set_vbus = omap_set_vbus; |
253 | 250 | ||
@@ -272,7 +269,7 @@ void musb_platform_restore_context(struct musb *musb, | |||
272 | } | 269 | } |
273 | #endif | 270 | #endif |
274 | 271 | ||
275 | int musb_platform_suspend(struct musb *musb) | 272 | static int musb_platform_suspend(struct musb *musb) |
276 | { | 273 | { |
277 | u32 l; | 274 | u32 l; |
278 | 275 | ||
@@ -327,8 +324,6 @@ static int musb_platform_resume(struct musb *musb) | |||
327 | int musb_platform_exit(struct musb *musb) | 324 | int musb_platform_exit(struct musb *musb) |
328 | { | 325 | { |
329 | 326 | ||
330 | omap_vbus_power(musb, 0 /*off*/, 1); | ||
331 | |||
332 | musb_platform_suspend(musb); | 327 | musb_platform_suspend(musb); |
333 | 328 | ||
334 | return 0; | 329 | return 0; |