]> git.kernelconcepts.de Git - karo-tx-uboot.git/commit
musb-new: Fix reset sequence when in host mode
authorHans de Goede <hdegoede@redhat.com>
Sun, 11 Jan 2015 19:34:51 +0000 (20:34 +0100)
committerMarek Vasut <marex@denx.de>
Sun, 18 Jan 2015 11:31:36 +0000 (12:31 +0100)
commit90cdc1039d0bf6d85bb497dbb93d317ad234e846
tree753472c23d0d45336216db7e9a6c06634c71f732
parente8672e3f0ec571d0ca7ccd8cbbeb113802c1d443
musb-new: Fix reset sequence when in host mode

This commit fixes a number of issues with the reset sequence of musb-new
in host mode:

1) Our usb device probe relies on a second device reset being done after the
first descriptors read. Factor the musb reset code into a usb_reset_root_port
function (and add this as an empty define for other controllers), and call
this when a device has no parent.

2) Just like with normal usb controllers there needs to be a delay after
reset, for normal usb controllers, this is handled in hub_port_reset, add a
delay to usb_reset_root_port.

3) Sync the musb reset sequence with the upstream kernel, clear all bits of
power except bits 4-7, and increase the time reset is asserted to 50 ms.

With these fixes an usb keyboard I have now always enumerates properly, where
as earlier it would only enumerare properly once every 5 tries.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
common/usb.c
drivers/usb/musb-new/musb_uboot.c
include/usb.h