public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] usb: hub: allow pgood_delay to be specified via env
@ 2015-04-06 14:05 Tim Harvey
  2015-04-06 14:58 ` Marek Vasut
  0 siblings, 1 reply; 10+ messages in thread
From: Tim Harvey @ 2015-04-06 14:05 UTC (permalink / raw)
  To: u-boot

Some USB devices break the spec and require longer warm-up times. Allow
the usb_pgood_delay env variable to override the calculated time.

I have encountered this specficically with several different sized/branded USB
sticks with VID:PID 058f:6387 (Alcor Micro Corp. Transcend JetFlash) where I
need to set usb_pgood_delay to 2000ms to make them detectable.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
---
 common/usb_hub.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/common/usb_hub.c b/common/usb_hub.c
index 66b4a72..a0ef058 100644
--- a/common/usb_hub.c
+++ b/common/usb_hub.c
@@ -86,6 +86,7 @@ static void usb_hub_power_on(struct usb_hub_device *hub)
 	int i;
 	struct usb_device *dev;
 	unsigned pgood_delay = hub->desc.bPwrOn2PwrGood * 2;
+	const char *env;
 
 	dev = hub->pusb_dev;
 
@@ -98,7 +99,13 @@ static void usb_hub_power_on(struct usb_hub_device *hub)
 	/*
 	 * Wait for power to become stable,
 	 * plus spec-defined max time for device to connect
+	 * but allow this time to be increased via env variable as some
+	 * devices break the spec and require longer warm-up times
 	 */
+	env = getenv("usb_pgood_delay");
+	if (env)
+		pgood_delay = max(pgood_delay, simple_strtol(env, NULL, 0));
+	debug("pgood_delay=%dms\n", pgood_delay);
 	mdelay(pgood_delay + 1000);
 }
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-04-11 17:08 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-06 14:05 [U-Boot] [PATCH] usb: hub: allow pgood_delay to be specified via env Tim Harvey
2015-04-06 14:58 ` Marek Vasut
2015-04-07 14:52   ` Tim Harvey
2015-04-07 15:34     ` Stephen Warren
2015-04-07 16:04       ` Tim Harvey
2015-04-07 18:55         ` Marek Vasut
2015-04-08 16:50           ` Tim Harvey
2015-04-08 19:21             ` [U-Boot] [PATCH v2] " Tim Harvey
2015-04-11 16:59               ` Marek Vasut
2015-04-11 17:08               ` Marek Vasut

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox