From nobody Sat Jun 13 06:05:27 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 1FA72383999; Fri, 12 Jun 2026 16:21:55 +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=1781281320; cv=none; b=bMcMf5RO4wGeMwatLACtouqrKxPeCQ4o9H/QFjLqZLQ7hj0iP3Uz8at6LzZKa6h9QhyyhZ8LmGj38l6qT65dHv6Q3tTf9KZIHwT/q77WpgxSfVEvHpmv3LI+1LlHV4pf2OODqQhVUgl7fxeYg6xfY1srmsXbRjvs0WGLSA962I8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281320; c=relaxed/simple; bh=hH0QGrmLbuu/B4YZadFae3inm/JzWTkz0OQ7ld9Btpc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=i7QcsBAYVTL1c+KyXuVrdqJAocp/GCfRepC3shcBOvLZiDo8QFGV5RDn7b0plPurQmBsaYdzAawfd8yJnVhfSDhiJrExN/s1FoqCCz3dShBffv5kclPmf1J3TMWV8bPE6hZeQzwVQxoavdphMaceF4+Nl8e6gjP0dbau+IyLIjk= 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=L2QjEdSR; 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="L2QjEdSR" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281314; bh=hH0QGrmLbuu/B4YZadFae3inm/JzWTkz0OQ7ld9Btpc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=L2QjEdSRYBu/PbO3l0pYhRFRMmEOW2VP9//vn8M2eEyp5ds/OI5oZnWuOhWugq6Oh V3+HmzyMs/9imaSQJMrmNzRdKNa2JHMFWAtXNh5E+dVAMxefX3st6Gr1teZki9aEq0 SAKPHTWOIxigwZ7YYnaJtGAowDl06LxXkUgTQIaRWKBs6nneDldklxSBQIZt1214t8 goIP/XE/k11WVcmC3o7vou5oJwGAkvon6Mw56x66MS+JqFemdDI3m2n8tjHSnKlMOL oCgbRN4l1NQ++3JpejSKvx0zPOvPHuQRdjfooBlJF4suK4MuxsUCwLAQ/eSrdR78UE 4rbcj5elwNlog== 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 2161017E0CD4; Fri, 12 Jun 2026 18:21:54 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id C5B9E480026; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:39 +0200 Subject: [PATCH v5 01/18] 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: <20260612-rockchip-usbdp-cleanup-v5-1-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2290; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=hH0QGrmLbuu/B4YZadFae3inm/JzWTkz0OQ7ld9Btpc=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGosMiG5Iemq4sxCM5HCSvLHN6Ael1pzdCaiy vcVSnInzIDiq4kCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PI O/qajdkP/RnUWBpQreriz9cgkL+/DAKvUgse5zSNC0zYFSSslI8F9e8IHY5qMeKBJV+Zzk0oY1Z Zf3psY+fcG2MTJmhezu4z+dxQ1fmu7nsCIhhdFIOXbxccIVSMdcXi7ZpbSAowZKQldgtBHxvx86 FUr6VWzPdAc82469ryfIjlITZz+8wCJ9ME3GNr06rOgYHycRkUDwkhbBQ+B4S3Sbnq3qRWyHBeJ vf/6pv7qXEcP05qqqcLjJbk+yGIMqGgddmaf7AzPgjjNe/QZno9LTpD1UU4IsKbNUgwjA+DSrWJ 5YksPuSjII0T7asng/AqAlbKhggsbBr4ittX7dDt1dTD/Le2gkUUjmEUaaN1LYHUW4oTxQGy1kN 2ZPGVARFvPtjAzEun9uW2RYOAiY8lY2JQuo1otlXRZNMbFOopcYFBf2eXpqPFwrzQCsJexWU6i1 5oBVHX3uMoqCs4H1uT1I8g2iFxReeIKqt/0IzK/+VVxNny/Hakkh9BAhNHAw2H/SE9kln2oRqU6 DApkPa6Qu3rOC14WhEL0tDOn1bzUOVN9vUvugQ53q4P3OjvkkOzV0ySBUKKC5yDdVIEjd2a4SwL oZrxqNd16vSe1st8crKFUqGwVeHZgX7S6+V7tlAvHgpcNZ1WavqXCKpyxtT45u04GBIa+MmVVuv gXkdGk6AflI75UDhJPFIvAg== 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 | 23 ++++++++++++++++++= ++++ 1 file changed, 23 insertions(+) diff --git a/Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml = b/Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml index 8b7059d5b182..f728acf057e4 100644 --- a/Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml +++ b/Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml @@ -114,6 +114,29 @@ properties: 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, which should either point to = the + SBU port of a USB-C connector or a DisplayPort connector input p= ort. + required: - compatible - reg --=20 2.53.0 From nobody Sat Jun 13 06:05:27 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 1D7093321B1; Fri, 12 Jun 2026 16:21:55 +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=1781281321; cv=none; b=NCGrSGSOPWh/qx8wGG6Mc4mkFHJpzMyyBSESxn66Om0kwc83y963j9gB6jPKUNKf641ocYvtbJQzE3YwpQBK5oGvjr6yeFqGj4b2QPSRz95YKZjaC8zZmi5VQz21DOrbUy02xSR3sEE9AUtegg1yHjw0aXP3PYuZB+0m1rbSCCE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281321; c=relaxed/simple; bh=6bxQYABZKbSJROsP1Uays4rg2nT4Vn+8RVnqtuNva7E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QGmH6i6lZ4W4jLwAhPVFp3jh9Mv+Gl2B2IoxU0EsGDCswQzdrbWaq4lTuuodkcyG9C9F0pHYbHRxzjtCjobLF70iOU+J8pJxwnb02iFxTwcivSexdbIgNbuiso3dVOul10P5BqJaLf2fqUUeTci331BEmmrefyt3AYs9jtFmOaA= 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=KQKrtJpc; 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="KQKrtJpc" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281314; bh=6bxQYABZKbSJROsP1Uays4rg2nT4Vn+8RVnqtuNva7E=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=KQKrtJpcHpmVEGPkr+aQTwiTxBgl0c5zw6zx1eaqKEuCx6Lnn7oUQ/bQntGwpG1Zt gBR53yOH31Lypx+0J8+hCK2e/mhAaf/f5vXtYkTj9/QYFUkdLIaStMj7dCWNhyqIYm hkHvc6cLHbFVabXOPvuI2ZaBjPdDujsNF4psXRiGgNTs0N5hV5AAICw6VVfIpidTt6 7DutdiG8KWZBAjp6LxAzdLJWyejdC1AcipeaVXfNk6TsbpLiAYYwWaP1SAhgatGQGy pNS3CUs7luRZpkDJvljNPLZGmvxA0OpPH3KsJ0uBNxhBJOhi53rM4IVvIzaJNDmbuj RTlzrn+jwrjQA== 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 22A0117E0D68; Fri, 12 Jun 2026 18:21:54 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id C6B17480029; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:40 +0200 Subject: [PATCH v5 02/18] 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: <20260612-rockchip-usbdp-cleanup-v5-2-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1409; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=6bxQYABZKbSJROsP1Uays4rg2nT4Vn+8RVnqtuNva7E=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGosMiEt7UHbgzfLhaycF45fGDIWNFzbqyxdj K++ZKUQa4KaDYkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PI O/qa0tEP/3xB9+iORfCFLwmwnyEg1raSSUMzZKaezpcK18/vLz3HSn4An8QZQWMhKVDPxYdR5LM w6JsvOUyHr2EhUJ1T4Sh0Hlwp82h3+lXGQryOg4J/4XWGoDKEmwhQ2elEykMxprGQrJA/M9y2UG ItT9UJ+CsEnCcmpk6w8KP3KSy3X0Gtu6CirDA0BTsWseviYjXHBYArhsvgFTBfyxaaEGoIu0Qei hp3jJXmCK3+dB4SV101EXc0y15RI39rTGHAuAF+fn+fvp6E18Il1cyQan2VcR7zjkTLRkAps+Vs ZMBwdxxT0U7Jt0AeOGN2IMJn4/ccXxAOv4oKjX+rEld5uhBigIpft8OJJM8HogU6pFUuofW7sdD lJSRF8zYjTrTx1/J6iFGCMTUYSYoOvLEls97dTTtb4rfcq1QBKQLOehTdbcLWT4CNADHwj2/93o 5fpDit1WwN7ZsWMJNYNsCJJ27i+sjDTlmm9UOWQuZjGiTTqN8TjZ3HB4xxhjysFUCOylhcBbgX6 JXORT/YJhGobkxjWpNsxY5gbwlnIOfBmn2VuBCyOuAE4dWQc/SGgKk1GpeN2+wOtuU8LltcQZyZ X/iTmI0cN/a8DSsJCSQlEbz+UGW0rrnV6J2/C1tY/E/KaZxQz1TY7lDtYm7aWRVYQaKoRiBA0LH PcbnqgM2hBIm+dk9Fsaki1g== 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") 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 fba35510d88c..744cc7c642f4 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -1009,7 +1009,6 @@ static int rk_udphy_power_on(struct rk_udphy *udphy, = u8 mode) rk_udphy_u3_port_disable(udphy, false); } else if (udphy->mode_change) { udphy->mode_change =3D false; - 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 Sat Jun 13 06:05:27 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 1F933381B1D; Fri, 12 Jun 2026 16:21:55 +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=1781281321; cv=none; b=hCzEE6qOMIfjr5h9s2oJTPybw5gNTySGPujqxm800+9BcufS0vbyMCy/cclEuuZ7Dt8RPB6UGBk7cBpiiPZjgQx7ZizIL6oNd5PDa8HbqD5rbZKy13EYCL7SskjnI5o1947oJaZY8QPf0fQTT9F1Bbgs7o80B2Pdmo6XbvrqFZY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281321; c=relaxed/simple; bh=rfJKx0EWFtaxAVuaGJpBkiaZlyPZVhF+CYaMhiH23eg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PgkO593MRJn6lZX8hsoVcXdlJXPG2Sq5t+ZLwzhWoECQPooIL/YU7dlfLr26+TPMHQQP0ElBF3H8mzwSdzJzOms/AT1WKVEMDK2TjulRpx2h8r2leHJrFj3O42ZYYmHZKCVA8Uah4cc2Xf6kdW7O0NwKQpwcpUXSy0f8k0wdYIU= 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=avpTs/Ql; 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="avpTs/Ql" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281314; bh=rfJKx0EWFtaxAVuaGJpBkiaZlyPZVhF+CYaMhiH23eg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=avpTs/Qle+AwXKsK/mfvONvWLf9bhqHMJPpDiV2nNqJdn+CML7mWZpVSb4Dqwf6gs RZcA0l9XIHKhJTDZaJk1ahBe1MLYZ1wS3p7mexgliD24v35e6vyay85Pkf7NSow3gw cvmLUM/+/UcCNRmYUoOps5Lgu7+P1mRWmeMcdbo7B5bTCrLwYxcH+USu2k7zIvl0+B CTVwxRJUI6PW681IYGTpyVkxHZFqG52KMcuuP3FRi5bvBHR22M++E7XPmuahXAX8t2 8p22fFseQk6IXDAkhnLxlJ+MgPQANGh/8NtCL8EuyAnq5mE5MkgQxosC+fYzvN6QIz qbMvul581r8nA== 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 200F317E0C88; Fri, 12 Jun 2026 18:21:54 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id C837548002C; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:41 +0200 Subject: [PATCH v5 03/18] 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: <20260612-rockchip-usbdp-cleanup-v5-3-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1136; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=rfJKx0EWFtaxAVuaGJpBkiaZlyPZVhF+CYaMhiH23eg=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGosMiHu+T2GMml0kCL0PLzICkmH6vqggWfZu rD0IoFkvxlSzYkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PI O/qaCb8P/0XKum0ATMxSyPAg8XduReqSWlHffGAhFsb7Rtb9aHp2efmAZ3GsusZ9sxrZ4Mjhc4p KPqlUvYc7AVwfafEE3DcqphBB/F8MDigc4YlsfzBhA9u11KPWSiQ0PQ8Cw5woAIpa+viqdHWxhA SQqflKp10yO+0SN7DbFpZoMOE2eX27dkr6OX6DPaWHzXCGzMBA65fP2v+ZSrAVKF4yMPbFCSAU+ CKV4c+R1/339adxe1MnP8suOqplgrKg3lzK/rCoIrTMILJdVXd5Zzns26L3uztG7jK5XUopLmnx zLDGWi4f7n35gjHHVOIcOiE87XHN2xTf/KW/yo7QT4JkZlo4LSTixJ5//2ha7YUhsohf67jJQ3G pthAWak6O03CEp8nJW7/BC67515vtaZCJfwbsXqteTRwiHPvPpkyMTTjb4UkU04OIJZl6tTE26j 98JlEfBcf4ZTFKzyNBRbcbbT2nd+hV9zb8Cfz6h2BBp29mdKlFe0uGdODbvij9I2bGWGdmlIB6M SfwELspNObwQnfZn1q9GmntZTHIvhgjE1WazIMaz/yu75ucrs6cD3LEr/2mo5bQJjoAM6gpyF+D 8QQ686P9YC/12e0dihD+0MQY46Nu0UKqr/GLMM+RzckaGcFgzPHfEuTEFdKGxsNl1jREzMmyuPb xGD76Fguejf1bUsmTKvM5Mg== 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 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 744cc7c642f4..98562a888b42 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -1012,8 +1012,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; } --=20 2.53.0 From nobody Sat Jun 13 06:05:27 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 3724F38D3FE; Fri, 12 Jun 2026 16:21:56 +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=1781281322; cv=none; b=Fv/f7LrOgNDfvt5kPC9skFV0Vc6B1Kt1u+ED2+M8EkgZg4zAkmFtQtmZR9EQXt9uz/RIGG/1yVf7Q9CucQJKnWNV2LIABOXnQPQShU1Nhp91LgL8qmK0f5hr/W9aGA4WFCL8lHVtlksB6t3DPZeuTHKMK9AYvvM+Vx9d8PkaCxE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281322; c=relaxed/simple; bh=fHxmMNes7ZoyxfLo002TT//4L/5fwSuOfG1Hg+T4k4E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=i2G3M3g4QWbQC0nU/d0M4s6vK/dC0zqOQeWufCFKuz3HaJYUcf0stgeYxMxa+apzo7xeEMrcFlJ/P9YB2E9MKJFKqXzCgGp034udmany4GVJ2QziAFvPj9pvRzQm4GUSElcXMj1ysvY47OIEyVyRt0Ivd4Lti8gWXHhyaYCHlr4= 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=B1W631o2; 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="B1W631o2" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281314; bh=fHxmMNes7ZoyxfLo002TT//4L/5fwSuOfG1Hg+T4k4E=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=B1W631o2NwDijEBS+NN+YRNsaJ+FSFsSwJcFQgeks+aJYqa0ENzv6YsyBbxFmmeVM WeCDV43s1erTBAvoat5hii8BKoQKkkzwbFf3lylJENLH4MGmFGbHesRwB5st+0BFoO Z0KXnZA+e/NaLJz8+ippsXAaUQ0MkwfeJc8AWrWDmgNcFCHognGdvAbHTFwiJ0lhJ/ 4QeZlAqsf3GyD6wEiyVVuS14rcWIlVIp5mPGgLlMf25GV2mppHyBrzNF4OFvBg6MNl a/9VJUvWKDM62l6+LjFo44alk/516q4zchWvah43qkJ7smnOw5F7ObJdrT8KVGytwv 2w2JlZRa7R4mg== 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 23E3E17E0D9D; Fri, 12 Jun 2026 18:21:54 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id C9D7E48002F; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:42 +0200 Subject: [PATCH v5 04/18] 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: <20260612-rockchip-usbdp-cleanup-v5-4-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1765; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=AuNc/Qcz/Iy4+CnR35UWZ2mhDOOwaiShV6QzYNmhadk=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGosMiEBk/p4wvRltQ/6MQNcO93v7g1d+zn4Y KUu2vOgY6YM1YkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PI O/qa1zQP/0+jwFH8WJKwMAW0foRNhSecnDIz3rN4WzQRMgbg8U8gMLUgSlkUmjx4nlhT1yDdBgV REM+3MD62hTwXQJrL1DqIc21AYKaGffot8QQMMLLNCO0SI//CrkRYuEpLYtLKVtCy9xaN1CdYyh k17mFpPCYSytwp+HKK7zw0xocqZXUxh8q4PlwOYRUR1O0BFk4q/UZ7JeadpSMECBd/2/UE1oEEQ XoD1VRlECxLTYLcQvLkzMDelTn1u+3jWUMpdJJRoTl4lwH9JNpMhun7g9vpcqBhWY0WkTHyjDyb 21mXwl0cyRQ9ymeQe88aeDiiwkdXYfbNc9wkPsqv2+n/JdwVT+v3TVYVwHYR89IuK3iU6u1/lpY Zz185YgExCF0DqPiUgsUueQnRuyGvo7eSP1wFwpmo20TJEgiSi9SkM/t6yS6DnyD/SJuLOO3oaE ju3qzwSqag9RdyJ8FzpjCo8OLwe1ccYPpzDCer+yFjzMJCGx+puxxkz0+p0f2ZibEEdFSQCSyEw 2Jqg5f/JTf32WlwB6JJEui+Ndy8cerTsTnfFx5BWMcIZ9WhfGS5a9t+19OYTVixawGZREpYqNtg vKt6Q6GkEnK8BSnctOb0lmeL15hOvNAfEcwUED5PzgM3LB+2MnHwxDXneJochPzfUNRMACP1zg/ cnGavRJ+EqbKXRWjBVm4qIw== 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 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 98562a888b42..1f686844c337 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -350,7 +350,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 { @@ -377,7 +378,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 { @@ -412,8 +413,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 Sat Jun 13 06:05:27 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 BD4D23D2FEC; Fri, 12 Jun 2026 16:22: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=1781281326; cv=none; b=EnT0E+OSPZ+dc2HqOlXisISwnKqT3f4PVzerty2PgULvI6MZfoAwmWIwBXvfuCy2j0ZA1B74mpQqFAn4AqnySJWVxB38y4lWwkwJIZ6d5j374fo+a6GRS3qAvkSWIf2UAqM0joKnNlB44dtTy0/qTTimduT4eKMzuZnMpmyKOiU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281326; c=relaxed/simple; bh=V/529AadGwD70lqWgfn8mxzfTOio4otD4zISV3Ilp7c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mcIUkHrJTeErg0/vqBFg2kjDb03cnllSkQ6SxhbodoEfPnZoP3ecRX+eku0LyBtKGcJxuxdY+fpQj+rNwZvis/5O1Fx94OxMemQz9tErGiZfDNZ4IxKBlTQBTSubHyxK9vflNZpA0ll5VmlTBTczS1ihict9YKW1RzfL1skc/YI= 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=fnb/YTyB; 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="fnb/YTyB" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281314; bh=V/529AadGwD70lqWgfn8mxzfTOio4otD4zISV3Ilp7c=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=fnb/YTyBFtoSuEw8z0NjXJyZx2QfyudWBKQu00sASaP8Dxl5ub2Q17x9LHLlRn+N3 JHgZdyeT+cLhl+9R8k924qGh/8ZKfBfvRkLKOAIo8H/vwE4pY98ARXmSfDprgI0IJw LSr4Y/aCEu9kjPHzf77dQXl4pIdYGOroqxAf9c6vWqRvsLuI/Jwvb3oPVbGIRN3dgQ MqOWo8dFVXdZUIy9EePkLmrd6iKouRrJCcYeT1+p/KoAURQ/5c8Ot3+GxboRDXfcDr G4EYjoljq/VLsF/0s5rF4qY8xX61pWpPT6bwx/oe4QgIzXD58zw96FlnxoBdizki9O Frha7jSr11/6Q== 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)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 71DCC17E0DE1; Fri, 12 Jun 2026 18:21:54 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id CB4FD480030; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:43 +0200 Subject: [PATCH v5 05/18] 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: <20260612-rockchip-usbdp-cleanup-v5-5-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1521; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=Led/QOkLk4w3MB/VmlIc1bBbJFPYOjp803NShAil2Pk=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGosMiEVbdQEOmh+s0g9cTOXjnO2Imv+Ax6sl pAF6ZFPpPMRx4kCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PI O/qa42UP+gMViwOZ9fF3gyraPytg+28dj1fMVIEBNTqVmvDEkCTGyMwi4wqg7OlqCWo5n2GegVl Nzns2jrwU+wgE98248rp10t4RaVeXgMeNq2dhB401vzwQbOwt6O9Q/cfZiT9jvIeXK1tMlgdCJ3 8Dua4LWb2HAjilGNeJq5TGzgY5eetmq7U6AWNOBjBS2q76VcaHkfTKQfC83I5BwVdSaaG+/HMda p8LTmRmbZZlSkqSDaLJr8W2fpCPZ0aVOuW47z5FEBm4y+eaWaVo7Z2xcw2Z5zcqCB5o8E6mxD3B 257Fm22uul8ya5crgJLQB5MZkqYuXt8ZqtoFsHhXcwEecULa5isFvju7p7Y+YfQ9H4up5RvtEq2 oGu8yzu54cJwBgpBicH7zuSIYBZpqdcZ552yMnnZ4Z0L6sflEpZv9MF4KwwpAQf3Af3h9mqhegk WWke3OI20wfyhyNwUzw/j/WQ/h8txa6v3VKl1HImy5FDdcI6d4nYt0ylYvGlVpLKv6GsqM77x10 XOIuj5hWB8eNbHjnn2VAB0oYA4KXnyLZWG2lIknvoDvifxuJN5rzX+ZQXvYnlGAyHrtz8XjO8yB x5IGt/QzlxcBSnRHpPTqX3zR4q3RRJsEWwaliFr7EENMAqhsADBno8SnABtsiniqnXe3VafZIzC yZzTENiyzTnrPL6E1/xsnkw== 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 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 1f686844c337..97e53b933225 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -413,7 +413,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 Sat Jun 13 06:05:27 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 C08C83D4102; Fri, 12 Jun 2026 16:22: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=1781281327; cv=none; b=VydmH+RyPbGlgPK+2RPMmVSGB35ywjCWU5P+BofmqIo1XQRDF7GTIn9efU4x96Rx3StfVHg4HwMXS3ac4vn4HYD46GM9x45k8vEO7fVkPtiPfDVmzXnJTlicrSX5ERgCqIYpXSfpH5QNl4m/LVMgZX2juF9x6wy7Qu76pvGr7Aw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281327; c=relaxed/simple; bh=fH5mubes2SOS68X9ZiYq/N2c6YI1cho4HC4nJ2SpDZg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=C7rB5NH33m4+W5vp6QAdRObZtbRVGyKHmdOjK7M+zukhTBAJbQRueZ5kgrNYziOFG1p1K7rqDgN8mqS0diGmDCfjGTWeOkiwqQqoi3bOCQFzK4vAeHiCWRxtK88RgRtu4DaqJfEbiHDSPwmFudRaYMQTq8YcxmeEAocHPij/zxI= 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=FdcWF9mk; 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="FdcWF9mk" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281314; bh=fH5mubes2SOS68X9ZiYq/N2c6YI1cho4HC4nJ2SpDZg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=FdcWF9mkG+zbwzGr8GD0a60r230mnYCXXWjYLGQTdtCjsqDZK29RCC4ktqgcllX4U 9ZmgTeFzSmMj841ZQy0ct7SP0Buyff/58l/HXp+/N2RNiVODgEaDg009GoxUjVwyQ2 Nj87egWYHeTrneQjU1fdfp6qmHeKo9e5dC+Xcqd3RZdxZ3TIEcFI2sTuhzYHK9WbKY M6b7lEh1URXPjOZvYgITScZWfNzsTI1Qi6+vY09/7IQ7SD4909j89Fh5Yol63YP1st qyn0eXJWBVhHknk/qPv8bg/u+pjcIvxrWsdiKW9E+TqtCpNi19nHmgY9dRNa3edmP0 G8swiHCtJRatg== 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)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 75C3617E0E6E; Fri, 12 Jun 2026 18:21:54 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id CCDCE480031; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:44 +0200 Subject: [PATCH v5 06/18] 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: <20260612-rockchip-usbdp-cleanup-v5-6-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2006; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=fH5mubes2SOS68X9ZiYq/N2c6YI1cho4HC4nJ2SpDZg=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGosMiFYALoVetLRBjtCjGI62MJSBAfqV5I0i AQqkyEZm4/T1YkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PI O/qaHtsP+gJDT1+JUU/jL4rE3Eg3XUOAQ0v5G+dh2jwEZVNLhHWgY6Mo9UbCzGNCqNcg0HTbc/X 9L7CfZbhijBhRk7PqXliFw+Vwh4jTPhBTLbb/hOMRMVtMnyPNomflwvUHu2tCtWjx9o5F6nrIQi 7BNu67rXWV5RnNHFOOpzSPoKSxU1JUH6Uko5kYjjGj3QaZkUKWgggeqaOFYFjmoJm5Bqh+7NOGc 18LV/uQjEaS330jyUF0pFpdE37qMNGaazX71gnOH7s+w/abJUEyeO1ET+z8u4b1cXft2dwlb7YJ YNqqFief+NpjiseXdaHZk9lmB8Md4B/SU2PYv02jWpv5DnPska9i0CDJ/tZOw9KSlsiMYF1fEz9 F1Os4ELa/7tCKMANzTq9Kbg4uuzowEAZ6kA0t+C9PWxJKo4nSo6ym2xNLprv2l6bLAgUx8A4wo/ erHLf7OgHXvMr3RoE9Aeurv54mpBtmUdUBLG1YybkR2qviq2NQn1mBUYnJ+YmA/Pw+n7konOkeG M0sDXh1pQ2RK8eMVtj+hNw62TANBsJC0gRZo1KKojDHQlpZ25thCF7RAdLhhh4jmvMW9jsYfjER Fd0Zf2MAHsc0iilGBUSRDWjoy+f9kKlR1eF23WOoLMSaFJ+D7chrNNFg3nULXDtHAttOCnLptqF qS218jwCMjsGmyZOfvlEqog== 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 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 97e53b933225..febc148a754e 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -619,6 +619,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) { @@ -649,7 +658,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, @@ -1385,10 +1394,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 Sat Jun 13 06:05:27 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 27FCD386576; Fri, 12 Jun 2026 16:22:02 +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=1781281326; cv=none; b=G+LI2H+Kv9a90C6xDxjoeB6KUwi/Sdn+/hol0Pc/DxPf1pXCV71cq1Zhm+nWd0YWit1eQE+72aE5nyPb+73elpA230Rptm2f8bSldTDApAHDpc6HMw2lAd+GAUcWyix/HlbnQIaIvj4ar3EmmtFpeMjhLffFb87oQg5ktiOletM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281326; c=relaxed/simple; bh=F+/X9KX/MbPYEGdlL8kpGC62tIqMCkZjsXpPGb1baWg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=avQiOk8JydxGS1AvmKceCLx+eN2FeKa3stBgdH1SLGRfNsD4yVl3p8cuD0aQjiPX9S8/7Oq0btqWrBuU4Z5eRaTauKLs/Pag492YyUH82Z+d8H8OFfiBdM5Z64Q0loydKpgSIZDdKRFKKn/7fl/6QcPbPmjKG9WSxLs+d2dWX7w= 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=i96g/ISS; 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="i96g/ISS" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281314; bh=F+/X9KX/MbPYEGdlL8kpGC62tIqMCkZjsXpPGb1baWg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=i96g/ISSTuqL3MuimLqFp7/mBfPeRH7mRxfckyteXIsi3AhvE7dqKBKbaHf0bnXFI VBEN+AtOWomS2S+BeUirHXka+5rsrKxG8gBZSh0BTXj6gtmvaqjzsvDGNUWuZRw4xX D/aHE/epBy0EPb61DPt5VQNHO7jQtJPUbVaMNO9fKUZV+TjcHmHj60a52Xk2SSfDe0 qYQLwhQ31nhXocRhGstbQJcNSiiFb1/yRtm5YEcRUJvghNof6nw1qrxa4hO2sqRgey GT07Vlih3411T82v+Zqh7mR1kIq6NI54YZzmhPndy9nMclbXJKn8FMwpWkSRaQLrU7 L3jnNLrpCuukw== 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)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 7F56917E0FAC; Fri, 12 Jun 2026 18:21:54 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id CE5B2480035; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:45 +0200 Subject: [PATCH v5 07/18] 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: <20260612-rockchip-usbdp-cleanup-v5-7-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=5209; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=b37g3sREdBGDY7tFDKeV5U/vMOZkhC2Y7QMIV7WXbE0=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGosMiFvowPp8lllzlN8P6Tg8oraocs/BPB/v 9nXRsbVC5yTh4kCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PI O/qadVYQAIy4D4kHAKub9VCpzfLhrF0Z/z/uZP3b9yP0D0tfObpNdn/Mom5AUtEpmXFHAgsjlW7 +gmpbLGg5LFoOxLniMEv3tj5fRz4F0AjDHK1DFkNF8ir7oJkEDhbGoUFc4qQPQ+ivu5B2Jn4Rr+ 8N2hwAG6DALzrUY2ErNvfzfAALrl6F92s1mNjViL4XZsq6j/2ugzIViBE1jaRZN1TzhHxOxrT+w 9jDqQE9A4kNJkfnVnOM24hZy/1nm/QvpcPd0csLpm5QaRNpPPDj8DKC/LXNztExibus7OuJsZxO IpJqSQxzRKE66oJj/aCvXQIRoz6FRjFc2SXSBP2RdNOzJ4KBYWWSkGyD16elPuUfD6ohgVufl25 mwxK+Oglo5oVM6pKhyOwADA1dS8wnhlRDyn9sb8tZQ1gdmZU+sm2KgBlTOwbhx1Q/oVRMJl6Iaq 5n67vRUgRbboJIi+veFr+Fs/2Npnf4/EcnO/N0JweW7+M4H6c41o1JRosG5rKYU0U9IAqwRQt3c iR1ds6Gd8+uFhDSo+z8yABlkZEPSyGxG+DVcjOoTx5bHjVLjRn4Sr7svcdmUIl97id6ATnNDW9r lVBss6yYeDuiHYr4SpzazCO5cVdgOBELnlbBER/WCiOKclqbzAGymCc7gfw/frVAHmbwwDacASf RphAHfJgQ6anqBoTPl7wjeg== 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 Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 61 +++++++++++++--------------= ---- 1 file changed, 25 insertions(+), 36 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index febc148a754e..bf8394174294 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -193,6 +193,7 @@ struct rk_udphy { int id; =20 bool dp_in_use; + int dp_lanes; =20 /* PHY const config */ const struct rk_udphy_cfg *cfgs; @@ -537,6 +538,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) @@ -544,18 +552,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: @@ -568,28 +576,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; @@ -659,6 +645,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, @@ -897,7 +884,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 @@ -923,7 +910,8 @@ static int rk_udphy_parse_lane_mux_data(struct rk_udphy= *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); } @@ -1074,18 +1062,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 @@ -1365,6 +1352,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: @@ -1381,6 +1369,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 @@ -1529,7 +1518,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 Sat Jun 13 06:05:27 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 280C738D3EA; Fri, 12 Jun 2026 16:22:02 +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=1781281325; cv=none; b=ADWTEZMo050OlLnf0T+cwqIWkNbc1ZZHXe2N/Z5jSSYgVq+xVr0U3O7bDfAtpTfFaA0qJMVuL7vVzqDzctjnPrF/4vZQjk2NgXsBeQ21QrC0yQ/vn+Xh8ku+Fx2/QuWpOCsaGt1Ym6D6+brwlRISSzYl7TXmahjPArxhGB7IVmI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281325; c=relaxed/simple; bh=Llc5oNOs5fL0NA/jBwIwMrc+QvV2dJg2k0ue+PtI3dg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KOkvWzF2NETsDflDA8B5d4UHZIHVCpNH2u2lB1+Ag+rKohgPOth3nQYy519edJSyPGY9f53kKNsArpShOcYVshksQYRwWEG9rBt98Q8KeAYp9rcH+jVHxSlz2+L0s+R2XqcNnBmm5IlK8DDl1hiJ0kbHbH1xOOYMQ9BQBaDgZE8= 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=FnQKFhJB; 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="FnQKFhJB" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281314; bh=Llc5oNOs5fL0NA/jBwIwMrc+QvV2dJg2k0ue+PtI3dg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=FnQKFhJB5jMpH2dxnYBwNWadJiEP9+KwZ7MIpabq0ux00DzfnLdwynLdINpPqngjG FbLbEzDc5T5k35XWajjAEeMjKQ66e6tkj0vFG0TTlUIW8mgjvAls+m5rFUmPZldumB PQv/tPIcY3IYRo25JLM2T80nL0goMdXT05uIcN13m7Dud0iHMkWUB4AUCZibv8Jriz c74+kCZz5+4XAqGdqcxtk6hkn3gDO0ZZiEK3lPlH7wok+NoxcvsftwIlSEf6+VqkVO CvjM/7Dr+NiQAa1Q7h4bPgzCrXvDJjEGR6F4ytEKt8OAYyi2iFSA6PTfZXxl41/Xuv vloeED/VWpjUw== 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)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 831FA17E0FD0; Fri, 12 Jun 2026 18:21:54 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id CFD03480038; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:46 +0200 Subject: [PATCH v5 08/18] 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: <20260612-rockchip-usbdp-cleanup-v5-8-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2007; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=Llc5oNOs5fL0NA/jBwIwMrc+QvV2dJg2k0ue+PtI3dg=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGosMiEAJFRuuHMFMwK/sfeqQAnhZ+8Lh5uT8 WesgYdzyjB9/4kCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PI O/qarm0P/0PrTgVH4Lf0GpBOy7EMGCebhVpgzt3CZdSYGqUJ4BLdNRUWDatDFyevEdZpW9yTAx1 XuG4x1JXbi5xRuw5RmLxWRN6Pv0uI7v9Fxw8gbg940/IV5/60utCqQABztHs5YPuiOQ3nFGEMWB iuhI43bLMG9Qx9pVleHLska3KejHM7+3nQ0NVyTmiNk/VUoPY9R/aAR6uYdu3gO5ZQFtEx8tUzu 6O08RW2VP4ardvvQG/YELRA7rs59tRzJli2H1S/E6Al393FJ/U40+fzHXuLIKhge8Rly8LP2vbs htmzMvSUG7POuYpZR7CyPUpX/KdGGnaT3X+NC+eC8EBfSuf57cM3+tKMBELu9J40n9BQu+oFrfB 0aVSdAACMdC2Z0Jyf2+S4Jzc+Ig9hW5xE975zEuKY4NRLflKlyqBcWBjnI4S1vLYUT3wZZ6JlfG h87IMSbcIY34+DSK35WM1+zmXu9I9okL2HcNRNzMzH1bNwWognVQc3zeeyd8bncpnClrvDzHHbP g6lwDqyQo3zoubMGkYukgXGB8rntdCvRKSGTmfFH2FYNYxMJtPuyinv3YyovSi0vpamn8mNcoIr LNnJlE3YU3akkntz+IRvAH1xwretkVILCYMjReGnZMCGRM81Uc22jBK4KsonLNbL0rbwXZlqxz3 WY24mefigQtu8Z25qlDw6FA== 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 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 bf8394174294..6d7ca11b308e 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -547,7 +547,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; @@ -576,7 +576,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; @@ -1072,9 +1072,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); @@ -1092,7 +1092,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 Sat Jun 13 06:05:27 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 C9AE13DD86A; Fri, 12 Jun 2026 16:22:02 +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=1781281327; cv=none; b=MRGpp7gAnDSfaXwfyhzaw+GwiG7KiIUMdzjXQeQKK2r1q6dgpNq1Gr8MjbkDXnERTmrnRIyZ+PO5CziwrAfToFTan3EGPOGC4VrinICklQYHE37tFkoVPiujU/po3SGOfX3nQxnAGOZ5JSHWnPUJ8Eu3iFOLf56kW/FyyfVhKvU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281327; c=relaxed/simple; bh=dZvkEqj2L1ZPpLivSDqiR4gfg+XCsYE6jCjSEwlvw2M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qj5QqKIQgAZT+IREt7qmGzR1GoOmRbbgnhEcfAqFMIUJV+ZHSzm+GvkekjpdbWJ7e1tyQ3KQTrBTBe8M0SEXENr+30gwQRJjEmF9IisJtvpuVdyJpox0FPnM9p7eEBCJjiK7FkHOtHKpMnriRa/dh1F6uVQuZhTeUTZ++dTbbug= 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=ZFD8yBzD; 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="ZFD8yBzD" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281314; bh=dZvkEqj2L1ZPpLivSDqiR4gfg+XCsYE6jCjSEwlvw2M=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ZFD8yBzDMpurAyIVsb+2oXlRMxw3UZlDe5OdGZcSpwL5F66DdQ+mVQhekFbxUuqf7 MabLJkuDTIyptspkY/O+R/cDgl0v84T7DGChXJE74a9ovFPnttSil1HjGb4H8SbVyQ Qb2Wxpbu7U2DG7cY1mGeeTO2fPnKtLfZsSQqvCRgGnTrZPj86E9lJoaaiKXz+QYObm E2mMGW9HwlEIk0innZmTISeFHHVymg8JJu4uRhId7OFmBye2hmbSNOno6lzYNWxB3o cRDouMyJw9QpmaLjyXb2b6zHHiP1HibujiGsB7ZwtRk1nxlHqo0bM+7rjR9Kh6Lf3/ vkqiay1T1+1hw== 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)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 8AC9C17E1031; Fri, 12 Jun 2026 18:21:54 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id D168E48003A; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:47 +0200 Subject: [PATCH v5 09/18] 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: <20260612-rockchip-usbdp-cleanup-v5-9-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1546; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=dZvkEqj2L1ZPpLivSDqiR4gfg+XCsYE6jCjSEwlvw2M=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGosMiEMGk4SwAfqXerFfyOTNITIacyyEkHd2 DWDlyXViE8r+IkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PI O/qaTosQAJrlim+J0gxf52Vy86nkVzUminmVOO6ph5Ecp7r2F8u2o3LobXI+t4W+Kiuf8SxD0zK d12slzJ5epmSmoDuhRlDOBRf9mXlD8dVlZLKhvy9WgdvLsxAdvta+6OpMBghmjSUQ1Av+guS0ly 8KnZI8UWgEPzs1/zF0BWvfuPeATQpwPfcSC9fUirYWHyUjpeWq+DC1zbNNObbaVsdUAa/KdF4Va Nft3p8I4h5l72C2MrxwICtsB5x70gA4AuX+RzY/BM6sB6411HmNpg1+DKn9PVe9Os68OWY0kio9 NidJYyiMFQsA70mGrfGT6fXXeT1uJBU4dnEln5l+031KbUR7/GRjNUgzv9cbA6qMUYQIssbqUqi ClLjqyGmRklfqXkPT+RyFcAgwaqltOQcw5VaxQSxb0Tnu5lSrcf9IoYzCVMxrd4nJYSKPCN0y23 axRPCPsYQVv8J7GyzqA2kHl/BHsTjXHt48V4O5bXv+wkI7S8foQUhY/lNRDWhWDJw6j6qVgPVGa sie3DyfFXVv+ePG1Na61HvDZYi4N/69Va+3ZUtLYtGBkZgTtN1jHAPH4JC9WHbuI2u5l0sO4rwX VDanvwXmcXaTg3mALWpRzCTR3KY83pozsHsEplbyfHDy9Nw+sIbDjWKoLQRuS5cM6eXuRNqOtC6 m5b7VSnHwuunpGGDt33gstA== 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 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 6d7ca11b308e..1bfc365e2b2c 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 @@ -75,7 +76,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 @@ -104,8 +104,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 Sat Jun 13 06:05:27 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 C3C4B390CBA; Fri, 12 Jun 2026 16:22:02 +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=1781281328; cv=none; b=qcJ4ROjnwVxc8xUqWQOmmo9NtafyEksjMLNZ0qrmfP8TK+DBJPmm8NYco58/YZyhhBlC1rDMkgrwxNJko4AU27a9mxuhnU8F3VshurldoEGvsJSHW/UXDMz4gnp0rF5+gztho9to3kOwBymTZmGP0IPaBSQvZbIgvJ00KeMIsWA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281328; c=relaxed/simple; bh=nn72v3NXHYnsFH6LgmNbYwWr2AJNEbtIzUXIxz/C0k0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=J3xRYPp5xuVm0GOpIIRB1QsUh/opGhe7JHiGL2VcEzO9R9JregDxK6R3lI94vEDet6NsZn7I5HUN2b+vMZJdYQc4KWybjW0YBqUEw0cNuF0vEXaACvfrUwFHdQ/jLnb+tx1jxHSYuTKWdPOFA77sMSW2gfm5fsuKxEHquzS/4PI= 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=awYYdslf; 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="awYYdslf" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281314; bh=nn72v3NXHYnsFH6LgmNbYwWr2AJNEbtIzUXIxz/C0k0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=awYYdslfh/upFrIuTnUi4x4On05b76mm7FJpUg+2wlKuZvBhwVu0rbm7REgWlnRif T45l7K+73b3A9NN+D9SW+1EcRzLI6MMvc32AdvQT/04cGw6H1EPBV8SbSLFs1pfH8l 5dkHuOhEw3GRDzVsmXHpJKWwGvz1EXCifpSSjQYmJQuFwF+34Qa83HEe+T2uV0kIuI ekPwAnGYS4RSzAl3v59aaDc5V/9xwdwTXXUMSMaCVjJKeryWQaPR7j4/nfKPVvlIhg jePoU3PGj3ciGRfQCA+97PCFFMJKnr5I3famn+b3sBgWJf9z/GVeUiS0PoTC8UPYYX HLwKNdSgVxsMQ== 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)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 901D217E1104; Fri, 12 Jun 2026 18:21:54 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id D2FAD48003D; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:48 +0200 Subject: [PATCH v5 10/18] 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: <20260612-rockchip-usbdp-cleanup-v5-10-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1889; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=nn72v3NXHYnsFH6LgmNbYwWr2AJNEbtIzUXIxz/C0k0=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGosMiGC9Js2vHRBo4IIsfXrskxlpHWaB0bnK UyvrLWLNhgRxYkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PI O/qa9a0P/RHgIcA0g+8Mal3rdvSPll/VZVXuqzsqiIWl8kaF0YuyKXWFXW+hBG08N048Ebv56Gf MdOWU6ZeWgDO9Jr4GeM5COSSDhvodsnpmDSULzR+3uzpWjRnsP32KYg910bL+dLME272cCBqb7c ASmvm4FPHlMJoLdFa8zgOYMwjFV9dT1XYhWFUYmaTeRWngfQZLYeHW2bJYAj76IjMb7gAIiz+pm iA+ZLEpaxuuNkyGkmr1QYnaeSprbm31vLDDEHKqhFz51qOPWm7LIDS1kj+cH1ZFosa5tFfpNZur dSV289edIJauXabTZAyqYYA7rxoxhiNzf3qMP6h5dohou3cT0MLSbGv//3zZkiDOoy41N7Be1sU C2gL/3gYCFXD4YLwtJo+Dz59/yQT7UbErW0vv03vZPzXc+LEF/FFuRJQSFJxRaWmnfDT+nUs6RP 0IMDgq7pqekGwLs/QEtSZ5DJX0ss2dElAaT8NKUV6yCFcvCjWYX8TCf7y52sAWD3pKUmenJ+5CW IGd5/OP10J/e3jaPD3qiICi2gAZaT4+gFVi8fCQkR3zgDuB7nLYV4FYU2YCK3+lAQDI3FOVVgN1 hn1ruXFxN2uDaIgu/1NNKmmdvrDn8accxG0nuBH6oLL2kEC4N9vW5JbMD2shVI+fo6X9j6vNwqv Nc5qK7L83H8GYycpeFrgq2A== 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 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 1bfc365e2b2c..beab20e4c512 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -550,30 +550,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 Sat Jun 13 06:05:27 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 404673AEB2B; Fri, 12 Jun 2026 16:22:03 +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=1781281329; cv=none; b=k5wC7xIE16FIbhwZzg1+f/wReCB8fcHQajGuVftGx1rpcFvQW0Cr54qbQB1HvRnFqe7UsK6cpUwfHqILAZFQgYaYA8r50SlMCGrsKUUnOUJTngv5j6wTHco2nptxDHk/gCS3DzgZ68jALbIASyPoMdiddcEc1SCcXKuDYoFkS0A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281329; c=relaxed/simple; bh=MVMfIZtkk4nAgZ22KBPvUU3n0MroH7NTfE4TBkpE844=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=m4V2Gysr7x7Mf8670udTNrZpkYMpXv7j6thHlS7iKRud2ebFpI8D9yqSZjSdFywKWf/5nxLLWxxU6BKE4ktPvcvDy+AFV0zJt45iMpgPKjyDP66Z56LAu4csCoO8fseFMtWyngODzeGSm6A+MCIzOF/ciq0FDxBvTk/PsHbzcS4= 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=jT6xJVhJ; 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="jT6xJVhJ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281314; bh=MVMfIZtkk4nAgZ22KBPvUU3n0MroH7NTfE4TBkpE844=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=jT6xJVhJAy/eKWGJessVl79D4cB+aC1bzK0qV9+7VuT0fcPJHl4Bnv77kOkT0WrHk 87bZUof+75K+JnfEPzyZoBGXNm/B65NenZm5gxfaiaOnm1xlCc03nMH8KC/xe5s6lm yyVr22KTKnGtyhieBGKRnDzEQIy75Rp2bGFfSGYr00ujEqkzaWEkKMMG1X2g4doVkV SZYhbrLmFFbX/ykSZfs7Qu+OPZsiYpxWAE0xQ1h+TLDk7Ln8lu2S3ujODfo5QCFFEt lVa/K97hXxwgC9NlzDiY4aQjIn9ojf9pJg4zojL7o4m+/4CbcHV1wEmBB3t9KSl3iv iSL3ZicNQK/lg== 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)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 95ADF17E1168; Fri, 12 Jun 2026 18:21:54 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id D480C480047; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:49 +0200 Subject: [PATCH v5 11/18] 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: <20260612-rockchip-usbdp-cleanup-v5-11-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2991; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=MVMfIZtkk4nAgZ22KBPvUU3n0MroH7NTfE4TBkpE844=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGosMiEBh1Hv2z2PV3IUqtx8Z1QVAAEat7Z1N 22sWyo3+nESvIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PI O/qaaeoP/1rpWuqOCJqRpDtJqa7F7B4nvZgWvrdIbFQIkvo0zJUoasW31mtcMZH3vJh/oOb7oqF 5GnI7yxSPaeOc9xeKLsNi3PLw8zD2Hm9WbGIQe/ymVJLLMhggnEiSo490vOH1DnyRXylp6sjz9M HjBbOyzjIYmg/w9wXRD97dIdYUL7G/P465SCK7VIlgJxpcEFEOHTnZPZuq6OdEFc7Ly1LyFUj3y h9XiXpKni3rMH6OhGwbhwmRaqS7vLiXVJfmE8NVd4QuE/MIBWTKsR9N6qG1gKRxg1ifxZG4r/7q noOnu0bn86C+AAKiuEt9x+4Cn9482ZmS+dfXUV4adoy1ij0nAGvTRpPyRoiQ6ARyO+yJtbxcjaP kymue1NctR69n4AHUpeypkIfVJyjb7XbEKkFlyMJtsdNCRtRxhnCFnPgTsb/cLPyR9xH4DSlWBJ 1Ts+TyvuXwTF9N3Yb1QLp2Dq8s5UWLzOZN+NCaSLWnZSaEcEd5mO6nty+jn0FJxlqgJrO8QNR/A 7ztvRCfQ0zuzW7jGiNNxFCxGe/oMTl4sAY+x9t9FRvMdD4k7fERUJnVdqTbx/CcDi6jBpzc5PT/ TWtm/iY1DEFdXJw0o7k3Ela8lGmj7vkKBPsTTwCe9NG8HjP2/e1cb7jVO9I+favrs4SYljzRYCj NSb8ZAQsMhQMsrBfTORk2aw== 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 Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/Kconfig | 2 ++ drivers/phy/rockchip/phy-rockchip-usbdp.c | 14 ++++++++++++++ 2 files changed, 16 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 beab20e4c512..77ad2a89d4f2 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 @@ -1434,6 +1435,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; @@ -1492,6 +1494,18 @@ 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. + */ + 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 From nobody Sat Jun 13 06:05:27 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 4F66F3E16AD; Fri, 12 Jun 2026 16:22:03 +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=1781281327; cv=none; b=lsqJ3EYk8hLFKXGmp4WkwwdTlUxD5plKNEbCwTS8MDVVE4yFDXCxTpV1+f4lhPlFIpzkxoIdjs09GO283baosSzvQevL7Hvs5dnAvafSesGX8KTwg/uHpEgNV47NJL0feDDkTtY5zi8DkELaFQgOsLH+ptMBPT2whkBogyW14EE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281327; c=relaxed/simple; bh=frOx2yDmZqlirMA+vcUvkHvM/HP9+QN12zeTTm/vWGQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nlbYFf2v60D2ZHvoD9i7las4NEExpVtsFWHSPvpZUsPG6CL5l6il1mKg2XmDfnUmD7MDOoEV3OfY7/3VowtsUfAb1Upee78pLcGdGZiVjBr4uak+F+ANpvvoTDRLP2DaqNmD62VcEB34hFPxYhNmw6gwe2KUxBbCDsh9VFjln3g= 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=OA1i9p4Q; 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="OA1i9p4Q" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281314; bh=frOx2yDmZqlirMA+vcUvkHvM/HP9+QN12zeTTm/vWGQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=OA1i9p4Q101Dxrq09+ZhZmkqHzUqKQ4ei2eRnzXPCXKR0/KQ5uW+z2Oq588P7uotY ffu7DMSn4AyFGc5LoC+KTkpvJK3IIlF6AjyC5hKlDV9Vi5s9s1vx5Z14bjBtwIaZAy Dneo0qO6kUanCQXDPHjKqtIPZbfboVHf00KNqpOK9PneovavrTnKIw2X8Sk6MiZFSz i9q09q7D2zdWgqzLAahNO5GAIBWAsc4c/QDtI5bV/6DzplXFAtvo4EWaUSS+gVMp7p Uh9qy03qFCTd8JiZwGbduJwGODzyVrwJhJoYlt1l0UvT+YhG5gpNa9LfwRzSXTMLXb AU/hRe3m9+qbw== 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)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 9CEA117E140E; Fri, 12 Jun 2026 18:21:54 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id D6130480048; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:50 +0200 Subject: [PATCH v5 12/18] phy: rockchip: usbdp: Drop DP HPD 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: <20260612-rockchip-usbdp-cleanup-v5-12-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=5858; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=frOx2yDmZqlirMA+vcUvkHvM/HP9+QN12zeTTm/vWGQ=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGosMiE0a8zusIQssYY7o/Oz/fsB4STs2YpDt ieqRShfFfev8IkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PI O/qao5gQAIM+wvGb4QTUi79uj1jQpBbUx6Wl3uM67gHyFsvMhdLwjdztSCTVaLjB3WEPbUzvPhi hIrPuRTMlmgz8fMiIte9sST9pSEykyzaDAja6cn8I6yweEeD/yh4rWdW6iRZEUkj+opi/lNoPVA +bbyoLHKkv+DMsF8alv9U41iC/3r6T063TyaNEQBzihfwRAwUDOL7d9B1i86hUpyU2EFRlUr0Sp pCjHSkfGeCEGNS8JQuC1voAmL5DSBkN2U0AlW6/Tgx1w05R+l62tY/Hd7EAvt+Kr4BtpnsIAWp/ +iOq4b4h70lGblPTyFC5qS6owHHyQ2Ntj2AxnqPEM9SeEoNcfxhD1F8htRMQ8EHcJAjJhML9JPj oX92sF/8Xabz5SS+b46HjiBAVHiq6vFhLuPGSa2FbWSrxupy1UeO/Ui8rOuRH2Ad0+13exG5LA4 NN/u1+cJqtNTujtHa4N/49irZtCano/pxcgBa0eQuPh7vWueKI+/N1rpgP/ZHtcRSFidIiwdiIS +n7EgaBe2tdtZ5s4/cimbJ1YhCwa7WLpdOeijDGKqzknrwOfDrie76yVgtfIHBN2YAVDUo2dQl3 gey910n2MEUhUByCSyOEI+8bNdRlrR0FX4imOBoOVAxb/HdsUkxCgRVxFVnj5ZHxyDhk10YVu/w 5hZ6QSTTD9upPNPLf+rEt2Q== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Drop the HPD handling logic from the USBDP PHY. The registers involved require the display controller power domain being enabled and thus the HPD signal should be handled by the displayport controller itself. Apart from that the HPD handling as it is done here is incorrect and misses hotplug events happening after the USB-C connector (e.g. when a USB-C to HDMI adapter is involved and the HDMI cable is replugged). Proper USB-C DP HPD support requires some restructuring of the DP controller driver, which will happen independent of this patch. The mainline kernel does not yet support USB-C DP AltMode on RK3588 and RK3576, so it is fine to drop this code without adding the counterpart in the DRM in an atomic change. Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 85 ++++-----------------------= ---- 1 file changed, 9 insertions(+), 76 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 77ad2a89d4f2..7255c80e0fe2 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -128,7 +128,6 @@ struct rk_udphy_grf_cfg { =20 struct rk_udphy_vogrf_cfg { /* vo-grf */ - struct rk_udphy_grf_reg hpd_trigger; u32 dp_lane_reg; }; =20 @@ -186,14 +185,11 @@ struct rk_udphy { u32 dp_lane_sel[4]; u32 dp_aux_dout_sel; u32 dp_aux_din_sel; - bool dp_sink_hpd_sel; - bool dp_sink_hpd_cfg; unsigned int link_rate; unsigned int lanes; u8 bw; int id; =20 - bool dp_in_use; int dp_lanes; =20 /* PHY const config */ @@ -579,19 +575,6 @@ static void rk_udphy_dp_lane_enable(struct rk_udphy *u= dphy, int dp_lanes) CMN_DP_CMN_RSTN, FIELD_PREP(CMN_DP_CMN_RSTN, 0x0)); } =20 -static void rk_udphy_dp_hpd_event_trigger(struct rk_udphy *udphy, bool hpd) -{ - const struct rk_udphy_cfg *cfg =3D udphy->cfgs; - - udphy->dp_sink_hpd_sel =3D true; - udphy->dp_sink_hpd_cfg =3D hpd; - - if (!udphy->dp_in_use) - return; - - rk_udphy_grfreg_write(udphy->vogrf, &cfg->vogrfcfg[udphy->id].hpd_trigger= , hpd); -} - static void rk_udphy_mode_set(struct rk_udphy *udphy, u8 mode) { if (udphy->mode =3D=3D mode) @@ -1023,29 +1006,6 @@ static void rk_udphy_power_off(struct rk_udphy *udph= y, u8 mode) rk_udphy_disable(udphy); } =20 -static int rk_udphy_dp_phy_init(struct phy *phy) -{ - struct rk_udphy *udphy =3D phy_get_drvdata(phy); - - mutex_lock(&udphy->mutex); - - udphy->dp_in_use =3D true; - - mutex_unlock(&udphy->mutex); - - return 0; -} - -static int rk_udphy_dp_phy_exit(struct phy *phy) -{ - struct rk_udphy *udphy =3D phy_get_drvdata(phy); - - mutex_lock(&udphy->mutex); - udphy->dp_in_use =3D false; - mutex_unlock(&udphy->mutex); - return 0; -} - static int rk_udphy_dp_phy_power_on(struct phy *phy) { struct rk_udphy *udphy =3D phy_get_drvdata(phy); @@ -1274,8 +1234,6 @@ static int rk_udphy_dp_phy_configure(struct phy *phy, } =20 static const struct phy_ops rk_udphy_dp_phy_ops =3D { - .init =3D rk_udphy_dp_phy_init, - .exit =3D rk_udphy_dp_phy_exit, .power_on =3D rk_udphy_dp_phy_power_on, .power_off =3D rk_udphy_dp_phy_power_off, .configure =3D rk_udphy_dp_phy_configure, @@ -1329,6 +1287,14 @@ static int rk_udphy_typec_mux_set(struct typec_mux_d= ev *mux, struct rk_udphy *udphy =3D typec_mux_get_drvdata(mux); u8 mode; =20 + /* + * Ignore mux events not involving DP AltMode, because + * the mode field is being reused, e.g. state->mode =3D=3D 4 + * could be either TYPEC_MODE_USB4 or TYPEC_DP_STATE_C. + */ + if (!state->alt || state->alt->svid !=3D USB_TYPEC_DP_SID) + return 0; + mutex_lock(&udphy->mutex); =20 switch (state->mode) { @@ -1360,22 +1326,7 @@ static int rk_udphy_typec_mux_set(struct typec_mux_d= ev *mux, break; } =20 - if (state->alt && state->alt->svid =3D=3D USB_TYPEC_DP_SID) { - struct typec_displayport_data *data =3D state->data; - - if (!data) { - rk_udphy_dp_hpd_event_trigger(udphy, false); - } else if (data->status & DP_STATUS_IRQ_HPD) { - rk_udphy_dp_hpd_event_trigger(udphy, false); - usleep_range(750, 800); - rk_udphy_dp_hpd_event_trigger(udphy, true); - } else if (data->status & DP_STATUS_HPD_STATE) { - rk_udphy_mode_set(udphy, mode); - rk_udphy_dp_hpd_event_trigger(udphy, true); - } else { - rk_udphy_dp_hpd_event_trigger(udphy, false); - } - } + rk_udphy_mode_set(udphy, mode); =20 mutex_unlock(&udphy->mutex); return 0; @@ -1531,20 +1482,6 @@ static int rk_udphy_probe(struct platform_device *pd= ev) return 0; } =20 -static int __maybe_unused rk_udphy_resume(struct device *dev) -{ - struct rk_udphy *udphy =3D dev_get_drvdata(dev); - - if (udphy->dp_sink_hpd_sel) - rk_udphy_dp_hpd_event_trigger(udphy, udphy->dp_sink_hpd_cfg); - - return 0; -} - -static const struct dev_pm_ops rk_udphy_pm_ops =3D { - SET_LATE_SYSTEM_SLEEP_PM_OPS(NULL, rk_udphy_resume) -}; - static const char * const rk_udphy_rst_list[] =3D { "init", "cmn", "lane", "pcs_apb", "pma_apb" }; @@ -1568,7 +1505,6 @@ static const struct rk_udphy_cfg rk3576_udphy_cfgs = =3D { }, .vogrfcfg =3D { { - .hpd_trigger =3D RK_UDPHY_GEN_GRF_REG(0x0000, 11, 10, 1, 3), .dp_lane_reg =3D 0x0000, }, }, @@ -1609,11 +1545,9 @@ static const struct rk_udphy_cfg rk3588_udphy_cfgs = =3D { }, .vogrfcfg =3D { { - .hpd_trigger =3D RK_UDPHY_GEN_GRF_REG(0x0000, 11, 10, 1, 3), .dp_lane_reg =3D 0x0000, }, { - .hpd_trigger =3D RK_UDPHY_GEN_GRF_REG(0x0008, 11, 10, 1, 3), .dp_lane_reg =3D 0x0008, }, }, @@ -1649,7 +1583,6 @@ static struct platform_driver rk_udphy_driver =3D { .driver =3D { .name =3D "rockchip-usbdp-phy", .of_match_table =3D rk_udphy_dt_match, - .pm =3D &rk_udphy_pm_ops, }, }; module_platform_driver(rk_udphy_driver); --=20 2.53.0 From nobody Sat Jun 13 06:05:27 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 66A963E4C88; Fri, 12 Jun 2026 16:22: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=1781281328; cv=none; b=Lk9f8gAOkAstGIDbVCVyLQo8Fwh55RoNFKP01+6+GaIQCTOzzfjYUuixqD+rHWqh2eoc4iCaK715UqF/xiYhwrW7PimSnEr6VwRFJdpUILklJiUl6TWxFp8EL/Spaf1cePmhZJ4o3huvSHpoHeWHNfzQNl0rjVBWJo82Kfm2SnY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281328; c=relaxed/simple; bh=e+X7quj6f3rwPOTFsKJxXaQIoHZdjdmli0YuE2QSEew=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bc5YEzuLAcPcMPvXkcIwHqwDyuOkMjpkwMnO8gVyRVEwycCqYnqV80gfePPzOtQf+vo4+LSZ06E4mWZST6ZrZMdf61ITegNJY54nfs+VQEebp7bnEmvAi3Aa4CR9JUBmgW911fVdd4qDTWNk0KNn+NNfSWkpDHy9oT/fc9XJF8s= 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=pBHDTHR5; 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="pBHDTHR5" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281315; bh=e+X7quj6f3rwPOTFsKJxXaQIoHZdjdmli0YuE2QSEew=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=pBHDTHR5h+JwNslciPAkO1CdyWdDm+LxG90FUrFF9uDXyVvTp2Hytdgbwfc2nZcdP k+j4veUH50En+9k4pef78+Uew8j7u0H2nP61hbkD9gyg643QAsuOdULTxESPs8GlLU AeobgJaiFJ1us9odY4skLhRX9CM8BroDP27L2x5Hg4u0xokk/JAm063++PxNZ5MrJx RLGxXdjgf0+CjOxjVLq20Kpc69AzrUJMh2Pp1Itu9XnqBH5MsS1L8LMFqBdQJGYjJV L7Pyb4AXXUsCGtHuJyvBBs0eRzlUPmW2XQphojHstTmtwPb7b/3miLFKvPa4v67r4x txz8+x+x+19gA== 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)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id A33EB17E14FA; Fri, 12 Jun 2026 18:21:54 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id D7A3D48004C; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:51 +0200 Subject: [PATCH v5 13/18] phy: rockchip: usbdp: Rename mode_change to phy_needs_reinit 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: <20260612-rockchip-usbdp-cleanup-v5-13-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1849; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=e+X7quj6f3rwPOTFsKJxXaQIoHZdjdmli0YuE2QSEew=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGosMiF9vvEsZaiOmkYhh/VPq3iFHuFDU87FX uMK4PCvJQoabokCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PI O/qaisYQAI5Avcdg2sfvSFFiSTvWoE3HNrEmq8Pyd0ORW6CTQEu5c2i3Ndu2rzZTnyUsvapTMqd sF+cABFMoL5l/0s+d0mCIjnP3vOQs7+8U/8rCcvXnRKz+6poFfSjZzkWWyFtpazIS3I9+av2SUR sXsB9sQoVG/HPsXMdcUOwHlFkcBvmLzHUz+WwMI6DbUE/rK7HqMGCjdNBHZNp74U/ndbbjbLNUO Yma44IjJLTk4MdAf1ewvPt/RSmOGILkIZDG7MuEKVdmIpZzV3E8KsPcZgIY3NUPahxCSB3WOVhQ K4vNT2bLlwC3Ommf2rXNZxvTENL9hO19Dc0aNucaq23PeLXFKB9u4zrTLZLIhxp9um9+YSuUpRg SsJ0fvmh264dd7sDYW6SriwfUbeQyXHqQAP9TQ2vDWL+O/rv73HQnxdNbBf8TMUwqMJyNAyooA/ LfrPLYklhmasW9fWTShanRYlnm3W9omh70NBrl17IefSyPTaDfxPUGS0+Gwr26J7lZ6Kqv+ctWf MeiDI22QDIlVS0EFr5dvYDjnIztgv/mVDQa+WTiy0RqHGacSxKjPY24gzaAVK7nT9vfGeffyugr t5re+fFOGjkL/wx9XDMTpKG05ZgneVFYQKDQv2P7ORXycRlYX8NlQ+bOekpU5jP4eOZXwIlglow MYZs2VX2q/Am8h68AdpAy5g== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Right now the mode_change property is set whenever the mode changes between USB-only, DP-only and USB-DP. It is needed, because on any mode change the PHY needs to be re-initialized. Apparently at least DP also requires a re-init when the cable orientation is changed, which is currently not being done (except when the orientation switch also involves a mode change). Prepare for this by renaming mode_change to phy_needs_reinit. 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 7255c80e0fe2..a3b4e2e0f578 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -171,7 +171,7 @@ struct rk_udphy { =20 /* PHY status management */ bool flip; - bool mode_change; + bool phy_needs_reinit; u8 mode; u8 status; =20 @@ -580,7 +580,7 @@ static void rk_udphy_mode_set(struct rk_udphy *udphy, u= 8 mode) if (udphy->mode =3D=3D mode) return; =20 - udphy->mode_change =3D true; + udphy->phy_needs_reinit =3D true; udphy->mode =3D mode; } =20 @@ -968,15 +968,15 @@ 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; + udphy->phy_needs_reinit =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->phy_needs_reinit) { + udphy->phy_needs_reinit =3D false; if (udphy->mode =3D=3D UDPHY_MODE_DP) rk_udphy_u3_port_disable(udphy, true); =20 --=20 2.53.0 From nobody Sat Jun 13 06:05:27 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 7B7BA33CE9A; Fri, 12 Jun 2026 16:22: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=1781281329; cv=none; b=p/d6RMqVvKrGFSmcAA8S54sp+jNFiYDGruVrj3A4aFvemDX3Q2f04uZVZidWaWKe86O+UfYgGPfFNZ+dGqsuC3KUPxP3P8Q7Yc8slC5TPAVL3eeWun/OA818koEAT1OQLVbM/AeDZOHSBUex+BQVk12hwJXz7NnhZl9Dasfrvhk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281329; c=relaxed/simple; bh=YM8vhaVqe6VkIRnSmmclQMgLxDRedtbKmvS/ah+S/TU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SeQGQ6bahdrZsMRlGUg9deqleWUFAICYnaQIQldjZunxtJsXT03Vl16QYxlCL5J7nbcG6stgXwJun5aJ9VDBpUNTYvtYEB9dSc1MsjpUCTobqqom3yzovlFIsnSBsgxRWMsxBCYJcz89vO5sSv0uXK+fU8gG14Jevphx29OQTeo= 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=I9F7Wffz; 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="I9F7Wffz" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281314; bh=YM8vhaVqe6VkIRnSmmclQMgLxDRedtbKmvS/ah+S/TU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=I9F7WffznuEW931ghv/SXP7ewXiC2swVf64zpbG4uPCzf8C2iXSnJXwUCjamIOhih 1SQydnwo1vlrWqadYXUu/i3NZXq+dpiKraaydUouiPEj3Kj4s1uwxpBuaPhufjmBHA P09zapiPYqMGD1UCOMvXOC+Dxw7XScxazI3Qhy5J0VUQ+rLPyoehqJH8UeRI6wRjPA G6GKuwFDI4cWbCbM6A8XEtRdNyjo54c6a9O1nsYtaHDjyrVwo334jfAvXW5ScXB5V4 gH8LSyfy3hgQQg2+mIzQae1HClAsHVOqh8n4rWsw3VyZe6IqCvIlkbMgh3cO96cxN3 SNK87qHmFY4nA== 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)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id A9D1F17E14FB; Fri, 12 Jun 2026 18:21:54 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id D957548004E; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:52 +0200 Subject: [PATCH v5 14/18] phy: rockchip: usbdp: Re-init the PHY on orientation change 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: <20260612-rockchip-usbdp-cleanup-v5-14-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1257; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=YM8vhaVqe6VkIRnSmmclQMgLxDRedtbKmvS/ah+S/TU=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGosMiEo7Ra4KF/dow0Pb3iWgyuH7adBgpGWt bsOqntQGuV9FokCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PI O/qasDkP/10XqYzkoOmM24a+Lo9njSyyFFlWEOPbGCZvIQ+kccv0e1DHmYmPUSpxKJL5W+1GBbO q7+eJF7V3dY9Nl9W1ERiHKE8gSvnrih04h2sBCec5CvF5Xm+Z//Kz5Tr4scb2t21XDnns8JqpOf Ebtr8uo3fbYart9CInQoSQetdvR+vanUoGmRIW2fOh1l6rpu8eFrvelMwuadz//5b0COQmeSaFv wpTcmkkP/YrxMN8gIC+PwATc/jgMmYJVgzlqnZPlY70YDrLN/19qojYdcUPq4REW8vchJ8uDQTJ d7oot8EMbf/zDQQ8bKPuy/+sxDpcz6mZTp2OLiLaz18K0Iz0Uz4lPdAfeao7qDEI4MH0B9gZlXk LaULx3HumSnuMs4HUuDtI48b5upQFJFL8tmZtvp6se/5DRQu+tvbtrgmyvOHvhUu+ByNRMf9swO upGqHcEggbobz0rUvrotl9sNFjIhcvBNd7cFsNeJ6VCFH7FsZvVOOEayiE+VwnaVhB7wyQUTuOb t3RTEhzyMyUWtBFQwqlAa/XNRxUP7T9XytUUWBXzXKvCqv0rC0XMxeTB2bRd7vB8Vd2izbmXY9e 7vx4Jx+TWG4lR2oWqjYKeIgfPbDpdGqBSDuN2ezAkNLsuSCnfpNI8H3+E3mPu9nN3Pb2ngHeukt m+b9dXsiHiBFSHujtA+QxmA== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Changing the cable orientation reconfigures the lane muxing, which requires re-initializing the PHY. Without this DP functionality breaks, if the cable is re-plugged with swapped orientation. Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index a3b4e2e0f578..89a08267611c 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -622,6 +622,7 @@ static int rk_udphy_orien_sw_set(struct typec_switch_de= v *sw, enum typec_orientation orien) { struct rk_udphy *udphy =3D typec_switch_get_drvdata(sw); + bool flipped =3D orien =3D=3D TYPEC_ORIENTATION_REVERSE; =20 mutex_lock(&udphy->mutex); =20 @@ -633,7 +634,10 @@ static int rk_udphy_orien_sw_set(struct typec_switch_d= ev *sw, goto unlock_ret; } =20 - udphy->flip =3D orien =3D=3D TYPEC_ORIENTATION_REVERSE; + if (udphy->flip !=3D flipped) + udphy->phy_needs_reinit =3D true; + + udphy->flip =3D flipped; rk_udphy_set_typec_default_mapping(udphy); rk_udphy_usb_bvalid_enable(udphy, true); =20 --=20 2.53.0 From nobody Sat Jun 13 06:05:27 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 5478C3E7BDD; Fri, 12 Jun 2026 16:22: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=1781281335; cv=none; b=ZZRTwoT2SSydKIhKfsOSBKAh7VwOZWAtvWu00pHX7+vZWxCIhbhGMm4PAXfZX5CJ3aIkDQxb/IMkK2WjqwL+zAyMWouVLPFuW37E8dsRxo47GVciNdM6z2OiFVqqbgX4V39R3nHZmfWTxBzCzukzzZVg+E5CM+dWDlchtwBUyeg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281335; c=relaxed/simple; bh=NWLKhlu7xwnvBRFz1F26eeJn9o21diKDxxeKqk95U+M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ikMvWyIB2rrwGd6XisLpa4d5lZzxonYMEUVKzUeX9oTXcHJoGxYalzqxpsrqWYaBumyOL2ngK65yFxOq5z0wKh9P1rP0AIydJME6seYHj+UJLvWBIqs1NVNMvQGcE2AvvWX7y9b6z50M22XkYgtwMbi2Q+2ds5ZkExTmjiK9fvo= 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=VLvvTIHe; 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="VLvvTIHe" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281315; bh=NWLKhlu7xwnvBRFz1F26eeJn9o21diKDxxeKqk95U+M=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=VLvvTIHeO91LMvkFOhzATT0X2j6cc5Iy3g/mqDqhfzUjJw2sQgh65Vn4HvoDwuy54 fIlbVskluFIwaHxq3WV65FwZeZkJORqzt1eXdH8qk7wK0XwFuAlw0C5WsFL9AqbXFm YX7Wmmc7raeWiJXanbb14HcvvYpe+JSq/mSoBy40hOIeaAmWxR6rj//ecbn5OfilG0 Nq3slY1NAX9OZ/EEiRB+xAYeF8FH2vaPB+CMgrTshN8diOq3gJIJTQItnZBWGiVpWG bDHRfFuBMGXqAC91q08Q5x5aPbgYDn+kFr9kZgLLiy/xSkFSjHY5AGwDJt+AOrNFEJ 0+5fMl2DuPPUg== 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)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id BFC4E17E1553; Fri, 12 Jun 2026 18:21:54 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id DAE55480052; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:53 +0200 Subject: [PATCH v5 15/18] phy: rockchip: usbdp: Factor out lane_mux_sel setup 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: <20260612-rockchip-usbdp-cleanup-v5-15-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4580; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=NWLKhlu7xwnvBRFz1F26eeJn9o21diKDxxeKqk95U+M=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGosMiE/sC5IMGU9hyJkPYCU3gLFlRMo9Q0bT SUF69ZOR3o6/YkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PI O/qaGPIP/2PWovHwk2kt5Ad+V5dBLHfy04z3eiCwStJsid9fKFCGmXt6RICVqgO4k2zsGbqzBa1 9XX6kRIH3gw4tJCbl2CVvzD3HpSxSjlY1WSWgDkiy2dbmD5ZL8LGmnVVtKe4aTEvuskW/s62yea SY6fEjJlpuCGhgPP2hglwBIa8zWTG5kF4pD6jO6B6Lz0ghczpN3Xjyvt8MpQcMkCg6pDwvYbDaZ Eaif0F2aaSe6UNUfCmXNppYfQcQs1xnaoNeY2KcrjwF6h26jzU/Oh7LQT2YebEWo1cvkUpzVDcD eP3axyywX5V73cW4B+9vAuL+srM97OhEnnqTxwooevgM/Xgx134uEFxoxWHBhGL+aT832DWCyPD BNT/IxpMiZkcb1Xak43yA0yIk3MeGXHKbkbG2FSZQ0z1FCKu1eHU8mGJicZksi0crpL0ejqo2cX gP4r2SSeUydsDRzk9y1T5XTqOva5RhwjvBXUVvSgDGGmTJp61O955Ysl1VTHVSUz8D4P/N8nDyJ GhXoBWRJYsBf5QVdd0ZeFTdZyrQPZJfBbCZj+FnCnT+8HX/+D9S9snXsUM7yCSCDulWW/a6Co1o Sql4ywJr93WIN2qiSdXRX3T5viVVxKsAlscAjas4S/d6yupruyL4PUbXgicp6aqA/Syfrz4gVwu jFgg7Iu/ra6oh89dUMMsjNw== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Avoid describing the USB+DP lane_mux_sel logic twice by introducing a helper function to reduce code duplication. Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 81 +++++++++++++++------------= ---- 1 file changed, 40 insertions(+), 41 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 89a08267611c..4ba8b6f0a954 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -584,6 +584,42 @@ static void rk_udphy_mode_set(struct rk_udphy *udphy, = u8 mode) udphy->mode =3D mode; } =20 +static void rk_udphy_set_typec_state(struct rk_udphy *udphy, unsigned long= state) +{ + u8 mode; + + switch (state) { + case TYPEC_DP_STATE_C: + case TYPEC_DP_STATE_E: + udphy->lane_mux_sel[0] =3D PHY_LANE_MUX_DP; + udphy->lane_mux_sel[1] =3D PHY_LANE_MUX_DP; + 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; + + case TYPEC_DP_STATE_D: + default: + if (udphy->flip) { + udphy->lane_mux_sel[0] =3D PHY_LANE_MUX_DP; + udphy->lane_mux_sel[1] =3D PHY_LANE_MUX_DP; + udphy->lane_mux_sel[2] =3D PHY_LANE_MUX_USB; + udphy->lane_mux_sel[3] =3D PHY_LANE_MUX_USB; + } else { + udphy->lane_mux_sel[0] =3D PHY_LANE_MUX_USB; + udphy->lane_mux_sel[1] =3D PHY_LANE_MUX_USB; + 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_USB; + udphy->dp_lanes =3D 2; + break; + } + + rk_udphy_mode_set(udphy, mode); +} + static void rk_udphy_set_typec_default_mapping(struct rk_udphy *udphy) { if (udphy->flip) { @@ -591,10 +627,6 @@ static void rk_udphy_set_typec_default_mapping(struct = rk_udphy *udphy) udphy->dp_lane_sel[1] =3D 1; udphy->dp_lane_sel[2] =3D 3; udphy->dp_lane_sel[3] =3D 2; - udphy->lane_mux_sel[0] =3D PHY_LANE_MUX_DP; - udphy->lane_mux_sel[1] =3D PHY_LANE_MUX_DP; - udphy->lane_mux_sel[2] =3D PHY_LANE_MUX_USB; - udphy->lane_mux_sel[3] =3D PHY_LANE_MUX_USB; udphy->dp_aux_dout_sel =3D PHY_AUX_DP_DATA_POL_INVERT; udphy->dp_aux_din_sel =3D PHY_AUX_DP_DATA_POL_INVERT; gpiod_set_value_cansleep(udphy->sbu1_dc_gpio, 1); @@ -604,18 +636,14 @@ static void rk_udphy_set_typec_default_mapping(struct= rk_udphy *udphy) udphy->dp_lane_sel[1] =3D 3; udphy->dp_lane_sel[2] =3D 1; udphy->dp_lane_sel[3] =3D 0; - udphy->lane_mux_sel[0] =3D PHY_LANE_MUX_USB; - udphy->lane_mux_sel[1] =3D PHY_LANE_MUX_USB; - udphy->lane_mux_sel[2] =3D PHY_LANE_MUX_DP; - udphy->lane_mux_sel[3] =3D PHY_LANE_MUX_DP; udphy->dp_aux_dout_sel =3D PHY_AUX_DP_DATA_POL_NORMAL; udphy->dp_aux_din_sel =3D PHY_AUX_DP_DATA_POL_NORMAL; gpiod_set_value_cansleep(udphy->sbu1_dc_gpio, 0); gpiod_set_value_cansleep(udphy->sbu2_dc_gpio, 1); } =20 - rk_udphy_mode_set(udphy, UDPHY_MODE_DP_USB); - udphy->dp_lanes =3D 2; + /* default to USB3 + DP as 4 lane USB is not supported */ + rk_udphy_set_typec_state(udphy, TYPEC_DP_STATE_D); } =20 static int rk_udphy_orien_sw_set(struct typec_switch_dev *sw, @@ -1289,7 +1317,6 @@ static int rk_udphy_typec_mux_set(struct typec_mux_de= v *mux, struct typec_mux_state *state) { struct rk_udphy *udphy =3D typec_mux_get_drvdata(mux); - u8 mode; =20 /* * Ignore mux events not involving DP AltMode, because @@ -1301,38 +1328,10 @@ static int rk_udphy_typec_mux_set(struct typec_mux_= dev *mux, =20 mutex_lock(&udphy->mutex); =20 - switch (state->mode) { - case TYPEC_DP_STATE_C: - case TYPEC_DP_STATE_E: - udphy->lane_mux_sel[0] =3D PHY_LANE_MUX_DP; - udphy->lane_mux_sel[1] =3D PHY_LANE_MUX_DP; - 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; - - case TYPEC_DP_STATE_D: - default: - if (udphy->flip) { - udphy->lane_mux_sel[0] =3D PHY_LANE_MUX_DP; - udphy->lane_mux_sel[1] =3D PHY_LANE_MUX_DP; - udphy->lane_mux_sel[2] =3D PHY_LANE_MUX_USB; - udphy->lane_mux_sel[3] =3D PHY_LANE_MUX_USB; - } else { - udphy->lane_mux_sel[0] =3D PHY_LANE_MUX_USB; - udphy->lane_mux_sel[1] =3D PHY_LANE_MUX_USB; - 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_USB; - udphy->dp_lanes =3D 2; - break; - } - - rk_udphy_mode_set(udphy, mode); + rk_udphy_set_typec_state(udphy, state->mode); =20 mutex_unlock(&udphy->mutex); + return 0; } =20 --=20 2.53.0 From nobody Sat Jun 13 06:05:27 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 4EB302FDC27; Fri, 12 Jun 2026 16:27:23 +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=1781281644; cv=none; b=K+H35X2BhGRXfZvwlJoym9yYJzaD07DZVyMZ98B1W1iqnvq4BSuokRJ9MOlHPcZtC+yzxTKexavDkzrkMZsCKZvmu34/OnIidGXIxQlaYB1quBNQCiIcc1ijmosrOz1wx6G/ykgInMwGMtXZ1dZXIJKHzYImrieuQM91k13pLNg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281644; c=relaxed/simple; bh=TQjWe30iP+QgilolloWUpNb5d8ldWowCS2RaAcWUC6Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DTz97mmYUFg6+c0/PuugXNozSaOBOI8VAxBJDot3leB8c/Dbli6vuVQk9DSBS7VefFsdjjAJb1CoeBXKDg3epAfl4hOrIuX/twQ5Y3YA/+ZK/XyEnceNzEaJZS4zAwp4xO6NwAID+AtGTgI/Tl09DYsC5i1LCeEwOWWS8PZCrIQ= 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=LAVrbEnk; 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="LAVrbEnk" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281641; bh=TQjWe30iP+QgilolloWUpNb5d8ldWowCS2RaAcWUC6Q=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=LAVrbEnkDUxIY8LKDEPOdJcBH13N9KBwlx296+UJiE38sgjszfrGbIhOOkJrJ48Z6 E0zlRW5/vn5tNZ4h74AlaBrWQHpRvJc1LWMCCGaPAWus5pZHFvuKwR1fBovTOWjIxM bW6g1E+45a8JRrs3I9+cysmhv+Q3rNU8qkCdiyyPJLNV203LKAUS1lXa4sWk/EE2dx Mb+ZS/Muf5CoUae+HK/wR1TcAPxX7S8ckZVY3xCN/b2VHyx1sGDRX5UwkRn6N4TN6a +pEWLGKkdXyDoLFiXBM4J/mO45PxPs3WdD3EC7MRD2Kyh1xshFN/a5ExWScSLa9wmM iFQcV9tDUFpdA== 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)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 8E8FA17E35E3; Fri, 12 Jun 2026 18:27:21 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id DC58B480055; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:54 +0200 Subject: [PATCH v5 16/18] phy: rockchip: usbdp: Use guard functions for mutex 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: <20260612-rockchip-usbdp-cleanup-v5-16-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4395; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=TQjWe30iP+QgilolloWUpNb5d8ldWowCS2RaAcWUC6Q=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGosMiHUqM5F6HZgkgIiIkSxb1K9vCxFpnySJ bs9QpuH/0FAHIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PI O/qaIx0QAIq8Snm6ApF/CEZ7HvZrboecmFwtvq8JUuUo88ZKVBPeiPE2yZj+7NzgWiTA2kcZVoH ZwQbJf4DAPFneBj0whnbbVsObRF/GaAyb+1BMnY/kUwpZNKfw1aOpjJ5n5UoHCX+FMCIUd392lW zsSy6NKEETH+eZpmoHWeBsy9EknwNIh9NpCNyf2oIQo3xkgBMyNw3yXDcFZt2AcmpwT1p7jT/RF VuD0WahVD+TU+AYUOQjffFw4OZXDEULCLPza4pdfqa6GCybGCQltYmux5vzoTx5hmKbDUaI40Rk 5eYwnsHDzdEnktSUVPHssFiHLRHaZPMWSoPlsse/109HFdWNj2E77gSDIJ5Mjtovw3+qlUwmVys PTbffEL3jlfmSCXVjnfeM/yZyCW95+pUnnbgbqcfuAdiQBI16wTJezqq2oa0peK33We4SzCR95+ YHALvW7l4h235Z4pUgP0ETMaaZtRIUOgck5D8PjgGAJpiVj/QWqTh2S8GaEkcHE2s0Pf98S/bRG PXvUj9XzJV9V1Ecmb2YkG/349btjmb7oRf29i2EJMSot2u+51X2EUqufIYlfuWxq5LdIiD3RMjm 6ZgsIRD+gtNgRJtO0oA1qMJErPh5hwjn6zZHJ2gZJmVmQxi2hbIVeNFBnY02X0hjgKnRzZWdkX1 jOLtTfOjk9Qiq5TYbLsQmlQ== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Convert the driver to use guard functions for mutex handling as a small cleanup. There is a small functional change in the DP PHY power up function, which no longer sleeps if the internal powerup code returns an error. This is not a problem as the sleep is only relevant for successful power-up. Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 51 ++++++++++++++-------------= ---- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 4ba8b6f0a954..f673c5481d24 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -652,14 +653,15 @@ static int rk_udphy_orien_sw_set(struct typec_switch_= dev *sw, struct rk_udphy *udphy =3D typec_switch_get_drvdata(sw); bool flipped =3D orien =3D=3D TYPEC_ORIENTATION_REVERSE; =20 - mutex_lock(&udphy->mutex); + guard(mutex)(&udphy->mutex); =20 if (orien =3D=3D TYPEC_ORIENTATION_NONE) { gpiod_set_value_cansleep(udphy->sbu1_dc_gpio, 0); gpiod_set_value_cansleep(udphy->sbu2_dc_gpio, 0); /* unattached */ rk_udphy_usb_bvalid_enable(udphy, false); - goto unlock_ret; + + return 0; } =20 if (udphy->flip !=3D flipped) @@ -669,8 +671,6 @@ static int rk_udphy_orien_sw_set(struct typec_switch_de= v *sw, rk_udphy_set_typec_default_mapping(udphy); rk_udphy_usb_bvalid_enable(udphy, true); =20 -unlock_ret: - mutex_unlock(&udphy->mutex); return 0; } =20 @@ -1043,26 +1043,25 @@ static int rk_udphy_dp_phy_power_on(struct phy *phy) struct rk_udphy *udphy =3D phy_get_drvdata(phy); int ret; =20 - mutex_lock(&udphy->mutex); + scoped_guard(mutex, &udphy->mutex) { + phy_set_bus_width(phy, udphy->dp_lanes); =20 - phy_set_bus_width(phy, udphy->dp_lanes); - - ret =3D rk_udphy_power_on(udphy, UDPHY_MODE_DP); - if (ret) - goto unlock; + ret =3D rk_udphy_power_on(udphy, UDPHY_MODE_DP); + if (ret) + return ret; =20 - rk_udphy_dp_lane_enable(udphy, udphy->dp_lanes); + rk_udphy_dp_lane_enable(udphy, udphy->dp_lanes); =20 - rk_udphy_dp_lane_select(udphy); + rk_udphy_dp_lane_select(udphy); + } =20 -unlock: - mutex_unlock(&udphy->mutex); /* * If data send by aux channel too fast after phy power on, * the aux may be not ready which will cause aux error. Adding * delay to avoid this issue. */ usleep_range(10000, 11000); + return ret; } =20 @@ -1070,10 +1069,10 @@ static int rk_udphy_dp_phy_power_off(struct phy *ph= y) { struct rk_udphy *udphy =3D phy_get_drvdata(phy); =20 - mutex_lock(&udphy->mutex); + guard(mutex)(&udphy->mutex); + rk_udphy_dp_lane_enable(udphy, 0); rk_udphy_power_off(udphy, UDPHY_MODE_DP); - mutex_unlock(&udphy->mutex); =20 return 0; } @@ -1275,19 +1274,18 @@ static const struct phy_ops rk_udphy_dp_phy_ops =3D= { static int rk_udphy_usb3_phy_init(struct phy *phy) { struct rk_udphy *udphy =3D phy_get_drvdata(phy); - int ret =3D 0; + int ret; + + guard(mutex)(&udphy->mutex); =20 - mutex_lock(&udphy->mutex); /* DP only or high-speed, disable U3 port */ if (!(udphy->mode & UDPHY_MODE_USB) || udphy->hs) { rk_udphy_u3_port_disable(udphy, true); - goto unlock; + return 0; } =20 ret =3D rk_udphy_power_on(udphy, UDPHY_MODE_USB); =20 -unlock: - mutex_unlock(&udphy->mutex); return ret; } =20 @@ -1295,15 +1293,14 @@ static int rk_udphy_usb3_phy_exit(struct phy *phy) { struct rk_udphy *udphy =3D phy_get_drvdata(phy); =20 - mutex_lock(&udphy->mutex); + guard(mutex)(&udphy->mutex); + /* DP only or high-speed */ if (!(udphy->mode & UDPHY_MODE_USB) || udphy->hs) - goto unlock; + return 0; =20 rk_udphy_power_off(udphy, UDPHY_MODE_USB); =20 -unlock: - mutex_unlock(&udphy->mutex); return 0; } =20 @@ -1326,12 +1323,10 @@ static int rk_udphy_typec_mux_set(struct typec_mux_= dev *mux, if (!state->alt || state->alt->svid !=3D USB_TYPEC_DP_SID) return 0; =20 - mutex_lock(&udphy->mutex); + guard(mutex)(&udphy->mutex); =20 rk_udphy_set_typec_state(udphy, state->mode); =20 - mutex_unlock(&udphy->mutex); - return 0; } =20 --=20 2.53.0 From nobody Sat Jun 13 06:05:27 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 6CDAD3E16B4; Fri, 12 Jun 2026 16:22: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=1781281332; cv=none; b=VqiU5S20ryLFTYRhJjoVvlyMHbm7dDfsnv7Uebxykr3WtrXR9/tre6IOlHM8dSwQUVDLGKrjRYn19cOTmHJEukrMj8/QG//ElDMTYq2HfLoo5lncJa8oLGBk5MSr+cD+agYGTFkXWEy8pcubCx7xL/zx/mOJUR/pPa7AxDN70K0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281332; c=relaxed/simple; bh=92Mv1yzhLSYbLsOgazamE7Q+5BG1RVIB3041BamknIc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EB6EVrg+aSYANV1aqVRPzGx946m6eFt/pvEzL+zq52mkcMRnndcuZXNhwEC8cdjL92NTrfLCE/Dq70p0awRR/VOV5+SOklSIdabHcliNIxZLflzjigIl3dA6tdXcg9c8hYegYWKAYvU/RFOs/125FC0u+Wg2hKYxUbBwF1osZCE= 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=O2DZU3f1; 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="O2DZU3f1" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281315; bh=92Mv1yzhLSYbLsOgazamE7Q+5BG1RVIB3041BamknIc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=O2DZU3f1GfH+AewhvXI3KWqZmeXVSDCJSgCtFyCfLxp4dRNq5htKgBA0BT5qYnlIQ CKoMaZSadt6fHeZkMG9EVhRop4RKaKvxDIbyiif6ygqunOvJuKY6SU10GPM++qghX5 S1lDDZ67BD1LnPT+P8yye2+j7gY+jpRiHmIba62abpbTZRz4dAPCPFkVC6aYGHKeT2 ZOKGXDqJXISSRjx8+cuJ+8sqSqU2/1waziZHi2S3DkjuIcHbcbovp3Bpl6izM6KFC3 ywl/97qO7f+knKF0eSOnCmwCysC6eGe5fw3nuJ9Alx3dfKTUfSREDsALe2aYv24x+V jBTqSn+Qpp7rg== 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)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id CD93617E155B; Fri, 12 Jun 2026 18:21:54 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id DDD6C480061; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:55 +0200 Subject: [PATCH v5 17/18] phy: rockchip: usbdp: Support going from DP-only mode to USB mode 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: <20260612-rockchip-usbdp-cleanup-v5-17-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2679; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=92Mv1yzhLSYbLsOgazamE7Q+5BG1RVIB3041BamknIc=; b=kA0DAAoB2O7X88g7+poByyZiAGosMiGhZvmXEexMKc3rOFXaq1BtAo1pqrNEeadLsShg0Qpom okCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PIO/qazVAP/07U KfAWJu7NyAgqrgqhUobGRlP8b2rGX8s6E1RYF7kpeJ1XF5SzdMRn+kas7cB3GYvOMnTriSZhHCr qOTTAx/flGjjTYYvV+w+oK0U6fQij8UHqhJq4Mw4BDVzRWHu98rAKCV21v+ctxqAgNg4fzHM3Zy GsxGgtylnizK+D5c3T8evyFwxNNq8MZ2dJtgqFHWqT7QEaXt9/hFkeX2bQwenHynghRmwo5+OZf hgcPmAl71j2SB9ZKann64SWSyi4QV5PyNkHoPNPeY3aUTkH0f9Z1CtlY5TJry7K5fN1Fk3zrTeU O37w8EYIQC+/RE8sBADmkJAe/ZCTw0LrEQU8qozaUVM+Eav76h1RHoYckzeykjoem4s7vyUAguv F2HzdAwDcz5tI4UT8WJSRqEmFaXkNTg46iqkSjwjWZGZa5fSQkI9HoDINfpxfGYSkIItC4KjwoH GcWtaR7J1JDGOZCRSrFj/WnYAcK+DvUPqU1SvOZDVPwjsT/BTEe3HaLf7QBfGt1PpV/rXqDQt4D bpElkG2Qqk9WZy8wczsxS77todBPm2dt50pWNqDgBGe9/lWmYdO6EEX3zWrHDzJaJKbHobk8MyX KTO3DBGcQVZG0EdJS+Qmz77nL44IAlJcsknU40VO96tfOdxyZaC3GwdceDWH0m9UfiwqURXjsyK 72IOU X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A When a USB-C adapter, which maps all Superspeed lanes to DP is plugged in, the USB support is disabled in the PHY. When the adapter is unplugged and a different adapter with USB functionality is plugged in afterwards, USB functionality is not restored as the USB controller keeps the PHY enabled for the entire time. Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index f673c5481d24..236331cc0d13 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -178,6 +178,7 @@ struct rk_udphy { =20 /* utilized for USB */ bool hs; /* flag for high-speed */ + bool usb_in_use; =20 /* utilized for DP */ struct gpio_desc *sbu1_dc_gpio; @@ -1015,6 +1016,9 @@ static int rk_udphy_power_on(struct rk_udphy *udphy, = u8 mode) ret =3D rk_udphy_init(udphy); if (ret) return ret; + + if (udphy->mode & UDPHY_MODE_USB) + rk_udphy_u3_port_disable(udphy, false); } =20 udphy->status |=3D mode; @@ -1278,6 +1282,8 @@ static int rk_udphy_usb3_phy_init(struct phy *phy) =20 guard(mutex)(&udphy->mutex); =20 + udphy->usb_in_use =3D true; + /* DP only or high-speed, disable U3 port */ if (!(udphy->mode & UDPHY_MODE_USB) || udphy->hs) { rk_udphy_u3_port_disable(udphy, true); @@ -1295,6 +1301,8 @@ static int rk_udphy_usb3_phy_exit(struct phy *phy) =20 guard(mutex)(&udphy->mutex); =20 + udphy->usb_in_use =3D false; + /* DP only or high-speed */ if (!(udphy->mode & UDPHY_MODE_USB) || udphy->hs) return 0; @@ -1314,6 +1322,7 @@ static int rk_udphy_typec_mux_set(struct typec_mux_de= v *mux, struct typec_mux_state *state) { struct rk_udphy *udphy =3D typec_mux_get_drvdata(mux); + u8 old_mode; =20 /* * Ignore mux events not involving DP AltMode, because @@ -1325,8 +1334,20 @@ static int rk_udphy_typec_mux_set(struct typec_mux_d= ev *mux, =20 guard(mutex)(&udphy->mutex); =20 + old_mode =3D udphy->mode; + rk_udphy_set_typec_state(udphy, state->mode); =20 + /* + * If the new mode includes USB but the old one didn't (e.g. leaving + * DP-only), and the USB PHY was already initialized by the USB + * controller, we need to power on the USB side now since no + * subsequent phy_init call will come from the controller. + */ + if ((udphy->mode & UDPHY_MODE_USB) && !(old_mode & UDPHY_MODE_USB) && + udphy->usb_in_use && !udphy->hs) + rk_udphy_power_on(udphy, UDPHY_MODE_USB); + return 0; } =20 --=20 2.53.0 From nobody Sat Jun 13 06:05:27 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 4EAA6219FC; Fri, 12 Jun 2026 16:27:23 +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=1781281644; cv=none; b=jYPSD56y1w9CnI7Plna6D5U1QABmbrjtduEvfKcMioXhHXHovhvXsJx3yQyZ6zst5neG4/HHrIK7QaT0aVpE3R1Ntjfjfkqns81ZLf7qugwpBuZvnW2bA6MpL+12jJohUiNJyCHiX3hRNlCf35vVUBpVf95QY7hHmsIIwyHffjw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781281644; c=relaxed/simple; bh=HLJfkYvaJE6vU0w2x8CHyfN8q0SgDuG8KtmXkuwPh1Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KhVnPvMLk/Q7m970RT3hfvlFNOmunyy2ZQ0QYmVq0NNzvg/aeiF4fawFuAEU3cmjbmduIo2gjXYTPldLqBhMh5522jtMhX9Tt6C5E5RaDoGF2n5GXQSjdykLsYF1S8EUQ4hwmxbkfqi7QbC58N4DLUCaFdrmPOBvTIdTaCeiNyo= 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=ECu1XSFp; 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="ECu1XSFp" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781281641; bh=HLJfkYvaJE6vU0w2x8CHyfN8q0SgDuG8KtmXkuwPh1Y=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ECu1XSFpEXOqmOi7Fkr4XXgpcQpz8O2HOuigN7veLOG5ddPTcKFZKAVuh1pnUYK64 syAJCtGWrtA0egn17fOl4jup3mW1/ODRFVyVJ0SfMNnoT6rf+n1M1p7zf8UT5hRaea ceyzAeqB1rFYs3DLtKBShAETMAvFtpw55VOowOvMgxtUDUXcFMjZt8RR6Yv9nakZkF DFA9HK9Iz0c+KZesiCTA3mPzpQeEMCIjbWzCCF+DDm07Tfvh/repGUv4T+g6uVVMlP ajHKTH1RN31gi2OBjzdVVmDiyUI898ulk3wgvEGZpTURNbSmdwvN+rWW+B+RH1ScMI E0PEkQqWzRytg== 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)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 8FE8717E35E4; Fri, 12 Jun 2026 18:27:21 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id DF5D7480062; Fri, 12 Jun 2026 18:21:53 +0200 (CEST) From: Sebastian Reichel Date: Fri, 12 Jun 2026 18:21:56 +0200 Subject: [PATCH v5 18/18] phy: rockchip: usbdp: Add some extra debug messages 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: <20260612-rockchip-usbdp-cleanup-v5-18-efc83069869f@collabora.com> References: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> In-Reply-To: <20260612-rockchip-usbdp-cleanup-v5-0-efc83069869f@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1819; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=HLJfkYvaJE6vU0w2x8CHyfN8q0SgDuG8KtmXkuwPh1Y=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGosMiEezP9iqnNrRmCYYUGmd407dMDcqIIaU C691vroSvcju4kCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqLDIhAAoJENju1/PI O/qaL2oQAJLECuKbtLdqJjGnNSLcBZW2EHi//3RjZ/zYADEuirLdgvcQahxUuQLVf1lEDNS3YSr yKdEksEyQfPeut7+aIUTk3UPX1igNwI7FHW4GtBGhu58Uy8D5spq2E34HWbEcWTOjPyk40WuU+P RgwYzJE/An6EVt7du4ilKJa7RbboH0FpzNGz5Jk/zDOhkK9pIoX83BpEVlYLipNUUY6nuI+BT1g 7imDgQPj4w08TsF3udAwv0Csp6kbE2v5k0wHbL0Loi2mmLER3AGs2ZKsLUFtZkjUlY7DwXqwQQi LV01WJmzaMl7P2zORLuxeR/bptX14imFBfFN/N9nworFZCedGwFrYrhjz86WEC5z6VsLM/I3Qbi t28r/GWLtA2D2dPsE8pYzfg145/QExBHfB8/z/ttWVvy4c9lh2QzqJnkbrCxPXHzbSjRL+7k0Nv l/kBva24fKwDtrswhxZ2xYX2Vbj0hHezjiXkHrkO830iMS8oVwCHgu7l9UrsprfYlc+D1PUSa+t Jcc9EE9+hei9N8rYRSu3Te2yBi8N1r5TGUE9vnDbjP3ppM41jPTK028dl76AQJMSnRHJ6OknS35 iDAyA/7E6XC/58yURX74vmTRaM8xsLoq/wSJtmFRwZmUlQv55V7xHXYQixC9cDHkej1cgiP8KXc Q5B62NN7XrZpSXVcFa38s6g== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A It's useful to log PHY reinit to ease debugging issues around USB-C hotplugging. Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 236331cc0d13..4042e2dd8121 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -491,6 +491,8 @@ static void rk_udphy_u3_port_disable(struct rk_udphy *u= dphy, u8 disable) const struct rk_udphy_cfg *cfg =3D udphy->cfgs; const struct rk_udphy_grf_reg *preg; =20 + dev_dbg(udphy->dev, "USB3 port %s\n", str_on_off(!disable)); + preg =3D udphy->id ? &cfg->grfcfg.usb3otg1_cfg : &cfg->grfcfg.usb3otg0_cf= g; rk_udphy_grfreg_write(udphy->usbgrf, preg, disable); } @@ -784,6 +786,10 @@ static int rk_udphy_init(struct rk_udphy *udphy) const struct rk_udphy_cfg *cfg =3D udphy->cfgs; int ret; =20 + dev_dbg(udphy->dev, "(re-)init PHY with USB=3D%s and DP=3D%s\n", + str_enabled_disabled(udphy->mode & UDPHY_MODE_USB), + str_enabled_disabled(udphy->mode & UDPHY_MODE_DP)); + rk_udphy_reset_assert_all(udphy); usleep_range(10000, 11000); =20 @@ -854,6 +860,8 @@ static int rk_udphy_setup(struct rk_udphy *udphy) { int ret; =20 + dev_dbg(udphy->dev, "enable PHY\n"); + ret =3D clk_bulk_prepare_enable(udphy->num_clks, udphy->clks); if (ret) { dev_err(udphy->dev, "failed to enable clk\n"); @@ -872,6 +880,7 @@ static int rk_udphy_setup(struct rk_udphy *udphy) =20 static void rk_udphy_disable(struct rk_udphy *udphy) { + dev_dbg(udphy->dev, "disable PHY\n"); clk_bulk_disable_unprepare(udphy->num_clks, udphy->clks); rk_udphy_reset_assert_all(udphy); } --=20 2.53.0