From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kuo-Jung Su Date: Mon, 13 May 2013 10:07:23 +0800 Subject: [U-Boot] [PATCH v6 1/4] usb: hub: make minimum power-on delay configurable In-Reply-To: <1368410846-18038-1-git-send-email-dantesu@gmail.com> References: <1368410846-18038-1-git-send-email-dantesu@gmail.com> Message-ID: <1368410846-18038-2-git-send-email-dantesu@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de From: Kuo-Jung Su This patch makes the minimum power-on delay for USB HUB become configurable. The original design waits at least 100 msec here, but some EHCI controlers(e.g. Faraday EHCI) are known to require much longer delay interval. Signed-off-by: Kuo-Jung Su CC: Marek Vasut --- Changes for v6: - Simplify CONFIG_USB_HUB_MIN_POWER_ON_DELAY default value setup. Changes for v5: - Split up from Faraday EHCI patch - Replace the Faraday EHCI ifdef for the long delay in usb_hub_configure() with the new configuration option: USB_HUB_MIN_POWER_ON_DELAY, which is used in usb_hub_power_on() to control the minimum usb hub power-on delay. Changes for v2 - v4: - See 'usb: ehci: add Faraday USB 2.0 EHCI support' README | 3 +++ common/usb_hub.c | 8 ++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/README b/README index 0d37d56..455163b 100644 --- a/README +++ b/README @@ -1244,6 +1244,9 @@ The following options need to be configured: CONFIG_USB_EHCI_TXFIFO_THRESH enables setting of the txfilltuning field in the EHCI controller on reset. + CONFIG_USB_HUB_MIN_POWER_ON_DELAY defines the minimum + interval for usb hub power-on delay.(100msec by default) + - USB Device: Define the below if you wish to use the USB console. Once firmware is rebuilt from a serial console issue the diff --git a/common/usb_hub.c b/common/usb_hub.c index b5eeb62..f240d8c 100644 --- a/common/usb_hub.c +++ b/common/usb_hub.c @@ -61,6 +61,10 @@ #define USB_HUB_DEBUG 0 #endif +#ifndef CONFIG_USB_HUB_MIN_POWER_ON_DELAY +#define CONFIG_USB_HUB_MIN_POWER_ON_DELAY 100 +#endif + #define USB_PRINTF(fmt, args...) debug_cond(USB_DEBUG, fmt, ##args) #define USB_HUB_PRINTF(fmt, args...) debug_cond(USB_HUB_DEBUG, fmt, ##args) @@ -120,8 +124,8 @@ static void usb_hub_power_on(struct usb_hub_device *hub) USB_HUB_PRINTF("port %d returns %lX\n", i + 1, dev->status); } - /* Wait at least 100 msec for power to become stable */ - mdelay(max(pgood_delay, (unsigned)100)); + /* Wait for power to become stable */ + mdelay(max(pgood_delay, CONFIG_USB_HUB_MIN_POWER_ON_DELAY)); } void usb_hub_reset(void) -- 1.7.9.5