linux_dsm_epyc7002/arch/powerpc/boot/dts
Vitaly Bordug 796bcae736 USB: powerpc: Workaround for the PPC440EPX USBH_23 errata [take 3]
A published errata for ppc440epx states, that when running Linux with
both EHCI and OHCI modules loaded, the EHCI module experiences a fatal
error when a high-speed device is connected to the USB2.0, and
functions normally if OHCI module is not loaded.

There used to be recommendation to use only hi-speed or full-speed
devices with specific conditions, when respective module was unloaded.
Later, it was observed that ohci suspend is enough to keep things
going, and it was turned into workaround, as explained below.

Quote from original descriprion:

The 440EPx USB 2.0 Host controller is an EHCI compliant controller.  In
USB 2.0 Host controllers, each EHCI controller has one or more companion
controllers, which may be OHCI or UHCI.  An USB 2.0 Host controller will
contain one or more ports.  For each port, only one of the controllers
is connected at any one time. In the 440EPx, there is only one OHCI
companion controller, and only one USB 2.0 Host port.
All ports on an USB 2.0 controller default to the companion
controller.  If you load only an ohci driver, it will have control of
the ports and any deviceplugged in will operate, although high speed
devices will be forced to operate at full speed.  When an ehci driver
is loaded, it explicitly takes control of the ports.  If there is a
device connected, and / or every time there is a new device connected,
the ehci driver determines if the device is high speed or not.  If it
is high speed, the driver retains control of the port.  If it is not,
the driver explicitly gives the companion controller control of the
port.

The is a software workaround that uses
Initial version of the software workaround was posted to
linux-usb-devel:

http://www.mail-archive.com/linux-usb-devel@lists.sourceforge.net/msg54019.html

and later available from amcc.com:
http://www.amcc.com/Embedded/Downloads/download.html?cat=1&family=15&ins=2

The patch below is generally based on the latter, but reworked to
powerpc/of_device USB drivers, and uses a few devicetree inquiries to
get rid of (some) hardcoded defines.

