From nobody Sat Jul 25 23:42:05 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F1C9A32E757 for ; Sat, 11 Jul 2026 10:35:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783766143; cv=none; b=rx/y7deBHnMDckWuaZpTLm6ijv0+lXO58Av4oBXvtnp+cJjzqgwImsA4eNJF8weOjuqViiZdoD2oUed+6RPaiuGToI+e/ZmoGjY8nE3sDPH+dPRgnibGH1sIhdinCf8jSPDST2W59rSU4363PVIIQFd39mJh7RlCr9mq0+gU8Cw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783766143; c=relaxed/simple; bh=CjoIXjZYksPuoJo9b5b48NUa04niQPUqRQBlzbU9cfk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=VhnEG9DfP3HDzfyc6qG8aar4RzwJWo9jXJYr5iPIiznIfsqCtLmlkpmljs4NzDxbMghdr8FpSYWzO9U9+AWrFNX/9Z/ZbN17ihjuq6cHrJNwRqoXZ8ENv+xUM3q0+s0yyLTWkZwyva3UH28ObkUeNevpYRnlsM2Uq80gA0DUGwc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AwssXW6w; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AwssXW6w" Received: by smtp.kernel.org (Postfix) with ESMTPS id 7AD7DC2BCB9; Sat, 11 Jul 2026 10:35:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1783766142; bh=CjoIXjZYksPuoJo9b5b48NUa04niQPUqRQBlzbU9cfk=; h=From:Date:Subject:To:Cc:Reply-To:From; b=AwssXW6wAdd41wYEQZXUyoNlDi9QHh5D57tVqOFiT/3EW9iBmDn4jIP0Qy7i+A/gz 0FgrlRmIvWOJh9Wf/EykZIrxctrJndDodPst/JnfCIL5sZnCyfcq/eH4wdppveH927 KUn0Pgw+EzvWeUjV2+wHt9hlJepHi+TRNVZ4Bff9j/mRTp+8XN7VNW5Ghyxx4J8/ww cEppUTztmRwiXb0XA93TQvz4xnJg8KxGFX2+nKj35P2/QJX+Kf4uD+Mu3ufLklMthW jIYJ7SifvdduuwSkOSSa3ARMSHZv8zaW+MpicdEcDZgQjz+Kxo7IqvSS4ygTQcBPdx t9UjVM2ha5QvQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 57D05C43458; Sat, 11 Jul 2026 10:35:42 +0000 (UTC) From: Nikolai Burov via B4 Relay Date: Sat, 11 Jul 2026 13:34:46 +0300 Subject: [PATCH] phy: mediatek: xsphy: clear U2 DTM0 force bits during init Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260711-mt6858-xsphy-poweron-v1-1-dee2fb71c7d5@jolla.com> X-B4-Tracking: v=1; b=H4sIAEYcUmoC/yXMQQ6CMBBA0auQWTtJaRTRqxgX7TjIkNA2HVQM4 e5WWL7F/wsoZ2GFa7VA5reoxFBQHyqg3oUnozyKwRrbmHNtcJya9tTirKn/YoofzjEgkeu8Mxd /JAslTZk7mbft7b5bX35gmv4vWNcfgYXly3gAAAA= X-Change-ID: 20260710-mt6858-xsphy-poweron-ccafba09b4c2 To: Chunfeng Yun , Vinod Koul , Neil Armstrong , Matthias Brugger , AngeloGioacchino Del Regno Cc: linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-phy@lists.infradead.org, linux-kernel@vger.kernel.org, Nikolai Burov , Nikolai Burov X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1783766141; l=1733; i=nikolai.burov@jolla.com; s=20260707; h=from:subject:message-id; bh=JAVmiLYc4qL5R032CUvK9+ze4/IqmRRFbWXmWnyY5tU=; b=T0DPUN3D5Y3CUdetCWkVyJ8WU48VXB/UEznv/4kjGDWgJZk/mqULDgRof1/ZH+idGNPgKT1a6 pFaBDtZ/Hb3D6lHiIqqboDwvOCv8CCaBmwx/OkrHgkfRfuPuhtGdoaN X-Developer-Key: i=nikolai.burov@jolla.com; a=ed25519; pk=yzpa+PD+ovHUFMIOBA9o2QqGwI110jM6hdGHLc7jtoQ= X-Endpoint-Received: by B4 Relay for nikolai.burov@jolla.com/20260707 with auth_id=859 X-Original-From: Nikolai Burov Reply-To: nikolai.burov@jolla.com From: Nikolai Burov On mobile SoCs, the USB PHY is completely powered off during bootup. As a result, various bits in the DTM0 register are set that prevent the USB 2.0 PHY from functioning. Clear them as part of the initialization sequence. Signed-off-by: Nikolai Burov --- drivers/phy/mediatek/phy-mtk-xsphy.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/phy/mediatek/phy-mtk-xsphy.c b/drivers/phy/mediatek/ph= y-mtk-xsphy.c index cc1d66954212..b29220bc5592 100644 --- a/drivers/phy/mediatek/phy-mtk-xsphy.c +++ b/drivers/phy/mediatek/phy-mtk-xsphy.c @@ -62,6 +62,14 @@ #define P2A6_RG_BC11_SW_EN BIT(23) #define P2A6_RG_OTG_VBUSCMP_EN BIT(20) =20 +#define XSP_U2PHYDTM0 ((SSUSB_SIFSLV_U2PHY_COM) + 0x068) +#define P2D_FORCE_DATAIN BIT(23) +#define P2D_FORCE_DM_PULLDOWN BIT(21) +#define P2D_FORCE_DP_PULLDOWN BIT(20) +#define P2D_FORCE_XCVRSEL BIT(19) +#define P2D_FORCE_SUSPENDM BIT(18) +#define P2D_FORCE_TERMSEL BIT(17) + #define XSP_U2PHYDTM1 ((SSUSB_SIFSLV_U2PHY_COM) + 0x06C) #define P2D_FORCE_IDDIG BIT(9) #define P2D_RG_VBUSVALID BIT(5) @@ -181,6 +189,11 @@ static void u2_phy_instance_init(struct mtk_xsphy *xsp= hy, { void __iomem *pbase =3D inst->port_base; =20 + mtk_phy_clear_bits(pbase + XSP_U2PHYDTM0, + P2D_FORCE_DATAIN | P2D_FORCE_DM_PULLDOWN | + P2D_FORCE_DP_PULLDOWN | P2D_FORCE_XCVRSEL | + P2D_FORCE_SUSPENDM | P2D_FORCE_TERMSEL); + /* DP/DM BC1.1 path Disable */ mtk_phy_clear_bits(pbase + XSP_USBPHYACR6, P2A6_RG_BC11_SW_EN); =20 --- base-commit: bee763d5f341b99cf472afeb508d4988f62a6ca1 change-id: 20260710-mt6858-xsphy-poweron-ccafba09b4c2 Best regards, -- =20 Nikolai Burov