USB: ehci-fsl: Fix 'have_sysif_regs' detection
authorPeter Tyser <ptyser@xes-inc.com>
Mon, 10 Jan 2011 23:34:14 +0000 (17:34 -0600)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sun, 23 Jan 2011 02:38:58 +0000 (18:38 -0800)
commitcc604ddd118cf4a699c12bc41a5fa2d2f225f702
tree6efdd3c28567a7cbdb030a08f1a27b95f88364ce
parentad84e4a9efb7c8ed322bafb6ebdb9c3a49a3d3a8
USB: ehci-fsl: Fix 'have_sysif_regs' detection

Previously a check was done on an ID register at the base of a CPU's
internal USB registers to determine if system interface regsiters were
present.  The check looked for an ID register that had the format
ID[0:5] == ~ID[8:13] as described in the MPC5121 User's Manual to
determine if a MPC5121 or MPC83xx/85xx was being used.

There are two issues with this method:
- The ID register is not defined on the MPC83xx/85xx CPUs, so its
  unclear what is being checked on them.
- Newer CPUs such as the P4080 also don't document the ID register, but
  do share the same format as the MPC5121.  Thus the previous code did
  not set 'have_sysif_regs' properly which results in the P4080 not
  properly initializing its USB ports.

Using the device tree 'compatible' node is a cleaner way to determine if
'have_sysif_regs' should be set and resolves the USB initialization issue
seen on the P4080.

Tested on a P4080-based system and compile tested on mpc512x_defconfig
with Freescale EHCI driver enabled.

Cc: Anatolij Gustschin <agust@denx.de>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Cc: Kumar Gala <galak@kernel.crashing.org>
Cc: linuxppc-dev@lists.ozlabs.org
Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/ehci-fsl.c
drivers/usb/host/ehci-fsl.h
drivers/usb/host/fsl-mph-dr-of.c