From nobody Thu Apr 23 09:11:18 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E1BF62F5E; Tue, 27 May 2025 20:40:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748378426; cv=none; b=SQ1MN62m26kAIwzE2wJ/tZY/VT0s/q/8GJmEkde1PWzkhm6w0jcPGuFcIWV2Y8cun8Ud25UGD43xA3hfvYtNWYO6RIA4Crz1+Gc/Na+8noCTWroVOoMHiBDPgLbXENOVvMtZ+a3LTU+HrFpct22XO3zSPwrSIIWGpc8LzA72fTA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748378426; c=relaxed/simple; bh=OZGSFzDt9WhrXPK5JCxiNfHA9Ym5WHvuiEgfK7Q0v1Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=p8MGNZZxMmv+4Zt9RiVrUyM0G9yF3eWcIc8aWH/40DpAf/zOdYgBfKGFO5wqUhaAnzFN1gRaxQBak+gwAn8j0xexyuZJDZ7p+77V3U3H0zyZATTqBEDOyJsJqL/4OikE3AJMmtI8MoKeaWNjcMLLee6VGAtgxfcGDz71FfIjlmg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=De3iS55A; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="De3iS55A" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DCA04C4CEF1; Tue, 27 May 2025 20:40:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1748378425; bh=OZGSFzDt9WhrXPK5JCxiNfHA9Ym5WHvuiEgfK7Q0v1Q=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=De3iS55AV1K33Z7Cg96RhvIjCBqBDiYJIWcyCg2URtg1A1i2rQGnd07mwMDSIyMFI VLlZ9AdMCQnIdGurR8wVvU4p+xLSuS0+rdSKMJEf+EyCYzTVeEWhSf+bURIiIKz3Sr 5DswnYcOT+R8RCg13Gm65DrKULk4qrhd3m4jX8lib7Fi932Z3nadldn6B/knqCbLvk DaNdsnSXyzfdtFBBM406pPFeLQUNbPorhAcIpduQvWAobfbNtO/NN/0c3yx0M96OFx By6eseQ8QBe3Xcu3kUq0A20PvlMGSLYdZhyn1RsHmZXOXKZmwzyRDE64gE8tmOy2xh 6CVkEaPgv/7/g== From: Konrad Dybcio Date: Tue, 27 May 2025 22:40:03 +0200 Subject: [PATCH v3 1/6] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp: Reference usb-switch.yaml to allow mode-switch 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: <20250527-topic-4ln_dp_respin-v3-1-f9a0763ec289@oss.qualcomm.com> References: <20250527-topic-4ln_dp_respin-v3-0-f9a0763ec289@oss.qualcomm.com> In-Reply-To: <20250527-topic-4ln_dp_respin-v3-0-f9a0763ec289@oss.qualcomm.com> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: Marijn Suijten , linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Neil Armstrong , Krzysztof Kozlowski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1748378414; l=1691; i=konrad.dybcio@oss.qualcomm.com; s=20230215; h=from:subject:message-id; bh=PXkLGrcv3UJAZq8C/WK6VHbmWRh0H5KeqDACbLWooeY=; b=WcBiUfrusp5lQZsLehD4Bqyr+NkQempWA6f8W3GrAfmt9OhZOR6dvOeVMhOyG+80r3r2BVFyU lyxE3t6IvnHBfqNRqTT4TgbcPQJWKQq9XmfMkLWRH7iKt5bNr3a31I/ X-Developer-Key: i=konrad.dybcio@oss.qualcomm.com; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= From: Neil Armstrong The QMP USB3/DP Combo PHY can work in 3 modes: - DisplayPort Only - USB3 Only - USB3 + DisplayPort Combo mode In order to switch between those modes, the PHY needs to receive Type-C events, allow marking to the phy with the mode-switch property in order to allow the PHY to Type-C events. Reference usb-switch.yaml as a simpler way to allow the mode-switch property instead of duplicating the property definition. Signed-off-by: Neil Armstrong Reviewed-by: Krzysztof Kozlowski Signed-off-by: Konrad Dybcio Tested-by: Aleksandrs Vinarskis # x1e80100,=20 Tested-by: Jens Glathe --- .../devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml | 7 +++= ---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43d= p-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43d= p-phy.yaml index 358a6736a951ca5db7cff7385b3657976a667358..692dbfe26e84778fcabae45ac9f= a87195f796adb 100644 --- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.y= aml +++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.y= aml @@ -72,10 +72,8 @@ properties: description: See include/dt-bindings/phy/phy-qcom-qmp.h =20 - orientation-switch: - description: - Flag the PHY as possible handler of USB Type-C orientation switching - type: boolean + mode-switch: true + orientation-switch: true =20 ports: $ref: /schemas/graph.yaml#/properties/ports @@ -105,6 +103,7 @@ required: - "#phy-cells" =20 allOf: + - $ref: /schemas/usb/usb-switch.yaml# - if: properties: compatible: --=20 2.49.0 From nobody Thu Apr 23 09:11:18 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 55D832F5E; Tue, 27 May 2025 20:40:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748378430; cv=none; b=ihZx0oAJFZiZklwKji952PFyqT8TLXiwSZyR6D4TMufS2YhQiMMapGPAiS0vPcY6r9dGXKg3FBhdczc0ookPUt7ckrdgps7bD/UkrLK1O4PaYXUd0D/qvIUazhEWTVo9MaDJ3ix17+xUh6Z6wMtclGYXfKIHU0f0o25Hj1u2hlc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748378430; c=relaxed/simple; bh=80WshDR6zLihMIQ1Fuov3rKfCExcliWYG7gNxmXPk7c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Yk6yyPAc2hOWc4dIMKPayEWT9+x49tnMdUb41Y7MmqNBSGcBC2lJ0x6soYH6mjNRYVIB8GvcrO/KjOirYl2626W7rSyhMynWYJUW1jUqyEFrPtpt9QiUkNiTe30ts29q7wCPpfoRaYA16UOuNIbtyDWlbnnCz6tXdlV0Yk1TKIM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Owtdtunm; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Owtdtunm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 50DC6C4CEEB; Tue, 27 May 2025 20:40:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1748378429; bh=80WshDR6zLihMIQ1Fuov3rKfCExcliWYG7gNxmXPk7c=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=OwtdtunmXPkzmcPo5Zvv90XBDCf3clkTZfEJ+lQkMvBnR6NGp1JWLo4YpnpQouhY5 l91S4Y2z4hOLNvUIwbuO+zRT6T98CGMNGJV8Tm+jaIKhRJQa2KfTk5Ql5KtiL0ma76 +b1N7UYQo+403snDupipODXZ2vQl5eDtfjiGRIWFGaf3uMKCxAoiHIndK927UDnR9A toNThqSZKsDQTMf81hXqIDAKZV96zls8uomnZ1fsH2fG6yCUTWVNBnsTocx/L2Gh0m r65qn+57Lbr3hkFzPvDP4gqKqcY810sai7xe9A1HmZc4ZW87RP0LwprblFFSq0L368 jwY8oDt868zPw== From: Konrad Dybcio Date: Tue, 27 May 2025 22:40:04 +0200 Subject: [PATCH v3 2/6] phy: qcom: qmp-combo: Rename 'mode' to 'phy_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: <20250527-topic-4ln_dp_respin-v3-2-f9a0763ec289@oss.qualcomm.com> References: <20250527-topic-4ln_dp_respin-v3-0-f9a0763ec289@oss.qualcomm.com> In-Reply-To: <20250527-topic-4ln_dp_respin-v3-0-f9a0763ec289@oss.qualcomm.com> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: Marijn Suijten , linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1748378414; l=2335; i=konrad.dybcio@oss.qualcomm.com; s=20230215; h=from:subject:message-id; bh=8zsk6pY1mGQ9V2CSqJ6lVOkHlqYoE0Q7NoLJL4vEC8U=; b=5MZe69aj4TYyDsj0Y9IbfBXXuhHnoYF7mfs5DjE0ElcTr5cxe9zX++shRcDvpWPbFqlYIvSs5 LxW3ZppyI3TDwJFWCZLKRQ4nHbjHj7FWOBJ8JnX3o1n6gqjn/nKG0y/ X-Developer-Key: i=konrad.dybcio@oss.qualcomm.com; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= From: Konrad Dybcio There are a numbers of ""modes"" involved: USB mode, Type-C mode (with its altmodes), phy_mode and QMP_PHY mode (DP/combo/USB/off). Rename the generic sounding 'mode' to 'phy_mode' to hopefully make the code easier to follow. Signed-off-by: Konrad Dybcio Reviewed-by: Dmitry Baryshkov Tested-by: Aleksandrs Vinarskis # x1e80100,=20 Tested-by: Jens Glathe --- drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualco= mm/phy-qcom-qmp-combo.c index b09fa00e9fe7db8d97b7179ee15d3f07fe578b0c..d0396817f3a05c7e4baeef0de13= 32c3a83942a51 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c @@ -1687,7 +1687,7 @@ struct qmp_combo { int init_count; =20 struct phy *usb_phy; - enum phy_mode mode; + enum phy_mode phy_mode; unsigned int usb_init_count; =20 struct phy *dp_phy; @@ -3062,7 +3062,7 @@ static int qmp_combo_usb_set_mode(struct phy *phy, en= um phy_mode mode, int submo { struct qmp_combo *qmp =3D phy_get_drvdata(phy); =20 - qmp->mode =3D mode; + qmp->phy_mode =3D mode; =20 return 0; } @@ -3091,8 +3091,8 @@ static void qmp_combo_enable_autonomous_mode(struct q= mp_combo *qmp) void __iomem *pcs_misc =3D qmp->pcs_misc; u32 intr_mask; =20 - if (qmp->mode =3D=3D PHY_MODE_USB_HOST_SS || - qmp->mode =3D=3D PHY_MODE_USB_DEVICE_SS) + if (qmp->phy_mode =3D=3D PHY_MODE_USB_HOST_SS || + qmp->phy_mode =3D=3D PHY_MODE_USB_DEVICE_SS) intr_mask =3D ARCVR_DTCT_EN | ALFPS_DTCT_EN; else intr_mask =3D ARCVR_DTCT_EN | ARCVR_DTCT_EVENT_SEL; @@ -3135,7 +3135,7 @@ static int __maybe_unused qmp_combo_runtime_suspend(s= truct device *dev) { struct qmp_combo *qmp =3D dev_get_drvdata(dev); =20 - dev_vdbg(dev, "Suspending QMP phy, mode:%d\n", qmp->mode); + dev_vdbg(dev, "Suspending QMP phy, mode:%d\n", qmp->phy_mode); =20 if (!qmp->init_count) { dev_vdbg(dev, "PHY not initialized, bailing out\n"); @@ -3155,7 +3155,7 @@ static int __maybe_unused qmp_combo_runtime_resume(st= ruct device *dev) struct qmp_combo *qmp =3D dev_get_drvdata(dev); int ret =3D 0; =20 - dev_vdbg(dev, "Resuming QMP phy, mode:%d\n", qmp->mode); + dev_vdbg(dev, "Resuming QMP phy, mode:%d\n", qmp->phy_mode); =20 if (!qmp->init_count) { dev_vdbg(dev, "PHY not initialized, bailing out\n"); --=20 2.49.0 From nobody Thu Apr 23 09:11:18 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2674720C005; Tue, 27 May 2025 20:40:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748378435; cv=none; b=F49H0jDUxcn/S0QE/BbGGPWsueUIWT8Zedtzo/vPGCb2dByTay4zSztOXRmEZQZzoN1RoUFhOrzOiV1vWT1Bag/Q/5MSiqNDhPRbMuM2OxKBwVG/ftzU50ZMyGfY2ik0HCkWWzNyVOFBBkeeQK2ngRWo1VyrZzgE81PzjUV1494= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748378435; c=relaxed/simple; bh=+kMfvsj3qW5GkjvnoS0rVhOW7WWz5446Zayh8ytLTzg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nwgbaxrOsM4NGLb2M10C8VEjDEt7kO01aR7t/5D2sJgFh9frwASBKay03xEKNsz+TmhcY3XGi2E7EOpsUUmvhyg9z2h/j7g1+3M95xxdqT6CpzUGZhVLUK47gwRKvIvQZN+JKjePG3VNUadSiv78cIB6WkbwGyZw7vgpaF4fzoo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RKH0eO/y; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RKH0eO/y" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 506F8C4CEED; Tue, 27 May 2025 20:40:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1748378435; bh=+kMfvsj3qW5GkjvnoS0rVhOW7WWz5446Zayh8ytLTzg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=RKH0eO/y4HrwIxyEiXf8eQhkeWcCs+ieIb95F8xts5B+UpCqwTHK3kL6yn+5UkHVN WPF5eeUq2mYEYj5veoD2vCxajJ+Eu+HxeaaWEjWSKwMiiwWkTQfJFfEJe/gTQuxGDD SmBlqWbI+J/9vlCN+TR7SWgTUoEO/BzWTaXOWa2DXShv3K4n5UwxHYtg7lwZuLfEcK UN8RJ3OHZkx0AtAm41mhFAKlInyNcv4pT8l0gGf+vDi+Los2iIjuf1zQbFZyf3p2Vq uST5dQOrA/puHKb1FO3mJ2VQT20tsjhXfCv2C/Cpn4YpwDUmuE+PBiIm1DU41yFNJI 3UiUPuivJcp2Q== From: Konrad Dybcio Date: Tue, 27 May 2025 22:40:05 +0200 Subject: [PATCH v3 3/6] phy: qcom: qmp-combo: store DP phy power state 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: <20250527-topic-4ln_dp_respin-v3-3-f9a0763ec289@oss.qualcomm.com> References: <20250527-topic-4ln_dp_respin-v3-0-f9a0763ec289@oss.qualcomm.com> In-Reply-To: <20250527-topic-4ln_dp_respin-v3-0-f9a0763ec289@oss.qualcomm.com> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: Marijn Suijten , linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Neil Armstrong , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1748378414; l=1388; i=konrad.dybcio@oss.qualcomm.com; s=20230215; h=from:subject:message-id; bh=NQKO8n4zzlkDvZmTHNCLJMlvFM/BrHDE0uxXDvRG8kM=; b=wjVee6C4Ago1ttdhY6xOAPs8jrJKNfslmSBZ6p1gRGU3WO3OyMhyP/Amrkx5Texh8TS/5cdug HjXLt8cbem9D9b52FLBjXYXs8BbysFE/kkAqby6irVdFAk2Trbgqptp X-Developer-Key: i=konrad.dybcio@oss.qualcomm.com; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= From: Neil Armstrong Switching the PHY Mode requires the DisplayPort PHY to be powered off, keep track of the DisplayPort phy power state. Signed-off-by: Neil Armstrong Reviewed-by: Dmitry Baryshkov Tested-by: Aleksandrs Vinarskis # x1e80100,=20 Tested-by: Jens Glathe --- drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualco= mm/phy-qcom-qmp-combo.c index d0396817f3a05c7e4baeef0de1332c3a83942a51..26480d63322b22eca9637392f88= 8bfbe440c2a13 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c @@ -1694,6 +1694,7 @@ struct qmp_combo { unsigned int dp_aux_cfg; struct phy_configure_opts_dp dp_opts; unsigned int dp_init_count; + bool dp_powered_on; =20 struct clk_fixed_rate pipe_clk_fixed; struct clk_hw dp_link_hw; @@ -2913,6 +2914,8 @@ static int qmp_combo_dp_power_on(struct phy *phy) /* Configure link rate, swing, etc. */ cfg->configure_dp_phy(qmp); =20 + qmp->dp_powered_on =3D true; + mutex_unlock(&qmp->phy_mutex); =20 return 0; @@ -2927,6 +2930,8 @@ static int qmp_combo_dp_power_off(struct phy *phy) /* Assert DP PHY power down */ writel(DP_PHY_PD_CTL_PSR_PWRDN, qmp->dp_dp_phy + QSERDES_DP_PHY_PD_CTL); =20 + qmp->dp_powered_on =3D false; + mutex_unlock(&qmp->phy_mutex); =20 return 0; --=20 2.49.0 From nobody Thu Apr 23 09:11:18 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4350420C47F; Tue, 27 May 2025 20:40:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748378440; cv=none; b=hc5mWF8k+/U94Fojta3bRL0iJHH8v0LwI35Rkd0S3C0QzFzz6hO03o5ECMNVUXoDzm2Qvwk84SGkAwPZezYVSAc6StdzHAw4ZCNdIIKuKyB3aGBPmeHb1JRobGC4TyLADqfZ2hEjJ7C33kM/oVDwSCQ8jg06FDARLADXuKDvk5g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748378440; c=relaxed/simple; bh=IpMb7V0sAlt8/QPGelTGeOsg+wTJq9WrQx/D96Ll6L0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JudgtvU6Jz+2Tc4tQ5c/f9IR0Z/MpaDazJntTpSS23bqW5jXh2p3dbXQ5C1dyt4DG34kSmIJxzxTN4cX8WUJA7pY471IbCXnPeXAErVCUdsv32/+CUzdWQDabWpbzBCv2Iai0Z/TZ3OaQLOLpWlp0zwVJJHkxVoCd1b1k4obNNo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sm0iTUnq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sm0iTUnq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9D512C4CEED; Tue, 27 May 2025 20:40:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1748378439; bh=IpMb7V0sAlt8/QPGelTGeOsg+wTJq9WrQx/D96Ll6L0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=sm0iTUnqpGSTq1Y8Dz5W4NuIK65PfDjOitYRyTrKZBDPC0JP6klw4PqLhkFilRAOz XToWo8EkeK7/NWoNBbA3WUAGrbS0MaLPwRPNIs+hWfFln8hV84EsWdeCbTvtjJhmK8 hCL7xjvblRYHkhlGB7FAo3pEXGo4DS71hhQh6jDZiEmYiH84M3Zb4OcH5d470z8aj+ /6nQPe6PdEs0c9jwgoeqghuVshAPfifKFcCjxA1zev0LWx/6enBIAWKOPGIZXBj/Rk b7XVYPc8cVR22ioaG32IRDWLpgnbwTxNOpQttnLfYr7g8aTJZOw1yAl4fY3hk9zKJm 1Rj9uI/htbwCQ== From: Konrad Dybcio Date: Tue, 27 May 2025 22:40:06 +0200 Subject: [PATCH v3 4/6] phy: qcom: qmp-combo: introduce QMPPHY_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: <20250527-topic-4ln_dp_respin-v3-4-f9a0763ec289@oss.qualcomm.com> References: <20250527-topic-4ln_dp_respin-v3-0-f9a0763ec289@oss.qualcomm.com> In-Reply-To: <20250527-topic-4ln_dp_respin-v3-0-f9a0763ec289@oss.qualcomm.com> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: Marijn Suijten , linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Neil Armstrong X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1748378414; l=3132; i=konrad.dybcio@oss.qualcomm.com; s=20230215; h=from:subject:message-id; bh=BRtYMDxSKD4x12RQQ6A5MlAQlMhQmTMBNmxjgiW2Chw=; b=gQjg8nQnAUGrwjxRU5MiHRlAjrYVku3MgKHySByvAkjXbgEBmybkXtq15P0JmJOAklP46JIbY d+KUTZoZGb2DSdRn60uujm0YfyMJeo5RFaR/mkgpb4gOO3WQyVEeRzj X-Developer-Key: i=konrad.dybcio@oss.qualcomm.com; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= From: Neil Armstrong Introduce an enum for the QMP Combo PHY modes, use it in the QMP commmon phy init function and default to COMBO mode. Signed-off-by: Neil Armstrong [konrad: some renaming and rewording] Signed-off-by: Konrad Dybcio Tested-by: Aleksandrs Vinarskis # x1e80100,=20 Tested-by: Jens Glathe --- drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 44 +++++++++++++++++++++++++++= ---- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualco= mm/phy-qcom-qmp-combo.c index 26480d63322b22eca9637392f888bfbe440c2a13..b34ad92021a656b39562e2685a1= e7a0a93660a35 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c @@ -61,6 +61,12 @@ =20 #define PHY_INIT_COMPLETE_TIMEOUT 10000 =20 +enum qmpphy_mode { + QMPPHY_MODE_USB3DP =3D 0, + QMPPHY_MODE_DP_ONLY, + QMPPHY_MODE_USB3_ONLY, +}; + /* set of registers with offsets different per-PHY */ enum qphy_reg_layout { /* PCS registers */ @@ -1685,6 +1691,7 @@ struct qmp_combo { =20 struct mutex phy_mutex; int init_count; + enum qmpphy_mode qmpphy_mode; =20 struct phy *usb_phy; enum phy_mode phy_mode; @@ -2817,12 +2824,33 @@ static int qmp_combo_com_init(struct qmp_combo *qmp= , bool force) if (qmp->orientation =3D=3D TYPEC_ORIENTATION_REVERSE) val |=3D SW_PORTSELECT_VAL; writel(val, com + QPHY_V3_DP_COM_TYPEC_CTRL); - writel(USB3_MODE | DP_MODE, com + QPHY_V3_DP_COM_PHY_MODE_CTRL); =20 - /* bring both QMP USB and QMP DP PHYs PCS block out of reset */ - qphy_clrbits(com, QPHY_V3_DP_COM_RESET_OVRD_CTRL, - SW_DPPHY_RESET_MUX | SW_DPPHY_RESET | - SW_USB3PHY_RESET_MUX | SW_USB3PHY_RESET); + switch (qmp->qmpphy_mode) { + case QMPPHY_MODE_USB3DP: + writel(USB3_MODE | DP_MODE, com + QPHY_V3_DP_COM_PHY_MODE_CTRL); + + /* bring both QMP USB and QMP DP PHYs PCS block out of reset */ + qphy_clrbits(com, QPHY_V3_DP_COM_RESET_OVRD_CTRL, + SW_DPPHY_RESET_MUX | SW_DPPHY_RESET | + SW_USB3PHY_RESET_MUX | SW_USB3PHY_RESET); + break; + + case QMPPHY_MODE_DP_ONLY: + writel(DP_MODE, com + QPHY_V3_DP_COM_PHY_MODE_CTRL); + + /* bring QMP DP PHY PCS block out of reset */ + qphy_clrbits(com, QPHY_V3_DP_COM_RESET_OVRD_CTRL, + SW_DPPHY_RESET_MUX | SW_DPPHY_RESET); + break; + + case QMPPHY_MODE_USB3_ONLY: + writel(USB3_MODE, com + QPHY_V3_DP_COM_PHY_MODE_CTRL); + + /* bring QMP USB PHY PCS block out of reset */ + qphy_clrbits(com, QPHY_V3_DP_COM_RESET_OVRD_CTRL, + SW_USB3PHY_RESET_MUX | SW_USB3PHY_RESET); + break; + } =20 qphy_clrbits(com, QPHY_V3_DP_COM_SWI_CTRL, 0x03); qphy_clrbits(com, QPHY_V3_DP_COM_SW_RESET, SW_RESET); @@ -3833,6 +3861,12 @@ static int qmp_combo_probe(struct platform_device *p= dev) if (ret) goto err_node_put; =20 + /* + * The hw default is USB3_ONLY, but USB3+DP mode lets us more easily + * check both sub-blocks' init tables for blunders at probe time. + */ + qmp->qmpphy_mode =3D QMPPHY_MODE_USB3DP; + qmp->usb_phy =3D devm_phy_create(dev, usb_np, &qmp_combo_usb_phy_ops); if (IS_ERR(qmp->usb_phy)) { ret =3D PTR_ERR(qmp->usb_phy); --=20 2.49.0 From nobody Thu Apr 23 09:11:18 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 63F8C20D51D; Tue, 27 May 2025 20:40:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748378444; cv=none; b=kw2A+P4YdWTbITJZTyt1fZ90q7kycSr0UQqQSNup8bY7Fioq4QNCc19d4Udwn30xg/PmnZmpsUuZ56husqbtflSoOst+/TtPZlhMv/1XrPtW9JNb849uMcrGDZq+vY8IhF/n/q9EIoVZ7j55MUq/iCtRufIp6uCTxbZA3d2E4r4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748378444; c=relaxed/simple; bh=iGRNn0Ik9GXgiezNKZDAhg9fUrRbLbH1eQNpIXs/Big=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=l+Eu25LH5ny0n/p75URow/knkpcPqN8Ri8NnxIr87sGmV2ChhnVbEX2VRPJsUnEoz/7WhRVapNEcIGl/d3zD1tBViiobHagWnP57PmOLM7ixwYvdSXAmLAAIN1CHxEJGicDxytj6eDg1nMQMr7TljamSJTF64lUfjngSbhZ5MeU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=j8O6NOn/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="j8O6NOn/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 581DEC4CEE9; Tue, 27 May 2025 20:40:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1748378443; bh=iGRNn0Ik9GXgiezNKZDAhg9fUrRbLbH1eQNpIXs/Big=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=j8O6NOn/WRrnzRYePWoo+YwrVlLn0HdHgy4jOsxhatu+PohNreY1fahjcPHA243IM XOyxxGA0mvQGee0kkZwbxl1qi2dctoTgR133SeBydm4KoSdSCkkMJbWOLwwzN6JRaX fxBez4KJfGCbk9SBbrKiAgo4QiucV262nDfgEQEtmU2kybqZcr8nIqLSx5/HKWJbNM moSc3LSb5vh5477D/Bej4SmImrkoreyJMNdU7GqakoMoqU9zqvEvjHCuiWWNSuQlGX gPU1/lK4pXfR5fc/l/3WoXmYOcijkwPeaacGIsETGYIS7uapw5Yq8wr4arI+IisJuU HKgKxFGRmL8eA== From: Konrad Dybcio Date: Tue, 27 May 2025 22:40:07 +0200 Subject: [PATCH v3 5/6] phy: qcom: qmp-combo: register a typec mux to change the QMPPHY_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: <20250527-topic-4ln_dp_respin-v3-5-f9a0763ec289@oss.qualcomm.com> References: <20250527-topic-4ln_dp_respin-v3-0-f9a0763ec289@oss.qualcomm.com> In-Reply-To: <20250527-topic-4ln_dp_respin-v3-0-f9a0763ec289@oss.qualcomm.com> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: Marijn Suijten , linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Neil Armstrong X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1748378414; l=5691; i=konrad.dybcio@oss.qualcomm.com; s=20230215; h=from:subject:message-id; bh=x6IDncDMA1iAfkJiGFc6fqLei4nWXVqabbPXBW+g0u0=; b=II7epJpAALpYfaf0NppJOBxi3KX9J2bK2YNLPhrAomA9xqJyXFIfttvNEh2lGm2lnSVXtwidj PYU+OdGkXGvC/gXbUquRO334ObWrycjMIDC1kxsrfl9NHOeDhEnlTJJ X-Developer-Key: i=konrad.dybcio@oss.qualcomm.com; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= From: Neil Armstrong Register a typec mux in order to change the PHY mode on the Type-C mux events depending on the mode and the svid when in Altmode setup. The DisplayPort phy should be left enabled if is still powered on by the DRM DisplayPort controller, so bail out until the DisplayPort PHY is not powered off. The Type-C Mode/SVID only changes on plug/unplug, and USB SAFE states will be set in between of USB-Only, Combo and DisplayPort Only so this will leave enough time to the DRM DisplayPort controller to turn of the DisplayPort PHY. Signed-off-by: Neil Armstrong [konrad: renaming, rewording, bug fixes] Signed-off-by: Konrad Dybcio Tested-by: Aleksandrs Vinarskis # x1e80100,=20 Tested-by: Jens Glathe --- drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 121 ++++++++++++++++++++++++++= ++-- 1 file changed, 116 insertions(+), 5 deletions(-) diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualco= mm/phy-qcom-qmp-combo.c index b34ad92021a656b39562e2685a1e7a0a93660a35..4c9d92d6e0b8508191d052bd85d= d135e4b8d7cc7 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c @@ -19,6 +19,7 @@ #include #include #include +#include #include =20 #include @@ -1709,6 +1710,8 @@ struct qmp_combo { =20 struct typec_switch_dev *sw; enum typec_orientation orientation; + + struct typec_mux_dev *mux; }; =20 static void qmp_v3_dp_aux_init(struct qmp_combo *qmp); @@ -3582,17 +3585,112 @@ static int qmp_combo_typec_switch_set(struct typec= _switch_dev *sw, return 0; } =20 -static void qmp_combo_typec_unregister(void *data) +static int qmp_combo_typec_mux_set(struct typec_mux_dev *mux, struct typec= _mux_state *state) +{ + struct qmp_combo *qmp =3D typec_mux_get_drvdata(mux); + const struct qmp_phy_cfg *cfg =3D qmp->cfg; + enum qmpphy_mode new_mode; + unsigned int svid; + + guard(mutex)(&qmp->phy_mutex); + + if (state->alt) + svid =3D state->alt->svid; + else + svid =3D 0; + + if (svid =3D=3D USB_TYPEC_DP_SID) { + switch (state->mode) { + /* DP Only */ + case TYPEC_DP_STATE_C: + case TYPEC_DP_STATE_E: + new_mode =3D QMPPHY_MODE_DP_ONLY; + break; + + /* DP + USB */ + case TYPEC_DP_STATE_D: + case TYPEC_DP_STATE_F: + + /* Safe fallback...*/ + default: + new_mode =3D QMPPHY_MODE_USB3DP; + break; + } + } else { + /* Fall back to USB3+DP mode if we're not sure it's strictly USB3-only */ + if (state->mode =3D=3D TYPEC_MODE_USB3 || state->mode =3D=3D TYPEC_STATE= _USB) + new_mode =3D QMPPHY_MODE_USB3_ONLY; + else + new_mode =3D QMPPHY_MODE_USB3DP; + } + + if (new_mode =3D=3D qmp->qmpphy_mode) { + dev_dbg(qmp->dev, "typec_mux_set: same qmpphy mode, bail out\n"); + return 0; + } + + if (qmp->qmpphy_mode !=3D QMPPHY_MODE_USB3_ONLY && qmp->dp_powered_on) { + dev_dbg(qmp->dev, "typec_mux_set: DP PHY is still in use, delaying switc= h\n"); + return 0; + } + + dev_dbg(qmp->dev, "typec_mux_set: switching from qmpphy mode %d to %d\n", + qmp->qmpphy_mode, new_mode); + + qmp->qmpphy_mode =3D new_mode; + + if (qmp->init_count) { + if (qmp->usb_init_count) + qmp_combo_usb_power_off(qmp->usb_phy); + + if (qmp->dp_init_count) + writel(DP_PHY_PD_CTL_PSR_PWRDN, qmp->dp_dp_phy + QSERDES_DP_PHY_PD_CTL); + + qmp_combo_com_exit(qmp, true); + + /* Now everything's powered down, power up the right PHYs */ + qmp_combo_com_init(qmp, true); + + if (new_mode =3D=3D QMPPHY_MODE_DP_ONLY) { + if (qmp->usb_init_count) + qmp->usb_init_count--; + } + + if (new_mode =3D=3D QMPPHY_MODE_USB3DP || new_mode =3D=3D QMPPHY_MODE_US= B3_ONLY) { + qmp_combo_usb_power_on(qmp->usb_phy); + if (!qmp->usb_init_count) + qmp->usb_init_count++; + } + + if (new_mode =3D=3D QMPPHY_MODE_DP_ONLY || new_mode =3D=3D QMPPHY_MODE_U= SB3DP) { + if (qmp->dp_init_count) + cfg->dp_aux_init(qmp); + } + } + + return 0; +} + +static void qmp_combo_typec_switch_unregister(void *data) { struct qmp_combo *qmp =3D data; =20 typec_switch_unregister(qmp->sw); } =20 -static int qmp_combo_typec_switch_register(struct qmp_combo *qmp) +static void qmp_combo_typec_mux_unregister(void *data) +{ + struct qmp_combo *qmp =3D data; + + typec_mux_unregister(qmp->mux); +} + +static int qmp_combo_typec_register(struct qmp_combo *qmp) { struct typec_switch_desc sw_desc =3D {}; + struct typec_mux_desc mux_desc =3D { }; struct device *dev =3D qmp->dev; + int ret; =20 sw_desc.drvdata =3D qmp; sw_desc.fwnode =3D dev->fwnode; @@ -3603,10 +3701,23 @@ static int qmp_combo_typec_switch_register(struct q= mp_combo *qmp) return PTR_ERR(qmp->sw); } =20 - return devm_add_action_or_reset(dev, qmp_combo_typec_unregister, qmp); + ret =3D devm_add_action_or_reset(dev, qmp_combo_typec_switch_unregister, = qmp); + if (ret) + return ret; + + mux_desc.drvdata =3D qmp; + mux_desc.fwnode =3D dev->fwnode; + mux_desc.set =3D qmp_combo_typec_mux_set; + qmp->mux =3D typec_mux_register(dev, &mux_desc); + if (IS_ERR(qmp->mux)) { + dev_err(dev, "Unable to register typec mux: %pe\n", qmp->mux); + return PTR_ERR(qmp->mux); + } + + return devm_add_action_or_reset(dev, qmp_combo_typec_mux_unregister, qmp); } #else -static int qmp_combo_typec_switch_register(struct qmp_combo *qmp) +static int qmp_combo_typec_register(struct qmp_combo *qmp) { return 0; } @@ -3839,7 +3950,7 @@ static int qmp_combo_probe(struct platform_device *pd= ev) if (ret) goto err_node_put; =20 - ret =3D qmp_combo_typec_switch_register(qmp); + ret =3D qmp_combo_typec_register(qmp); if (ret) goto err_node_put; =20 --=20 2.49.0 From nobody Thu Apr 23 09:11:18 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BF69620D51D; Tue, 27 May 2025 20:40:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748378448; cv=none; b=upPggRQfGPY1dZGcAMXA69rSUS3la9k7We4B1nk+kfljm9/k7e7yz5QL1HLJ98uJOEkyyBoNlLH/CVLH94smMUv3Nqu6oN6oPqEE382tvn+66B1ipcuJZfQlen392l95Zkj0x+tItBesIWls5P87JfB2yfmP82Ibf4IeYE5Ehgk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748378448; c=relaxed/simple; bh=RVazM5ZtiGWCT+v8DRQoiisLlKYFeeVIeRZlRvqZqDg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RFRG10LShQVKNW+FPfPGIJzKYaNaEwWFwyW4Pn7y0sVCx8qx9aXsTYNOUyiGOcGoUtBmqkveodJ0BH3NCEVC9gBUAaEFNP3DPXUlnbZVETyfLaCs2EhKfFXKEFczJreiLS9MYvxsLe5hHXV77OvpPL3l2bZ6PIeTXKs1igJSQXk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fRO4fevT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fRO4fevT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 86AB0C4CEEB; Tue, 27 May 2025 20:40:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1748378448; bh=RVazM5ZtiGWCT+v8DRQoiisLlKYFeeVIeRZlRvqZqDg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=fRO4fevTyyA62iyayKIH0sMFandXs774MO8JFXftoyD1qAkx3qkiAQ5CkCF7UVodP HXnMGvVWX6s+wp6cxUC2WN5dv8OeS9/cM/uJUGYa8CHRlLXq/rMo1poimtyXE8E/9n seA3vdvizNji73PlhEMwpXhOMlcmCVFm4i8vCd7TaQf3PzMNe3eRyQCeLU8R35YE6P rSmFcQvAkMrldRaqyJV1IoKiqY7qRxmjkWJW2ZiZ7kAMOxeAaid/Ju2J5BIeCB7afq Sb5ycg9Xnh1duZVd953E9aorKmFTMeyQmeGNknmDlVUbviqA1O1w3frCfrO0IkqT6j gBqIFzXhZMy1w== From: Konrad Dybcio Date: Tue, 27 May 2025 22:40:08 +0200 Subject: [PATCH v3 6/6] arm64: dts: qcom: sc8280xp-lenovo-thinkpad-x13: Set up 4-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: <20250527-topic-4ln_dp_respin-v3-6-f9a0763ec289@oss.qualcomm.com> References: <20250527-topic-4ln_dp_respin-v3-0-f9a0763ec289@oss.qualcomm.com> In-Reply-To: <20250527-topic-4ln_dp_respin-v3-0-f9a0763ec289@oss.qualcomm.com> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: Marijn Suijten , linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Neil Armstrong , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1748378414; l=1518; i=konrad.dybcio@oss.qualcomm.com; s=20230215; h=from:subject:message-id; bh=dS87KXTh0HxELr2bjO6fgUYK0yoQHdoxs9VWcCRgRHM=; b=ijTqtJXk3zoLfEpe5EaAa8pNz/m3Ca2XRRwiXvfAsXRJeq978apZRm5fRDWdC2mcZ9mYuuUjl Rxo3GZA8wfgD8xmlSS5YGylOxzZcRLC78JdmkLgIB1uGNz1pLQyJG3p X-Developer-Key: i=konrad.dybcio@oss.qualcomm.com; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= From: Neil Armstrong Allow up to 4 lanes for the DisplayPort link from the PHYs to the controllers and allow mode-switch events to reach the QMP Combo PHYs. Signed-off-by: Neil Armstrong Reviewed-by: Dmitry Baryshkov [konrad: reword] Signed-off-by: Konrad Dybcio Tested-by: Aleksandrs Vinarskis # x1e80100,=20 Tested-by: Jens Glathe --- arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/a= rch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts index ae7a275fd2236a2c71808b003fbcb66687e6e45e..336704e2a806e74c98a8dd483d8= da0311df95389 100644 --- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts +++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts @@ -726,7 +726,7 @@ &mdss0_dp0 { }; =20 &mdss0_dp0_out { - data-lanes =3D <0 1>; + data-lanes =3D <0 1 2 3>; remote-endpoint =3D <&usb_0_qmpphy_dp_in>; }; =20 @@ -735,7 +735,7 @@ &mdss0_dp1 { }; =20 &mdss0_dp1_out { - data-lanes =3D <0 1>; + data-lanes =3D <0 1 2 3>; remote-endpoint =3D <&usb_1_qmpphy_dp_in>; }; =20 @@ -1358,6 +1358,7 @@ &usb_0_qmpphy { vdda-phy-supply =3D <&vreg_l9d>; vdda-pll-supply =3D <&vreg_l4d>; =20 + mode-switch; orientation-switch; =20 status =3D "okay"; @@ -1395,6 +1396,7 @@ &usb_1_qmpphy { vdda-phy-supply =3D <&vreg_l4b>; vdda-pll-supply =3D <&vreg_l3b>; =20 + mode-switch; orientation-switch; =20 status =3D "okay"; --=20 2.49.0