Chipidea: Set connect-at-fullspeed bit when entering host mode if CI_HDRC_FORCE_FULLS...
authorDaniel Tang <dt.tangr@gmail.com>
Wed, 11 Feb 2015 04:44:58 +0000 (12:44 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Mar 2015 15:19:11 +0000 (16:19 +0100)
PORTSC_PFSC is not set on entering host mode which means the USB OTG
controller will attempt to enumerate USB devices at high speed even when the
CI_HDRC_FORCE_FULLSPEED flag is set in the platform data.

This patch ensures it is set right before host mode operations begin if needed.

Signed-off-by: Daniel Tang <dt.tangr@gmail.com>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/chipidea/host.c

index 48731d0bab357a75232fdbd7b4063fe29af3ad4e..12edbd0c998aa2c0aa424835f528ba27771984fe 100644 (file)
@@ -133,6 +133,9 @@ static int host_start(struct ci_hdrc *ci)
        if (ci->platdata->flags & CI_HDRC_DISABLE_STREAMING)
                hw_write(ci, OP_USBMODE, USBMODE_CI_SDIS, USBMODE_CI_SDIS);
 
+       if (ci->platdata->flags & CI_HDRC_FORCE_FULLSPEED)
+               hw_write(ci, OP_PORTSC, PORTSC_PFSC, PORTSC_PFSC);
+
        return ret;
 
 put_hcd: