[U-Boot] [PATCH v5 1/4] usb: hub: make minimum power-on delay configurable

Marek Vasut marex at denx.de
Fri May 10 13:41:59 CEST 2013


Dear Kuo-Jung Su,

> From: Kuo-Jung Su <dantesu at faraday-tech.com>
> 
> 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.
> 
> NOTE:
> The minimal delay is still 100 msec, a small value defined
> in CONFIG_USB_HUB_MIN_POWER_ON_DELAY would be automatically
> justified in common/usb_hub.c.
> 
> Signed-off-by: Kuo-Jung Su <dantesu at faraday-tech.com>
> CC: Marek Vasut <marex at denx.de>
> ---
> 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, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/README b/README
> index 0d37d56..c70a59b 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.(minimum 100msec)
> +
>  - 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..0db3530 100644
> --- a/common/usb_hub.c
> +++ b/common/usb_hub.c
> @@ -61,6 +61,12 @@
>  #define USB_HUB_DEBUG	0
>  #endif
> 
> +#if CONFIG_USB_HUB_MIN_POWER_ON_DELAY > 100
> +# define USB_HUB_MIN_POWER_ON_DELAY	CONFIG_USB_HUB_MIN_POWER_ON_DELAY
> +#else
> +# define USB_HUB_MIN_POWER_ON_DELAY	100
> +#endif

Even better (and easier) solution here would be:

ifndef CONFIG_USB_HUB_MIN_POWER_ON_DELAY
#define CONFIG_USB_HUB_MIN_POWER_ON_DELAY 100
#endif

no ? ;-)

>  #define USB_PRINTF(fmt, args...)	debug_cond(USB_DEBUG, fmt, ##args)
>  #define USB_HUB_PRINTF(fmt, args...)	debug_cond(USB_HUB_DEBUG, fmt,
> ##args)
> 
> @@ -121,7 +127,7 @@ static void usb_hub_power_on(struct usb_hub_device
> *hub) }
> 
>  	/* Wait at least 100 msec for power to become stable */
> -	mdelay(max(pgood_delay, (unsigned)100));
> +	mdelay(max(pgood_delay, USB_HUB_MIN_POWER_ON_DELAY));
>  }
> 
>  void usb_hub_reset(void)
> --
> 1.7.9.5

Best regards,
Marek Vasut


More information about the U-Boot mailing list