usb: ehci-mx6: Fix bus enumeration for DM case
authorMarek Vasut <marex@denx.de>
Mon, 24 Jun 2019 17:05:47 +0000 (19:05 +0200)
committerMarek Vasut <marex@denx.de>
Fri, 5 Jul 2019 12:19:40 +0000 (14:19 +0200)
commit501547cec1f7f0438cae388a104ff60f18576c01
treeed7f312ee4ef8c65c71ef67db3fc0ee1594278c0
parent1f83431f0053f6fb20c511c391ffc687433848cf
usb: ehci-mx6: Fix bus enumeration for DM case

The EHCI iMX6 driver is only partly converted to DT probing and
still uses a tremendous amount of hard-coded addresses. Worse,
the driver uses hard-coded SoC-model-specific base addresses, which
are derived from values protected by SoC-specific macros, hence the
driver is also compiled for a specific SoC model. Even worse, the
driver depends on specific sequential indexing of the controllers,
from which it derives offsets in the PHY and ANATOP register sets.

However, when the driver is probed from DT, the indexing is not
correct. In fact, each controller has index 0. This patch derives
the index for DT probing case from the controller base addresses,
which is not the way this should be done, however it is the least
intrusive approach, favorable this close to release.

The necessary steps to convert this driver fully to DT probing are
described inside the patch, however this should be done in the next
release and depends on iMX clock driver patches.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Abel Vesa <abel.vesa@nxp.com>
Cc: Adam Ford <aford173@gmail.com>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Ludwig Zenz <lzenz@dh-electronics.com>
Cc: Lukasz Majewski <lukma@denx.de>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Vagrant Cascadian <vagrant@debian.org>
drivers/usb/host/ehci-mx6.c