* [PATCH v4 0/3] arm64: qcom: x1e78100-lenovo-thinkpad-t14s: add support for HDMI output
@ 2025-09-30 7:39 Neil Armstrong
2025-09-30 7:39 ` [PATCH v4 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document lanes mapping when not using in USB-C complex Neil Armstrong
` (3 more replies)
0 siblings, 4 replies; 17+ messages in thread
From: Neil Armstrong @ 2025-09-30 7:39 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio
Cc: Xilin Wu, linux-arm-msm, linux-phy, devicetree, linux-kernel,
Neil Armstrong
The Thinkpad T14s embeds a transparent 4lanes DP->HDMI transceiver
connected to the third QMP Combo PHY 4 lanes.
The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top
of a combo glue to route either lanes to the 4 shared physical lanes.
The routing of the lanes can be:
- 1/2 DP + 2 USB3
- 1/2/4 DP
- 2 USB3
We need be able to specify the lanes mapping to DisplayPort
and/or USB3 peripherals when not connected to a Type-C complex.
Add the documentation for data-lanes in the out endpoints amd
use those in the driver to setup the right PHY mode and
orientation.
Finally Add all the data routing in DT, disable mode switching and specify
the QMP Combo PHY should be in DP-Only mode to route the 4 lanes to
the underlying DP phy.
Depends on:
- [1] https://lore.kernel.org/all/20250902-topic-sm8x50-fix-qmp-usb43dp-usb-switch-v1-1-5b4a51c8c5a8@linaro.org/
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
Changes in v4:
- Add definition for single lane DP
- Fix lanes mapping for DP in bindings and driver
- Add documentation on how to interpret the data-lanes numbers
- Rewrite driver support for be simpler and split into helpers
- Rebase DT on next and drop phy.h include, and use proper mapping
- Link to v3: https://lore.kernel.org/r/20250908-topic-x1e80100-hdmi-v3-0-c53b0f2bc2fb@linaro.org
Changes in v3:
- Move the static lanes mapping in data-lanes in the out endpoints
- new bindings
- new drivewr implementation
- new DT layout
- rebased on next, fixed simple bridge rebase
- added link frequencies for dp2
- Link to v2: https://lore.kernel.org/r/20250902-topic-x1e80100-hdmi-v2-0-f4ccf0ef79ab@linaro.org
Changes in v2:
- Model the HDMI transceiver as a simple bridge
- Switch to a static lanes mapping property
- Link to v1: https://lore.kernel.org/r/20250821-topic-x1e80100-hdmi-v1-0-f14ad9430e88@linaro.org
---
Neil Armstrong (3):
dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document lanes mapping when not using in USB-C complex
phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT
arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes
.../phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml | 67 +++++++++-
.../dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi | 81 ++++++++++++
drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 145 +++++++++++++++++++--
3 files changed, 284 insertions(+), 9 deletions(-)
---
base-commit: 4513b3b1a91546d0dd02c5c0eb507933b328021c
change-id: 20250821-topic-x1e80100-hdmi-3bd5b5bd2d96
Best regards,
--
Neil Armstrong <neil.armstrong@linaro.org>
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH v4 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document lanes mapping when not using in USB-C complex
2025-09-30 7:39 [PATCH v4 0/3] arm64: qcom: x1e78100-lenovo-thinkpad-t14s: add support for HDMI output Neil Armstrong
@ 2025-09-30 7:39 ` Neil Armstrong
2025-10-06 9:43 ` Konrad Dybcio
2025-09-30 7:39 ` [PATCH v4 2/3] phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT Neil Armstrong
` (2 subsequent siblings)
3 siblings, 1 reply; 17+ messages in thread
From: Neil Armstrong @ 2025-09-30 7:39 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio
Cc: Xilin Wu, linux-arm-msm, linux-phy, devicetree, linux-kernel,
Neil Armstrong
The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top
of a combo glue to route either lanes to the 4 shared physical lanes.
The routing of the lanes can be:
- 2 DP + 2 USB3
- 4 DP
- 2 USB3
The layout of the lanes was designed to be mapped and swapped
related to the USB-C Power Delivery negociation, so it supports
a finite set of mappings inherited by the USB-C Altmode layouts.
Nevertheless those QMP Comby PHY can be used to drive a DisplayPort
connector, DP->HDMI bridge, USB3 A Connector, etc... without
an USB-C connector and no PD events.
Document the data-lanes on numbered port@0 out endpoints,
allowing us to document the lanes mapping to DisplayPort
and/or USB3 connectors/peripherals.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
.../phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml | 67 +++++++++++++++++++++-
1 file changed, 66 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml
index 5005514d7c3a1e4a8893883497fd204bc04e12be..ac9a307675bc4e86f7693ba260c75b7b88d992ec 100644
--- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml
@@ -81,10 +81,75 @@ properties:
ports:
$ref: /schemas/graph.yaml#/properties/ports
+
properties:
port@0:
- $ref: /schemas/graph.yaml#/properties/port
+ $ref: /schemas/graph.yaml#/$defs/port-base
description: Output endpoint of the PHY
+ unevaluatedProperties: false
+
+ properties:
+ endpoint:
+ $ref: /schemas/graph.yaml#/$defs/endpoint-base
+ unevaluatedProperties: false
+
+ endpoint@0:
+ $ref: /schemas/graph.yaml#/$defs/endpoint-base
+ description: Display Port Output lanes of the PHY when used with static mapping,
+ The entry index is the DP lanes index, and the number is the PHY
+ signal in the order RX0, TX0, TX1, RX1.
+ unevaluatedProperties: false
+
+ properties:
+ data-lanes:
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ minItems: 2
+ maxItems: 4
+ oneOf:
+ - items: # DisplayPort 1 lane, normal orientation
+ - const: 3
+ - items: # DisplayPort 1 lane, flipped orientation
+ - const: 0
+ - items: # DisplayPort 2 lanes, normal orientation
+ - const: 3
+ - const: 2
+ - items: # DisplayPort 2 lanes, flipped orientation
+ - const: 0
+ - const: 1
+ - items: # DisplayPort 4 lanes, normal orientation
+ - const: 3
+ - const: 2
+ - const: 1
+ - const: 0
+ - items: # DisplayPort 4 lanes, flipped orientation
+ - const: 0
+ - const: 1
+ - const: 2
+ - const: 3
+ required:
+ - data-lanes
+
+ endpoint@1:
+ $ref: /schemas/graph.yaml#/$defs/endpoint-base
+ description: USB Output lanes of the PHY when used with static mapping.
+ The entry index is the USB3 lane in the order TX then RX, and the
+ number is the PHY signal in the order RX0, TX0, TX1, RX1.
+ unevaluatedProperties: false
+
+ properties:
+ data-lanes:
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ minItems: 2
+ oneOf:
+ - items: # USB3, normal orientation
+ - const: 1
+ - const: 0
+ - items: # USB3, flipped orientation
+ - const: 2
+ - const: 3
+
+ required:
+ - data-lanes
port@1:
$ref: /schemas/graph.yaml#/properties/port
--
2.34.1
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v4 2/3] phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT
2025-09-30 7:39 [PATCH v4 0/3] arm64: qcom: x1e78100-lenovo-thinkpad-t14s: add support for HDMI output Neil Armstrong
2025-09-30 7:39 ` [PATCH v4 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document lanes mapping when not using in USB-C complex Neil Armstrong
@ 2025-09-30 7:39 ` Neil Armstrong
2025-09-30 18:56 ` Dmitry Baryshkov
2025-10-06 10:08 ` Konrad Dybcio
2025-09-30 7:39 ` [PATCH v4 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes Neil Armstrong
2025-09-30 14:39 ` [PATCH v4 0/3] arm64: qcom: x1e78100-lenovo-thinkpad-t14s: add support for HDMI output Rob Herring (Arm)
3 siblings, 2 replies; 17+ messages in thread
From: Neil Armstrong @ 2025-09-30 7:39 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio
Cc: Xilin Wu, linux-arm-msm, linux-phy, devicetree, linux-kernel,
Neil Armstrong
The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top
of a combo glue to route either lanes to the 4 shared physical lanes.
The routing of the lanes can be:
- 2 DP + 2 USB3
- 4 DP
- 2 USB3
Get the lanes mapping from DT and stop registering the USB-C
muxes in favor of a static mode and orientation detemined
by the lanes mapping.
This allows supporting boards with direct connection of USB3 and
DisplayPort lanes to the QMP Combo PHY lanes, not using the
USB-C Altmode feature.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 145 ++++++++++++++++++++++++++++--
1 file changed, 137 insertions(+), 8 deletions(-)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
index 7b5af30f1d028c592500e723ecd27b54ed554709..3a100807448152d7a08b6d1086f4a415b00e5255 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
@@ -13,6 +13,7 @@
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_address.h>
+#include <linux/of_graph.h>
#include <linux/phy/phy.h>
#include <linux/platform_device.h>
#include <linux/regulator/consumer.h>
@@ -1744,6 +1745,26 @@ static const u8 qmp_dp_v6_pre_emphasis_hbr_rbr[4][4] = {
{ 0x22, 0xff, 0xff, 0xff }
};
+struct qmp_combo_lane_mapping {
+ unsigned int lanes_count;
+ enum typec_orientation orientation;
+ u32 lanes[4];
+};
+
+static const struct qmp_combo_lane_mapping usb3_data_lanes[] = {
+ { 2, TYPEC_ORIENTATION_NORMAL, { 1, 0 }},
+ { 2, TYPEC_ORIENTATION_REVERSE, { 2, 3 }},
+};
+
+static const struct qmp_combo_lane_mapping dp_data_lanes[] = {
+ { 1, TYPEC_ORIENTATION_NORMAL, { 0 }},
+ { 1, TYPEC_ORIENTATION_REVERSE, { 3 }},
+ { 2, TYPEC_ORIENTATION_NORMAL, { 3, 2 }},
+ { 2, TYPEC_ORIENTATION_REVERSE, { 0, 1 }},
+ { 4, TYPEC_ORIENTATION_NORMAL, { 3, 2, 1, 0 }},
+ { 4, TYPEC_ORIENTATION_REVERSE, { 0, 1, 2, 3 }},
+};
+
struct qmp_combo;
struct qmp_combo_offsets {
@@ -4117,6 +4138,87 @@ static struct phy *qmp_combo_phy_xlate(struct device *dev, const struct of_phand
return ERR_PTR(-EINVAL);
}
+static void qmp_combo_find_lanes_orientation(const struct qmp_combo_lane_mapping *mapping,
+ unsigned int mapping_count,
+ u32 *lanes, unsigned int lanes_count,
+ enum typec_orientation *orientation)
+{
+ int i;
+
+ for (i = 0; i < mapping_count; i++) {
+ if (mapping[i].lanes_count != lanes_count)
+ continue;
+ if (!memcmp(mapping[i].lanes, lanes, sizeof(u32) * lanes_count)) {
+ *orientation = mapping[i].orientation;
+ return;
+ }
+ }
+}
+
+static int qmp_combo_get_dt_lanes_mapping(struct device *dev, unsigned int endpoint,
+ u32 *data_lanes, unsigned int max,
+ unsigned int *count)
+{
+ struct device_node *ep;
+ int ret;
+
+ ep = of_graph_get_endpoint_by_regs(dev->of_node, 0, endpoint);
+ if (!ep)
+ return -EINVAL;
+
+ ret = of_property_count_u32_elems(ep, "data-lanes");
+ if (ret < 0)
+ goto err_node_put;
+
+ *count = ret;
+
+ ret = of_property_read_u32_array(ep, "data-lanes", data_lanes,
+ max_t(unsigned int, *count, max));
+
+err_node_put:
+ of_node_put(ep);
+
+ return ret;
+}
+
+static int qmp_combo_get_dt_dp_orientation(struct device *dev,
+ enum typec_orientation *orientation)
+{
+ unsigned int count;
+ u32 data_lanes[4];
+ int ret;
+
+ /* DP is described on the first endpoint of the first port */
+ ret = qmp_combo_get_dt_lanes_mapping(dev, 0, data_lanes, 4, &count);
+ if (ret < 0)
+ return ret == -EINVAL ? 0 : ret;
+
+ /* Search for a match and only update orientation if found */
+ qmp_combo_find_lanes_orientation(dp_data_lanes, ARRAY_SIZE(dp_data_lanes),
+ data_lanes, count, orientation);
+
+ return 0;
+}
+
+static int qmp_combo_get_dt_usb3_orientation(struct device *dev,
+ enum typec_orientation *orientation)
+{
+ unsigned int count;
+ u32 data_lanes[2];
+ int ret;
+
+ /* USB3 is described on the second endpoint of the first port */
+ ret = qmp_combo_get_dt_lanes_mapping(dev, 1, data_lanes, 2, &count);
+ if (ret < 0)
+ return ret == -EINVAL ? 0 : ret;
+
+ /* Search for a match and only update orientation if found */
+ qmp_combo_find_lanes_orientation(usb3_data_lanes, ARRAY_SIZE(usb3_data_lanes),
+ data_lanes, count, orientation);
+
+ return 0;
+}
+
static int qmp_combo_probe(struct platform_device *pdev)
{
struct qmp_combo *qmp;
@@ -4167,9 +4269,41 @@ static int qmp_combo_probe(struct platform_device *pdev)
if (ret)
goto err_node_put;
- ret = qmp_combo_typec_register(qmp);
- if (ret)
- goto err_node_put;
+ qmp->qmpphy_mode = QMPPHY_MODE_USB3DP;
+
+ if (of_find_property(dev->of_node, "mode-switch", NULL) ||
+ of_find_property(dev->of_node, "orientation-switch", NULL)) {
+ ret = qmp_combo_typec_register(qmp);
+ if (ret)
+ goto err_node_put;
+ } else {
+ enum typec_orientation dp_orientation = TYPEC_ORIENTATION_NONE;
+ enum typec_orientation usb3_orientation = TYPEC_ORIENTATION_NONE;
+
+ ret = qmp_combo_get_dt_dp_orientation(dev, &dp_orientation);
+ if (ret)
+ goto err_node_put;
+
+ ret = qmp_combo_get_dt_usb3_orientation(dev, &usb3_orientation);
+ if (ret)
+ goto err_node_put;
+
+ if (dp_orientation == TYPEC_ORIENTATION_NONE &&
+ usb3_orientation != TYPEC_ORIENTATION_NONE) {
+ qmp->qmpphy_mode = QMPPHY_MODE_USB3_ONLY;
+ qmp->orientation = usb3_orientation;
+ } else if (usb3_orientation == TYPEC_ORIENTATION_NONE &&
+ dp_orientation != TYPEC_ORIENTATION_NONE) {
+ qmp->qmpphy_mode = QMPPHY_MODE_DP_ONLY;
+ qmp->orientation = dp_orientation;
+ } else if (dp_orientation != TYPEC_ORIENTATION_NONE &&
+ dp_orientation == usb3_orientation) {
+ qmp->qmpphy_mode = QMPPHY_MODE_USB3DP;
+ qmp->orientation = dp_orientation;
+ } else {
+ dev_warn(dev, "unable to determine orientation & mode from data-lanes");
+ }
+ }
ret = drm_aux_bridge_register(dev);
if (ret)
@@ -4189,11 +4323,6 @@ static int qmp_combo_probe(struct platform_device *pdev)
if (ret)
goto err_node_put;
- /*
- * 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 = QMPPHY_MODE_USB3DP;
qmp->usb_phy = devm_phy_create(dev, usb_np, &qmp_combo_usb_phy_ops);
if (IS_ERR(qmp->usb_phy)) {
--
2.34.1
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v4 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes
2025-09-30 7:39 [PATCH v4 0/3] arm64: qcom: x1e78100-lenovo-thinkpad-t14s: add support for HDMI output Neil Armstrong
2025-09-30 7:39 ` [PATCH v4 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document lanes mapping when not using in USB-C complex Neil Armstrong
2025-09-30 7:39 ` [PATCH v4 2/3] phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT Neil Armstrong
@ 2025-09-30 7:39 ` Neil Armstrong
2025-09-30 19:18 ` Dmitry Baryshkov
2025-10-06 10:25 ` Konrad Dybcio
2025-09-30 14:39 ` [PATCH v4 0/3] arm64: qcom: x1e78100-lenovo-thinkpad-t14s: add support for HDMI output Rob Herring (Arm)
3 siblings, 2 replies; 17+ messages in thread
From: Neil Armstrong @ 2025-09-30 7:39 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio
Cc: Xilin Wu, linux-arm-msm, linux-phy, devicetree, linux-kernel,
Neil Armstrong
The Thinkpad T14s embeds a transparent 4lanes DP->HDMI transceiver
connected to the third QMP Combo PHY 4 lanes.
Add all the data routing, disable mode switching and specify the
QMP Combo PHY should be in DP-Only mode to route the 4 lanes to
the underlying DP phy.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
.../dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi | 81 ++++++++++++++++++++++
1 file changed, 81 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
index 654cbce9d6ecb61c8a6e874d16385d66e362e439..37168b6214b21ec51918b44cc400581ba8ca4cbe 100644
--- a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
@@ -62,6 +62,45 @@ switch-lid {
};
};
+ hdmi-bridge {
+ compatible = "realtek,rtd2171";
+
+ pinctrl-0 = <&hdmi_hpd_default>;
+ pinctrl-names = "default";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ hdmi_bridge_dp_in: endpoint {
+ remote-endpoint = <&usb_1_ss2_qmpphy_out_dp>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ hdmi_bridge_tmds_out: endpoint {
+ remote-endpoint = <&hdmi_con>;
+ };
+ };
+ };
+ };
+
+ hdmi-connector {
+ compatible = "hdmi-connector";
+ type = "a";
+
+ port {
+ hdmi_con: endpoint {
+ remote-endpoint = <&hdmi_bridge_tmds_out>;
+ };
+ };
+ };
+
pmic-glink {
compatible = "qcom,x1e80100-pmic-glink",
"qcom,sm8550-pmic-glink",
@@ -1028,6 +1067,14 @@ &mdss_dp1_out {
link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};
+&mdss_dp2 {
+ status = "okay";
+};
+
+&mdss_dp2_out {
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
&mdss_dp3 {
/delete-property/ #sound-dai-cells;
@@ -1317,6 +1364,12 @@ eusb6_reset_n: eusb6-reset-n-state {
output-low;
};
+ hdmi_hpd_default: hdmi-hpd-default-state {
+ pins = "gpio126";
+ function = "usb2_dp";
+ bias-disable;
+ };
+
tpad_default: tpad-default-state {
pins = "gpio3";
function = "gpio";
@@ -1516,6 +1569,34 @@ &usb_1_ss0_qmpphy_out {
remote-endpoint = <&retimer_ss0_ss_in>;
};
+&usb_1_ss2_qmpphy {
+ vdda-phy-supply = <&vreg_l2j_1p2>;
+ vdda-pll-supply = <&vreg_l2d_0p9>;
+
+ /delete-property/ mode-switch;
+ /delete-property/ orientation-switch;
+
+ status = "okay";
+
+ ports {
+ port@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /delete-node/ endpoint;
+
+ usb_1_ss2_qmpphy_out_dp: endpoint@0 {
+ reg = <0>;
+
+ data-lanes = <3 2 1 0>;
+ remote-endpoint = <&hdmi_bridge_dp_in>;
+ };
+
+ /* No USB3 lanes connected */
+ };
+ };
+};
+
&usb_1_ss1_hsphy {
vdd-supply = <&vreg_l3j_0p8>;
vdda12-supply = <&vreg_l2j_1p2>;
--
2.34.1
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH v4 0/3] arm64: qcom: x1e78100-lenovo-thinkpad-t14s: add support for HDMI output
2025-09-30 7:39 [PATCH v4 0/3] arm64: qcom: x1e78100-lenovo-thinkpad-t14s: add support for HDMI output Neil Armstrong
` (2 preceding siblings ...)
2025-09-30 7:39 ` [PATCH v4 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes Neil Armstrong
@ 2025-09-30 14:39 ` Rob Herring (Arm)
3 siblings, 0 replies; 17+ messages in thread
From: Rob Herring (Arm) @ 2025-09-30 14:39 UTC (permalink / raw)
To: Neil Armstrong
Cc: devicetree, Xilin Wu, Bjorn Andersson, Kishon Vijay Abraham I,
Vinod Koul, Krzysztof Kozlowski, Konrad Dybcio, linux-kernel,
linux-arm-msm, Conor Dooley, linux-phy
On Tue, 30 Sep 2025 09:39:46 +0200, Neil Armstrong wrote:
> The Thinkpad T14s embeds a transparent 4lanes DP->HDMI transceiver
> connected to the third QMP Combo PHY 4 lanes.
>
> The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top
> of a combo glue to route either lanes to the 4 shared physical lanes.
>
> The routing of the lanes can be:
> - 1/2 DP + 2 USB3
> - 1/2/4 DP
> - 2 USB3
>
> We need be able to specify the lanes mapping to DisplayPort
> and/or USB3 peripherals when not connected to a Type-C complex.
>
> Add the documentation for data-lanes in the out endpoints amd
> use those in the driver to setup the right PHY mode and
> orientation.
>
> Finally Add all the data routing in DT, disable mode switching and specify
> the QMP Combo PHY should be in DP-Only mode to route the 4 lanes to
> the underlying DP phy.
>
> Depends on:
> - [1] https://lore.kernel.org/all/20250902-topic-sm8x50-fix-qmp-usb43dp-usb-switch-v1-1-5b4a51c8c5a8@linaro.org/
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
> Changes in v4:
> - Add definition for single lane DP
> - Fix lanes mapping for DP in bindings and driver
> - Add documentation on how to interpret the data-lanes numbers
> - Rewrite driver support for be simpler and split into helpers
> - Rebase DT on next and drop phy.h include, and use proper mapping
> - Link to v3: https://lore.kernel.org/r/20250908-topic-x1e80100-hdmi-v3-0-c53b0f2bc2fb@linaro.org
>
> Changes in v3:
> - Move the static lanes mapping in data-lanes in the out endpoints
> - new bindings
> - new drivewr implementation
> - new DT layout
> - rebased on next, fixed simple bridge rebase
> - added link frequencies for dp2
> - Link to v2: https://lore.kernel.org/r/20250902-topic-x1e80100-hdmi-v2-0-f4ccf0ef79ab@linaro.org
>
> Changes in v2:
> - Model the HDMI transceiver as a simple bridge
> - Switch to a static lanes mapping property
> - Link to v1: https://lore.kernel.org/r/20250821-topic-x1e80100-hdmi-v1-0-f14ad9430e88@linaro.org
>
> ---
> Neil Armstrong (3):
> dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document lanes mapping when not using in USB-C complex
> phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT
> arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes
>
> .../phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml | 67 +++++++++-
> .../dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi | 81 ++++++++++++
> drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 145 +++++++++++++++++++--
> 3 files changed, 284 insertions(+), 9 deletions(-)
> ---
> base-commit: 4513b3b1a91546d0dd02c5c0eb507933b328021c
> change-id: 20250821-topic-x1e80100-hdmi-3bd5b5bd2d96
>
> Best regards,
> --
> Neil Armstrong <neil.armstrong@linaro.org>
>
>
>
My bot found new DTB warnings on the .dts files added or changed in this
series.
Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.
If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:
pip3 install dtschema --upgrade
This patch series was applied (using b4) to base:
Base: base-commit 4513b3b1a91546d0dd02c5c0eb507933b328021c not known, ignoring
Base: attempting to guess base-commit...
Base: tags/next-20250929 (best guess, 2/3 blobs matched)
If this is not the correct base, please add 'base-commit' tag
(or use b4 which does this automatically)
New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/qcom/' for 20250930-topic-x1e80100-hdmi-v4-0-86a14e8a34ac@linaro.org:
arch/arm64/boot/dts/qcom/x1e80100-asus-zenbook-a14.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-asus-zenbook-a14.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-asus-zenbook-a14.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dtb: /soc@0/phy@88eb000: failed to match any schema with compatible: ['qcom,sc8280xp-qmp-usb43dp-phy']
arch/arm64/boot/dts/qcom/sm7125-xiaomi-curtana.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dtb: /soc@0/phy@8903000: failed to match any schema with compatible: ['qcom,sc8280xp-qmp-usb43dp-phy']
arch/arm64/boot/dts/qcom/sm7325-nothing-spacewar.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r3-lte.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-r4.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s-oled.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s-oled.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s-oled.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7280-herobrine-crd-pro.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-quackingstick-r0.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel360-wifi.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-dell-latitude-7455.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-dell-latitude-7455.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-dell-latitude-7455.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz-r1-lte.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sdm845-lg-judyp.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sdm845-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7280-herobrine-zombie.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/qrb5165-rb5.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8250-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8550-sony-xperia-yodo-pdx234.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8550-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc8280xp-microsoft-arcata.dtb: /soc@0/phy@88eb000: failed to match any schema with compatible: ['qcom,sc8280xp-qmp-usb43dp-phy']
arch/arm64/boot/dts/qcom/sc8280xp-microsoft-arcata.dtb: /soc@0/phy@8903000: failed to match any schema with compatible: ['qcom,sc8280xp-qmp-usb43dp-phy']
arch/arm64/boot/dts/qcom/sm8550-qrd.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8550-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sdm845-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r4.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev1-inx.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r10.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz-r1.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8350-microsoft-surface-duo2.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8350-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/qcm6490-idp.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8550-mtp.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8550-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8250-samsung-x1q.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8250-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-akari.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sdm845-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1p42100-crd.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1p42100-crd.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1p42100-crd.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r9.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8250-mtp.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8250-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8250-xiaomi-elish-csot.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8250-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8550-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/qcm6490-particle-tachyon.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8250-xiaomi-elish-boe.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8250-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e001de-devkit.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e001de-devkit.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e001de-devkit.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8150-sony-xperia-kumano-griffin.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8150-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7280-herobrine-crd.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc8180x-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dtb: /soc@0/phy@88ee000: failed to match any schema with compatible: ['qcom,sc8180x-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sdm845-lg-judyln.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sdm845-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8250-xiaomi-pipa.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8250-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sdm845-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r3-kb.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7280-idp.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7280-herobrine-evoker-lte.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar-r4.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8250-samsung-r8q.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8250-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7280-idp2.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8150-mtp.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8150-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-apollo.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sdm845-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-r1.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1p42100-hp-omnibook-x14.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1p42100-hp-omnibook-x14.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1p42100-hp-omnibook-x14.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7280-herobrine-evoker.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-kingoftown.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-pompom-r2-lte.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami-pdx215.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8350-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-hp-omnibook-x14.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-hp-omnibook-x14.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-hp-omnibook-x14.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sdm845-mtp.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sdm845-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel360-lte.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sdm845-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7280-herobrine-zombie-lte.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sar2130p-qar2130p.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sar2130p-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r3.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8650-hdk.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8650-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-r9.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8450-hdk.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8450-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7280-herobrine-herobrine-r1.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8350-hdk.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8350-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8450-qrd.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8450-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx203.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8250-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm6350-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sa8155p-adp.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8150-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-qcp.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-qcp.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-qcp.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r1-kb.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx206.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8250-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar-r3.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7280-herobrine-zombie-nvme-lte.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8150-microsoft-surface-duo.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8150-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc8180x-primus.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc8180x-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc8180x-primus.dtb: /soc@0/phy@88ee000: failed to match any schema with compatible: ['qcom,sc8180x-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1p42100-asus-zenbook-a14.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1p42100-asus-zenbook-a14.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1p42100-asus-zenbook-a14.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8150-hdk.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8150-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-idp.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-hp-elitebook-ultra-g1q.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-hp-elitebook-ultra-g1q.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-hp-elitebook-ultra-g1q.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r10-lte.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus15.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus15.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus15.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7280-herobrine-zombie-nvme.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-r10.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel-parade.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev1-boe-rt5682s.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9-kb.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz-r3-lte.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7280-crd-r3.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8450-samsung-r0q.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8450-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev1-boe.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r1.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel-ti.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/qcm6490-shift-otter.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/hamoa-iot-evk.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/hamoa-iot-evk.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/hamoa-iot-evk.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sdm845-samsung-starqltechn.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sdm845-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-pompom-r1-lte.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-dell-inspiron-14-plus-7441.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-dell-inspiron-14-plus-7441.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-dell-inspiron-14-plus-7441.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-r1-lte.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-crd.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-crd.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-crd.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-akatsuki.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sdm845-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1p42100-lenovo-thinkbook-16.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1p42100-lenovo-thinkbook-16.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1p42100-lenovo-thinkbook-16.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz-r3.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel-lte-ti.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9-lte.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sa8295p-adp.dtb: /soc@0/phy@88eb000: failed to match any schema with compatible: ['qcom,sc8280xp-qmp-usb43dp-phy']
arch/arm64/boot/dts/qcom/sa8295p-adp.dtb: /soc@0/phy@8903000: failed to match any schema with compatible: ['qcom,sc8280xp-qmp-usb43dp-phy']
arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-ebbg.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sdm845-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8650-mtp.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8650-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-pompom-r3.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus13.dtb: /soc@0/phy@fd5000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus13.dtb: /soc@0/phy@fda000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus13.dtb: /soc@0/phy@fdf000: failed to match any schema with compatible: ['qcom,x1e80100-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8550-hdk.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8550-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dtb: /soc@0/phy@88eb000: failed to match any schema with compatible: ['qcom,sc8280xp-qmp-usb43dp-phy']
arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dtb: /soc@0/phy@8903000: failed to match any schema with compatible: ['qcom,sc8280xp-qmp-usb43dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r1-lte.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm6350-sony-xperia-lena-pdx213.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm6350-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-pompom-r2.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev1-inx-rt5682s.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8150-sony-xperia-kumano-bahamut.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8150-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel-lte-parade.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar-r2.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8250-hdk.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8250-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc8280xp-microsoft-blackrock.dtb: /soc@0/phy@88eb000: failed to match any schema with compatible: ['qcom,sc8280xp-qmp-usb43dp-phy']
arch/arm64/boot/dts/qcom/sc8280xp-microsoft-blackrock.dtb: /soc@0/phy@8903000: failed to match any schema with compatible: ['qcom,sc8280xp-qmp-usb43dp-phy']
arch/arm64/boot/dts/qcom/sm8650-qrd.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8650-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc8280xp-crd.dtb: /soc@0/phy@88eb000: failed to match any schema with compatible: ['qcom,sc8280xp-qmp-usb43dp-phy']
arch/arm64/boot/dts/qcom/sc8280xp-crd.dtb: /soc@0/phy@8903000: failed to match any schema with compatible: ['qcom,sc8280xp-qmp-usb43dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r5.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sdm845-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sdm850-samsung-w737.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sdm845-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r10-kb.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r1-lte.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami-pdx214.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8350-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-pompom-r3-lte.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: /soc@0/phy@88eb000: failed to match any schema with compatible: ['qcom,sc8280xp-qmp-usb43dp-phy']
arch/arm64/boot/dts/qcom/sdm845-db845c.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sdm845-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: /soc@0/phy@8903000: failed to match any schema with compatible: ['qcom,sc8280xp-qmp-usb43dp-phy']
arch/arm64/boot/dts/qcom/sm8550-samsung-q5q.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8550-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8350-mtp.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8350-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r1.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-pompom-r1.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r0.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7280-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-tianma.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sdm845-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sdm845-xiaomi-polaris.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sdm845-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8450-sony-xperia-nagara-pdx224.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8450-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm7125-xiaomi-joyeuse.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sm8450-sony-xperia-nagara-pdx223.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sm8450-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r10.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
arch/arm64/boot/dts/qcom/sc7180-trogdor-quackingstick-r0-lte.dtb: /soc@0/phy@88e8000: failed to match any schema with compatible: ['qcom,sc7180-qmp-usb3-dp-phy']
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 2/3] phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT
2025-09-30 7:39 ` [PATCH v4 2/3] phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT Neil Armstrong
@ 2025-09-30 18:56 ` Dmitry Baryshkov
2025-10-01 7:06 ` Neil Armstrong
2025-10-06 10:08 ` Konrad Dybcio
1 sibling, 1 reply; 17+ messages in thread
From: Dmitry Baryshkov @ 2025-09-30 18:56 UTC (permalink / raw)
To: Neil Armstrong
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Xilin Wu, linux-arm-msm, linux-phy, devicetree, linux-kernel
On Tue, Sep 30, 2025 at 09:39:48AM +0200, Neil Armstrong wrote:
> The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top
> of a combo glue to route either lanes to the 4 shared physical lanes.
>
> The routing of the lanes can be:
> - 2 DP + 2 USB3
> - 4 DP
> - 2 USB3
>
> Get the lanes mapping from DT and stop registering the USB-C
> muxes in favor of a static mode and orientation detemined
> by the lanes mapping.
>
> This allows supporting boards with direct connection of USB3 and
> DisplayPort lanes to the QMP Combo PHY lanes, not using the
> USB-C Altmode feature.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
> drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 145 ++++++++++++++++++++++++++++--
> 1 file changed, 137 insertions(+), 8 deletions(-)
>
> @@ -4167,9 +4269,41 @@ static int qmp_combo_probe(struct platform_device *pdev)
> if (ret)
> goto err_node_put;
>
> - ret = qmp_combo_typec_register(qmp);
> - if (ret)
> - goto err_node_put;
> + qmp->qmpphy_mode = QMPPHY_MODE_USB3DP;
> +
> + if (of_find_property(dev->of_node, "mode-switch", NULL) ||
> + of_find_property(dev->of_node, "orientation-switch", NULL)) {
> + ret = qmp_combo_typec_register(qmp);
> + if (ret)
> + goto err_node_put;
> + } else {
> + enum typec_orientation dp_orientation = TYPEC_ORIENTATION_NONE;
> + enum typec_orientation usb3_orientation = TYPEC_ORIENTATION_NONE;
> +
> + ret = qmp_combo_get_dt_dp_orientation(dev, &dp_orientation);
> + if (ret)
> + goto err_node_put;
> +
> + ret = qmp_combo_get_dt_usb3_orientation(dev, &usb3_orientation);
> + if (ret)
> + goto err_node_put;
> +
> + if (dp_orientation == TYPEC_ORIENTATION_NONE &&
> + usb3_orientation != TYPEC_ORIENTATION_NONE) {
> + qmp->qmpphy_mode = QMPPHY_MODE_USB3_ONLY;
> + qmp->orientation = usb3_orientation;
> + } else if (usb3_orientation == TYPEC_ORIENTATION_NONE &&
> + dp_orientation != TYPEC_ORIENTATION_NONE) {
> + qmp->qmpphy_mode = QMPPHY_MODE_DP_ONLY;
> + qmp->orientation = dp_orientation;
> + } else if (dp_orientation != TYPEC_ORIENTATION_NONE &&
> + dp_orientation == usb3_orientation) {
> + qmp->qmpphy_mode = QMPPHY_MODE_USB3DP;
> + qmp->orientation = dp_orientation;
> + } else {
> + dev_warn(dev, "unable to determine orientation & mode from data-lanes");
> + }
> + }
>
> ret = drm_aux_bridge_register(dev);
> if (ret)
> @@ -4189,11 +4323,6 @@ static int qmp_combo_probe(struct platform_device *pdev)
> if (ret)
> goto err_node_put;
>
> - /*
> - * 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 = QMPPHY_MODE_USB3DP;
SHouldn't this still be a default in the 'normal' USB-C case?
>
> qmp->usb_phy = devm_phy_create(dev, usb_np, &qmp_combo_usb_phy_ops);
> if (IS_ERR(qmp->usb_phy)) {
>
> --
> 2.34.1
>
--
With best wishes
Dmitry
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes
2025-09-30 7:39 ` [PATCH v4 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes Neil Armstrong
@ 2025-09-30 19:18 ` Dmitry Baryshkov
2025-10-06 10:25 ` Konrad Dybcio
1 sibling, 0 replies; 17+ messages in thread
From: Dmitry Baryshkov @ 2025-09-30 19:18 UTC (permalink / raw)
To: Neil Armstrong
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Xilin Wu, linux-arm-msm, linux-phy, devicetree, linux-kernel
On Tue, Sep 30, 2025 at 09:39:49AM +0200, Neil Armstrong wrote:
> The Thinkpad T14s embeds a transparent 4lanes DP->HDMI transceiver
> connected to the third QMP Combo PHY 4 lanes.
>
> Add all the data routing, disable mode switching and specify the
> QMP Combo PHY should be in DP-Only mode to route the 4 lanes to
> the underlying DP phy.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
> .../dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi | 81 ++++++++++++++++++++++
> 1 file changed, 81 insertions(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 2/3] phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT
2025-09-30 18:56 ` Dmitry Baryshkov
@ 2025-10-01 7:06 ` Neil Armstrong
2025-10-04 6:46 ` Dmitry Baryshkov
0 siblings, 1 reply; 17+ messages in thread
From: Neil Armstrong @ 2025-10-01 7:06 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Xilin Wu, linux-arm-msm, linux-phy, devicetree, linux-kernel
On 9/30/25 20:56, Dmitry Baryshkov wrote:
> On Tue, Sep 30, 2025 at 09:39:48AM +0200, Neil Armstrong wrote:
>> The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top
>> of a combo glue to route either lanes to the 4 shared physical lanes.
>>
>> The routing of the lanes can be:
>> - 2 DP + 2 USB3
>> - 4 DP
>> - 2 USB3
>>
>> Get the lanes mapping from DT and stop registering the USB-C
>> muxes in favor of a static mode and orientation detemined
>> by the lanes mapping.
>>
>> This allows supporting boards with direct connection of USB3 and
>> DisplayPort lanes to the QMP Combo PHY lanes, not using the
>> USB-C Altmode feature.
>>
>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>> ---
>> drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 145 ++++++++++++++++++++++++++++--
>> 1 file changed, 137 insertions(+), 8 deletions(-)
>>
>> @@ -4167,9 +4269,41 @@ static int qmp_combo_probe(struct platform_device *pdev)
>> if (ret)
>> goto err_node_put;
>>
>> - ret = qmp_combo_typec_register(qmp);
>> - if (ret)
>> - goto err_node_put;
>> + qmp->qmpphy_mode = QMPPHY_MODE_USB3DP;
>> +
>> + if (of_find_property(dev->of_node, "mode-switch", NULL) ||
>> + of_find_property(dev->of_node, "orientation-switch", NULL)) {
>> + ret = qmp_combo_typec_register(qmp);
>> + if (ret)
>> + goto err_node_put;
>> + } else {
>> + enum typec_orientation dp_orientation = TYPEC_ORIENTATION_NONE;
>> + enum typec_orientation usb3_orientation = TYPEC_ORIENTATION_NONE;
>> +
>> + ret = qmp_combo_get_dt_dp_orientation(dev, &dp_orientation);
>> + if (ret)
>> + goto err_node_put;
>> +
>> + ret = qmp_combo_get_dt_usb3_orientation(dev, &usb3_orientation);
>> + if (ret)
>> + goto err_node_put;
>> +
>> + if (dp_orientation == TYPEC_ORIENTATION_NONE &&
>> + usb3_orientation != TYPEC_ORIENTATION_NONE) {
>> + qmp->qmpphy_mode = QMPPHY_MODE_USB3_ONLY;
>> + qmp->orientation = usb3_orientation;
>> + } else if (usb3_orientation == TYPEC_ORIENTATION_NONE &&
>> + dp_orientation != TYPEC_ORIENTATION_NONE) {
>> + qmp->qmpphy_mode = QMPPHY_MODE_DP_ONLY;
>> + qmp->orientation = dp_orientation;
>> + } else if (dp_orientation != TYPEC_ORIENTATION_NONE &&
>> + dp_orientation == usb3_orientation) {
>> + qmp->qmpphy_mode = QMPPHY_MODE_USB3DP;
>> + qmp->orientation = dp_orientation;
>> + } else {
>> + dev_warn(dev, "unable to determine orientation & mode from data-lanes");
>> + }
>> + }
>>
>> ret = drm_aux_bridge_register(dev);
>> if (ret)
>> @@ -4189,11 +4323,6 @@ static int qmp_combo_probe(struct platform_device *pdev)
>> if (ret)
>> goto err_node_put;
>>
>> - /*
>> - * 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 = QMPPHY_MODE_USB3DP;
>
> SHouldn't this still be a default in the 'normal' USB-C case?
It is, I just moved it before the added logic, but the comment doesn't really
apply anymore
Neil
>
>>
>> qmp->usb_phy = devm_phy_create(dev, usb_np, &qmp_combo_usb_phy_ops);
>> if (IS_ERR(qmp->usb_phy)) {
>>
>> --
>> 2.34.1
>>
>
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 2/3] phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT
2025-10-01 7:06 ` Neil Armstrong
@ 2025-10-04 6:46 ` Dmitry Baryshkov
0 siblings, 0 replies; 17+ messages in thread
From: Dmitry Baryshkov @ 2025-10-04 6:46 UTC (permalink / raw)
To: Neil Armstrong
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Xilin Wu, linux-arm-msm, linux-phy, devicetree, linux-kernel
On Wed, Oct 01, 2025 at 09:06:10AM +0200, Neil Armstrong wrote:
> On 9/30/25 20:56, Dmitry Baryshkov wrote:
> > On Tue, Sep 30, 2025 at 09:39:48AM +0200, Neil Armstrong wrote:
> > > The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top
> > > of a combo glue to route either lanes to the 4 shared physical lanes.
> > >
> > > The routing of the lanes can be:
> > > - 2 DP + 2 USB3
> > > - 4 DP
> > > - 2 USB3
> > >
> > > Get the lanes mapping from DT and stop registering the USB-C
> > > muxes in favor of a static mode and orientation detemined
> > > by the lanes mapping.
> > >
> > > This allows supporting boards with direct connection of USB3 and
> > > DisplayPort lanes to the QMP Combo PHY lanes, not using the
> > > USB-C Altmode feature.
> > >
> > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> > > ---
> > > drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 145 ++++++++++++++++++++++++++++--
> > > 1 file changed, 137 insertions(+), 8 deletions(-)
> > >
> > > @@ -4167,9 +4269,41 @@ static int qmp_combo_probe(struct platform_device *pdev)
> > > if (ret)
> > > goto err_node_put;
> > > - ret = qmp_combo_typec_register(qmp);
> > > - if (ret)
> > > - goto err_node_put;
> > > + qmp->qmpphy_mode = QMPPHY_MODE_USB3DP;
> > > +
> > > + if (of_find_property(dev->of_node, "mode-switch", NULL) ||
> > > + of_find_property(dev->of_node, "orientation-switch", NULL)) {
> > > + ret = qmp_combo_typec_register(qmp);
> > > + if (ret)
> > > + goto err_node_put;
> > > + } else {
> > > + enum typec_orientation dp_orientation = TYPEC_ORIENTATION_NONE;
> > > + enum typec_orientation usb3_orientation = TYPEC_ORIENTATION_NONE;
> > > +
> > > + ret = qmp_combo_get_dt_dp_orientation(dev, &dp_orientation);
> > > + if (ret)
> > > + goto err_node_put;
> > > +
> > > + ret = qmp_combo_get_dt_usb3_orientation(dev, &usb3_orientation);
> > > + if (ret)
> > > + goto err_node_put;
> > > +
> > > + if (dp_orientation == TYPEC_ORIENTATION_NONE &&
> > > + usb3_orientation != TYPEC_ORIENTATION_NONE) {
> > > + qmp->qmpphy_mode = QMPPHY_MODE_USB3_ONLY;
> > > + qmp->orientation = usb3_orientation;
> > > + } else if (usb3_orientation == TYPEC_ORIENTATION_NONE &&
> > > + dp_orientation != TYPEC_ORIENTATION_NONE) {
> > > + qmp->qmpphy_mode = QMPPHY_MODE_DP_ONLY;
> > > + qmp->orientation = dp_orientation;
> > > + } else if (dp_orientation != TYPEC_ORIENTATION_NONE &&
> > > + dp_orientation == usb3_orientation) {
> > > + qmp->qmpphy_mode = QMPPHY_MODE_USB3DP;
> > > + qmp->orientation = dp_orientation;
> > > + } else {
> > > + dev_warn(dev, "unable to determine orientation & mode from data-lanes");
> > > + }
> > > + }
> > > ret = drm_aux_bridge_register(dev);
> > > if (ret)
> > > @@ -4189,11 +4323,6 @@ static int qmp_combo_probe(struct platform_device *pdev)
> > > if (ret)
> > > goto err_node_put;
> > > - /*
> > > - * 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 = QMPPHY_MODE_USB3DP;
> >
> > SHouldn't this still be a default in the 'normal' USB-C case?
>
> It is, I just moved it before the added logic, but the comment doesn't really
> apply anymore
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document lanes mapping when not using in USB-C complex
2025-09-30 7:39 ` [PATCH v4 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document lanes mapping when not using in USB-C complex Neil Armstrong
@ 2025-10-06 9:43 ` Konrad Dybcio
2025-10-06 9:48 ` Neil Armstrong
0 siblings, 1 reply; 17+ messages in thread
From: Konrad Dybcio @ 2025-10-06 9:43 UTC (permalink / raw)
To: Neil Armstrong, Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio
Cc: Xilin Wu, linux-arm-msm, linux-phy, devicetree, linux-kernel
On 9/30/25 9:39 AM, Neil Armstrong wrote:
> The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top
> of a combo glue to route either lanes to the 4 shared physical lanes.
>
> The routing of the lanes can be:
> - 2 DP + 2 USB3
> - 4 DP
> - 2 USB3
>
> The layout of the lanes was designed to be mapped and swapped
> related to the USB-C Power Delivery negociation, so it supports
> a finite set of mappings inherited by the USB-C Altmode layouts.
>
> Nevertheless those QMP Comby PHY can be used to drive a DisplayPort
> connector, DP->HDMI bridge, USB3 A Connector, etc... without
> an USB-C connector and no PD events.
>
> Document the data-lanes on numbered port@0 out endpoints,
> allowing us to document the lanes mapping to DisplayPort
> and/or USB3 connectors/peripherals.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
[...]
> + endpoint@1:
> + $ref: /schemas/graph.yaml#/$defs/endpoint-base
> + description: USB Output lanes of the PHY when used with static mapping.
> + The entry index is the USB3 lane in the order TX then RX, and the
> + number is the PHY signal in the order RX0, TX0, TX1, RX1.> + unevaluatedProperties: false
> +
> + properties:
> + data-lanes:
Can this be described in a somewhat reasonable way to be non-compatible
with Type-C properties for more validation?
If not, let's just maybe add a comment like
# Static lane mappings are mutually exclusive with typec-mux/orientation-mux
Konrad
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document lanes mapping when not using in USB-C complex
2025-10-06 9:43 ` Konrad Dybcio
@ 2025-10-06 9:48 ` Neil Armstrong
0 siblings, 0 replies; 17+ messages in thread
From: Neil Armstrong @ 2025-10-06 9:48 UTC (permalink / raw)
To: Konrad Dybcio, Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio
Cc: Xilin Wu, linux-arm-msm, linux-phy, devicetree, linux-kernel
On 10/6/25 11:43, Konrad Dybcio wrote:
> On 9/30/25 9:39 AM, Neil Armstrong wrote:
>> The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top
>> of a combo glue to route either lanes to the 4 shared physical lanes.
>>
>> The routing of the lanes can be:
>> - 2 DP + 2 USB3
>> - 4 DP
>> - 2 USB3
>>
>> The layout of the lanes was designed to be mapped and swapped
>> related to the USB-C Power Delivery negociation, so it supports
>> a finite set of mappings inherited by the USB-C Altmode layouts.
>>
>> Nevertheless those QMP Comby PHY can be used to drive a DisplayPort
>> connector, DP->HDMI bridge, USB3 A Connector, etc... without
>> an USB-C connector and no PD events.
>>
>> Document the data-lanes on numbered port@0 out endpoints,
>> allowing us to document the lanes mapping to DisplayPort
>> and/or USB3 connectors/peripherals.
>>
>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>> ---
>
> [...]
>
>> + endpoint@1:
>> + $ref: /schemas/graph.yaml#/$defs/endpoint-base
>> + description: USB Output lanes of the PHY when used with static mapping.
>> + The entry index is the USB3 lane in the order TX then RX, and the
>> + number is the PHY signal in the order RX0, TX0, TX1, RX1.> + unevaluatedProperties: false
>> +
>> + properties:
>> + data-lanes:
>
> Can this be described in a somewhat reasonable way to be non-compatible
> with Type-C properties for more validation?
I tried, but failed. Let me try again !
>
> If not, let's just maybe add a comment like
>
> # Static lane mappings are mutually exclusive with typec-mux/orientation-mux
Ack
Thanks,
Neil
>
> Konrad
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 2/3] phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT
2025-09-30 7:39 ` [PATCH v4 2/3] phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT Neil Armstrong
2025-09-30 18:56 ` Dmitry Baryshkov
@ 2025-10-06 10:08 ` Konrad Dybcio
2025-10-06 10:35 ` Dmitry Baryshkov
2025-10-06 12:50 ` Neil Armstrong
1 sibling, 2 replies; 17+ messages in thread
From: Konrad Dybcio @ 2025-10-06 10:08 UTC (permalink / raw)
To: Neil Armstrong, Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio
Cc: Xilin Wu, linux-arm-msm, linux-phy, devicetree, linux-kernel
On 9/30/25 9:39 AM, Neil Armstrong wrote:
> The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top
> of a combo glue to route either lanes to the 4 shared physical lanes.
>
> The routing of the lanes can be:
> - 2 DP + 2 USB3
> - 4 DP
> - 2 USB3
>
> Get the lanes mapping from DT and stop registering the USB-C
> muxes in favor of a static mode and orientation detemined
> by the lanes mapping.
>
> This allows supporting boards with direct connection of USB3 and
> DisplayPort lanes to the QMP Combo PHY lanes, not using the
> USB-C Altmode feature.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
[...]
> +struct qmp_combo_lane_mapping {
> + unsigned int lanes_count;
"num_lanes"?
> + enum typec_orientation orientation;
> + u32 lanes[4];
> +};
> +
> +static const struct qmp_combo_lane_mapping usb3_data_lanes[] = {
> + { 2, TYPEC_ORIENTATION_NORMAL, { 1, 0 }},
> + { 2, TYPEC_ORIENTATION_REVERSE, { 2, 3 }},
> +};
> +
> +static const struct qmp_combo_lane_mapping dp_data_lanes[] = {
> + { 1, TYPEC_ORIENTATION_NORMAL, { 0 }},
> + { 1, TYPEC_ORIENTATION_REVERSE, { 3 }},
This is not corroborated by your bindings change ^
I'm also frankly not sure whether it's pin 2 or 3 that 1-lane-DP
would be TXd on
> + { 2, TYPEC_ORIENTATION_NORMAL, { 3, 2 }},
> + { 2, TYPEC_ORIENTATION_REVERSE, { 0, 1 }},
> + { 4, TYPEC_ORIENTATION_NORMAL, { 3, 2, 1, 0 }},
> + { 4, TYPEC_ORIENTATION_REVERSE, { 0, 1, 2, 3 }},
Would it be too cheesy to check orientation based like:
static bool qmpphy_mapping_orient_flipped(u32 *data_lanes)
{
return data_lanes[0] == 0;
}
?
> - ret = qmp_combo_typec_register(qmp);
> - if (ret)
> - goto err_node_put;
> + qmp->qmpphy_mode = QMPPHY_MODE_USB3DP;
> +
> + if (of_find_property(dev->of_node, "mode-switch", NULL) ||
> + of_find_property(dev->of_node, "orientation-switch", NULL)) {
of_property_present()
Konrad
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes
2025-09-30 7:39 ` [PATCH v4 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes Neil Armstrong
2025-09-30 19:18 ` Dmitry Baryshkov
@ 2025-10-06 10:25 ` Konrad Dybcio
1 sibling, 0 replies; 17+ messages in thread
From: Konrad Dybcio @ 2025-10-06 10:25 UTC (permalink / raw)
To: Neil Armstrong, Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio
Cc: Xilin Wu, linux-arm-msm, linux-phy, devicetree, linux-kernel
On 9/30/25 9:39 AM, Neil Armstrong wrote:
> The Thinkpad T14s embeds a transparent 4lanes DP->HDMI transceiver
> connected to the third QMP Combo PHY 4 lanes.
>
> Add all the data routing, disable mode switching and specify the
> QMP Combo PHY should be in DP-Only mode to route the 4 lanes to
> the underlying DP phy.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
[...]
> +&usb_1_ss2_qmpphy {
> + vdda-phy-supply = <&vreg_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l2d_0p9>;
> +
> + /delete-property/ mode-switch;
> + /delete-property/ orientation-switch;
> +
> + status = "okay";
> +
> + ports {
> + port@0 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + /delete-node/ endpoint;
> +
> + usb_1_ss2_qmpphy_out_dp: endpoint@0 {
> + reg = <0>;
> +
> + data-lanes = <3 2 1 0>;
> + remote-endpoint = <&hdmi_bridge_dp_in>;
> + };
> +
> + /* No USB3 lanes connected */
> + };
> + };
> +};
> +
> &usb_1_ss1_hsphy {
You have to move your _ss*2*_ node below the _ss*1*_ nodes
otherwise:
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 2/3] phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT
2025-10-06 10:08 ` Konrad Dybcio
@ 2025-10-06 10:35 ` Dmitry Baryshkov
2025-10-06 10:54 ` Konrad Dybcio
2025-10-06 12:50 ` Neil Armstrong
1 sibling, 1 reply; 17+ messages in thread
From: Dmitry Baryshkov @ 2025-10-06 10:35 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Neil Armstrong, Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Xilin Wu, linux-arm-msm, linux-phy, devicetree, linux-kernel
On Mon, Oct 06, 2025 at 12:08:22PM +0200, Konrad Dybcio wrote:
> On 9/30/25 9:39 AM, Neil Armstrong wrote:
> > The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top
> > of a combo glue to route either lanes to the 4 shared physical lanes.
> >
> > The routing of the lanes can be:
> > - 2 DP + 2 USB3
> > - 4 DP
> > - 2 USB3
> >
> > Get the lanes mapping from DT and stop registering the USB-C
> > muxes in favor of a static mode and orientation detemined
> > by the lanes mapping.
> >
> > This allows supporting boards with direct connection of USB3 and
> > DisplayPort lanes to the QMP Combo PHY lanes, not using the
> > USB-C Altmode feature.
> >
> > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> > ---
>
> [...]
>
> > +struct qmp_combo_lane_mapping {
> > + unsigned int lanes_count;
>
> "num_lanes"?
>
> > + enum typec_orientation orientation;
> > + u32 lanes[4];
> > +};
> > +
> > +static const struct qmp_combo_lane_mapping usb3_data_lanes[] = {
> > + { 2, TYPEC_ORIENTATION_NORMAL, { 1, 0 }},
> > + { 2, TYPEC_ORIENTATION_REVERSE, { 2, 3 }},
> > +};
> > +
> > +static const struct qmp_combo_lane_mapping dp_data_lanes[] = {
> > + { 1, TYPEC_ORIENTATION_NORMAL, { 0 }},
> > + { 1, TYPEC_ORIENTATION_REVERSE, { 3 }},
>
> This is not corroborated by your bindings change ^
>
> I'm also frankly not sure whether it's pin 2 or 3 that 1-lane-DP
> would be TXd on
If we follow the standard, it should be 3 (RX2, TX2, TX1, RX1)
>
> > + { 2, TYPEC_ORIENTATION_NORMAL, { 3, 2 }},
> > + { 2, TYPEC_ORIENTATION_REVERSE, { 0, 1 }},
> > + { 4, TYPEC_ORIENTATION_NORMAL, { 3, 2, 1, 0 }},
> > + { 4, TYPEC_ORIENTATION_REVERSE, { 0, 1, 2, 3 }},
>
> Would it be too cheesy to check orientation based like:
That won't catch weird errors like {0, 2, 1, 3}.
>
> static bool qmpphy_mapping_orient_flipped(u32 *data_lanes)
> {
> return data_lanes[0] == 0;
> }
>
> ?
>
> > - ret = qmp_combo_typec_register(qmp);
> > - if (ret)
> > - goto err_node_put;
> > + qmp->qmpphy_mode = QMPPHY_MODE_USB3DP;
> > +
> > + if (of_find_property(dev->of_node, "mode-switch", NULL) ||
> > + of_find_property(dev->of_node, "orientation-switch", NULL)) {
>
> of_property_present()
>
> Konrad
--
With best wishes
Dmitry
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 2/3] phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT
2025-10-06 10:35 ` Dmitry Baryshkov
@ 2025-10-06 10:54 ` Konrad Dybcio
0 siblings, 0 replies; 17+ messages in thread
From: Konrad Dybcio @ 2025-10-06 10:54 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Neil Armstrong, Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Xilin Wu, linux-arm-msm, linux-phy, devicetree, linux-kernel
On 10/6/25 12:35 PM, Dmitry Baryshkov wrote:
> On Mon, Oct 06, 2025 at 12:08:22PM +0200, Konrad Dybcio wrote:
>> On 9/30/25 9:39 AM, Neil Armstrong wrote:
>>> The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top
>>> of a combo glue to route either lanes to the 4 shared physical lanes.
>>>
>>> The routing of the lanes can be:
>>> - 2 DP + 2 USB3
>>> - 4 DP
>>> - 2 USB3
>>>
>>> Get the lanes mapping from DT and stop registering the USB-C
>>> muxes in favor of a static mode and orientation detemined
>>> by the lanes mapping.
>>>
>>> This allows supporting boards with direct connection of USB3 and
>>> DisplayPort lanes to the QMP Combo PHY lanes, not using the
>>> USB-C Altmode feature.
>>>
>>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>>> ---
[...]
>>
>> [...]
>>
>>> +struct qmp_combo_lane_mapping {
>>> + unsigned int lanes_count;
>>
>> "num_lanes"?
>>
>>> + enum typec_orientation orientation;
>>> + u32 lanes[4];
>>> +};
>>> +
>>> +static const struct qmp_combo_lane_mapping usb3_data_lanes[] = {
>>> + { 2, TYPEC_ORIENTATION_NORMAL, { 1, 0 }},
>>> + { 2, TYPEC_ORIENTATION_REVERSE, { 2, 3 }},
>>> +};
>>> +
>>> +static const struct qmp_combo_lane_mapping dp_data_lanes[] = {
>>> + { 1, TYPEC_ORIENTATION_NORMAL, { 0 }},
>>> + { 1, TYPEC_ORIENTATION_REVERSE, { 3 }},
>>
>> This is not corroborated by your bindings change ^
>>
>> I'm also frankly not sure whether it's pin 2 or 3 that 1-lane-DP
>> would be TXd on
>
> If we follow the standard, it should be 3 (RX2, TX2, TX1, RX1)
OK, then 3 it is
>
>>
>>> + { 2, TYPEC_ORIENTATION_NORMAL, { 3, 2 }},
>>> + { 2, TYPEC_ORIENTATION_REVERSE, { 0, 1 }},
>>> + { 4, TYPEC_ORIENTATION_NORMAL, { 3, 2, 1, 0 }},
>>> + { 4, TYPEC_ORIENTATION_REVERSE, { 0, 1, 2, 3 }},
>>
>> Would it be too cheesy to check orientation based like:
>
> That won't catch weird errors like {0, 2, 1, 3}.
Sure, but you can then drop the orientation field from the struct
>
>>
>> static bool qmpphy_mapping_orient_flipped(u32 *data_lanes)
>> {
>> return data_lanes[0] == 0;
>> }
and the compiler will hopefully nicely inline this into a
compare-and-branch-on-0
Konrad
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 2/3] phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT
2025-10-06 10:08 ` Konrad Dybcio
2025-10-06 10:35 ` Dmitry Baryshkov
@ 2025-10-06 12:50 ` Neil Armstrong
2025-10-06 14:54 ` Konrad Dybcio
1 sibling, 1 reply; 17+ messages in thread
From: Neil Armstrong @ 2025-10-06 12:50 UTC (permalink / raw)
To: Konrad Dybcio, Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio
Cc: Xilin Wu, linux-arm-msm, linux-phy, devicetree, linux-kernel
On 10/6/25 12:08, Konrad Dybcio wrote:
> On 9/30/25 9:39 AM, Neil Armstrong wrote:
>> The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top
>> of a combo glue to route either lanes to the 4 shared physical lanes.
>>
>> The routing of the lanes can be:
>> - 2 DP + 2 USB3
>> - 4 DP
>> - 2 USB3
>>
>> Get the lanes mapping from DT and stop registering the USB-C
>> muxes in favor of a static mode and orientation detemined
>> by the lanes mapping.
>>
>> This allows supporting boards with direct connection of USB3 and
>> DisplayPort lanes to the QMP Combo PHY lanes, not using the
>> USB-C Altmode feature.
>>
>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>> ---
>
> [...]
>
>> +struct qmp_combo_lane_mapping {
>> + unsigned int lanes_count;
>
> "num_lanes"?
Is this significant ?
>
>> + enum typec_orientation orientation;
>> + u32 lanes[4];
>> +};
>> +
>> +static const struct qmp_combo_lane_mapping usb3_data_lanes[] = {
>> + { 2, TYPEC_ORIENTATION_NORMAL, { 1, 0 }},
>> + { 2, TYPEC_ORIENTATION_REVERSE, { 2, 3 }},
>> +};
>> +
>> +static const struct qmp_combo_lane_mapping dp_data_lanes[] = {
>> + { 1, TYPEC_ORIENTATION_NORMAL, { 0 }},
>> + { 1, TYPEC_ORIENTATION_REVERSE, { 3 }},
>
> This is not corroborated by your bindings change ^
Damn you're right, I'll fix it...
>
> I'm also frankly not sure whether it's pin 2 or 3 that 1-lane-DP
> would be TXd on
>
>> + { 2, TYPEC_ORIENTATION_NORMAL, { 3, 2 }},
>> + { 2, TYPEC_ORIENTATION_REVERSE, { 0, 1 }},
>> + { 4, TYPEC_ORIENTATION_NORMAL, { 3, 2, 1, 0 }},
>> + { 4, TYPEC_ORIENTATION_REVERSE, { 0, 1, 2, 3 }},
>
> Would it be too cheesy to check orientation based like:
>
> static bool qmpphy_mapping_orient_flipped(u32 *data_lanes)
> {
> return data_lanes[0] == 0;
> }
>
> ?
Do we want a proper check of the property content or some random check ?
Sorry I prefer something formal, since perhaps sometime we will have
a full lanes remapping available instead of just orientation and if
we have some random input it will explose...
>
>> - ret = qmp_combo_typec_register(qmp);
>> - if (ret)
>> - goto err_node_put;
>> + qmp->qmpphy_mode = QMPPHY_MODE_USB3DP;
>> +
>> + if (of_find_property(dev->of_node, "mode-switch", NULL) ||
>> + of_find_property(dev->of_node, "orientation-switch", NULL)) {
>
> of_property_present()
I'll replace with that.
Thanks,
Neil
>
> Konrad
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 2/3] phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT
2025-10-06 12:50 ` Neil Armstrong
@ 2025-10-06 14:54 ` Konrad Dybcio
0 siblings, 0 replies; 17+ messages in thread
From: Konrad Dybcio @ 2025-10-06 14:54 UTC (permalink / raw)
To: Neil Armstrong, Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio
Cc: Xilin Wu, linux-arm-msm, linux-phy, devicetree, linux-kernel
On 10/6/25 2:50 PM, Neil Armstrong wrote:
> On 10/6/25 12:08, Konrad Dybcio wrote:
>> On 9/30/25 9:39 AM, Neil Armstrong wrote:
>>> The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top
>>> of a combo glue to route either lanes to the 4 shared physical lanes.
>>>
>>> The routing of the lanes can be:
>>> - 2 DP + 2 USB3
>>> - 4 DP
>>> - 2 USB3
>>>
>>> Get the lanes mapping from DT and stop registering the USB-C
>>> muxes in favor of a static mode and orientation detemined
>>> by the lanes mapping.
>>>
>>> This allows supporting boards with direct connection of USB3 and
>>> DisplayPort lanes to the QMP Combo PHY lanes, not using the
>>> USB-C Altmode feature.
>>>
>>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>>> ---
[...]
>>> + { 2, TYPEC_ORIENTATION_NORMAL, { 3, 2 }},
>>> + { 2, TYPEC_ORIENTATION_REVERSE, { 0, 1 }},
>>> + { 4, TYPEC_ORIENTATION_NORMAL, { 3, 2, 1, 0 }},
>>> + { 4, TYPEC_ORIENTATION_REVERSE, { 0, 1, 2, 3 }},
>>
>> Would it be too cheesy to check orientation based like:
>>
>> static bool qmpphy_mapping_orient_flipped(u32 *data_lanes)
>> {
>> return data_lanes[0] == 0;
>> }
>>
>> ?
>
> Do we want a proper check of the property content or some random check ?
> Sorry I prefer something formal, since perhaps sometime we will have
> a full lanes remapping available instead of just orientation and if
> we have some random input it will explose...
Well you already list all accepted properties. This would only (slightly)
limit the amount of storage the data that you *then associate with it*
occupies, but I'm not going to die on this hill, do as you prefer..
Konrad
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2025-10-06 14:54 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-30 7:39 [PATCH v4 0/3] arm64: qcom: x1e78100-lenovo-thinkpad-t14s: add support for HDMI output Neil Armstrong
2025-09-30 7:39 ` [PATCH v4 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document lanes mapping when not using in USB-C complex Neil Armstrong
2025-10-06 9:43 ` Konrad Dybcio
2025-10-06 9:48 ` Neil Armstrong
2025-09-30 7:39 ` [PATCH v4 2/3] phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT Neil Armstrong
2025-09-30 18:56 ` Dmitry Baryshkov
2025-10-01 7:06 ` Neil Armstrong
2025-10-04 6:46 ` Dmitry Baryshkov
2025-10-06 10:08 ` Konrad Dybcio
2025-10-06 10:35 ` Dmitry Baryshkov
2025-10-06 10:54 ` Konrad Dybcio
2025-10-06 12:50 ` Neil Armstrong
2025-10-06 14:54 ` Konrad Dybcio
2025-09-30 7:39 ` [PATCH v4 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes Neil Armstrong
2025-09-30 19:18 ` Dmitry Baryshkov
2025-10-06 10:25 ` Konrad Dybcio
2025-09-30 14:39 ` [PATCH v4 0/3] arm64: qcom: x1e78100-lenovo-thinkpad-t14s: add support for HDMI output Rob Herring (Arm)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox