usb: ehci-mx6: Fix bus enumeration for iMX7 SoCs
authorIgor Opaniuk <igor.opaniuk@toradex.com>
Thu, 10 Oct 2019 13:09:35 +0000 (16:09 +0300)
committerMarek Vasut <marek.vasut+renesas@gmail.com>
Thu, 24 Oct 2019 13:31:13 +0000 (15:31 +0200)
commit1198a104d37b10064cd90f36d472787d549eda02
tree6497c9128aacf9f5a34ec05d9a36947bb34b2862
parent733ff952c3a54f59a74dbf446c250dace4cc44aa
usb: ehci-mx6: Fix bus enumeration for iMX7 SoCs

This fixes the issues with calculation of controller indexes in
ehci_usb_bind() for iMX7, as USB controllers on iMX7 SoCs aren't
placed next to each other, and their addresses incremented by 0x10000.

Example of USB nodes for iMX7S/D:

usbotg1: usb@30b10000 {
    compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
    reg = <0x30b10000 0x200>;
           ^^^^^^^^^^
....
usbotg2: usb@30b20000 {
    compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
    reg = <0x30b20000 0x200>;
           ^^^^^^^^^^
....

usbh: usb@30b30000 {
    compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
    reg = <0x30b30000 0x200>;
           ^^^^^^^^^^
....

Which was leading to usb enumeration issues:
Colibri iMX7 # usb start
starting USB...
Bus usb@30b10000: USB EHCI 1.00
Bus usb@30b20000: probe failed, error -22
scanning bus usb@30b10000 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

Fixes: 501547cec1("usb: ehci-mx6: Fix bus enumeration for DM case")
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
drivers/usb/host/ehci-mx6.c