From nobody Fri Sep 25 07:22:55 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 4BB6E41685A; Tue, 15 Sep 2026 13:50:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480204; cv=none; b=tM/bkqs3p+2vbkm20zwrRYxrRDIkjzhX/s2AluYbhNi4haAd6VweqbqBQRNhC9Z06u/BHxYYxe7jkkdW7LNFMWDwsZWJtku2NSV5l2B/bna6c482rpJdxTL+XSXgBzIaeRRj8ANgHEIirJUGU3mdxwz5FMiGfr/su1BTMGWqh4M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480204; c=relaxed/simple; bh=fSE9BoJywHuBiftWhreULBZfq0aOAYM8Do4X/ZMeGM0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Bh5apcG9Ycsh1dd/tdqZTgh7rUUJ/T8FaKZCpGmx7D7fRHg1pG8AHDvth6BqdZ8xlnHd27t59ehV5AdWRQQQ6C4ZqovYBGq2M4OAI2lTOLYpjYCyZuJJSN/8t+B37IoSfmqz31fxbcPWXKV2Njt2Ue0mtZmQ9oF/Ve7/stDswNU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=EnAL1Dhb; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="EnAL1Dhb" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1789480198; bh=fSE9BoJywHuBiftWhreULBZfq0aOAYM8Do4X/ZMeGM0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=EnAL1Dhb1QyTkoK34wxMfwzTVUu74Ge2/RKjukyaLOn6xVS8EGeBBQpitJx9+et87 NPw4aEet9zjs2XyDtDdLGUKo+DgBFDdW3busuvrWulXvGno3sa7ccOnZL/d/XspzV6 V9vqrtEBsyO794ZFdtLZxHf3O+uyjEsuOMuWzWBWkQpsBBDAAIKKCxaVnKbBqNBj1b Ns5y+PbS7GFVQ/f5I5xI52IqAVTheEjqKOB6IsalLbIxF3Xu61THvpdRoNbKAQ/mjs ilBBsd4vN09Rd5ss4/kjB7wikao0sA+xuRaoCQUcn8JbTnOER7MvG6MRn2mQXARsK/ a9huxOi1/22Zw== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 7C6C017E01C5; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 2AE15480029; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) From: Sebastian Reichel Date: Tue, 15 Sep 2026 15:49:48 +0200 Subject: [PATCH v15 01/16] dt-bindings: phy: rockchip-usbdp: add improved ports scheme 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: <20260915-rockchip-usbdp-cleanup-v15-1-80e2c11d1ce8@collabora.com> References: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> In-Reply-To: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> To: Vinod Koul , Manivannan Sadhasivam , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , Igor Paunovic , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2405; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=fSE9BoJywHuBiftWhreULBZfq0aOAYM8Do4X/ZMeGM0=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGqpTQXF/0wYZI+OBSxd+3t4gR+Wdcl/41J1H RPFjo2xbxeHs4kCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqqU0FAAoJENju1/PI O/qaMDAP/2exTSnnkOwoMbX8hPdWiGWpGk/uwF0bAJK9Wg6COb+CiEdRcUhdndG/mctCN2ZIzfP 97FSYciQXNVOVeyXCMvCuLOeeIhwD8JjWy7S6OdS/dnOvMmhuQ0ApWWSwBbakFs2ElfAxeY1/A7 zor8gg5g5doNDH7rquKvj+0KmfcE1QSo7myHcVaenjJCIqOluASXNzXo7s4zKEyyZjB4YUivm8U fY7cRwGDVHOt+OBKvEM+aVPYspobbQXAP6xJv7LA9kkuXkVczq3JTNPRsZZkUBS7/dn+TiZEULH K1CD6zwERx7oiE/KbhTYcVCmnkEMEsMxEEEsXYCn0uIbsh+99aWurkG+2eXwaUDqJy+hSUHQZ+4 VUr8U5uh4nPj9A8x8SFICgIDMZdPh2C/0I9xSkypwzUvIKvb3ac+TdQfe9ybn2X+XFzIVnPFBaz j0mXrgvp/IX90s8aXbD+IM7XPSPpnYJv1TrEsfaDNhEKikLDGxkmx7rSOKJZYntIAvLpEPovvXi THlFK4GDBc3QTQB0GN84jqEYZs0m7RY2EGjSV9aW6qIIs6ZEqbOkulJguxy+lFc4TtH4QxiCm7D gj5RJjHGU6ElDPl8hgjCyrRN7pN7phsDG2RfGzXSbFxN/kxOkY5WjY++rCwz4+T5vNZ4N/YM7SD 0oiILF1sg4u4lMUJyROYouQ== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Currently the Rockchip USBDP PHY is missing a documented port scheme. Meanwhile upstream RK3588 DTS files are a bit messy and use different port schemes. The upstream USBDP PHY Linux kernel driver does not yet parse the ports at all and thus does not create any implicit ABI either. But with the current mess it is not possible to properly support USB-C DP AltMode. Thus this introduces a proper port scheme following roughly the ports design of the Qualcomm QMP USB4-USB3-DP PHY controller binding with a slight difference that there is an additional port for the USB-C SBU port as the Rockchip USB-DP PHY also contains the SBU mux. Reviewed-by: Rob Herring (Arm) Signed-off-by: Sebastian Reichel --- .../bindings/phy/phy-rockchip-usbdp.yaml | 24 ++++++++++++++++++= ++++ 1 file changed, 24 insertions(+) diff --git a/Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml = b/Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml index 8b7059d5b182..89efaf005a7b 100644 --- a/Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml +++ b/Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml @@ -110,10 +110,34 @@ properties: =20 port: $ref: /schemas/graph.yaml#/properties/port + deprecated: true description: A port node to link the PHY to a TypeC controller for the purpose of handling orientation switching. =20 + ports: + $ref: /schemas/graph.yaml#/properties/ports + properties: + port@0: + $ref: /schemas/graph.yaml#/properties/port + description: + Output endpoint of the PHY for USB (or DP when configured into 4= lane + mode), which should point to the superspeed port of a USB connec= tor. + + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: Incoming endpoint from the USB controller + + port@2: + $ref: /schemas/graph.yaml#/properties/port + description: Incoming endpoint from the DisplayPort controller + + port@3: + $ref: /schemas/graph.yaml#/properties/port + description: + Output endpoint of the PHY for DP Auxiliary, which should either= point to + the SBU port of a USB-C connector or a DisplayPort connector inp= ut port. + required: - compatible - reg --=20 2.53.0 From nobody Fri Sep 25 07:22:55 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 EF40647D462; Tue, 15 Sep 2026 13:50:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480204; cv=none; b=qelUQWeH7cRmNz38P5ulRDwU+xnM4hJoIWmtTnuZCzkMWtQeuUpuFC99ihdd4QEUmT9OP8i1SADkA5Y79pVX0962rs73CvLicho/w+eau8h/DJdRzqjy77bQ0/Uj1S4CDONrPU8oeAaMGdlEj0NCjgI2r2Fx0z3w8cKc745pFzU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480204; c=relaxed/simple; bh=NKKg6AEEXoM6tQyFXezz7j5lNyGVhRK42SMauPjhDyY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=V6UVD06eUEoItzYhkVNis3ACvBb8Yy9BKyO3QnU2ke5IBjBbDDaTx4LCBHXa1ikFaSkWNBrYfjN2JvjxXMuaGnlX/9UEpc/5NnoVRJsNzgSuHhX5B93yrBecqe/zfHWjh/2WRlwj5eUDL38BdKfGshOAIXReBPlleD5Cv7Bau44= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=a2p7s/iS; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="a2p7s/iS" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1789480198; bh=NKKg6AEEXoM6tQyFXezz7j5lNyGVhRK42SMauPjhDyY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=a2p7s/iS9AU11sMMJ4nivDlPw8LPHOBDW+zs2BbohKEuiIuUEZaReKCEJgS21Usvm t+gxMki2EpRFVW/xsW6st7jqJXlGZiW6eDPrCpLw0WgugcGqUpqjcWu3+kbetLP1gD hhDDp/caFySjcPuBC6W7BAQHlAYUyjmqOfsRgyiU1H+Fu7wONoLyS7QFyn78q+Fuie rdJwa7CvidaUCaATMzGp8NpbkKCcVBF5VCywejkxxXpZD45DPM1ofa6fQKW0vV8Zni rAJ6IxSOrB/Oe3M8EqLmwFXmejQrUFZdK98WVaK3MCdieixf4khPHPfK5Zilc7Bjho 3LWYNvxAcP4Hg== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 7DCE217E091A; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 2B7A948002C; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) From: Sebastian Reichel Date: Tue, 15 Sep 2026 15:49:49 +0200 Subject: [PATCH v15 02/16] phy: rockchip: usbdp: Update mode_change after error handling 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: <20260915-rockchip-usbdp-cleanup-v15-2-80e2c11d1ce8@collabora.com> References: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> In-Reply-To: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> To: Vinod Koul , Manivannan Sadhasivam , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , Igor Paunovic , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel , Sashiko X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1856; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=NKKg6AEEXoM6tQyFXezz7j5lNyGVhRK42SMauPjhDyY=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGqpTQWVvWBfi+HlbBO4onPCersITl/nVV5df EvkbFkM7wDTnokCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqqU0FAAoJENju1/PI O/qajMgP/13aHIc8MUKY/ambWT080dg1IDxSZSXaw9v86VelIfPm0rQ+/LwOlbxfhH2KMm2qJlv NzR6LJxNVGVjhAYbDXAJfq5EnsZh+FG5ebevI0Y7JsXvz04KK2Jza1wBMbXUaWnAanYvcLySrhH QjvkkAUIpZ58k0QwJHpYPjG5FEoftxC0FSHg2/g9GJ5m8tXa7VCVnR79rfNMxli2XTwjVXOMYob +xBipON5+1IMrhSD7074zS0VphRMLTl5wYr8r7E5qTW8gHQg1fzIMQhXZlU1htJVBEfOsDbnVha 3b4CpNbE3OfQclKH0108Td7HWVv4jWYNTFl2gAe2mqGj+2w6YSkWCezjpr2O8ebn/51xsrIvyn6 PY6LMxEP9bXGSYV8fLZOAt77k/Yh4qNCGcRCBxYcCnpuQCxyQ/e1ayggi7SRaQAhQaGhRRAm4U8 R8uISMGd/I5A4eq4ZQ1yCgfkQChl6PiDq4kQ973R7WcYvR/SIVYy3u1P83ftbx4arLuAiILQyI0 Ksleutp+NydSqED4BrIgQWwB6LcAuOVR7ip5vf7PcL25/RyjLrhq38UpYdAi1PBoi1BYZ62x86i cydkRap606vVZZapQokzXKxIt+pMAkF3OlBD28Dl4NQf6IMjXgw5aWXfsUlaTClVlHxBuqDNhFu z0/ugt9fZogXcI/yQ2cM3Kw== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A If rk_udphy_init() or rk_udphy_setup() fails, the reinit will not be tried again. Fix this by only updating the variable after all potential errors have been handled. Note, that no errors have been seen on real hardware and failures would most likely be fatal and require at least a full reboot as the function already asserts the PHY reset lines. So this is more of a theoretical issue. Fixes: 2f70bbddeb45 ("phy: rockchip: add usbdp combo phy driver") Reported-by: Sashiko Closes: https://lore.kernel.org/linux-phy/20260612163835.8D5471F000E9@smtp.= kernel.org/ Tested-by: Igor Paunovic # Orange Pi 5 Plus Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 07a839e41db7..13649b52e99b 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -999,15 +999,14 @@ static int rk_udphy_power_on(struct rk_udphy *udphy, = u8 mode) } =20 if (udphy->status =3D=3D UDPHY_MODE_NONE) { - udphy->mode_change =3D false; ret =3D rk_udphy_setup(udphy); if (ret) return ret; =20 if (udphy->mode & UDPHY_MODE_USB) rk_udphy_u3_port_disable(udphy, false); - } else if (udphy->mode_change) { udphy->mode_change =3D false; + } else if (udphy->mode_change) { udphy->status =3D UDPHY_MODE_NONE; if (udphy->mode =3D=3D UDPHY_MODE_DP) rk_udphy_u3_port_disable(udphy, true); @@ -1016,6 +1015,7 @@ static int rk_udphy_power_on(struct rk_udphy *udphy, = u8 mode) ret =3D rk_udphy_setup(udphy); if (ret) return ret; + udphy->mode_change =3D false; } =20 udphy->status |=3D mode; --=20 2.53.0 From nobody Fri Sep 25 07:22:55 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 A0C373C3F4A; Tue, 15 Sep 2026 13:50:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480202; cv=none; b=WqoA4EoIeboP5DnHpLcwcT4F5fLIvCtqJo8cVYVySTPOUuCxBdz6WndYjHBVTahgqgv3k+ka+/5wCQ/7QIWkn2Ce1K9x7jkKuhvLcHGUXySr9SOoU+5DUG+9l90L09YWGG4ycJ0fbWxJvEVYBYOus/6NL/3vdcZBu3D7j4RjcAU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480202; c=relaxed/simple; bh=ZWQwvpL1M0bc6+FwRdWniOff2hRdkUDxZm9y3a3YJPM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bfObEs+ItSaQfNjCxl9lyOr+iFpvw3oZNfsDzhp1crMTWRtxZx0q7Ag/qtQDYDVpTcZwgjrvpPZhRG41QehbAI0ffNqh7leR6Vbka+F8Un+jckDO9NtleIlvB2xvhMupjnd+yn09ZZiYaT63dNjks4RGL79oBkEQAzczrRyGwGw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=YK0M4T3+; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="YK0M4T3+" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1789480198; bh=ZWQwvpL1M0bc6+FwRdWniOff2hRdkUDxZm9y3a3YJPM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=YK0M4T3+4Ii8kwykoBo+qp8sX5MBI4/4ACG8qmepdIOSHJd6I0IJFxMR+NQ4CBFQp lGQ51u0ggL5HaDQ3TJxkJoVRMMArS5Ih5akqX4AmaKLafav9OVC34BxQAQazrl2dLc eNa4tiL5jgvDiKzW6F6gvNBoj02oHc5dAta0IDXY8x4zNFoLLu8+8JyBJ3zkIjbKP1 QiPhNiTW+/ngrh1h+f6WmroFSalDapJMbdHQjOKnL0/uLg5LHZthhRIBCV7guUkK38 MbogctHqJRkbNv1bRMhDY2l4Jv9UDMsRD0ZCPzyW3txT2FGj+pQhC0gi5WMpSA/VyW 4r37PEOh+SPag== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 7F08C17E09B5; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 2D0B1480030; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) From: Sebastian Reichel Date: Tue, 15 Sep 2026 15:49:50 +0200 Subject: [PATCH v15 03/16] phy: rockchip: usbdp: Do not lose USB3 PHY status 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: <20260915-rockchip-usbdp-cleanup-v15-3-80e2c11d1ce8@collabora.com> References: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> In-Reply-To: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> To: Vinod Koul , Manivannan Sadhasivam , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , Igor Paunovic , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1478; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=ZWQwvpL1M0bc6+FwRdWniOff2hRdkUDxZm9y3a3YJPM=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGqpTQVWNRCp7fSW3ZlbMEUJzDa1u6zaftWPV 5tNlz4D9UP3gokCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqqU0FAAoJENju1/PI O/qa/s4QAInMmd/SVzgarSf8SjlwsOABLWrClbO1/KPEQE59xdgCNkJalZXH6bs2P5Eee0ok8Xa E7NPGKq5t9nsfXshXcgT1zbsXdnlxrWbM70OPaCumMsoTXjUIEsr+7c4qQBJZMDqYb1DpO3U5SV to2VgeGhA5dYzkbbM2+CKs8iXQDu4XVo3X1vcdANmOdkEHUiZQ2XJnYo8xewyMEghX57ty8cxTa RurB8/2P4rrEdIAZ+P/n6MAIgkj1R5jRTMNQnT7jEmB+Okknrk2BjYE+jcHyqnJC28VrslPHIaA 37eemzkUZGWDC56WhvFqpH96VnajZyADXFabl8wZNEYaE8a3MCZu/3alrtOY9TmJCfHaFgxRUF/ lxnliStphEyISTRVIYzycWaMfESV12ZNwC1kfr+FrO5vh3RGDRmlTN8LjdJktoaPO7v0jgbSkgf QerDM97Gm803NK9Fdy8uvyy/hwhdNhpGQCVhVX8wjJwsVzbu3tc825nN07euGxHf0lVuaNuvLMN YpUGkD++rJDZhuMZma56a5PHz8iJOUmwS3UImWHspUUFEHHM2pSRsw1l8DGnYSwHAKEpSPzCX4r Sh4kls4aYMmG15vpp4VtL1EbQ1tUHoL4YYaGhzSI13HsX5r9T4SfNnkSspfep/DzrY60cRGDQnb PvQOTOlc9JH0tPdEHKRokZQ== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A By default (i.e. without manually enabling runtime PM) DWC3 requests the USB3 PHY once and keeps it enabled all the time. When DisplayPort is being requested later on, a mode change is needed. This re-initializes the PHY. During re-initialization the status variable has incorrectly been cleared, which means the tracking information for USB3 is lost. This is not an immediate problem, since the DP side keeps the PHY enabled. But once DP is toggled off, the whole PHY will be disabled. This is a problem, because the USB side still needs it powered. Fix things by not clearing the status flags. Fixes: 2f70bbddeb45 ("phy: rockchip: add usbdp combo phy driver") Tested-by: Igor Paunovic # Orange Pi 5 Plus Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 13649b52e99b..da0fa75fc9f0 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -1007,7 +1007,6 @@ static int rk_udphy_power_on(struct rk_udphy *udphy, = u8 mode) rk_udphy_u3_port_disable(udphy, false); udphy->mode_change =3D false; } else if (udphy->mode_change) { - udphy->status =3D UDPHY_MODE_NONE; if (udphy->mode =3D=3D UDPHY_MODE_DP) rk_udphy_u3_port_disable(udphy, true); =20 --=20 2.53.0 From nobody Fri Sep 25 07:22:55 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 6412247A0D1; Tue, 15 Sep 2026 13:50:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480203; cv=none; b=Li6a551Oh1qT4dVOvKDKxgUOGDN2Yh6xVUnlZdzGZCNhdE7B3pS8O9g3wHS2PA3kcd+SRP1JFz4pB7YiIeSFmeHZiohrLK0dbFHYFSGcmQ6YGaLPGUV4Ul/StINL+6wXokX7N2oZ/EBqsoK1KvB7SWy34WRml93E4rj6I53P1+4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480203; c=relaxed/simple; bh=UnafG6WVYfNQdZQ6MnttjKf4JKywJdob+S2exj7Gm4w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=juhsWNlP/RsZ2b8n2Nj60zWthK/yzFmPijmUXMZwloLz5NuUhNOWt4QcaL2eO38kZAA80LxQS3SLl/Tl1lU03B3f3lgaM0Pk/UkbUU8lIMgcbUB4o4r98b7rJyrAqCBY6Lv+PHIxi+jf4Ej+Uuy52QccTkIca7FshdMWnmpKwYQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=YnWnp6kR; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="YnWnp6kR" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1789480198; bh=UnafG6WVYfNQdZQ6MnttjKf4JKywJdob+S2exj7Gm4w=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=YnWnp6kRXwgoN1xsnCBZQnxPpTkI2j1KOR40duYfzfoIL0umPqeoDXSwznt/ilsEB qK6vtjXS2u3yGtAxoUOXcHD5zaTEO9k+IdmycByMebLKM+DIalkItCWSy/OMzenpKu fbvn3XveFpHTzTrJgUBK6FLz1dtYiKAWJSp7T7Hc6ddzrDOYspza965/iKAAGrmtrt FoQJOBIHmZWx0G5QX+kh2FRPgO7/rUZg2FhmUReZG8yfdD8LgEQUb48qagxyJn0mXX b7v7h7i152XR24+p8BCE810/SsiF2vGZRAEI96p2muQPxzDeuCLqyVVfjwxlL/Rc1N IW+UOW0yyvG4g== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 8040D17E0A32; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 2EA7C480031; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) From: Sebastian Reichel Date: Tue, 15 Sep 2026 15:49:51 +0200 Subject: [PATCH v15 04/16] phy: rockchip: usbdp: Fix devm_clk_bulk_get_all check 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: <20260915-rockchip-usbdp-cleanup-v15-4-80e2c11d1ce8@collabora.com> References: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> In-Reply-To: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> To: Vinod Koul , Manivannan Sadhasivam , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , Igor Paunovic , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel , Sashiko X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1722; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=UnafG6WVYfNQdZQ6MnttjKf4JKywJdob+S2exj7Gm4w=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGqpTQUqeqG6Mf1w9I3YCMtzPDXfcQtRFM1xW +j6XaWsHLxd5YkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqqU0FAAoJENju1/PI O/qa5igQAJ+eNDZzR1H3qV7s7rudtb1vag4zvdXkoiFthFjDLjU9lgTk1xga2L0N5WKiElkAC8v i+jGVp9BQprY11oyM9aoEluS6FIt3HTrgxvwsp6FjgkJGpjk+7EQfahjSfsGnt4S97f77PE4AS+ yM6VUF/SuyATviLe+SKpoJwwG7F/+/QIZHQ2fzCGbuh39SsUBR0DdPOY8OhQPYtPm9qFn4sJvpe PcsQemgNR8HS12MF10i07UoqfvM/nv50u5JBFW7c3UJbrMhD3amppoBrkTIMK9A2bzdeNZ66mGB 1+ekuntcxmspPvE/yMLKkmJECkZCgPEPXqOSFl7FeS489AExm4ssleo1Fob2OyvQ/wGEwlOtQYs LRaUUXTnNRWBddX3I8Yep0bIgH/r4CPRpXk04cV9ZgXRIio5gGFKMTHqAhDJWoB9TdW4xO78jCJ OQdalD3w5CwRIJHzyYCDUOYWrPltTzyyhAdUs/wOcQrcE2qB9fnwzd1qqBtdPokPf5PXDXX4qrB X/ge2axd0Kch/6UzLdYZoMfWZLj7QtWRzyldbjgY0u0it16xRMU0ALx1yKpjupx1kA7JmMuj5Xq FMgXhA1vmpS+2qclU2GXHqiqjWQY8BYlMcy23YNCtAj5Ib12N7rlZKKmslxbCmaIDq5a1t+T1kM RpWnU0N5ItIcMl0CkwsArGA== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A If devm_clk_bulk_get_all() returns -EPROBE_DEFER, it is replaced with -ENODEV, permanently failing the driver probe instead of allowing it to defer. Avoid masking the error code to fix the issue. This effectively drops returning -ENODEV in case no clocks are being described in DT. This special case will now be handled by the follow-up check searching for "refclk" and exit with -EINVAL. None of this will be hit in practice, since the driver is only used by RK3588 and RK3576 - on these platforms the DT is validated to contain the clocks and the clock driver is force probed early. Thus there is no need to backport this. Fixes: 2f70bbddeb45 ("phy: rockchip: add usbdp combo phy driver") Reported-by: Sashiko Closes: https://lore.kernel.org/linux-phy/20260612164107.C7DB21F000E9@smtp.= kernel.org/ Tested-by: Igor Paunovic # Orange Pi 5 Plus Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index da0fa75fc9f0..c6cda0b80bfa 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -426,8 +426,8 @@ static int rk_udphy_clk_init(struct rk_udphy *udphy, st= ruct device *dev) int i; =20 udphy->num_clks =3D devm_clk_bulk_get_all(dev, &udphy->clks); - if (udphy->num_clks < 1) - return -ENODEV; + if (udphy->num_clks < 0) + return udphy->num_clks; =20 /* used for configure phy reference clock frequency */ for (i =3D 0; i < udphy->num_clks; i++) { --=20 2.53.0 From nobody Fri Sep 25 07:22:55 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 D6F643C8C48; Tue, 15 Sep 2026 13:50:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480208; cv=none; b=CH/GGvQPcFfwKXXYqIvY19QJIIfzidd97p/+CjVf+7CckM0+FRfJdLQUb3goNKCZhjC6Q4NtDHzfeje5TsSTANCat+nTHMHKreiaIPRUvwiq9ok1Rsce07l3a0NGxzVA1Mqo6fwrTr0S9D+Thkd6hcAGy4rXnMk681HuQJjr/TQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480208; c=relaxed/simple; bh=vswEIu9Vf4rsFEgSwN3S8wzjXFBYhtVhUdWv0v1IcQU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kTlpvKZuKlALrmWM4A6TV1imXIiUxp2mkQr4JKj7XLYRHn5YWi75VqSDnm9w3Sja5vpjL7NsyP8oc6wX5glo+yijjxUFD5RjSMo9P+llLYWM/9NqLEEzm3WAlmVPaiP5Jklk0qi6PMGZ9LC1IYmena95ckWQv2/JPZAjlvrc9Sc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=Z0wa18VI; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="Z0wa18VI" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1789480198; bh=vswEIu9Vf4rsFEgSwN3S8wzjXFBYhtVhUdWv0v1IcQU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Z0wa18VIHXQIvcBUVncI/gS4flzDgHMa8K0sEqBpp5SbSvjxgA416yILzc8eXVAiM oDLhLmloNEg2SjmGrh2DBajGqbR75uLcU0TppvnL228KEazNLKkI1GIpj8tgXfw0Q9 Ru9XF6ZkBtxVqbTaaOoCRiFh0NpYCrhgn80UYexThoxqLgY350wqeqaPJjZNGfXF7J 1CoxwD29Wjy3FkKk8yPOMwHV74yKCVAQsvBXU5lW0Sa4dtn9F0jSPKaPPul+2Neuoo VCofvpHurPnXjUoZl5VN3WALXycLTXelAQtZSzPj7F3iuT994S2qYUwpt82o7rIM7u L8t3sOk5D/rxg== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id CE2C117E0B0F; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 30673480035; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) From: Sebastian Reichel Date: Tue, 15 Sep 2026 15:49:52 +0200 Subject: [PATCH v15 05/16] phy: rockchip: usbdp: Handle missing clock-names DT property gracefully 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: <20260915-rockchip-usbdp-cleanup-v15-5-80e2c11d1ce8@collabora.com> References: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> In-Reply-To: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> To: Vinod Koul , Manivannan Sadhasivam , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , Igor Paunovic , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel , Sashiko X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1371; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=vswEIu9Vf4rsFEgSwN3S8wzjXFBYhtVhUdWv0v1IcQU=; b=owJ4nAFsApP9kA0DAAoB2O7X88g7+poByyZiAGqpTQVYYVNwwp4mbUZlXo3+265HLCWpxp0Sm OVSOMSNL2bkdYkCMgQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqqU0FAAoJENju1/PI O/qaBj4P923eaOGsSviB7JLlFjPTUl24y6ysLEbKA1SKclz6weNbjNPOx8RrUzXYbCc9lb4vBR2 g3nzoQEy0tbfG/OuQEgteOjIoFcfJRAJPH6XApzevvDFGO/Vk/SDOyEUEZ8gpi2zUMh/P8ES6g3 WRwS/wPzPjbsucY1HHYvdFLJ+Lu8Tf0fc6bkvqBB3r+MvNM7ozNTHfTgHw2Z4MfZVuZL/ESDRAh UXfDU8TgV2Gs2xcJYlwK38WcdlceBRS9Ih5fOIhPXVa6sSrVWF+wB7bEbgEIJugNqdSG1fOGW1p 5Fq8UbowaLDrxWj6k7+9/GlSXwiCLZcGfJGWi4AgDkf88Qd4YG8+BBGTghvc66UJW9K07ZMkvZu QocIiSiSSOz0yCaGrLZKfW0hJSQMu34YSFbd4yk+4J+IO8dkRby7Atd1PUGrsKn/CmLG0+gFc0g 5QXmjud+PZ4Z3irkPFDzu/IfYySfmJZdvLHq2VgX4SnzIONTCNZknY8wyZ4iMzDw9nMi9B/eVgi NgxOl6O8MlYGXWZ3xsf4n4ITtzybbC/+q6QAm1LMs1kq1Ds8DV9VLw4H+YQ9Mb+K6lxPkrzqmnd QZm5QJFkyc0bvGIyOnqtVkaC9TtP4GV0zluY0kT7FaHgcrZzHJhagGFnJTdTUYfoasxOhD7TO9+ 1oDAJn9CErF+N3ZKpTCmc X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A The rk_udphy_clk_init() function would currently try to do a strncmp for a NULL pointer, if DT specifies 'clocks' property, but no 'clock-names' property. Fix this by making sure the clock has an id string set. Note that DT binding requires setting clock-names, so this is only a problem when booting a non-compliant device tree. Fixes: 2f70bbddeb45 ("phy: rockchip: add usbdp combo phy driver") Reported-by: Sashiko Closes: https://sashiko.dev/#/message/20260619154349.071321F000E9%40smtp.ke= rnel.org Tested-by: Igor Paunovic # Orange Pi 5 Plus Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index c6cda0b80bfa..93364728bca4 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -431,6 +431,9 @@ static int rk_udphy_clk_init(struct rk_udphy *udphy, st= ruct device *dev) =20 /* used for configure phy reference clock frequency */ for (i =3D 0; i < udphy->num_clks; i++) { + if (!udphy->clks[i].id) + continue; + if (!strncmp(udphy->clks[i].id, "refclk", 6)) { udphy->refclk =3D udphy->clks[i].clk; break; --=20 2.53.0 From nobody Fri Sep 25 07:22:55 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 27B0348AE0F; Tue, 15 Sep 2026 13:50:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480206; cv=none; b=sTeOJvrPd6msBf+zOK70qzXBs5WY6sNBtKMdJ8BUE9ea5voI1zduDzGdtybticUL7kU3lsx5GKSaoC3Ta7EASsloskw/v+Tpc2R5kBgWCbfoCJfR59Xq4ZOq9Ff7wUYpv/8IMcVLhEW2kiebRDDmScrHZAvvDcIi1Diq5KiDL1Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480206; c=relaxed/simple; bh=N+INfekjBuMMcmVtdluU91Yp7X4HAVVFxtjs5huV+jE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aM8CV1zemlcxRvFNXHhESRIvHu489jdKG9FIpt8ybQb0z/UcTJqJJJdaWQqXPrKOfgzQsbXU6tTwpr2jgvgQbDlLECcMzlgC/lZoBNjBkirWz91R39hvLRnNjJ+UZu3RvLbnDDURss1fhQtN7aF4Co6pssa8fv7swZ7AS7zu8dk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=R8QbAGbJ; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="R8QbAGbJ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1789480198; bh=N+INfekjBuMMcmVtdluU91Yp7X4HAVVFxtjs5huV+jE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=R8QbAGbJSkoD0RntpphifopB/AELDqPSo/VA7wvmeTRF4bgUpcboQTCBBgB8ydJtx bn7Qw5yvV8XRy/f/L33YVUJkfPOuv6TUtMs5FGOK4LxbqXlommrkVSS2+4Z7ieMhuy bKb0d/DhNIfT2fcQJwk5xCtzVWlASCcyghoEF7bjXGpP78e9togsUHkehNv/q848yB vaEqtZKa6n5/0ILavnn5IlV9xT9mQO2C4CaliLgQqBkjtNNNuCkvkQbCgePNwhO7cg N6rvGwFNrT+b4c4IJaWyRDB8CFYBNh7PW7IKdb4mxEGL1iFcbI1OpbYfTSC1xi1KVF a/wLkZLrKceqg== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id D10E617E0D43; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 32177480038; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) From: Sebastian Reichel Date: Tue, 15 Sep 2026 15:49:53 +0200 Subject: [PATCH v15 06/16] phy: rockchip: usbdp: Drop seamless DP takeover 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: <20260915-rockchip-usbdp-cleanup-v15-6-80e2c11d1ce8@collabora.com> References: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> In-Reply-To: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> To: Vinod Koul , Manivannan Sadhasivam , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , Igor Paunovic , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel , Sashiko X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2952; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=N+INfekjBuMMcmVtdluU91Yp7X4HAVVFxtjs5huV+jE=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGqpTQVXaiHDpK/jYvhJuEZ8yqy2vpCUkBS9w 6OWjAY4PIZ29IkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqqU0FAAoJENju1/PI O/qa+7QQAKQXQuiI1Hlx3jJoBPi0Bgv2RUKweW6KGUL8ffYIDK8nFLOpYmVQ/w/JoHxKTBWsrcS zfZcR4VXTCAuthPe4qLxfwfn7/slcc5xny2im54RShzqVMmAcWBfF6jX5P4gLoWCUBeIYEfc36d kG2v+2LoYCXn6BDwF17WX36hgNfcP26X5WI0rcNeGKhF8klzNzWiSf1bR3XL2kH1YBXAqvW7Qgj fPX9qx2lEEITyj2ytmCuQ9quFcSQjopUVQtcKS2Hc5aZFF5/w2l2hKz101uQYVDCod/a3xNB58p 5BPe8enJs3XkBq8eMdC5eoTBwHx56JUnHwRGcECZJSDitC2Y4tpLO6c11WTZkG2pCiWdjsyrkP4 Na0OT5WC+oxwAlCpgcQqJ1pmT+6+ntYGFDOoHrKBqE2vGnsb0MQ4K7E/uFo5SIjnDR8TofHgHON ggbAOBwjc03xk+oGBrXIjUEFWgLegfRZWpmTfPupcQP8Cadk+gbJ06cQ/9TVNO0BHfZcN+1VSrB ry1NqpEPifMLUqOKXa84Z92wWYO98S3b/99s5VDqWr45eFAsy7aJWYmlc++8VjdHeqGCuN7Kd+x gwg6cyzwyawJSrrCZXhtcIRqn0qPUFqLGwCUN3G8rf9igQwpJlRU1R+mafeq8GADDAS53SiVp2f VwUrr3XqTKYkdnX9Ym2Uozw== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Right now the DRM drivers do not support seamless DP takeover and I'm I'm not aware of any bootloader implementing this feature either. In any case this feature would be limited to boards using the USBDP PHY for a DP or eDP connection instead of the more commonly USB-C connector. With USB-C's DP AltMode a seamless DP takeover requires handing over the state of the TCPM state machine from the bootloader to the kernel. This in turn requires a huge amount of work to keep the state machine implementations synchronized. It's very unlikely we will see somebody implementing that in the foreseeable future. As the current code is obviously buggy and untested, let's simply drop support for seamless DP takeover. It can be re-implemented cleanly once somebody adds all missing bits. Fixes: 2f70bbddeb45 ("phy: rockchip: add usbdp combo phy driver") Reported-by: Sashiko Closes: https://lore.kernel.org/linux-phy/20260612164107.C7DB21F000E9@smtp.= kernel.org/ Tested-by: Igor Paunovic # Orange Pi 5 Plus Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 31 ---------------------------= ---- 1 file changed, 31 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 93364728bca4..ce2b74a28801 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -451,11 +451,6 @@ static int rk_udphy_reset_assert_all(struct rk_udphy *= udphy) return reset_control_bulk_assert(udphy->num_rsts, udphy->rsts); } =20 -static int rk_udphy_reset_deassert_all(struct rk_udphy *udphy) -{ - return reset_control_bulk_deassert(udphy->num_rsts, udphy->rsts); -} - static int rk_udphy_reset_deassert(struct rk_udphy *udphy, char *name) { struct reset_control_bulk_data *list =3D udphy->rsts; @@ -923,28 +918,6 @@ static int rk_udphy_parse_lane_mux_data(struct rk_udph= y *udphy) return 0; } =20 -static int rk_udphy_get_initial_status(struct rk_udphy *udphy) -{ - int ret; - u32 value; - - ret =3D clk_bulk_prepare_enable(udphy->num_clks, udphy->clks); - if (ret) { - dev_err(udphy->dev, "failed to enable clk\n"); - return ret; - } - - rk_udphy_reset_deassert_all(udphy); - - regmap_read(udphy->pma_regmap, CMN_LANE_MUX_AND_EN_OFFSET, &value); - if (FIELD_GET(CMN_DP_LANE_MUX_ALL, value) && FIELD_GET(CMN_DP_LANE_EN_ALL= , value)) - udphy->status =3D UDPHY_MODE_DP; - else - rk_udphy_disable(udphy); - - return 0; -} - static int rk_udphy_parse_dt(struct rk_udphy *udphy) { struct device *dev =3D udphy->dev; @@ -1494,10 +1467,6 @@ static int rk_udphy_probe(struct platform_device *pd= ev) if (ret) return ret; =20 - ret =3D rk_udphy_get_initial_status(udphy); - if (ret) - return ret; - mutex_init(&udphy->mutex); platform_set_drvdata(pdev, udphy); =20 --=20 2.53.0 From nobody Fri Sep 25 07:22:55 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 1924A4A0937; Tue, 15 Sep 2026 13:50:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480208; cv=none; b=uGYDd3MdKeu+4/w47O0n5xltrax/IqPCCCZM/G0feXq2hf1MiNIzIbAzUyg/WOdQz5DU++nJKAmSzMBa2I4uu8wYvW0eBdEgvM69695iCsfQNak4/nLaZK3fFibE4USYQ7mAI7xnxg1+fvSCpkX2mO88WDnpNgJLOCZn+vz3/JU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480208; c=relaxed/simple; bh=d5GB825LNqN+zbMxFICV103mC5FpJzqsVDt16HZ9mE0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VWqkq7ulAPkogum0D3WOUOaB1xRz/VATKHkHDBEks5j1mI8lCxCX5y8c+3T/uLavWi+fEziGwZx3ODQSj8GeDAFx5FjS5f0sT+nblLCYSzRlPLqiLZsU7xdVrzNS9KBdWRRvwvTZr0YPjQNOJy5IkavJ6XDI7e7CLhRuhT0xrh8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=N6yEisZl; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="N6yEisZl" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1789480199; bh=d5GB825LNqN+zbMxFICV103mC5FpJzqsVDt16HZ9mE0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=N6yEisZlWu/cXFKAVU+xyJj64s9r1VTATo45cH/WDBPvmigMRqxB2NPKkVYUgticm g8zxQRDEaOyvjL5Dh19kyCR5E+nVW8BP9HtD9yI91W/oqR6V/O4fLUG/VsK//TZGjf 3jR5bOBGHBxwc5fD10snhiG7gvqnFZgf9ti1RcRuArMOT3ye+fPEdNpbehA53pONgK KMzEadNhrw5+RQb4h3Xunj+rYNV0nMBkNs8wh8Hu5yLDNf6yDzakP6rN70Ss4AFMd3 dlk6daToGjZTwhZJU9Ed9HWl1SufdjGakZKIdoV0nI03bgrArtI1dGv1sgCt6LJBEQ 4Tr6ydE5+/UvA== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id D49F417E0D69; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 33B9B48003A; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) From: Sebastian Reichel Date: Tue, 15 Sep 2026 15:49:54 +0200 Subject: [PATCH v15 07/16] phy: rockchip: usbdp: Keep clocks running on PHY re-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: <20260915-rockchip-usbdp-cleanup-v15-7-80e2c11d1ce8@collabora.com> References: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> In-Reply-To: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> To: Vinod Koul , Manivannan Sadhasivam , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , Igor Paunovic , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1230; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=d5GB825LNqN+zbMxFICV103mC5FpJzqsVDt16HZ9mE0=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGqpTQX0uKnUDw/lq9s8Z3VY3pqb/JPVrL72+ kMbQTa+x8YCJokCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqqU0FAAoJENju1/PI O/qak3kP/iQphZ7bvCsVMYnQ6rFYgqlnmOtG19oVQpKsrDUSvkhmFT+vin0YJjyQQ0VFsCE72km NfrGcMifQYnGlkPw+SpYm2qzZSF3tZdNCaS8a07XTcLj7pS170dpiYUuXrfG2/FjMAYA0SP2T5D YhDFWBXoq48j5f07xF5X6Nn53Bd1ltqyFFdDQhLTzP07UR2+plDcK2FRzsaHk1kywi+8xbx0JsS mz0nY/uggZf8irAqbvDHRwq9OGmljcgbJpapUTLUnbhlij0d8MRjH2lNighYdZ0ZwlSteQcD0zs tGJequVGmQnlSW0DTktcbZCsJ2jNC9D6AHeoqSedMBdJ4NeDCAACTcDuab5StWvskqqR1eY3QIM QJpdKJ1bzfXVeZeP45vRGaOAt1DAHYBtN0GnfgebT67ueceXOA6iHjXIqfqImx5EH5eeNjGu9au +oZKsNkwwAJ444bvwF828H5TTbDTcD43ZQ3cd8GsSOOY9b/1U44/J5kBdwzKqi5h08RpuqkLPfk 89TPYJnututwy2HvmbUVGi7XyLqM1khX2WCD8ZMBRGOyWV7HyXLmHVTxOW/4mgzsB3rJ5m27E+J OtWhZZFqpoh0gfzDwYFcZxmGA2/r6EpcFUqNtI6pCyqHlZ2eXEViGcuJjaQxd9qRHjpd45yQk1d f/W4n/ZMIQrHbiSvVQA0uWA== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A When a mode change is required rk_udphy_power_on() disables the clocks and then calls rk_udphy_setup(), which then enables all the clocks again before continuing with rk_udphy_init(). Considering that rk_udphy_init() does assert the reset lines, re-enabling the clocks is just delaying things. Avoid it by directly calling rk_udphy_init(). Reviewed-by: Neil Armstrong Tested-by: Igor Paunovic # Orange Pi 5 Plus Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index ce2b74a28801..925f2d162212 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -986,8 +986,7 @@ static int rk_udphy_power_on(struct rk_udphy *udphy, u8= mode) if (udphy->mode =3D=3D UDPHY_MODE_DP) rk_udphy_u3_port_disable(udphy, true); =20 - rk_udphy_disable(udphy); - ret =3D rk_udphy_setup(udphy); + ret =3D rk_udphy_init(udphy); if (ret) return ret; udphy->mode_change =3D false; --=20 2.53.0 From nobody Fri Sep 25 07:22:55 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 193934A0EE6; Tue, 15 Sep 2026 13:50:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480209; cv=none; b=ZQG02nRqWWYMH9S9Hbkpj8fmZRfowh9RNFXT9Z6eX6RYozUFQUp4JMSzrAhbA4d+4Az8bg/ALdbJrsxzWPDn9pX+YHtiRdZ+CV4IoG7Vl0Efy6d9+nSrpHmENQB5gSL1FtukF7sai8b/FMqso13RAqiZwrzJP7DDTtZLzWoT98k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480209; c=relaxed/simple; bh=sj9LBh28iAOPdKC2Yk3iBAPDw/iU870tFO75CLAFURw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DniIbmucF8r1rUt8yyhxXlHa4LVTg2em2X6i8v2uqGi9jx5hndGf0qrZKdmtY2KacAwl/l/zSesUzw9sL71jLEh9wOhGc9Wj5U/ikc2Lwry1GOmYblYqdy8wuzOVZijfLRtQY+ANPEfw9tIiMjzMIv/jSlvjAHLGWSfgVjvld3k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=JEgRlZ/B; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="JEgRlZ/B" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1789480199; bh=sj9LBh28iAOPdKC2Yk3iBAPDw/iU870tFO75CLAFURw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=JEgRlZ/B+KK74YnwUdsf2qtsN1MLgxw8O5T00EcuaYfG6QXvizjVhfnLbIfKdZaV4 DdxJ6csbVDEfHSNzEqkWFPBWEp002KzGsSnVtveBuRdNzBiMaLrxoAZiNKzI85jOJz I0UqxOvKM5bUrniHYwmH/4gWH+KthBsZaIstLg/BvEUfD1RR15wsexEOZKsP34LKjb /IhWgw2a/OmgFZ5jMleqcWuq9MkHnFGuLJUp0MWAEwoNL/oPvatMWuj9e0EHh1ljcW vaGONoQQwdBQoqIE+gJeMA/dgUr8NGj5jiAnBRcOJ1pgORLiYM0/h9XcqCeYhzN8HJ B10YNM9I3hbUw== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id D7D5817E0D7F; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 35C5B48003D; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) From: Sebastian Reichel Date: Tue, 15 Sep 2026 15:49:55 +0200 Subject: [PATCH v15 08/16] phy: rockchip: usbdp: Amend SSC modulation deviation 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: <20260915-rockchip-usbdp-cleanup-v15-8-80e2c11d1ce8@collabora.com> References: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> In-Reply-To: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> To: Vinod Koul , Manivannan Sadhasivam , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , Igor Paunovic , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1834; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=1Q1JW1JnKNYhx66aUCknN/wu+6hBR/DH+Mx6zdtRaUU=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGqpTQXPaIxRkb5kjjtuP4ok1jEwKIvhPwJ8P CE32ThhaTymWokCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqqU0FAAoJENju1/PI O/qa8h4QAI4It8W+Uui97+UEHo2/alY3B6AGcn6av2UWNmhv6smvxwMeSeO+S5GtA6wcj9jZKGo Fd8rCGSbSYiBjd0qB39cYLEevl/btaie1YLV1O+1xTIxDDaj6Myexmok83OzvpbuqPB6GP5P2B8 aKLDcgomiJKQbqNPbmT51IJtjEH7QA+3isugidM3moZhQGTZ29e68zBKwMCuHonFoLDvG/j5Mzf r2CKwMvzL5Frc0unzbVbfI2+eIew1wkT3Nzel0DHyCeoaM28pXse7Lr6CWEGjQlP25h+nKBNdoq gqQTC1c42QGXyfHb4FBqZUdKau8bM0hYHaLPMXR4XNptwusvEQdqubBMHVv7lxKTRRaO7F0nqRn wdL/I2h5rp5T8Zo4JlQiN35ZpoxYjLSqqd//nGwXws+Yetc/VXDp5R7fmaiv6WcC1CreEc+4XdQ hwpb5Pq+L6QGko7dGBYK7xELkIs3WhucTAP4Rjww6c6fcJq6EJseoDHDJpMg54ui/VzmH4C9JEh lWRkY20KY7sq0Jq89Sp4N3jy8MVoQvVI93NCAom5VyS0o8kxq7dnGk6Cc+kU0ZN7n9RbX0wxn/g qXL3+tqLW6Lt9MsJWcWqjmCwamXb2kHYv9lSWrDEVxdtRN8/6ynw99o2sdB9/ucAo47FX+q+sS/ 3NtYy4xihVPbcEToKvUYsyw== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A From: Frank Wang Move SSC modulation deviation into private config of clock - 24M: 0x00d4[5:0] =3D 0x30 - 26M: 0x00d4[5:0] =3D 0x33 Signed-off-by: Frank Wang [Taken over from rockchip's kernel tree; register 0x00d4 is not described in the TRM] Reviewed-by: Neil Armstrong Tested-by: Igor Paunovic # Orange Pi 5 Plus Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 925f2d162212..586363f5ca20 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -349,7 +349,8 @@ static const struct reg_sequence rk_udphy_24m_refclk_cf= g[] =3D { {0x0a64, 0xa8}, {0x1a3c, 0xd0}, {0x1a44, 0xd0}, {0x1a48, 0x01}, {0x1a4c, 0x0d}, {0x1a54, 0xe0}, - {0x1a5c, 0xe0}, {0x1a64, 0xa8} + {0x1a5c, 0xe0}, {0x1a64, 0xa8}, + {0x00d4, 0x30} }; =20 static const struct reg_sequence rk_udphy_26m_refclk_cfg[] =3D { @@ -376,7 +377,7 @@ static const struct reg_sequence rk_udphy_26m_refclk_cf= g[] =3D { {0x0c30, 0x0e}, {0x0c48, 0x06}, {0x1c30, 0x0e}, {0x1c48, 0x06}, {0x028c, 0x18}, {0x0af0, 0x00}, - {0x1af0, 0x00} + {0x1af0, 0x00}, {0x00d4, 0x33} }; =20 static const struct reg_sequence rk_udphy_init_sequence[] =3D { @@ -411,8 +412,7 @@ static const struct reg_sequence rk_udphy_init_sequence= [] =3D { {0x0070, 0x7d}, {0x0074, 0x68}, {0x0af4, 0x1a}, {0x1af4, 0x1a}, {0x0440, 0x3f}, {0x10d4, 0x08}, - {0x20d4, 0x08}, {0x00d4, 0x30}, - {0x0024, 0x6e}, + {0x20d4, 0x08}, {0x0024, 0x6e} }; =20 static inline int rk_udphy_grfreg_write(struct regmap *base, --=20 2.53.0 From nobody Fri Sep 25 07:22:55 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 01FB04A0911; Tue, 15 Sep 2026 13:50:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480208; cv=none; b=J9v/aAWz2g4pTGSYxEBF3IDYlAq5Mc+22wQkLHH+QoBGH0ShsPCp1tSWQbTNklT9BxS02DDbIc1LoYNMWW6BI+p7BLHjwf7Yc5gSdZirPPMnPtsvQWm6Oyod5K5IxRLDZ07RqhVw9PuRHoyS+CJxRCjNY8tAdHWo2CjbkES14OM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480208; c=relaxed/simple; bh=y2m60hChrXXxlzuOZEOMDxiIQSiccue3k4MFtLqjIJ8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=iEi1OSYi5OKCpFb/ooA8zAEWhnQqmXONfwjqKHuwGtDr6VDL2fhG6P0F4nkgddO8HMX7KMh73ZKs4QQn49vDH91EISwzs4DFEiJB4WmI1g2aHXNIhAU/GRMUx3W5GztQmGtVdYsOu6FWKgUP55K0r45lE/BbtXj4GGO0rY6DV7w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=Z8sUcD8a; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="Z8sUcD8a" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1789480199; bh=y2m60hChrXXxlzuOZEOMDxiIQSiccue3k4MFtLqjIJ8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Z8sUcD8axMffnXza5m5u8L29FiwUe0p73a2BqFIZl1mvNDpIGs72NTc67esAjCB6z P4a/HA+ut22P6mTehagDCeQvL+eV64yHXS8iVbFjEd62PV+riE4RFT7812UmtKEQg1 F3NFxFa8/Es6khndv8giNK//OteUMxiwsCF94Dxy/3eRRkwLNiRJEpQrN0tLO+wy/6 tFGx3kHN8iIeA0O1YNP/rys9jJk4Wv3i69eklwCfbr5HIWL4UTlgJeyH2XhtQGgQU0 UXE0FvVtjNs7t1lw1Z4gruCYH3ZZWov1/IWUYvMLyilBhQ8xcCHIBTsY7qkgptQGBo J5KX5nijqez4Q== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id DE96117E0E2F; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 37D47480047; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) From: Sebastian Reichel Date: Tue, 15 Sep 2026 15:49:56 +0200 Subject: [PATCH v15 09/16] phy: rockchip: usbdp: Fix LFPS detect threshold control 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: <20260915-rockchip-usbdp-cleanup-v15-9-80e2c11d1ce8@collabora.com> References: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> In-Reply-To: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> To: Vinod Koul , Manivannan Sadhasivam , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , Igor Paunovic , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel , William Wu X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1590; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=SCkj94xNP27ZtEskhfHly5BCRxHy0FGBwjRYBFgRqc4=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGqpTQVEaTORrx2FRjxM6V0U3K887nRldDGsg 2S1dy29N7/HiYkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqqU0FAAoJENju1/PI O/qaRz0P/2CmHTGRTg3ZxAItLSOJhG2sOeHqYquZWocxImok+eq6bTqWB9CsUNFPefk5UdoFS5z jqXIcKv2Yly/YTddDKONQlnHDNY4GNhc17UODMUpNN+6vSxPHpoSNq69HMEXOGwumXU8Ek3uFvP uACHA7kRg1KyBpzZkwRvs+MMxltDBQunfQ8/R2tKaFyFMrd6pHSHwydvpYaT8WzhjFjMj8L0AOg aeosISXtmtNlgRKLsmjT36zhRIbjSOkhwLaV0NyzWTwN+ff0Z7emWtjsTRfzoHXWi6a38D+OJwE 4ocAV2HzTeEwPQXfl4c2lkbu0M0JNolGn//xDMr+iW3TbyBhYxPbhYsjZxTuprPWrSXPz6Y0p2U KxFj7dMevzs2UlMgTKC44AawHGGiXAuHmrCwLmEjZ9YUjZ/NHvB7TG6lXE9fTM1N593oaQPX7Kk dHSCMjxpQC+Tkis7hzA6pps2utHuqZvZEFEnjdw4/lqEo2gK33CEswVYiXt4Gh9ZZbfzD/CsMbC YOsC+wevoxrdiBo0+QFpsJOXYoz/Ey6Erik6dvd2o3D8UBC573v8X3SyLSGE6yFlobNNnRBfPoE jmJAalFz/pJkxlFja8ZXBBOrmNFXkg9dbppgeX7RYjKCFIMdqQEZFU5lODZ9Dq2B+ssqakWivN+ /BPdwELKa7q3ltxtlN+0mkw== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A From: William Wu According to the LFPS Tx Low Power/LFPS Rx Detect Threshold [1], the device under test(DUT) must not respond if LFPS below the minimum LFPS Rx Detect Threshold 100mV. Test fail on Rockchip platforms, because the default LFPS detect threshold is set to 65mV. The USBDP PHY LFPS detect threshold voltage could be set to 30mV ~ 140mV, and since there could be 10-20% PVT variation, we set LFPS detect threshold voltage to 110mV. [1] https://compliance.usb.org/resources/LFPS_Rx_Tx_Low_Power_Compliance_Up= date_Rev5.pdf Signed-off-by: William Wu [Taken over from rockchip's kernel tree; the registers are not described in the TRM] Reviewed-by: Neil Armstrong Tested-by: Igor Paunovic # Orange Pi 5 Plus Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 586363f5ca20..665a4636d9dc 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -412,7 +412,8 @@ static const struct reg_sequence rk_udphy_init_sequence= [] =3D { {0x0070, 0x7d}, {0x0074, 0x68}, {0x0af4, 0x1a}, {0x1af4, 0x1a}, {0x0440, 0x3f}, {0x10d4, 0x08}, - {0x20d4, 0x08}, {0x0024, 0x6e} + {0x20d4, 0x08}, {0x0024, 0x6e}, + {0x09c0, 0x0a}, {0x19c0, 0x0a} }; =20 static inline int rk_udphy_grfreg_write(struct regmap *base, --=20 2.53.0 From nobody Fri Sep 25 07:22:55 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 5F03F49EC58; Tue, 15 Sep 2026 13:50:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480210; cv=none; b=DiAbnuopPm5xDX9OZSwSvfiun2PlO7jjAyx6cGBs3QObxdI+PMM+5/VUYhxfXjTVSXR4nCtL3WFlf1a/T1BdN9WC/hjaIgIrYcjsvanw6W0IJb3KabtQHMD5b9rflFQIzgF3xxNkZZbZ+vyeQeFhu1ac2cX33OeVG+1MlEwwRmg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480210; c=relaxed/simple; bh=o0FGCw5J/jf60dEE8q6l56wHTYH0NY6afnOYqwmS3Gw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VXE2Ui/nqu/35cnfWtxLF+v6oYxyokaK2p1RByHX8WI6zBqMdcV6Or2STfZxazvpRqGK0iX5/fvjiAmXX5ilcdGpA89f4xFhqovrtKc7W5qwSOS1N02E/Ews62aOie2+pkauUL4o6AGZBEEcKCLDl1e0suf86k7p3ByM99+9KGg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=YE/cqDM4; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="YE/cqDM4" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1789480199; bh=o0FGCw5J/jf60dEE8q6l56wHTYH0NY6afnOYqwmS3Gw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=YE/cqDM4pswPaJbXYBr5Ng9umlCi4Rhb/qeZ0uuHoUwnxqIyki8zO8ZQoiLkoUAEq dYQll/v34yQ4RqZO/pMdA+XlmXnkoYyLv9DwrcIi+vXVzoIPybJULEoiVLDKIocR2u jjxQdMyo2whwQNBoRMgH/T7GKHtSvk+q6z7hOZdefUL0NnYXGXQ6IM1T0NpSJSWOyn zgPmmMjIGkgEgm8eG1n+rhJkTv/h7GjcdLh89cuop6vvQ6qNINlQz+PxmTKCJaNMsc mxyT0jtERyOYTMjwNM1tUrclKhnkjAfcqtSAKiGx9EFpLZhgwljCd/9vzkX7t8S8d4 r4nWf3ruvwWwg== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id E206117E0E3F; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 39697480048; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) From: Sebastian Reichel Date: Tue, 15 Sep 2026 15:49:57 +0200 Subject: [PATCH v15 10/16] phy: rockchip: usbdp: Add missing mode_change update 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: <20260915-rockchip-usbdp-cleanup-v15-10-80e2c11d1ce8@collabora.com> References: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> In-Reply-To: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> To: Vinod Koul , Manivannan Sadhasivam , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , Igor Paunovic , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2075; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=o0FGCw5J/jf60dEE8q6l56wHTYH0NY6afnOYqwmS3Gw=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGqpTQWP+d6kfTCUtfBW4lqyc4f3zJDqcW6iU wCAz/LiZ87NeokCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqqU0FAAoJENju1/PI O/qaus4P/i+kMUGeBRw5KlnSw4XmgxV6GFK8ya4QCxT5qNMfXRSvhfpAWYua6VPYd7JvBFSUUuz 1vcYzt53nRMM3xH6JeUn6y74ed4Xpm5+ttFKNcSW3QhEpTkTYYWmB1gxLHMIL4u22iQ2XiWh6sx JOIJk7uvqvQvrW6z7VTUFod0qjfglANwxzQIPO/UWshkmxZFnVoj+sehSiCsRpPyxfTdSWGVQLX bk9EVTc10/5jtdHJO8+Pu6t1Dn6aesJu1dXWMbDAYx1lPIA3Nm8xPJc68+IsckSiVSmx0XYl8IJ Vly9tg6B/Hu0tLLHvmvxp5jqiXUzrraVS/8dNMyxnufdFhEe77hvyYJIZNcjzZMzXX0rB+sWuaC q7GjOiYRS4osG58ll0LW1zYhjMvl4Gn7eo2xR23RgXozvi9gGerzAiftU2AjQ52AmtRGKOni5um ZSpLv1xJNUkzU03tMYsg69v7zIhYfn2skWjI+nh1CzTiyKqz2ueJH+lRMssDUMV+7xBpevb6jOJ 9AdgzLgVZGsR5LQs4XErP2YSQlX85dPgOyBi+kiuhFdf8Qn3b5KExgLExfxXg+Xy7Im8LXUvYQD HHFWexeeUj10sn5X+I9h2pwn/BKffB5L+HOBj52HzdEv5/xFbpi1+tXUGkJEcdChVqb9QhCic38 p+wbDvC/e7C4OGH7rihY7Ew== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A rk_udphy_set_typec_default_mapping() updates the available modes, but does not set the mode_change as required. This results in missing re-initialization and thus non-working DisplayPort. Fix this issue by introducing a new helper to update the available modes. Reviewed-by: Neil Armstrong Tested-by: Igor Paunovic # Orange Pi 5 Plus Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 665a4636d9dc..b72daf80af15 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -616,6 +616,15 @@ static void rk_udphy_dp_hpd_event_trigger(struct rk_ud= phy *udphy, bool hpd) rk_udphy_grfreg_write(udphy->vogrf, &cfg->vogrfcfg[udphy->id].hpd_trigger= , hpd); } =20 +static void rk_udphy_mode_set(struct rk_udphy *udphy, u8 mode) +{ + if (udphy->mode =3D=3D mode) + return; + + udphy->mode_change =3D true; + udphy->mode =3D mode; +} + static void rk_udphy_set_typec_default_mapping(struct rk_udphy *udphy) { if (udphy->flip) { @@ -646,7 +655,7 @@ static void rk_udphy_set_typec_default_mapping(struct r= k_udphy *udphy) gpiod_set_value_cansleep(udphy->sbu2_dc_gpio, 1); } =20 - udphy->mode =3D UDPHY_MODE_DP_USB; + rk_udphy_mode_set(udphy, UDPHY_MODE_DP_USB); } =20 static int rk_udphy_orien_sw_set(struct typec_switch_dev *sw, @@ -1360,10 +1369,7 @@ static int rk_udphy_typec_mux_set(struct typec_mux_d= ev *mux, usleep_range(750, 800); rk_udphy_dp_hpd_event_trigger(udphy, true); } else if (data->status & DP_STATUS_HPD_STATE) { - if (udphy->mode !=3D mode) { - udphy->mode =3D mode; - udphy->mode_change =3D true; - } + rk_udphy_mode_set(udphy, mode); rk_udphy_dp_hpd_event_trigger(udphy, true); } else { rk_udphy_dp_hpd_event_trigger(udphy, false); --=20 2.53.0 From nobody Fri Sep 25 07:22:55 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 773A34A2604; Tue, 15 Sep 2026 13:50:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480210; cv=none; b=ASslELMwQ5xx5ZBeVgPLuZ2OroIriUg9qcicBl5HfW0TRXa6mrdszjI7yUQGDY7VfJJbP8L6kd9iaI1cdIdLkCs+izKW/Wte2mg4p9/xN1zjk6Rp3FTgajwnbc1L0UnTWi7WYPHO6IpTxlFtmzPD+h1Mm+pDXOC+P3RsSSQW2uU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480210; c=relaxed/simple; bh=o/02ggx7WUen0/PHdGWgIuzO1QSnKNMmvNBPc+mlTjM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=N0vMbqcr0YX8LRNCwh9UrLB1n4UODOZfoIUr285vvvz7Czkad8bdLHLLlpbSTnTOOkB1gLM/HOt1UNrd9sUdJAjDYYbbj7sT/n6EVrbiBSE6FF9tYK2OLLONecSSSMIcK3y6aY1VIgLdOi0eeujcLpM+w1O4/NBTigbVQ6ifNdA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=Sv46ZnsV; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="Sv46ZnsV" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1789480199; bh=o/02ggx7WUen0/PHdGWgIuzO1QSnKNMmvNBPc+mlTjM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Sv46ZnsV+fs2iQvksHkwPvch3Pos9ICaujrGAlDcxrpIPFeMltO4/1yUmi/jq06n5 nJCZpbska16VaTlqsm/8sA3F9O8UP0Qob+M6iIMEhhD9IOYzEXPp9zWZWhkmS9OBPM XmqvDcWqYlZPEPevIDupkIKnbi2KU+p468A1tJ/FeyPTj/fFnanIO4AF8zaBH+MXMr g8rwJBORGnyW2KebQZap8ZKxa4dm84Sa7m/bthaESAQqD4zW0WuK1gNeG4NEaFI8Ks J53BoUTclaLmcBFTol7tOJTLddRBah8oi+5+a2UtlfO6VJ8lQO1kcdqZ9Iela3bUGt h8tWQPRc80Grg== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id EDE8E17E0E64; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 3B1B848004C; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) From: Sebastian Reichel Date: Tue, 15 Sep 2026 15:49:58 +0200 Subject: [PATCH v15 11/16] phy: rockchip: usbdp: Support single-lane DP 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: <20260915-rockchip-usbdp-cleanup-v15-11-80e2c11d1ce8@collabora.com> References: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> In-Reply-To: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> To: Vinod Koul , Manivannan Sadhasivam , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , Igor Paunovic , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=5416; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=eN34PeYWnfoezd6jtXbgg2b8Vjce6MJt7Pdnt6YhkXI=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGqpTQWtmP4NS4LqDKPrEZW9QS4NLGPAwhlZz TovGllLJFplEIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqqU0FAAoJENju1/PI O/qaBhYP/Rx/cCelCkgXsqiOY6tukbB3MbSCUN8dd6h/NCyhS/VjsuAYqq5HNUwBywGOySroZ8n 0H9S6oyGOq1u6FOyK6E4ZF6UpXoEASdZzSKh3uPBTwxPBerwy4Cs6FYP0sUQO/egCAUwVNGEY4t WYnU4lUus7B1DYL6+jCiU0o3pahYPvx4/NWIt+wtaNCSXYj9XAQf3klccCeZ1MzyLUoW0MUrfH8 RirAOAPnEn6Klz6G+NKrwPoXcSAgycu8PZmu0pJcjgvOesFI4f7LZSKq43deRgrV2SjA+a+ky4y h3yXrALArJNtM/1bXrkPQxTIZyfY5zsDFqW/Xpo3rLmUZs6wOYtDyj+Kcv4TQw4PLM5Bvp1HjFg JUsg5NkhYO2FaKLx19+1Xs5TFSi6JPxXeVJ8+L8hi1MtFJ1t6X7gjKgq4Q8JDKSjKHYyNvuv2N0 CKbyO213EE6DaL9uArSRSRRn2wIZPgTDK7tnFh8Ni2kx7BSoGugPXKaaPzAt5xflERyy9pg5s3c r9JSrAYR51sdISEZpfK7qmQk5tZPHxjxT4aPDpA7c2QqQ9fLAWoojP3FzIsk1KAdJ2Icr+ltOhl gVTh2Pk8D5mo3081SWxmJ26SeplDOw8LWJEh+Ma5o4sFxwjW3c533d78QQxtOoMvWkKisaljC9+ QRGrdSyyMpOmh7dcjuKwfWQ== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A From: Zhang Yubing Implement support for using just a single DisplayPort line. Signed-off-by: Zhang Yubing Tested-by: Igor Paunovic # Orange Pi 5 Plus Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 64 +++++++++++++--------------= ---- 1 file changed, 27 insertions(+), 37 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index b72daf80af15..4fce9cd66473 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -192,6 +192,7 @@ struct rk_udphy { int id; =20 bool dp_in_use; + int dp_lanes; =20 /* PHY const config */ const struct rk_udphy_cfg *cfgs; @@ -534,6 +535,13 @@ static void rk_udphy_usb_bvalid_enable(struct rk_udphy= *udphy, u8 enable) * <0 1> dpln0 dpln1 usbrx usbtx * <2 3> usbrx usbtx dpln0 dpln1 * -----------------------------------------------------------------------= ---- + * if 1 lane for dp function, 2 lane for usb function, define rockchip,dp-= lane-mux =3D ; + * sample as follow: + * -----------------------------------------------------------------------= ---- + * B11-B10 A2-A3 A11-A10 B2-B3 + * rockchip,dp-lane-mux ln0(tx/rx) ln1(tx) ln2(tx/rx) ln3(tx) + * <0> dpln0 \ usbrx usbtx + * -----------------------------------------------------------------------= ---- */ =20 static void rk_udphy_dplane_select(struct rk_udphy *udphy) @@ -541,18 +549,18 @@ static void rk_udphy_dplane_select(struct rk_udphy *u= dphy) const struct rk_udphy_cfg *cfg =3D udphy->cfgs; u32 value =3D 0; =20 - switch (udphy->mode) { - case UDPHY_MODE_DP: - value |=3D 2 << udphy->dp_lane_sel[2] * 2; + switch (udphy->dp_lanes) { + case 4: value |=3D 3 << udphy->dp_lane_sel[3] * 2; + value |=3D 2 << udphy->dp_lane_sel[2] * 2; fallthrough; =20 - case UDPHY_MODE_DP_USB: - value |=3D 0 << udphy->dp_lane_sel[0] * 2; + case 2: value |=3D 1 << udphy->dp_lane_sel[1] * 2; - break; + fallthrough; =20 - case UDPHY_MODE_USB: + case 1: + value |=3D 0 << udphy->dp_lane_sel[0] * 2; break; =20 default: @@ -565,28 +573,6 @@ static void rk_udphy_dplane_select(struct rk_udphy *ud= phy) FIELD_PREP(DP_AUX_DOUT_SEL, udphy->dp_aux_dout_sel) | value); } =20 -static int rk_udphy_dplane_get(struct rk_udphy *udphy) -{ - int dp_lanes; - - switch (udphy->mode) { - case UDPHY_MODE_DP: - dp_lanes =3D 4; - break; - - case UDPHY_MODE_DP_USB: - dp_lanes =3D 2; - break; - - case UDPHY_MODE_USB: - default: - dp_lanes =3D 0; - break; - } - - return dp_lanes; -} - static void rk_udphy_dplane_enable(struct rk_udphy *udphy, int dp_lanes) { u32 val =3D 0; @@ -656,6 +642,7 @@ static void rk_udphy_set_typec_default_mapping(struct r= k_udphy *udphy) } =20 rk_udphy_mode_set(udphy, UDPHY_MODE_DP_USB); + udphy->dp_lanes =3D 2; } =20 static int rk_udphy_orien_sw_set(struct typec_switch_dev *sw, @@ -894,7 +881,7 @@ static int rk_udphy_parse_lane_mux_data(struct rk_udphy= *udphy) return 0; } =20 - if (num_lanes !=3D 2 && num_lanes !=3D 4) + if (num_lanes !=3D 1 && num_lanes !=3D 2 && num_lanes !=3D 4) return dev_err_probe(udphy->dev, -EINVAL, "invalid number of lane mux\n"); =20 @@ -920,9 +907,11 @@ static int rk_udphy_parse_lane_mux_data(struct rk_udph= y *udphy) } =20 udphy->mode =3D UDPHY_MODE_DP; - if (num_lanes =3D=3D 2) { + udphy->dp_lanes =3D num_lanes; + if (num_lanes =3D=3D 1 || num_lanes =3D=3D 2) { udphy->mode |=3D UDPHY_MODE_USB; - udphy->flip =3D (udphy->lane_mux_sel[0] =3D=3D PHY_LANE_MUX_DP); + udphy->flip =3D (udphy->lane_mux_sel[0] =3D=3D PHY_LANE_MUX_DP) || + (udphy->lane_mux_sel[1] =3D=3D PHY_LANE_MUX_DP); } =20 return 0; @@ -1049,18 +1038,17 @@ static int rk_udphy_dp_phy_exit(struct phy *phy) static int rk_udphy_dp_phy_power_on(struct phy *phy) { struct rk_udphy *udphy =3D phy_get_drvdata(phy); - int ret, dp_lanes; + int ret; =20 mutex_lock(&udphy->mutex); =20 - dp_lanes =3D rk_udphy_dplane_get(udphy); - phy_set_bus_width(phy, dp_lanes); + phy_set_bus_width(phy, udphy->dp_lanes); =20 ret =3D rk_udphy_power_on(udphy, UDPHY_MODE_DP); if (ret) goto unlock; =20 - rk_udphy_dplane_enable(udphy, dp_lanes); + rk_udphy_dplane_enable(udphy, udphy->dp_lanes); =20 rk_udphy_dplane_select(udphy); =20 @@ -1340,6 +1328,7 @@ static int rk_udphy_typec_mux_set(struct typec_mux_de= v *mux, udphy->lane_mux_sel[2] =3D PHY_LANE_MUX_DP; udphy->lane_mux_sel[3] =3D PHY_LANE_MUX_DP; mode =3D UDPHY_MODE_DP; + udphy->dp_lanes =3D 4; break; =20 case TYPEC_DP_STATE_D: @@ -1356,6 +1345,7 @@ static int rk_udphy_typec_mux_set(struct typec_mux_de= v *mux, udphy->lane_mux_sel[3] =3D PHY_LANE_MUX_DP; } mode =3D UDPHY_MODE_DP_USB; + udphy->dp_lanes =3D 2; break; } =20 @@ -1500,7 +1490,7 @@ static int rk_udphy_probe(struct platform_device *pde= v) ret =3D PTR_ERR(udphy->phy_dp); return dev_err_probe(dev, ret, "failed to create DP phy\n"); } - phy_set_bus_width(udphy->phy_dp, rk_udphy_dplane_get(udphy)); + phy_set_bus_width(udphy->phy_dp, udphy->dp_lanes); udphy->phy_dp->attrs.max_link_rate =3D 8100; phy_set_drvdata(udphy->phy_dp, udphy); =20 --=20 2.53.0 From nobody Fri Sep 25 07:22:55 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 5EF1747A0A4; Tue, 15 Sep 2026 13:50:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480209; cv=none; b=sA+sPzvJdeH4F0KOPIpJLFVpsGascrvtc1V2JM9+Ui8XmjGjJUNp7OjV+gQC/TgGSFk7o6RhO8JP26YBAY7ylqe6jnnTiDSL4UuvJNhL18D33/LUD5YsIvOFnT9DR7ete94JkJGk6OrijVWriknIYxsfHaG+kebp4WeTX6jlk1k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480209; c=relaxed/simple; bh=KvyICF3HgIcEWsbr4qstgUGWW6/KHBg57XV0O9FNuBs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ju8xxb5/we8QzcUce95MQjNe7G+qTIweStNFI345Ysg/iUA50zdOymj8NqkNW8hx2PxP1KrDaDgbObGIxrfbdFXanOsYf5d7io9wMsQfojuC4gpBIWebq+HLV0sJH+nBrwkKiqbg543ooiKYGJAK8FoP4pFDmcjmsSyRBWsIFk0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=hwDs45W4; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="hwDs45W4" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1789480199; bh=KvyICF3HgIcEWsbr4qstgUGWW6/KHBg57XV0O9FNuBs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=hwDs45W4RnRaWuipiA1+HJ1/jQ7W01+uRd3Nu2f0i8Nlq0p+KzNaj4gj65RzUumTd mBQ3SwmK24RKMDYtXXLez9KdDpnWQivjyYwq/1KZufJ4AGqlWSXswRNmxb3+u/z1Zv R/GhDvN3zSX5HQzjmjJ//2GYE13cJ+/uAFYAi7QoQUzPL9DRAcdFkNstCYD3BaTp2F 0EZl9f8T+AoF2Spns7EmvUQ+p3GqB7HrEtBzaACk+3m/3NvX1SQPsrylNANHhcHPIj PPHFRnoffs4VPJR32QVpIteJMwOvA7rcP5/Akzqbb0t6j+/bDfDpHbsJhf0jkYammI nGk3bWVkLDoZA== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id EC8D817E0E61; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 3CA9348004E; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) From: Sebastian Reichel Date: Tue, 15 Sep 2026 15:49:59 +0200 Subject: [PATCH v15 12/16] phy: rockchip: usbdp: Limit DP lane count to muxed lanes 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: <20260915-rockchip-usbdp-cleanup-v15-12-80e2c11d1ce8@collabora.com> References: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> In-Reply-To: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> To: Vinod Koul , Manivannan Sadhasivam , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , Igor Paunovic , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel , Sashiko X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1353; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=KvyICF3HgIcEWsbr4qstgUGWW6/KHBg57XV0O9FNuBs=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGqpTQXr/SgVMWBtLxhlK5ztWfDiB+hni4LfA vbTUb3qCkhb/YkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqqU0FAAoJENju1/PI O/qaat4P/1HGWeVd3jWl/h6nyS0YmSWsGLKM6WTpyJbVgRDuNocQHPnCmNFm46amPRqDzDUG12z 4FOuobTwTaG+P1pJBux9MM+dRfJJ8Dgq+rQx8+Aw+fPmKWLGqSV8daQ72LvsU8KHgq7jheoWjRu FKFZcMp8rtRXQ7N7cOg0e+/XZg0shPWdF/RTtr2I9Rx8n+wGyJgHY4dzP3uAI0xy40vdFQlrCkp LQN17sKFF9jqoldZomCsxybsLDjKZT6BUfQB9N6GsDlhTgNpyxhG4mVd8jgeSR7YC9Faa3xWzxC +jcpnsfgfItimHPbB06tjEvUxAilN8FwsrEqilulyNtDowgvr3TIRGaxwEW1/qr3Jb7lfrMKsvs 0sRi088ccXf5gjIKr9+EOQqxFaDt2O4Con5UrxMt4NhpyZDmyfWjYv5ZGTf/kS7gGviVbalLLaq BFv5FoJRq4NwB38Quswq40c0zBDFgVS0+nVlhlOG4AhJW+4PbqsCMIwd3uJ37pHeOj7byrD8IR0 ZjTMEn4AdN22HyQUh8qjVWiFPpIntCCgreVe1v75Lxw/VLVIXhx8uioKjt8rW1yAmE39WnJN7xe OToNpN7gxRB9N7yFShBQF41ajAJZBbUkfDcvrkUwVZVNdK61KZCpXkl3d38g3KeROuP/PPd7mPF WKOsDlMR4wYdXqHjh5vwvZw== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A In theory the DP controller could request 4 lanes when the PHY is restricted to 2 lanes as the other half is used by USB3. With the current user (DW-DP) this cannot happen, but as the check is cheap and users might change in the future protect things accordingly. Not doing so would corrupt USB3 usage by the following code configuring the voltages. Fixes: 2f70bbddeb45 ("phy: rockchip: add usbdp combo phy driver") Reported-by: Sashiko Closes: https://lore.kernel.org/linux-phy/20260612165546.98E1F1F000E9@smtp.= kernel.org/ Tested-by: Igor Paunovic # Orange Pi 5 Plus Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 4fce9cd66473..2af7c3878714 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -1098,6 +1098,9 @@ static int rk_udphy_dp_phy_verify_link_rate(struct rk= _udphy *udphy, static int rk_udphy_dp_phy_verify_lanes(struct rk_udphy *udphy, struct phy_configure_opts_dp *dp) { + if (dp->lanes > udphy->dp_lanes) + return -EINVAL; + switch (dp->lanes) { case 1: case 2: --=20 2.53.0 From nobody Fri Sep 25 07:22:55 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 50DEE480979; Tue, 15 Sep 2026 13:50:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480211; cv=none; b=afKwTqz+pd35RkI6p5BJwtgE42boIHK6LI6iMEEhkBgr4ajBtYGze3XjmYiPK22TlUmzC6zevGaH+cs4FakdDFAVY+rGUet/oOrd7q23vBcZL8F3DldGnhOVRxOXo63KZVdkRsECWEtHEdbTCqIiWOjnLDaKj9Bfi2ZjdO2zpP8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480211; c=relaxed/simple; bh=4oCqXMxVsoIyOffGedtIRbbdIb/gE7Hwhb2soSG3s0k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=juIgrYFQOVJ8CkHmzBHb05kZiNnYNycaeCQgflwhoBINmF0Z6LQ+gTpG++m4WqJ4n2+eBeqCbJXQ6LLaVasdI3bDmR74J8lW+kpsr00KvuAh5a7SZgtUcaEKv9Lqhfkc9YJj5thTA8C7zma7DVXqPyoW8UmULD7oVkKq0RG2xoo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=okbQGXNc; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="okbQGXNc" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1789480199; bh=4oCqXMxVsoIyOffGedtIRbbdIb/gE7Hwhb2soSG3s0k=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=okbQGXNcdKbvdFRXh6MisO4zRMxjQ+o9Hdd6EsP3T+WbqHtXfxBbD+1MOtVygwfz5 +bOD8t0cCxhkwHqeIJfXp0XtCax4Qbu51/Ge9vhglRUr9xYnbHXdZWR2cvBC7aa10g jFuqIN3Gn3hXPppvTbC41d45e3dCo26xVQJFHvu8+HZX2jT2jNeN7J/d0vL06RaR+C vUM2iRceLCbLWfTW+ltJqqCpzmV68lxqLevL77K8Z1jGquP+jmatOmZ5EL6tPy9Ote /JJVmxjU82cxbjG+/SXFB1H0w6Ip8RSp2WD/H62IY138pMnQOtXVDTj5tHT4+JJ7No 9Pqd6/wJvlChg== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id F415017E0E6E; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 3E30A480052; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) From: Sebastian Reichel Date: Tue, 15 Sep 2026 15:50:00 +0200 Subject: [PATCH v15 13/16] phy: rockchip: usbdp: Rename DP lane functions 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: <20260915-rockchip-usbdp-cleanup-v15-13-80e2c11d1ce8@collabora.com> References: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> In-Reply-To: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> To: Vinod Koul , Manivannan Sadhasivam , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , Igor Paunovic , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2076; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=4oCqXMxVsoIyOffGedtIRbbdIb/gE7Hwhb2soSG3s0k=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGqpTQaY6fxS4bdODL0YA+d228P6N18rkZrJS +1o792WF0UHJIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqqU0GAAoJENju1/PI O/qaookP/3aBDQDQAKSTVuEWLQwC5RLE/YY8exHHuAL2TwtpAh2DUB3OJcjSUMACS9Faepyx9v3 0jVmK7xNFP7QP1k+pZvo+0l8adbumMey5OKUCc096dmhUvf6onqfDcukaflBLxJR+Oup7Bw0BTg SLmnHvfionGPA0tX7Pm2X0n+O9MHKyZJZz+9bYhGKUhFSn9NIbTzJwJ8VASdm2XUGZV0dpUyEWS WOsSvrqILnw+XW/PgDoWcRyi5bspeu9N+aG0GP7dW2dJL19mmFCz+MoIwFKlhQmPDqn1HTk9OwX hQVA7PE0LNlFOKUBxiHyF6jJlFJNgk7Et5Bo8ALYj3cxxE+Hh3SQXrIS/Gqync9/ycTBW8+stvw 1FiPnPH4yTS0QJq7SiuADPyOJ5Eu96AD6wjokadEkGR2hxzi5bjtKvoOZWDWiHKmJ85HY8VQeYm fkJILPXPWOEzsUhNZvITQ2RHIN8QQPl8Au1gmGcr37GGJkKKLjdcH0Fm7HJmWigbfsazxXtvZoH qfAaP8xopnOPdHssCw3iyuY3rmDYKFKyrqz3/L+vhGdB+9x6V2FRWFCzFsk5T2MIUxv36z6pkPP rkHNC1UEpveg8m1k/rUl5y+t1yYIQC89EXfEOQHIo9Ec5RHqdTpWB1ImIwIWOQk2Z/shb32QZ0A ilulJEWc4fgvBGTSHLksoMA== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A The common prefix for DisplayPort related functions is rk_udphy_dp_ (with a final _), so update the two DP lane functions to follow that scheme. Reviewed-by: Neil Armstrong Tested-by: Igor Paunovic # Orange Pi 5 Plus Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 2af7c3878714..9dae41239e48 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -544,7 +544,7 @@ static void rk_udphy_usb_bvalid_enable(struct rk_udphy = *udphy, u8 enable) * -----------------------------------------------------------------------= ---- */ =20 -static void rk_udphy_dplane_select(struct rk_udphy *udphy) +static void rk_udphy_dp_lane_select(struct rk_udphy *udphy) { const struct rk_udphy_cfg *cfg =3D udphy->cfgs; u32 value =3D 0; @@ -573,7 +573,7 @@ static void rk_udphy_dplane_select(struct rk_udphy *udp= hy) FIELD_PREP(DP_AUX_DOUT_SEL, udphy->dp_aux_dout_sel) | value); } =20 -static void rk_udphy_dplane_enable(struct rk_udphy *udphy, int dp_lanes) +static void rk_udphy_dp_lane_enable(struct rk_udphy *udphy, int dp_lanes) { u32 val =3D 0; int i; @@ -1048,9 +1048,9 @@ static int rk_udphy_dp_phy_power_on(struct phy *phy) if (ret) goto unlock; =20 - rk_udphy_dplane_enable(udphy, udphy->dp_lanes); + rk_udphy_dp_lane_enable(udphy, udphy->dp_lanes); =20 - rk_udphy_dplane_select(udphy); + rk_udphy_dp_lane_select(udphy); =20 unlock: mutex_unlock(&udphy->mutex); @@ -1068,7 +1068,7 @@ static int rk_udphy_dp_phy_power_off(struct phy *phy) struct rk_udphy *udphy =3D phy_get_drvdata(phy); =20 mutex_lock(&udphy->mutex); - rk_udphy_dplane_enable(udphy, 0); + rk_udphy_dp_lane_enable(udphy, 0); rk_udphy_power_off(udphy, UDPHY_MODE_DP); mutex_unlock(&udphy->mutex); =20 --=20 2.53.0 From nobody Fri Sep 25 07:22:55 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 BF51B4A1DED; Tue, 15 Sep 2026 13:50:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480209; cv=none; b=niKYcVVcANuoYPuQBZHqd7FxudpU9c8/E9Wd/tfArQTtl0SugYYXwz6ETZC9Pk6G/E6ubLT/mkteiy1an6e36CqynailxcY1i8M9r0S7U4mnNr6MWG8kBZGoWD4nzZrC0UnTDSeKmazuctuwGRJop4ZQAmrWYtWt+WaH0+lRiMg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480209; c=relaxed/simple; bh=9VMQh39CWRjHT3gfwr1EesYUI9gwspmu8UF0atDN+3c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GFfP8rq6ul87ZCm+xigswow9ks7di5IKkign1rmjqLrNXNLyPxuCFReKF9LjYkeZf0VL7N+nGiYrTTobxYdjN/jTKl1CvCLc7S8dwXbA7vgaltnVFZos3GCExJSdBYrqnQeA6YH23Yx2dpVHkkRkTj0e2IqLCaNsDFwvxZUd6go= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=atbBGLW1; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="atbBGLW1" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1789480199; bh=9VMQh39CWRjHT3gfwr1EesYUI9gwspmu8UF0atDN+3c=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=atbBGLW1t4S36gylapB2P2U6aILW7hv77CwOVYl0htHMy5aAfwAmQLCj4Uk1lDrqc 6fEkzW8adbfMdtRsKZ1ix4daOeynfAxtFNXZzRFfztqVstPNUtTL7AuqbRsFjsXi1r dRkP0gWtfpOod0XsirxdAofhlTgl+IGlMK5y+7Wc0CfXHqImOzrhL5XSrZLWfBjIO3 RFElF4crcVM7hJYIt8+oI0zCR1GpgnMSaHFyz4llxumIbmhqhFSHkpJKJF2dh9hD4H r74oMp1vL19pgqmfuDy+6Jwz1+k6hWlur7t4Ac0HjheMi12FXXGF1cpMMzhZXlRxbC ApdljWPSaAu8w== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 0650817E0E71; Tue, 15 Sep 2026 15:49:59 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 3FC2B480055; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) From: Sebastian Reichel Date: Tue, 15 Sep 2026 15:50:01 +0200 Subject: [PATCH v15 14/16] phy: rockchip: usbdp: Use FIELD_PREP_WM16_CONST 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: <20260915-rockchip-usbdp-cleanup-v15-14-80e2c11d1ce8@collabora.com> References: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> In-Reply-To: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> To: Vinod Koul , Manivannan Sadhasivam , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , Igor Paunovic , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1614; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=9VMQh39CWRjHT3gfwr1EesYUI9gwspmu8UF0atDN+3c=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGqpTQYznBMDL+f0+xGlt5Gypk8LaeHM/t2WF Uf9FQw1hlZ4TokCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqqU0GAAoJENju1/PI O/qaQUAP/2+pgTDfnaN04Meq97fi3/xKN78cLmIA7pRVhe50d1hY5kxyy2i12qVfAA4NUv2/F/E XDYBIDv2/IfYxxqDUh0SUkwYJLMKo9X9pA/rLEzDFX9GoslqYC+QuLb/VBN6AJahH9/D+9YhFon xyt5bQZNGyMy3yjUwu9esnAn2PkjQmf8xLTQlWndQy/eY2XS6rj5CE6x0gu7i7mECe6NkZMz8dP /feKWnEFa6VH6ArNCFROAg+PPKfqex6x1B6AIlF5nl2djmk3953f6aZe5FgUU4E/ebZqgcm7baV 2nrGLCJOxuBBXQYtTbxsNPfrOgLGVU5TKwYpVVHS9wgaMqdDHfJiEFuOuXra6PgFiNQV8EnHi1Z SIKeWknkrQXFmLrDIjUBGNHEnX2jaDNOXIIeLKFj7oVTlRMKNm+foPxktZWtcWMTic4OFpxfnxQ H02Li3Q/Pb+c3RNjzaTQHWknhAB/jSt4GDTRuFhFNt/lycGScIITI7O92Y3c+2DGMaGp7hQcKu2 i5O7VCkjwd+E/kf5WnfxbYUMKQfFJNjgItbT9986wENyxXdql/9evSnoAd9qR/lKCfs4XOmEnTR FERlxnk9OemE3WLVDS+6p3lJYJi8Xyicp0PIqAP5MQEbAVT1gbRhsrN4G4uOLNTZEVO5qMnM4bz 56ARRD+BSHebhHrrOtlwrYg== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Cleanup code by replacing open-coded version of FIELD_PREP_WM16_CONST with the existing helper macro. Reviewed-by: Neil Armstrong Tested-by: Igor Paunovic # Orange Pi 5 Plus Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 9dae41239e48..d95a44835caf 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -74,7 +75,6 @@ #define TRSV_LN2_MON_RX_CDR_DONE_OFFSET 0x1b84 /* trsv_reg06E1 */ #define TRSV_LN2_MON_RX_CDR_LOCK_DONE BIT(0) =20 -#define BIT_WRITEABLE_SHIFT 16 #define PHY_AUX_DP_DATA_POL_NORMAL 0 #define PHY_AUX_DP_DATA_POL_INVERT 1 #define PHY_LANE_MUX_USB 0 @@ -103,8 +103,8 @@ struct rk_udphy_grf_reg { #define _RK_UDPHY_GEN_GRF_REG(offset, mask, disable, enable) \ {\ offset, \ - FIELD_PREP_CONST(mask, disable) | (mask << BIT_WRITEABLE_SHIFT), \ - FIELD_PREP_CONST(mask, enable) | (mask << BIT_WRITEABLE_SHIFT), \ + FIELD_PREP_WM16_CONST(mask, disable), \ + FIELD_PREP_WM16_CONST(mask, enable), \ } =20 #define RK_UDPHY_GEN_GRF_REG(offset, bitend, bitstart, disable, enable) \ --=20 2.53.0 From nobody Fri Sep 25 07:22:55 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 5CE3C4A3F08; Tue, 15 Sep 2026 13:50:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480212; cv=none; b=U0q7sFIb4We/BWlOCmP05vd4F5Ebn2GBi85loiZ07U3MO6EvXgwuQYp29kreQWg02K5P99v/kAhWx0Px+MpzIOinDzd8y4bsQ7yI6IgMYfL01a1remEPSnpuOpoXEvcPK4hIhpaQ6nIbm/sp+W6Bu7Ms3FhbDhYQS5TtI/bTrbc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480212; c=relaxed/simple; bh=w4qlIQNDkvn6mYAhbX6ekkV61cS1siUZ4+py57NB2Lc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=n4jfsB3IPGHXf0pIkW0uyOqDn1o5pE9wD+R73t4aUdhBo9ox6eqiASU9kAa2Pk/5xyToH8aLJRlrKhU9oh3+mos1D0YFMQkJZWkxp0WTKlD4ILGRJg0SAIAX6WtVpsl6Ve55zxoCzugWyZ4yHAjJ2l0f2MnqF5FwA6BaZB4ZVJQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=aAxnPxu1; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="aAxnPxu1" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1789480199; bh=w4qlIQNDkvn6mYAhbX6ekkV61cS1siUZ4+py57NB2Lc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=aAxnPxu1uhS8qhMGbwVBFT9ZcUqWjFvVUBARB1+xCrDMIJEq67tEhdGjRvVxOVSXw LGo7IIYgTMD6bavprLlqk+cjqLUThX9oszeHPz4DYAA4/RHW6TYKhxlO1jRjHrcvf/ 2/lixyhwlbVf6mvCrkO0nlYbhY9uwMP7iv6RYshwRPJdUNUynONnjum5wjJdz6x4s0 MLFKqIjNJeKodLTJrboqy8GOm9hC3Hm1FyehORByeRJVl6UuhceE30VEEn7NTEHClT M3bo8Fo+5sva7iWG5MB649vIuZpwLpldZwrg13/prpFFzNBEntfTwbYG5JsDwewuEp iW9OSkWPni4Tw== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 296A117E0E95; Tue, 15 Sep 2026 15:49:59 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 414A2480061; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) From: Sebastian Reichel Date: Tue, 15 Sep 2026 15:50:02 +0200 Subject: [PATCH v15 15/16] phy: rockchip: usbdp: Cleanup DP lane selection function 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: <20260915-rockchip-usbdp-cleanup-v15-15-80e2c11d1ce8@collabora.com> References: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> In-Reply-To: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> To: Vinod Koul , Manivannan Sadhasivam , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , Igor Paunovic , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1958; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=w4qlIQNDkvn6mYAhbX6ekkV61cS1siUZ4+py57NB2Lc=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGqpTQYTtQeglfao+Zjxa2gqbMhBn9TnqMq3E R9IvVcmUzLHgokCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqqU0GAAoJENju1/PI O/qa5LcQAIO1uZpbSoWO7q7f7IJE763tuDf96iTEpKCoJxRBWQqJpqH4zD48XHdCFZKoIpAT9xR OF7kEuu4gUCN4TQL0IqLuj9hPHXKIRHmL0qsaiwe1a8xENL778JOXcAp9SvDv5LVgwd3Uf9QqSK 1GMh0AvGoyMImCUjVuoBiBCakPsnJlvQh5VQG76PYiJLH2HUtfgcRt0vijwFZ8VAsbZi0R5apdE wolr9z87UYglTlwTez8b+HV/FzKndtb+8m2ET3GWvg0MMtGi+QwSfJmffGD8/WSwyY6TPFy97Hl 52WYnyA3aArtJ/LzJTL3M5m8r+ytsj3GTBHTEwoSgmpy384pEdkMaVrnPV+ZloINc3PTC2VMKmf b2xRoUcVnWW+fvCXWnzR84iuIkksY4mRA57UrEBAJhOXVxCQ5sVzoZ+lrBQ2dgHKd+/Y8KTA3ev zwdj6aWoC1YCv6CI+iba9G0Pi5GcfW/newLo9RLCWnw8iDjjQ6eMzIaVIJTNSTxGTThyVxi793R lCqCwNuqiGlb306yLmCS8715aKhAJtbmjC93pvY1o18KEC4o9Gtqe1BHYjtSDEX81RSkDeOgg0h B1NkwcAW1DJWnBWcyGH+iiqAO8edpeE0yBuSMgonOl+ft5UwfXyhQyyIKIgdiLJn3TSv7UbDPji B7POmXsmLbiS5vfeFvjAuDQ== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Use FIELD_PREP_WM16() helpers to simplify the DP lane selection logic. Reviewed-by: Neil Armstrong Tested-by: Igor Paunovic # Orange Pi 5 Plus Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index d95a44835caf..8874f8429a67 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -547,30 +547,16 @@ static void rk_udphy_usb_bvalid_enable(struct rk_udph= y *udphy, u8 enable) static void rk_udphy_dp_lane_select(struct rk_udphy *udphy) { const struct rk_udphy_cfg *cfg =3D udphy->cfgs; - u32 value =3D 0; - - switch (udphy->dp_lanes) { - case 4: - value |=3D 3 << udphy->dp_lane_sel[3] * 2; - value |=3D 2 << udphy->dp_lane_sel[2] * 2; - fallthrough; - - case 2: - value |=3D 1 << udphy->dp_lane_sel[1] * 2; - fallthrough; + u32 value =3D FIELD_PREP_WM16(DP_LANE_SEL_ALL, 0); + int i; =20 - case 1: - value |=3D 0 << udphy->dp_lane_sel[0] * 2; - break; + for (i =3D 0; i < udphy->dp_lanes; i++) + value |=3D field_prep(DP_LANE_SEL_N(udphy->dp_lane_sel[i]), i); =20 - default: - break; - } + value |=3D FIELD_PREP_WM16(DP_AUX_DIN_SEL, udphy->dp_aux_din_sel); + value |=3D FIELD_PREP_WM16(DP_AUX_DOUT_SEL, udphy->dp_aux_dout_sel); =20 - regmap_write(udphy->vogrf, cfg->vogrfcfg[udphy->id].dp_lane_reg, - ((DP_AUX_DIN_SEL | DP_AUX_DOUT_SEL | DP_LANE_SEL_ALL) << 16) | - FIELD_PREP(DP_AUX_DIN_SEL, udphy->dp_aux_din_sel) | - FIELD_PREP(DP_AUX_DOUT_SEL, udphy->dp_aux_dout_sel) | value); + regmap_write(udphy->vogrf, cfg->vogrfcfg[udphy->id].dp_lane_reg, value); } =20 static void rk_udphy_dp_lane_enable(struct rk_udphy *udphy, int dp_lanes) --=20 2.53.0 From nobody Fri Sep 25 07:22:55 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 EC96647D462; Tue, 15 Sep 2026 13:50:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480212; cv=none; b=HrEiI+soAFkzcGnL7fhkMEOfCXnlWh/t6EJyG60DY3i1c79lxcJuEyX/Lv1AGYWGFxFZjsELEV5QI/R1HDXvLPfJjxzxe5qpB+wEmIHLjbhUJWo8RsD0IZ5VuifdVAUIKxBaL1zHEeXNpSKoN+y1KYuPu9ApRK1uQ0pYGysywd0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789480212; c=relaxed/simple; bh=Er006dVNCN0LpRq6BA3LJv12AT3lwxcOksbg6+oxy6Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eDWnLlVctLRO45rzAk4Up9lKnYYvXULgS7uRbQNAwb8DvE+qK88y3KX4bRorzwnUcwxy55ywmz1lEJpby3VeCnEHVlAlCIvgQiLXolf9byiRFsYywMsFTiQOwcJm0WUJxWo5DDeSKqnSUHTKor8MdvU5aD+lBsVh9kUkZWI78js= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=H/6ZCMwa; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="H/6ZCMwa" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1789480199; bh=Er006dVNCN0LpRq6BA3LJv12AT3lwxcOksbg6+oxy6Y=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=H/6ZCMwa5TGZXo5AVY5zHnWSjGZOfU2wfUmtf8VSdW4Npg2fK6iAujnH/dCYzKh0P /KXCjVgjC/ishcT0Q0ALPGb0lrhI0sWhDgnouBE/cufoY+bRWkl1AtK2SYM+uF4BiD pOY+uhQFIcDylECQljoTjuQGgRit40iUXm/Yes/XrIOOZykEXbOswWihsdF2wrYJe4 2WKAN+Tw3yF3Ldiz/oTl9GB35VVBlWCf3hcw3XogbDI28B9OJ2hPEE+J3ZTgARFL3t vfTS9xEtMlcNAbFacuLXjj0VMbmDCmDmb6+yxHDQ3Q7+NwPogsAVwQaInKfpFF/ePn YGxT5uefg8c1Q== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 2F2C417E0EF0; Tue, 15 Sep 2026 15:49:59 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 42E29480062; Tue, 15 Sep 2026 15:49:58 +0200 (CEST) From: Sebastian Reichel Date: Tue, 15 Sep 2026 15:50:03 +0200 Subject: [PATCH v15 16/16] phy: rockchip: usbdp: Register DP aux bridge 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: <20260915-rockchip-usbdp-cleanup-v15-16-80e2c11d1ce8@collabora.com> References: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> In-Reply-To: <20260915-rockchip-usbdp-cleanup-v15-0-80e2c11d1ce8@collabora.com> To: Vinod Koul , Manivannan Sadhasivam , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , Igor Paunovic , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3258; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=Er006dVNCN0LpRq6BA3LJv12AT3lwxcOksbg6+oxy6Y=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGqpTQb9J2jpv5abw+bajDNMJE/vG4t4bhXKV 94xqY4clMc8tYkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqqU0GAAoJENju1/PI O/qadeEP+waqIvOpgvQmD4ds2gHNUsiKUSXilQruRbjPn3rG1t+eeScOG32XevUeoii/384lHXR tprurPFkaSElZnfA93PcZtsQOEl331N/h2zEfKT2uo9DmP+YCqoQw0tggwgfDOUtciPpvzp+aE/ Z7UspmIiE7EEo22i5EytpXoGvnBWl1seH8BKpM+g/w2zv/Mhj7R5aubvTHqJtpCUPwduWjLsF1G mgAuMA9rphT3ldEqzi/0I+sZ56S9h/GFarpBqyybx7GTj52VPe0TnogwsQwtM5sa9ahvjTAOLV8 XD42OWbpEelgWarLbUzroCsZrFV3w9ULl3kAOx4KuNEOogiLc+mXRxCO603727MR0ofiwquNqPI NpMp6rl+s3CXIu7mqQnq9IYkJvGuT+uIbD+2vqiCQo31/RFVI+iKkCRJzJjlmy6mzV/kWMjx7ZY x2wAMs8tAyHC/RGe8hpFPPRVptIHJfSTK7Zk/X0bkYX8Ct3AHnMl4Hr58lTtEY+17pP7E8RLtqA Un/rEojYYKPi9wzCmxtc2XUGQ30s50dcQvXvz/LLy9stD3dtkFYxdGotTjdqGIdiiBxP+gQgyi5 eT8SSdTAWZxZ/twME1xY2w2Ebcy3IQiwVAsOEfJycG9mitnRq87h1Kk5qQOxvOP5kqU84B9NiGl rnt31+WjYYHNaJiN2kIothQ== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Add support to use USB-C connectors with the DP altmode helper code on devicetree based platforms. To get this working there must be a DRM bridge chain from the DisplayPort controller to the USB-C connector. E.g. on Rockchip RK3576: root@rk3576 # cat /sys/kernel/debug/dri/0/encoder-0/bridges bridge[0]: dw_dp_bridge_funcs refcount: 7 type: [10] DP OF: /soc/dp@27e40000:rockchip,rk3576-dp ops: [0x47] detect edid hpd bridge[1]: drm_aux_bridge_funcs refcount: 4 type: [0] Unknown OF: /soc/phy@2b010000:rockchip,rk3576-usbdp-phy ops: [0x0] bridge[2]: drm_aux_hpd_bridge_funcs refcount: 5 type: [10] DP OF: /soc/i2c@2ac50000/typec-portc@22/connector:usb-c-connector ops: [0x4] hpd Reviewed-by: Neil Armstrong Tested-by: Igor Paunovic # Orange Pi 5 Plus Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/Kconfig | 2 ++ drivers/phy/rockchip/phy-rockchip-usbdp.c | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/drivers/phy/rockchip/Kconfig b/drivers/phy/rockchip/Kconfig index 14698571b607..39759bb2fa1d 100644 --- a/drivers/phy/rockchip/Kconfig +++ b/drivers/phy/rockchip/Kconfig @@ -136,8 +136,10 @@ config PHY_ROCKCHIP_USBDP tristate "Rockchip USBDP COMBO PHY Driver" depends on ARCH_ROCKCHIP && OF depends on TYPEC + depends on DRM || DRM=3Dn select GENERIC_PHY select USB_COMMON + select DRM_AUX_BRIDGE if DRM_BRIDGE help Enable this to support the Rockchip USB3.0/DP combo PHY with Samsung IP block. This is required for USB3 support on RK3588. diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 8874f8429a67..fa8324879a97 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -6,6 +6,7 @@ * Copyright (C) 2024 Collabora Ltd */ =20 +#include #include #include #include @@ -1413,6 +1414,7 @@ static int rk_udphy_probe(struct platform_device *pde= v) { struct device *dev =3D &pdev->dev; struct phy_provider *phy_provider; + struct fwnode_handle *dp_aux_ep; struct resource *res; struct rk_udphy *udphy; void __iomem *base; @@ -1467,6 +1469,21 @@ static int rk_udphy_probe(struct platform_device *pd= ev) return ret; } =20 + /* + * Only register the DRM bridge, if the DP aux channel is connected. + * Some boards use the USBDP PHY only for its USB3 capabilities. The + * aux bridge itself will be registered using port 0, endpoint 0, which + * is fine as that is the actual superspeed data connection shared by + * USB3 and DP based on the mux config. + */ + dp_aux_ep =3D fwnode_graph_get_endpoint_by_id(dev_fwnode(dev), 3, 0, 0); + if (dp_aux_ep) { + ret =3D drm_aux_bridge_register(dev); + fwnode_handle_put(dp_aux_ep); + if (ret) + return ret; + } + udphy->phy_u3 =3D devm_phy_create(dev, dev->of_node, &rk_udphy_usb3_phy_o= ps); if (IS_ERR(udphy->phy_u3)) { ret =3D PTR_ERR(udphy->phy_u3); --=20 2.53.0