From nobody Thu Apr 2 17:22:45 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 CA1A72101AE; Thu, 12 Feb 2026 01:39:14 +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=1770860354; cv=none; b=LdI2qATAi7g0WQiNOMIKkjC11CywEbGMHVVYO96d/W4h+1tcrGSe+bUP+B6TnlAy/x9iDkv7yaFJ5W+QPNBfG2WtSJ2W4SUNWrxz+x9UbzHe0m2g01mGhWR5ctZiNgBoOhHcJ2e/24xsPhz+5Fcvvm4Iw4/NMBpvzQy6RXGe1l0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770860354; c=relaxed/simple; bh=2fG2J3eWsyvskz/JyfyVtoo2zW/1/dvAbxTesMxxSlw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ufX4Kq0Yr4zjRm/QsLFbPU+/z6HnTbEn1M1pV0Kxcyn+11lm5yL+t75tfv+BT/cT57y3j/K+aUw7+n0dUUff4sfskoHAnf4uv9IpSxpIWAoC5bt4QcdLhozdN6HJtnFOZ2LI5KUNba6XYRi1kE3SX5cTPf2fNT6KOMLydnnf7GI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pMh8lz+f; 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="pMh8lz+f" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4D9E9C19423; Thu, 12 Feb 2026 01:39:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770860354; bh=2fG2J3eWsyvskz/JyfyVtoo2zW/1/dvAbxTesMxxSlw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=pMh8lz+faYQZze8QKO7XPA9Aco0gQGbW+/qfsCQiPfjfZ5naxBl8iSjo1NO60G8SL tUHIg+AtMLucE8sjJuoVLz47rROFXVFOjgzw5ULaFuPYO2wCKZtv7psvgXd/Cg2BQH vw8vWStevdVsPGvJxF1aWiGIpAxdljOVickaZtMVQmL+TBJYzSEugJ83BQLzqLCmSn rCc+8JVkjYFSFHUEwhPX0o4n/tMmyQ3mNMuUysFCDEcqTKKaDfe65Wy62ywlr1LFqX 6Nc9OoL+RlwpaKPRL9b6a2C23g2KzwMfENjgPhcu+hf5i31eRl1QH4sZUAYzkSynYR KJcvZmWGqMKLg== From: Yixun Lan Date: Thu, 12 Feb 2026 09:38:54 +0800 Subject: [PATCH 1/3] dt-bindings: phy: spacemit: k3: add USB2 PHY support 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: <20260212-11-k3-usb2-phy-v1-1-43578592405d@kernel.org> References: <20260212-11-k3-usb2-phy-v1-0-43578592405d@kernel.org> In-Reply-To: <20260212-11-k3-usb2-phy-v1-0-43578592405d@kernel.org> To: Vinod Koul , Neil Armstrong , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Ze Huang Cc: Junzhong Pan , linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org, Yixun Lan X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1134; i=dlan@kernel.org; h=from:subject:message-id; bh=2fG2J3eWsyvskz/JyfyVtoo2zW/1/dvAbxTesMxxSlw=; b=owEB6QIW/ZANAwAKATGq6kdZTbvtAcsmYgBpjS800dAle+HhsO2L7sGXmR9XF/MO4OA5MrLSX yAHfAxfrWqJAq8EAAEKAJkWIQS1urjJwxtxFWcCI9wxqupHWU277QUCaY0vNBsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMSwyLDJfFIAAAAAALgAoaXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5 maWZ0aGhvcnNlbWFuLm5ldEI1QkFCOEM5QzMxQjcxMTU2NzAyMjNEQzMxQUFFQTQ3NTk0REJCRU QACgkQMarqR1lNu+0oJg/+KYza1iIK+9Z4TL0pqqwAMsZFW/P2qdfpaSTf+1relauokxvbhwp8L UPzTKTjJNkYlNtoZe+ic8B1JTAW7JBqAhYX5WlD60MRXluyhVV/aA9Gw6vvPUIdJ15SXsAm2B00 Mpd64a97StuWSCdiMBE0p815WHsmeH4NAef2zXtIJH65WCzrMxhMO2V2opqbn92yWE7bZ4ccMLP rzUpCc5+FewOaX/dEWAoTWs+Hgv/ntFNOcEW+I6txaed7G9BQOpeY+GLEHCwn95FAMhTtmh40tP UUzLyWM2QMdt1Wf603J13lveobEeEmJkrbBjuNQe2mOwPfev2QIcVWpIditWbwjCSjW8C4SV+NF cRYOVaAaQbzf9hO11amyDMmCh/6Ftp8yjh9CmCmto2RRF+WYV5k8AIrn905qIwmwAUNRzl4t0YF 44cP5+8w/1ScvbwJr+NPTFbLdQIDgOO1OgSEkHqstkAGSeCaBjShs/domLLCdG0pZ4m4ZGfUTVs OfGNG3yFhD876g+cIi2RkmGmORPOFGHqICbSajCcY+XtHwrFBFvATmJh8tBZiyM+gnGiEcAaiQS A6OFMxLn+1CRbSogFPUkW6gB3wkM4WDTIJ3HFrhJ3S73inTH8GSXccjuuIJCRiZfT91QnaWBr4l Pd/lhC+NNRffDI3bqqXorvBPqpYczw= X-Developer-Key: i=dlan@kernel.org; a=openpgp; fpr=50B03A1A5CBCD33576EF8CD7920C0DBCAABEFD55 Introduce a compatible string for the USB2 PHY in SpacemiT K3 SoC. The IP of USB2 PHY mostly shares the same functionalities with K1 SoC, while has some register layout changes. Signed-off-by: Yixun Lan Acked-by: Krzysztof Kozlowski --- Documentation/devicetree/bindings/phy/spacemit,usb2-phy.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/phy/spacemit,usb2-phy.yaml b= /Documentation/devicetree/bindings/phy/spacemit,usb2-phy.yaml index 43eaca90d88c..18025e5f60d6 100644 --- a/Documentation/devicetree/bindings/phy/spacemit,usb2-phy.yaml +++ b/Documentation/devicetree/bindings/phy/spacemit,usb2-phy.yaml @@ -4,14 +4,16 @@ $id: http://devicetree.org/schemas/phy/spacemit,usb2-phy.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# =20 -title: SpacemiT K1 SoC USB 2.0 PHY +title: SpacemiT K1/K3 SoC USB 2.0 PHY =20 maintainers: - Ze Huang =20 properties: compatible: - const: spacemit,k1-usb2-phy + enum: + - spacemit,k1-usb2-phy + - spacemit,k3-usb2-phy =20 reg: maxItems: 1 --=20 2.52.0 From nobody Thu Apr 2 17:22:45 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 1DB5B21ABC1; Thu, 12 Feb 2026 01:39:17 +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=1770860357; cv=none; b=lSFYl9+SM98JTy2boUG+QWrWP90h+wkkws87DR4ggoiOOOKEzS0Q4TG28yK0dQWRi9qqPPUq6WnSg6DD/38rZnLWAjI6SDjWICJW66CvLXhxT955clQgBfSTZ6mXOwtLLK5VCy39gElvZYO7+WBgCKdpHQVu/4NXlYMPz0jPF6Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770860357; c=relaxed/simple; bh=VeholSffT/UMyhEACirshDrbCKDpTWyBnxuxVdBUr/w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=N5g+1BYT7PgGgBuPkAzqpOBOuIocs2tlAuzmKa72vhOWSHYtaC7BZwloQkzeAnuPno6Cu3YtHn38W0qaYl5nmPd2LMBHHgfWOVlzOoO29Aocu3lMUJLjPofKGCvEL4rb5QSyUIHqOGw9ZgAjoDushvql6uRABlUxH05rs+BDyiY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KJFMkekb; 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="KJFMkekb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D2E57C16AAE; Thu, 12 Feb 2026 01:39:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770860357; bh=VeholSffT/UMyhEACirshDrbCKDpTWyBnxuxVdBUr/w=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=KJFMkekb/gpw+iVZ4zFpjfyIj40fK9OJOeNklaJeprIum6E+l7NCmbQDu/YGY1YoM oJR2er3OHh82lGnV47jvk+qz+U+z3/rQGpDV03YFemgMkj9fqFu97Y/2EHBRbqC6Fn 3j5gri5h6JNrkXJ50wP9mtCPUFVp5vCPDgYpdeN+B2mUzifKctRr0l/MYpEeWt3DGI z2CUJFhDMGYSOIG5r9SirK+lZyIN1Fd3YKF8BqDVG7yOfQCaFzRhrtnR2CpaRizRjY nVO1KAECeXC5NJ50bq5hRiRSEhQQrg618Z8BPLMBXOzswLbEx8yol+LhZmrNMoJUgp 3qXgDhndD8eIg== From: Yixun Lan Date: Thu, 12 Feb 2026 09:38:55 +0800 Subject: [PATCH 2/3] phy: k1-usb: add disconnect function support 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: <20260212-11-k3-usb2-phy-v1-2-43578592405d@kernel.org> References: <20260212-11-k3-usb2-phy-v1-0-43578592405d@kernel.org> In-Reply-To: <20260212-11-k3-usb2-phy-v1-0-43578592405d@kernel.org> To: Vinod Koul , Neil Armstrong , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Ze Huang Cc: Junzhong Pan , linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org, Yixun Lan X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1479; i=dlan@kernel.org; h=from:subject:message-id; bh=VeholSffT/UMyhEACirshDrbCKDpTWyBnxuxVdBUr/w=; b=owEB6QIW/ZANAwAKATGq6kdZTbvtAcsmYgBpjS83l7LIBz5j7b0i1Mn1HREi55NVap0spyWjR qFR12iKDH6JAq8EAAEKAJkWIQS1urjJwxtxFWcCI9wxqupHWU277QUCaY0vNxsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMSwyLDJfFIAAAAAALgAoaXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5 maWZ0aGhvcnNlbWFuLm5ldEI1QkFCOEM5QzMxQjcxMTU2NzAyMjNEQzMxQUFFQTQ3NTk0REJCRU QACgkQMarqR1lNu+0acA/8DiNihXAyofvNdMrH+2sgLHZcWc0P4+l2zGse7N1DqHhzTMCJQmQz8 AsQkj/JF96iZ6LsB+ruMJLFuiKyJ7cDoHpsAe2nWMDSp9g2C59c86xu3RbJSimk+vCt7/2gkZLv XmloMWH+dUqnKitXxCt+mGSLdtNe/9A4F1RBT3i4TBmbyH5YcPBk8aFCE99HZRA2tUHZxY308iV 2Ztwjtveq68uF518L3P0IYO36QszZEq+zDl5eriaLTNfQLqcBu9whDbBUxKxBjF+xnn1Rk2t8pZ Xcd6/QdmDvRJrt/2xaYGoDHvHMAS0AA7K3fCeRoEhYoLguTc0DtEtnXCLt6E23Hu9SGXbE83CgP SdEfj9gfAdATba4vOEg1PXxOMl4mxVBE69E0A4F8OrMVPnOGgv55LAgeaWykGe//2qybaEumu/K YhbeZLPrjKs2p+LLQTvL6WbDaYiFK5ktkD8Kg1cFG+RONxfUNYt/j8zJ2LBx1+ixJtktgNX5X9O 6n26mmRrxc6kNV1OTAL+zZ+WVZsZa7pRRescgml8W6RStIyowZDAQGav8iSHJQFdZmRHkrkmM+U eI7+WDAZ11uwMq0RQ+bSaOKRc0LNq5ds/qYOs+8F+iHXkbWxHnlS/8sElOZzTlKelvczzZbtbHO TKIPHrl9L1ttmZ5KFDwTITyg+Uuz68= X-Developer-Key: i=dlan@kernel.org; a=openpgp; fpr=50B03A1A5CBCD33576EF8CD7920C0DBCAABEFD55 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. Signed-off-by: Yixun Lan --- drivers/phy/spacemit/phy-k1-usb2.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/phy/spacemit/phy-k1-usb2.c b/drivers/phy/spacemit/phy-= k1-usb2.c index 342061380012..959bf79c7a72 100644 --- a/drivers/phy/spacemit/phy-k1-usb2.c +++ b/drivers/phy/spacemit/phy-k1-usb2.c @@ -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 = */ =20 +#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; } =20 +static int spacemit_usb2phy_disconnect(struct phy *phy, int port) +{ + struct spacemit_usb2phy *sphy =3D 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 =3D { .init =3D spacemit_usb2phy_init, .exit =3D spacemit_usb2phy_exit, + .disconnect =3D spacemit_usb2phy_disconnect, .owner =3D THIS_MODULE, }; =20 --=20 2.52.0 From nobody Thu Apr 2 17:22:45 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 E7EE9207A0B; Thu, 12 Feb 2026 01:39:19 +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=1770860360; cv=none; b=KYQfYC2oud1zXxnlhvlo3lxOBK80ROfkP5hP1h1xXNVYN0NF4ZEJ/DlxFsSYhRrLZMidA5iwrgIeuQCxXYcUkNerrloNb3mYX5u/IIoQ6/oyRmh36wkZmWqHKxoAi3AjCcm4tX0XoP/3fPi0Dr6NPAN44WtQvp4sfLez+bkFXIM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770860360; c=relaxed/simple; bh=4HiRGbXUC6o99EAbk0Kk9IETiUENn9fO1jaf304KlwI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qE+M+lrRvcuS76q9RS63FuF3UovTMVZ0/sAcuSIJJU76MeGhqjVCTcVIqu9m6vV2XrjC12Ta7yEpMwVH7ZuZ1plpLkYzkkomFQaeb8R+pXxS2F46yQKpO0VnaTBx16lQzyj5qK6AeE+PfjRXUVVJVggbDzrbM9/dzu7op4oECLU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PJ13+2r7; 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="PJ13+2r7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 62FCAC2BCB3; Thu, 12 Feb 2026 01:39:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770860359; bh=4HiRGbXUC6o99EAbk0Kk9IETiUENn9fO1jaf304KlwI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=PJ13+2r7Y8E3c3cXDGix4yLK2AXHI1itE7SPe7R5tDnice26dvKNkubhonEb1m4dF HvTY+fW2g87oqM8+QbHPMl61gs0RECpZcFkF8YVcrZqcOejO2xo5sHvCzifvwSPyJG VRBsxGcgMuKXR7ixGjBgOkdeQx6KAxDtyIaZr/RWCebpYzk+rNQ5RTPy2JxVCXvQj2 1YNYsaHp3FyvUS2/A4G3w5zz5tYDe07Vjzm0OJebFqXgKycJThk0x4SmpOs/nV9GtO R+7OtRcKf3J6D/pxNp3JzdOcBf/7JiJgZymOdcIC0XWIVG7oyxiiKRPPEy6Sa+qSOp dh5UAKWwMf0wg== From: Yixun Lan Date: Thu, 12 Feb 2026 09:38:56 +0800 Subject: [PATCH 3/3] phy: k1-usb: k3: add USB2 PHY support 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: <20260212-11-k3-usb2-phy-v1-3-43578592405d@kernel.org> References: <20260212-11-k3-usb2-phy-v1-0-43578592405d@kernel.org> In-Reply-To: <20260212-11-k3-usb2-phy-v1-0-43578592405d@kernel.org> To: Vinod Koul , Neil Armstrong , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Ze Huang Cc: Junzhong Pan , linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org, Yixun Lan X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3299; i=dlan@kernel.org; h=from:subject:message-id; bh=4HiRGbXUC6o99EAbk0Kk9IETiUENn9fO1jaf304KlwI=; b=owEB6QIW/ZANAwAKATGq6kdZTbvtAcsmYgBpjS8644Xw6PGyub8/C3vux61at2nMEuIGGDkwf fpMidtdDNSJAq8EAAEKAJkWIQS1urjJwxtxFWcCI9wxqupHWU277QUCaY0vOhsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMSwyLDJfFIAAAAAALgAoaXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5 maWZ0aGhvcnNlbWFuLm5ldEI1QkFCOEM5QzMxQjcxMTU2NzAyMjNEQzMxQUFFQTQ3NTk0REJCRU QACgkQMarqR1lNu+1xTw/9Ej++iEmtbjFYke9rOp0tGpFYt81M+h+p1YIlHvOxzrZ+NeC+Wt1Ff tUDugvIj/6dE2yGiLl/AeIL5BUhGdC7Ko1iOUsd5mjKRGu9Px9A31QCZOj3KhvuISpFcsFjZnKD 0rQb7NzfiXElpZXn7hNQVG5J8Z9vGxQ8neXmcIextkLicQtO4xCzO4bkxhCkRKJvsjEP17OKuAc CzSCaHalb/he6/AN75XgmtJbwqSWnaI05JzLK/T5A3csBMrQfofEmC/0AoXZfit1YAKNdONyR3F 2r3fRvnpFXw0EZfuqRjO2hUxvOR+IdJDbF9a3jdc/SNtcpdDOLVNkGR9wAksBWvNF8mL7FK81yr F3/ltm/ZnpGlN3xjEDO/7z5dYs8plD7o81g2dy9/j2dHin2w1YtFclA67RGdH4wRw3IN+Kw9Hzt 9imo3GVC9PjqIum+MZgc3rV/1ZNtQnVL0CKvnjb6NZR8hKJC4aWKgZVESgtKZb1oBEQu0WSEBQA /xoAeZLx+nVeXHbRKWipw1BOM7cvHKaaBWVwRKI3c4AMeAwidexDrrNz9C2rB5rcYyl+0GvvXIc iIC6Sh0p1gT+GUyVgVHq6XCSIBeHfylyM/mMKt0kFkzfe0tNmNc2HV5wyk0xeYAZp8pI6Av0s4Z 67k5WIz8qjSVAX5/gbqk5rGm9+ga2k= X-Developer-Key: i=dlan@kernel.org; a=openpgp; fpr=50B03A1A5CBCD33576EF8CD7920C0DBCAABEFD55 Add USB2 PHY support for SpacemiT K3 SoC. Register layout of handling USB disconnect operation has been changed, So introducing a platform data to distinguish the different SoCs. Signed-off-by: Yixun Lan --- drivers/phy/spacemit/phy-k1-usb2.c | 40 ++++++++++++++++++++++++++++++++++= ++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/drivers/phy/spacemit/phy-k1-usb2.c b/drivers/phy/spacemit/phy-= k1-usb2.c index 959bf79c7a72..b0ce0a92861e 100644 --- a/drivers/phy/spacemit/phy-k1-usb2.c +++ b/drivers/phy/spacemit/phy-k1-usb2.c @@ -51,6 +51,9 @@ #define PHY_K1_HS_HOST_DISC 0x40 #define PHY_K1_HS_HOST_DISC_CLR BIT(0) =20 +#define PHY_K3_HS_HOST_DISC 0x20 +#define PHY_K3_HS_HOST_DISC_CLR BIT(8) + #define PHY_PLL_DIV_CFG 0x98 #define PHY_FDIV_FRACT_8_15 GENMASK(7, 0) #define PHY_FDIV_FRACT_16_19 GENMASK(11, 8) @@ -74,10 +77,15 @@ =20 #define K1_USB2PHY_RESET_TIME_MS 50 =20 +struct spacemit_usb2phy_data { + int (*disconnect)(struct phy *phy, int port); +}; + struct spacemit_usb2phy { struct phy *phy; struct clk *clk; struct regmap *regmap_base; + const struct spacemit_usb2phy_data *data; }; =20 static const struct regmap_config phy_regmap_config =3D { @@ -145,7 +153,7 @@ static int spacemit_usb2phy_exit(struct phy *phy) return 0; } =20 -static int spacemit_usb2phy_disconnect(struct phy *phy, int port) +static int spacemit_k1_usb2phy_disconnect(struct phy *phy, int port) { struct spacemit_usb2phy *sphy =3D phy_get_drvdata(phy); =20 @@ -155,6 +163,23 @@ static int spacemit_usb2phy_disconnect(struct phy *phy= , int port) return 0; } =20 +static int spacemit_k3_usb2phy_disconnect(struct phy *phy, int port) +{ + struct spacemit_usb2phy *sphy =3D phy_get_drvdata(phy); + + regmap_update_bits(sphy->regmap_base, PHY_K3_HS_HOST_DISC, + PHY_K3_HS_HOST_DISC_CLR, PHY_K3_HS_HOST_DISC_CLR); + + return 0; +} + +static int spacemit_usb2phy_disconnect(struct phy *phy, int port) +{ + struct spacemit_usb2phy *sphy =3D phy_get_drvdata(phy); + + return sphy->data->disconnect(phy, port); +} + static const struct phy_ops spacemit_usb2phy_ops =3D { .init =3D spacemit_usb2phy_init, .exit =3D spacemit_usb2phy_exit, @@ -173,6 +198,8 @@ static int spacemit_usb2phy_probe(struct platform_devic= e *pdev) if (!sphy) return -ENOMEM; =20 + sphy->data =3D device_get_match_data(dev); + sphy->clk =3D devm_clk_get_prepared(&pdev->dev, NULL); if (IS_ERR(sphy->clk)) return dev_err_probe(dev, PTR_ERR(sphy->clk), "Failed to get clock\n"); @@ -195,8 +222,17 @@ static int spacemit_usb2phy_probe(struct platform_devi= ce *pdev) return PTR_ERR_OR_ZERO(phy_provider); } =20 +static const struct spacemit_usb2phy_data k1_usb2phy_data =3D { + .disconnect =3D spacemit_k1_usb2phy_disconnect, +}; + +static const struct spacemit_usb2phy_data k3_usb2phy_data =3D { + .disconnect =3D spacemit_k3_usb2phy_disconnect, +}; + static const struct of_device_id spacemit_usb2phy_dt_match[] =3D { - { .compatible =3D "spacemit,k1-usb2-phy", }, + { .compatible =3D "spacemit,k1-usb2-phy", .data =3D &k1_usb2phy_data }, + { .compatible =3D "spacemit,k3-usb2-phy", .data =3D &k3_usb2phy_data }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, spacemit_usb2phy_dt_match); --=20 2.52.0