linux-stable/drivers/phy/marvell
Pali Rohár cd1e1735ae phy: marvell: phy-mvebu-a3700-comphy: Reset COMPHY registers before USB 3.0 power on
[ Upstream commit b01d622d76 ]

Turris MOX board with older ARM Trusted Firmware version v1.5 is not able
to detect any USB 3.0 device connected to USB-A port on Mox-A module after
commit 0a6fc70d76 ("phy: marvell: phy-mvebu-a3700-comphy: Remove broken
reset support"). On the other hand USB 2.0 devices connected to the same
USB-A port are working fine.

It looks as if the older firmware configures COMPHY registers for USB 3.0
somehow incompatibly for kernel driver. Experiments show that resetting
COMPHY registers via setting SFT_RST auto-clearing bit in COMPHY_SFT_RESET
register fixes this issue.

Reset the COMPHY in mvebu_a3700_comphy_usb3_power_on() function as a first
step after selecting COMPHY lane and USB 3.0 function. With this change
Turris MOX board can successfully detect USB 3.0 devices again.

Before the above mentioned commit this reset was implemented in PHY reset
method, so this is the reason why there was no issue with older firmware
version then.

Fixes: 0a6fc70d76 ("phy: marvell: phy-mvebu-a3700-comphy: Remove broken reset support")
Reported-by: Marek Behún <kabel@kernel.org>
Signed-off-by: Pali Rohár <pali@kernel.org>
Tested-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Link: https://lore.kernel.org/r/20220920121154.30115-1-pali@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-31 13:32:46 +01:00
..
Kconfig phy: marvell: phy-mvebu-cp11i-utmi needs USB_COMMON 2021-04-06 10:34:20 +05:30
Makefile drivers: phy: add support for Armada CP110 UTMI PHY 2021-03-30 23:32:53 +05:30
phy-armada38x-comphy.c phy: armada-38x: fix NETA lockup when repeatedly switching speeds 2020-07-21 22:57:46 +05:30
phy-armada375-usb2.c phy: marvell: convert to devm_platform_ioremap_resource 2020-11-16 12:47:47 +05:30
phy-berlin-sata.c phy: fix build breakage: add PHY_MODE_SATA 2019-01-16 18:00:54 +05:30
phy-berlin-usb.c phy: marvell: convert to devm_platform_ioremap_resource 2020-11-16 12:47:47 +05:30
phy-mmp3-hsic.c phy: phy-mmp3-hsic: Remove redundant dev_err call in mmp3_hsic_phy_probe() 2021-06-14 11:00:52 +05:30
phy-mmp3-usb.c phy: marvell: convert to devm_platform_ioremap_resource 2020-11-16 12:47:47 +05:30
phy-mvebu-a3700-comphy.c phy: marvell: phy-mvebu-a3700-comphy: Reset COMPHY registers before USB 3.0 power on 2022-12-31 13:32:46 +01:00
phy-mvebu-a3700-utmi.c phy-mvebu-a3700-utmi: correct typo in struct mvebu_a3700_utmi comments 2020-07-13 12:14:37 +05:30
phy-mvebu-cp110-comphy.c phy: marvell: phy-mvebu-cp110-comphy: add support for 5gbase-r 2021-11-23 12:14:48 +00:00
phy-mvebu-cp110-utmi.c phy: mvebu-cp110-utmi: Fix kernel-doc warns 2021-11-20 11:33:22 +05:30
phy-mvebu-sata.c phy: marvell: convert to devm_platform_ioremap_resource 2020-11-16 12:47:47 +05:30
phy-pxa-28nm-hsic.c phy: marvell: convert to devm_platform_ioremap_resource 2020-11-16 12:47:47 +05:30
phy-pxa-28nm-usb2.c phy: marvell: convert to devm_platform_ioremap_resource 2020-11-16 12:47:47 +05:30
phy-pxa-usb.c phy: marvell: convert to devm_platform_ioremap_resource 2020-11-16 12:47:47 +05:30