mirror of
https://github.com/openwrt/openwrt.git
synced 2025-03-30 15:46:31 +00:00
45 lines
1.6 KiB
Diff
45 lines
1.6 KiB
Diff
From fc430aea02068150d053ef24bc424db3dd1357d4 Mon Sep 17 00:00:00 2001
|
|
From: Al Cooper <alcooperx@gmail.com>
|
|
Date: Fri, 3 Jan 2020 13:18:08 -0500
|
|
Subject: [PATCH] phy: usb: PHY's MDIO registers not accessible without device
|
|
installed
|
|
|
|
When there is no device connected and FSM is enabled, the XHCI puts
|
|
the PHY into suspend mode. When the PHY is put into suspend mode
|
|
the USB LDO powers down the PHY. This causes the MDIO to be
|
|
inaccessible and its registers reset to default. The fix is to
|
|
disable FSM.
|
|
|
|
Signed-off-by: Al Cooper <alcooperx@gmail.com>
|
|
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
|
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
|
|
---
|
|
drivers/phy/broadcom/phy-brcm-usb-init-synopsys.c | 9 +++++++++
|
|
1 file changed, 9 insertions(+)
|
|
|
|
--- a/drivers/phy/broadcom/phy-brcm-usb-init-synopsys.c
|
|
+++ b/drivers/phy/broadcom/phy-brcm-usb-init-synopsys.c
|
|
@@ -56,6 +56,7 @@
|
|
#define USB_PHY_PLL_LDO_CTL 0x08
|
|
#define USB_PHY_PLL_LDO_CTL_AFE_CORERDY_MASK 0x00000004
|
|
#define USB_PHY_UTMI_CTL_1 0x04
|
|
+#define USB_PHY_UTMI_CTL_1_POWER_UP_FSM_EN_MASK 0x00000800
|
|
#define USB_PHY_UTMI_CTL_1_PHY_MODE_MASK 0x0000000c
|
|
#define USB_PHY_UTMI_CTL_1_PHY_MODE_SHIFT 2
|
|
#define USB_PHY_STATUS 0x20
|
|
@@ -229,6 +230,14 @@ static void usb_init_common_7211b0(struc
|
|
|
|
usb_init_common(params);
|
|
|
|
+ /*
|
|
+ * Disable FSM, otherwise the PHY will auto suspend when no
|
|
+ * device is connected and will be reset on resume.
|
|
+ */
|
|
+ reg = brcm_usb_readl(usb_phy + USB_PHY_UTMI_CTL_1);
|
|
+ reg &= ~USB_PHY_UTMI_CTL_1_POWER_UP_FSM_EN_MASK;
|
|
+ brcm_usb_writel(reg, usb_phy + USB_PHY_UTMI_CTL_1);
|
|
+
|
|
usb2_eye_fix_7211b0(params);
|
|
}
|
|
|