Skip to contentSkip to conversation

omap4: 4430sdp: drop ehci support

PATCH New Anand Gadiyar 4 participants 8 messages Feb 16, 2011 – Feb 17, 2011

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/2 omap4: 4430sdp: drop ehci support

Most revisions of the OMAP4 Blaze/SDP platform do not have the EHCI signals routed by default. The pads are routed for the alternate HSI functionality instead, and explicit board modifications are needed to route the signals to the USB PHY on the board.

Also, turning on the PHY connected to the EHCI port causes a board reboot during bootup due to an unintended short on the rails - this affects many initial revisions of the board, and needs a minor board mod to fix (or as a workaround, one should not attempt to power on the USB PHY).

Given that these boards need explicit board mods to even get EHCI working (separate from the accidental short above), we should not attempt to enable EHCI by default.

So drop the EHCI support from the board files for the Blaze/SDP platforms.

Cc Keshava Munegowda <[email protected]>
Cc Tony Lindgren <[email protected]>

---

 arch/arm/mach-omap2/board-4430sdp.c |   20 --------------------
 1 file changed, 20 deletions(-)
arch/arm/mach-omap2/board-4430sdp.c +0 -19
Index: linux-omap-usb/arch/arm/mach-omap2/board-4430sdp.c
===================================================================
@@ -44,7 +44,6 @@
 #define ETH_KS8851_IRQ			34
 #define ETH_KS8851_POWER_ON		48
 #define ETH_KS8851_QUART		138
-#define OMAP4SDP_MDM_PWR_EN_GPIO	157
 #define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO	184
 #define OMAP4_SFH7741_ENABLE_GPIO		188
 
@@ -251,16 +250,6 @@ static void __init omap_4430sdp_init_irq
 	gic_init_irq();
 }
 