Signed-off-by: Vitaly Bordug <vitb@kernel.crashing.org>
Signed-off-by: Stefan Roese <sr@denx.de>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-01-07 09:59:52 -08:00
..
acadia.dts powerpc/40x: AMCC PowerPC 405EZ Acadia DTS 2008-10-17 10:31:18 -04:00
adder875-redboot.dts [POWERPC] 8xx: Add clock-frequency to adder875 and mpc885ads dts 2008-02-05 23:33:22 -06:00
adder875-uboot.dts [POWERPC] 8xx: Add clock-frequency to adder875 and mpc885ads dts 2008-02-05 23:33:22 -06:00
arches.dts powerpc/44x: Add AMCC Arches DTS 2008-10-02 13:08:14 -04:00
asp834x-redboot.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
bamboo.dts powerpc/4xx: Add support for ISA holes on 4xx PCI/X/E 2008-12-04 08:02:19 -05:00
c2k.dts powerpc: DTS file for the C2K 2008-06-09 13:41:16 +10:00
canyonlands.dts powerpc/4xx: Add L2 cache node to AMCC Canyonlands dts file 2008-12-11 10:03:02 -05:00
cm5200.dts [POWERPC] mpc5200: Switch mpc5200 dts files to dts-v1 format 2008-04-29 07:19:07 -06:00
ebony.dts [POWERPC] Convert remaining dts-v0 files to v1 2008-05-29 07:06:56 -05:00
ep88xc.dts [POWERPC] fsl: Convert dts to v1 syntax 2008-04-17 09:40:48 -05:00
ep405.dts [POWERPC] Convert remaining dts-v0 files to v1 2008-05-29 07:06:56 -05:00
ep8248e.dts [POWERPC] ep8248e: Reference SMC parameter RAM base in the device tree. 2008-04-17 01:01:37 -05:00
gef_sbc610.dts powerpc/86xx: Basic GPIO support for GE Fanuc SBC610 2008-12-03 10:47:37 -06:00
glacier.dts powerpc/44x: Add explicit support for AMCC Glacier 2008-08-28 09:10:35 -04:00
haleakala.dts ibm_newemac: Parameterize EMAC Multicast Match Handling 2008-07-09 16:30:46 +10:00
hcu4.dts powerpc/40x: Add support for Netstal HCU4 board 2008-10-17 13:28:05 -04:00
holly.dts powerpc: Fix PCI in Holly device tree 2008-09-30 13:25:05 +10:00
katmai.dts ibm_newemac: Parameterize EMAC Multicast Match Handling 2008-07-09 16:30:46 +10:00
kilauea.dts ibm_newemac: Parameterize EMAC Multicast Match Handling 2008-07-09 16:30:46 +10:00
ksi8560.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
kuroboxHD.dts powerpc: Remove device_type = "rtc" properties in .dts files 2008-11-05 22:08:28 +11:00
kuroboxHG.dts powerpc: Remove device_type = "rtc" properties in .dts files 2008-11-05 22:08:28 +11:00
lite5200.dts powerpc: Remove device_type = "rtc" properties in .dts files 2008-11-05 22:08:28 +11:00
lite5200b.dts powerpc: Remove device_type = "rtc" properties in .dts files 2008-11-05 22:08:28 +11:00
makalu.dts ibm_newemac: Parameterize EMAC Multicast Match Handling 2008-07-09 16:30:46 +10:00
mgcoge.dts powerpc: Add support for mpc8247 based board MGCOGE from keymile. 2008-09-16 10:01:32 -05:00
mgsuvd.dts powerpc: Add support for the MPC852 based mgsuvd board from keymile. 2008-09-16 10:01:30 -05:00
motionpro.dts powerpc: Remove device_type = "rtc" properties in .dts files 2008-11-05 22:08:28 +11:00
mpc832x_mds.dts powerpc: Remove device_type = "board_control" properties in .dts files 2008-10-20 23:33:04 -05:00
mpc832x_rdb.dts powerpc/mpc832x_rdb: fix swapped ethernet ids 2008-11-19 15:12:19 -06:00
mpc834x_mds.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
mpc836x_mds.dts powerpc: Remove device_type = "board_control" properties in .dts files 2008-10-20 23:33:04 -05:00
mpc836x_rdk.dts powerpc/83xx: add NAND support for the MPC8360E-RDK boards 2008-10-13 11:11:20 -05:00
mpc866ads.dts powerpc/CPM: Add i2c pins to dts and board setup 2008-07-14 07:55:39 -05:00
mpc885ads.dts powerpc/CPM: Add i2c pins to dts and board setup 2008-07-14 07:55:39 -05:00
mpc5121ads.dts powerpc/5121: Add PCI support. 2008-10-13 11:09:58 -05:00
mpc7448hpc2.dts powerpc/mpc7448: add alias list to DTS, clean out old chosen node 2008-07-16 17:57:33 -05:00
mpc8272ads.dts powerpc/fsl: update crypto node definition and device tree instances 2008-07-14 07:55:47 -05:00
mpc8313erdb.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
mpc8315erdb.dts Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-12-28 16:54:33 -08:00
mpc8349emitx.dts Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-12-28 16:54:33 -08:00
mpc8349emitxgp.dts Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-12-28 16:54:33 -08:00
mpc8377_mds.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
mpc8377_rdb.dts Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-12-28 16:54:33 -08:00
mpc8378_mds.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
mpc8378_rdb.dts Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-12-28 16:54:33 -08:00
mpc8379_mds.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
mpc8379_rdb.dts Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-12-28 16:54:33 -08:00
mpc8536ds.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
mpc8540ads.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
mpc8541cds.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
mpc8544ds.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
mpc8548cds.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
mpc8555cds.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
mpc8560ads.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
mpc8568mds.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
mpc8572ds_camp_core0.dts powerpc/85xx: Create dts for each core in CAMP mode for MPC8572DS 2008-12-03 15:11:52 -06:00
mpc8572ds_camp_core1.dts powerpc/85xx: Create dts for each core in CAMP mode for MPC8572DS 2008-12-03 15:11:52 -06:00
mpc8572ds.dts Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-12-28 16:54:33 -08:00
mpc8610_hpcd.dts Merge commit 'origin' 2008-10-15 11:31:54 +11:00
mpc8641_hpcn.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
pcm030.dts powerpc: Remove device_type = "rtc" properties in .dts files 2008-11-05 22:08:28 +11:00
pq2fads.dts [POWERPC] fsl: Convert dts to v1 syntax 2008-04-17 09:40:48 -05:00
prpmc2800.dts [POWERPC] mv643xx_eth: Prepare to support multiple silicon blocks 2008-04-15 21:21:24 +10:00
ps3.dts [POWERPC] Convert remaining dts-v0 files to v1 2008-05-29 07:06:56 -05:00
rainier.dts ibm_newemac: Parameterize EMAC Multicast Match Handling 2008-07-09 16:30:46 +10:00
sam440ep.dts powerpc/4xx: Convert Sam440ep DTS to dts-v1 2008-06-11 08:33:59 -04:00
sbc8349.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
sbc8548.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
sbc8560.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
sbc8641d.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
sequoia.dts USB: powerpc: Workaround for the PPC440EPX USBH_23 errata [take 3] 2009-01-07 09:59:52 -08:00
storcenter.dts [POWERPC] Cleanup mpic nodes in .dts 2008-06-02 14:44:25 -05:00
stx_gp3_8560.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
taishan.dts ibm_newemac: Parameterize EMAC Multicast Match Handling 2008-07-09 16:30:46 +10:00
tqm5200.dts powerpc: Remove device_type = "rtc" properties in .dts files 2008-11-05 22:08:28 +11:00
tqm8540.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
tqm8541.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
tqm8548-bigflash.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
tqm8548.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
tqm8555.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
tqm8560.dts gianfar: Convert gianfar to an of_platform_driver 2008-12-16 15:29:15 -08:00
virtex440-ml507.dts powerpc/440: Convert Virtex ML507 device tree to dts-v1 2008-07-09 10:56:11 -06:00
walnut.dts [POWERPC] Convert remaining dts-v0 files to v1 2008-05-29 07:06:56 -05:00
warp.dts powerpc/44x: Incorrect NOR offset in Warp DTS 2008-08-04 21:42:07 -04:00
yosemite.dts powerpc/44x: Add explicit Yosemite support 2008-08-28 09:12:47 -04:00