Skip to contentSkip to conversation

phy: k1-usb: add disconnect function support

PATCH Applied Yixun Lan 3 participants 3 messages Feb 16 – Feb 27

Subsystems (3)
lore
Share & tools
lore

Yixun Lan

author maintainer
#0 lore raw

PATCH v3 1/1 phy: k1-usb: add disconnect function support

A disconnect status BIT of USB2 PHY need to be cleared, otherwise it will fail to work properly during next connection when devices connect to roothub directly.

Fixes fe4bc1a08638 ("phy: spacemit: support K1 USB2.0 PHY controller")

---
To: Vinod Koul <[email protected]>
To: Neil Armstrong <[email protected]>
To: Ze Huang <[email protected]>
Cc: Vladimir Oltean <[email protected]>
Cc: Junzhong Pan <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]

Change in v3:
- split from v2 as bug fix
- fix alignment to open parenthesis
- http://lore.kernel.org/r/20260216090112.n5jjpui3luqsybb5@skbuf
- Link to v2: https://lore.kernel.org/r/[email protected]

---
 drivers/phy/spacemit/phy-k1-usb2.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
drivers/phy/spacemit/phy-k1-usb2.c +14 -0
index 342061380012..9215d0b223b2 100644
@@ -48,6 +48,9 @@
 #define  PHY_CLK_HSTXP_EN		BIT(3)		/* clock hstxp enable */
 #define  PHY_HSTXP_MODE			BIT(4)		/* 0: force en_txp to be 1; 1: no force */
 
+#define PHY_K1_HS_HOST_DISC		0x40
+#define  PHY_K1_HS_HOST_DISC_CLR		BIT(0)
+
 #define PHY_PLL_DIV_CFG			0x98
 #define  PHY_FDIV_FRACT_8_15		GENMASK(7, 0)
 #define  PHY_FDIV_FRACT_16_19		GENMASK(11, 8)
@@ -142,9 +145,20 @@ static int spacemit_usb2phy_exit(struct phy *phy)
 	return 0;
 }
 
+static int spacemit_usb2phy_disconnect(struct phy *phy, int port)
+{
+	struct spacemit_usb2phy *sphy = phy_get_drvdata(phy);
+
+	regmap_update_bits(sphy->regmap_base, PHY_K1_HS_HOST_DISC,
+			   PHY_K1_HS_HOST_DISC_CLR, PHY_K1_HS_HOST_DISC_CLR);
+
+	return 0;
+}
+
 static const struct phy_ops spacemit_usb2phy_ops = {
 	.init = spacemit_usb2phy_init,
 	.exit = spacemit_usb2phy_exit,
+	.disconnect = spacemit_usb2phy_disconnect,
 	.owner = THIS_MODULE,
 };
 
Signature · 1 line
2.52.0
Reviewed-by on v3 1/1
#1 lore raw
Quoted 17 lines · Yixun Lan

A disconnect status BIT of USB2 PHY need to be cleared, otherwise it will fail to work properly during next connection when devices connect to roothub directly.

Fixes fe4bc1a08638 ("phy: spacemit: support K1 USB2.0 PHY controller")

---
To: Vinod Koul <[email protected]>
To: Neil Armstrong <[email protected]>
To: Ze Huang <[email protected]>
Cc: Vladimir Oltean <[email protected]>
Cc: Junzhong Pan <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]

Quoted 6 lines

Change in v3:
- split from v2 as bug fix
- fix alignment to open parenthesis
- http://lore.kernel.org/r/20260216090112.n5jjpui3luqsybb5@skbuf
- Link to v2: https://lore.kernel.org/r/[email protected]
---

maintainer Applied
#2 lore raw
In reply to Yixun Lan
Quoted 5 lines · Yixun Lan

A disconnect status BIT of USB2 PHY need to be cleared, otherwise it will fail to work properly during next connection when devices connect to roothub directly.

Applied, thanks!

[1/1] phy: k1-usb: add disconnect function support

      commit: f0cf0a882a02dcf28547f32264f6fd37e9a7b147

Best regards,

Signature · 1 line
~Vinod