-static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
-	.port_mode[0]	= EHCI_HCD_OMAP_MODE_PHY,
-	.port_mode[1]	= EHCI_HCD_OMAP_MODE_UNKNOWN,
-	.port_mode[2]	= EHCI_HCD_OMAP_MODE_UNKNOWN,
-	.phy_reset	= false,
-	.reset_gpio_port[0]  = -EINVAL,
-	.reset_gpio_port[1]  = -EINVAL,
-	.reset_gpio_port[2]  = -EINVAL,
-};
-
 static struct omap_musb_board_data musb_board_data = {
 	.interface_type		= MUSB_INTERFACE_UTMI,
 	.mode			= MUSB_OTG,
@@ -576,14 +564,6 @@ static void __init omap_4430sdp_init(voi
 	omap_serial_init();
 	omap4_twl6030_hsmmc_init(mmc);
 
-	/* Power on the ULPI PHY */
-	status = gpio_request(OMAP4SDP_MDM_PWR_EN_GPIO, "USBB1 PHY VMDM_3V3");
-	if (status)
-		pr_err("%s: Could not get USBB1 PHY GPIO\n", __func__);
-	else
-		gpio_direction_output(OMAP4SDP_MDM_PWR_EN_GPIO, 1);
-
-	usb_ehci_init(&ehci_pdata);
 	usb_musb_init(&musb_board_data);
 
 	status = omap_ethernet_init();
#1 lore raw

PATCH 2/2 omap4: 4430sdp: mux GPIO_157 to safe mode

Commit 7d4ca85a5 (omap4: Fix ULPI PHY init for ES1.0 SDP) changed the mux mode of the pad for GPIO_157 to HSI_MODE by accident - the original intent was to mux it properly to solve a board reboot problem.

The board reboot is caused by a bug on many revs of the board that causes an accidental short circuilt when this pad is driven high. To ensure this never happens (even with misbehaving bootloaders), mux the pad to safe mode instead.

---
 arch/arm/mach-omap2/board-4430sdp.c |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
arch/arm/mach-omap2/board-4430sdp.c +9 -1
Index: linux-omap-usb/arch/arm/mach-omap2/board-4430sdp.c
===================================================================
@@ -543,7 +543,15 @@ static void __init omap_sfh7741prox_init
 
 #ifdef CONFIG_OMAP_MUX
 static struct omap_board_mux board_mux[] __initdata = {
-	OMAP4_MUX(USBB2_ULPITLL_CLK, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
+	/*
+	 * USBB2_ULPITLL_CLK/GPIO_157 controls the circuitry
+	 * that turns on the PHY connected to the EHCI port.
+	 * several revisions of the Blaze are affected by
+	 * an accidental short-circuit that causes a reboot
+	 * if this pad is driven high. So, explicitly configure
+	 * the pad in safe mode to ensure this never happens
+	 */
+	OMAP4_MUX(USBB2_ULPITLL_CLK, OMAP_MUX_MODE7),
 	{ .reg_offset = OMAP_MUX_TERMINATOR },
 };
 #else
#2 lore raw

PATCH 1/2 omap4: 4430sdp: drop ehci support

In reply to Anand Gadiyar
Quoted 17 lines · Anand Gadiyar

Most revisions of the OMAP4 Blaze/SDP platform do not have the EHCI signals routed by default. The pads are routed for the alternate HSI functionality instead, and explicit board modifications are needed to route the signals to the USB PHY on the board.

Also, turning on the PHY connected to the EHCI port causes a board reboot during bootup due to an unintended short on the rails - this affects many initial revisions of the board, and needs a minor board mod to fix (or as a workaround, one should not attempt to power on the USB PHY).

Given that these boards need explicit board mods to even get EHCI working (separate from the accidental short above), we should not attempt to enable EHCI by default.

Quoted 6 lines

So drop the EHCI support from the board files for the Blaze/SDP platforms.

Cc Keshava Munegowda <[email protected]>
Cc Tony Lindgren <[email protected]>

Tony, if you want to queue this one directly, here's my:

if you wish, I can send you a pull request as well. I already have another patch for you anyway.

Signature · 1 line
balbi
maintainer
#3 lore raw

PATCH 1/2 omap4: 4430sdp: drop ehci support

Quoted 25 lines · Felipe Balbi
Quoted 17 lines · Anand Gadiyar

Most revisions of the OMAP4 Blaze/SDP platform do not have the EHCI signals routed by default. The pads are routed for the alternate HSI functionality instead, and explicit board modifications are needed to route the signals to the USB PHY on the board.

Also, turning on the PHY connected to the EHCI port causes a board reboot during bootup due to an unintended short on the rails - this affects many initial revisions of the board, and needs a minor board mod to fix (or as a workaround, one should not attempt to power on the USB PHY).

Given that these boards need explicit board mods to even get EHCI working (separate from the accidental short above), we should not attempt to enable EHCI by default.

Quoted 6 lines

So drop the EHCI support from the board files for the Blaze/SDP platforms.

Cc Keshava Munegowda <[email protected]>
Cc Tony Lindgren <[email protected]>
Quoted 6 lines

Tony, if you want to queue this one directly, here's my:

if you wish, I can send you a pull request as well. I already have another patch for you anyway.

OK if you have more I'd rather pull.

Tony

#4 lore raw

PATCH 1/2 omap4: 4430sdp: drop ehci support

Quoted 26 lines · Tony Lindgren
Quoted 25 lines · Felipe Balbi
Quoted 23 lines · Anand Gadiyar

Most revisions of the OMAP4 Blaze/SDP platform do not have the EHCI signals routed by default. The pads are routed for the alternate HSI functionality instead, and explicit board modifications are needed to route the signals to the USB PHY on the board.

Also, turning on the PHY connected to the EHCI port causes a board reboot during bootup due to an unintended short on the rails - this affects many initial revisions of the board, and needs a minor board mod to fix (or as a workaround, one should not attempt to power on the USB PHY).

Given that these boards need explicit board mods to even get EHCI working (separate from the accidental short above), we should not attempt to enable EHCI by default.

So drop the EHCI support from the board files for the Blaze/SDP platforms.

Cc Keshava Munegowda <[email protected]>
Cc Tony Lindgren <[email protected]>
Quoted 8 lines
Quoted 6 lines

Tony, if you want to queue this one directly, here's my:

if you wish, I can send you a pull request as well. I already have another patch for you anyway.

OK if you have more I'd rather pull.

ok. Taken.

Signature · 1 line
balbi
Applied
#5 lore raw

PATCH 1/2 omap4: 4430sdp: drop ehci support

In reply to Anand Gadiyar
Quoted 17 lines · Anand Gadiyar

Most revisions of the OMAP4 Blaze/SDP platform do not have the EHCI signals routed by default. The pads are routed for the alternate HSI functionality instead, and explicit board modifications are needed to route the signals to the USB PHY on the board.

Also, turning on the PHY connected to the EHCI port causes a board reboot during bootup due to an unintended short on the rails - this affects many initial revisions of the board, and needs a minor board mod to fix (or as a workaround, one should not attempt to power on the USB PHY).

Given that these boards need explicit board mods to even get EHCI working (separate from the accidental short above), we should not attempt to enable EHCI by default.

Quoted 6 lines

So drop the EHCI support from the board files for the Blaze/SDP platforms.

Cc Keshava Munegowda <[email protected]>
Cc Tony Lindgren <[email protected]>

applied, thanks.

Signature · 1 line
balbi
#6 lore raw

PATCH 1/2 omap4: 4430sdp: drop ehci support

In reply to Anand Gadiyar
Quoted 6 lines · Anand Gadiyar

Most revisions of the OMAP4 Blaze/SDP platform do not have the EHCI signals routed by default. The pads are routed for the alternate HSI functionality instead, and explicit board modifications are needed to route the signals to the USB PHY on the board.

Quoted 6 lines

Also, turning on the PHY connected to the EHCI port causes a board reboot during bootup due to an unintended short on the rails - this affects many initial revisions of the board, and needs a minor board mod to fix (or as a workaround, one should not attempt to power on the USB PHY).

It's probably a good idea to put some comment in the code to that effect - people don't generally look at the history when adding new features. It's probably also a good idea to claim the GPIO for the PHY power control and ensure that it's set to 'off' mode - that code can then be a placeholder for the comment.

#7 lore raw

PATCH 1/2 omap4: 4430sdp: drop ehci support

Quoted 14 lines · Russell King - ARM Linux
Quoted 6 lines · Anand Gadiyar

Most revisions of the OMAP4 Blaze/SDP platform do not have the EHCI signals routed by default. The pads are routed for the alternate HSI functionality instead, and explicit board modifications are needed to route the signals to the USB PHY on the board.

Quoted 6 lines

Also, turning on the PHY connected to the EHCI port causes a board reboot during bootup due to an unintended short on the rails - this affects many initial revisions of the board, and needs a minor board mod to fix (or as a workaround, one should not attempt to power on the USB PHY).

Quoted 3 lines

It's probably a good idea to put some comment in the code to that effect - people don't generally look at the history when adding new features.

I did part of this in patch 2/2.
I've muxed the pad in "safe mode" which turns off the output drivers for the pad - so it can no longer drive a 1.

I've also placed a big warning above that line explaining why.

Quoted 3 lines

It's probably also a good idea to claim the GPIO for the PHY power control and ensure that it's set to 'off' mode - that code can then be a placeholder for the comment.

This is a good idea too. Tony, if you concur, I'll go respin this series.

- Anand