USB: chipidea: delay 2ms before read ID status at probe time
authorRichard Zhao <richard.zhao@freescale.com>
Wed, 12 Sep 2012 11:58:07 +0000 (14:58 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 12 Sep 2012 18:20:38 +0000 (11:20 -0700)
The ID pin needs 1ms debounce time, even at probe time. We delay 2ms
to be on the safe side.

Tested-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Tested-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/chipidea/core.c

index 1083585fad003ecee9e67ec0c70655f5482e085f..3c3ed77a55bb974853a22ef8e9545465379209dc 100644 (file)
@@ -462,6 +462,8 @@ static int __devinit ci_hdrc_probe(struct platform_device *pdev)
 
        if (ci->roles[CI_ROLE_HOST] && ci->roles[CI_ROLE_GADGET]) {
                ci->is_otg = true;
+               /* ID pin needs 1ms debouce time, we delay 2ms for safe */
+               mdelay(2);
                ci->role = ci_otg_role(ci);
        } else {
                ci->role = ci->roles[CI_ROLE_HOST]