aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/board-4430sdp.c
diff options
context:
space:
mode:
authorKeshava Munegowda <keshava_mgowda@ti.com>2010-11-21 12:53:42 -0500
committerAnand Gadiyar <gadiyar@ti.com>2010-11-30 16:13:05 -0500
commit6aa85a5ae610106d89e50c7e1f760c56d12f9bc4 (patch)
tree4d3c919ccf38d16cc936afb6bfcd27abcf14eba9 /arch/arm/mach-omap2/board-4430sdp.c
parent56976b6ac4047ec456e2ba7e516ed2e9d96c3acf (diff)
omap4: 4430sdp: enable the ehci port on 4430SDP
The OMAP4 SDP has an SMSC3320 PHY hooked up to EHCI on Port1. The PHY power is controlled by GPIO 157. Turn on the PHY power, and register the controller at init. Signed-off-by: Keshava Munegowda <keshava_mgowda@ti.com> Signed-off-by: Anand Gadiyar <gadiyar@ti.com> Acked-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2/board-4430sdp.c')
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index df5a425a49d1..d7cb9680b4fa 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -42,6 +42,7 @@
42#define ETH_KS8851_IRQ 34 42#define ETH_KS8851_IRQ 34
43#define ETH_KS8851_POWER_ON 48 43#define ETH_KS8851_POWER_ON 48
44#define ETH_KS8851_QUART 138 44#define ETH_KS8851_QUART 138
45#define OMAP4SDP_MDM_PWR_EN_GPIO 157
45#define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO 184 46#define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO 184
46#define OMAP4_SFH7741_ENABLE_GPIO 188 47#define OMAP4_SFH7741_ENABLE_GPIO 188
47 48
@@ -225,6 +226,16 @@ static void __init omap_4430sdp_init_irq(void)
225 omap_gpio_init(); 226 omap_gpio_init();
226} 227}
227 228
229static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
230 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
231 .port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN,
232 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
233 .phy_reset = false,
234 .reset_gpio_port[0] = -EINVAL,
235 .reset_gpio_port[1] = -EINVAL,
236 .reset_gpio_port[2] = -EINVAL,
237};
238
228static struct omap_musb_board_data musb_board_data = { 239static struct omap_musb_board_data musb_board_data = {
229 .interface_type = MUSB_INTERFACE_UTMI, 240 .interface_type = MUSB_INTERFACE_UTMI,
230 .mode = MUSB_PERIPHERAL, 241 .mode = MUSB_PERIPHERAL,
@@ -514,6 +525,15 @@ static void __init omap_4430sdp_init(void)
514 platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices)); 525 platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices));
515 omap_serial_init(); 526 omap_serial_init();
516 omap4_twl6030_hsmmc_init(mmc); 527 omap4_twl6030_hsmmc_init(mmc);
528
529 /* Power on the ULPI PHY */
530 if (gpio_is_valid(OMAP4SDP_MDM_PWR_EN_GPIO)) {
531 /* FIXME: Assumes pad is already muxed for GPIO mode */
532 gpio_request(OMAP4SDP_MDM_PWR_EN_GPIO, "USBB1 PHY VMDM_3V3");
533 gpio_direction_output(OMAP4SDP_MDM_PWR_EN_GPIO, 1);
534 }
535 usb_ehci_init(&ehci_pdata);
536
517 /* OMAP4 SDP uses internal transceiver so register nop transceiver */ 537 /* OMAP4 SDP uses internal transceiver so register nop transceiver */
518 usb_nop_xceiv_register(); 538 usb_nop_xceiv_register();
519 /* FIXME: allow multi-omap to boot until musb is updated for omap4 */ 539 /* FIXME: allow multi-omap to boot until musb is updated for omap4 */