[PATCH v1] T1024RDB: USB: Add a 10808 us delay in usb_scan_port
Bin Meng
bmeng.cn at gmail.com
Mon Dec 16 04:17:28 CET 2019
+Marek,
On Mon, Dec 16, 2019 at 11:13 AM Yinbo Zhu <yinbo.zhu at nxp.com> wrote:
>
> T1024RDB usb controller doesn't detect usb device at first usb start
> Add a delay that is greater than 10808 us can fix that issue, which
> delay if is less than 10808 us, issue is probabilistic occurrence
>
> => usb start
> starting USB...
> USB0: USB EHCI 1.00
> USB1: USB EHCI 1.00
> scanning bus 0 for devices... 1 USB Device(s) found
> scanning bus 1 for devices... 1 USB Device(s) found
> scanning usb for storage devices... 0 Storage Device(s) found
> => usb stop
> stopping USB..
> => usb start
> starting USB...
> USB0: USB EHCI 1.00
> USB1: USB EHCI 1.00
> scanning bus 0 for devices... 2 USB Device(s) found
> scanning bus 1 for devices... 1 USB Device(s) found
> scanning usb for storage devices... 1 Storage Device(s) found
> =>
>
> Signed-off-by: Yinbo Zhu <yinbo.zhu at nxp.com>
> ---
> common/usb_hub.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/common/usb_hub.c b/common/usb_hub.c
> index 33aaeb8e44..6dd06696b2 100644
> --- a/common/usb_hub.c
> +++ b/common/usb_hub.c
> @@ -486,6 +486,9 @@ static int usb_scan_port(struct usb_device_scan *usb_scan)
> return 0;
> }
>
> +#ifdef CONFIG_TARGET_T1024RDB
> + udelay(10808);
> +#endif
This looks like a workaround. Is this a silicon errata?
> if (portchange & USB_PORT_STAT_C_RESET) {
> debug("port %d reset change\n", i + 1);
> usb_clear_port_feature(dev, i + 1, USB_PORT_FEAT_C_RESET);
> --
Regards,
Bin
More information about the U-Boot
mailing list