* [PATCH RFC 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document default phy mode
2025-08-21 13:53 [PATCH RFC 0/3] phy: qcom: qmp-combo: set default qmpphy_mode from DT for Thinkpad HDMI support Neil Armstrong
@ 2025-08-21 13:53 ` Neil Armstrong
2025-08-22 10:57 ` Dmitry Baryshkov
2025-08-21 13:53 ` [PATCH RFC 2/3] phy: qcom: qmp-combo: get default qmpphy_mode from DT Neil Armstrong
2025-08-21 13:53 ` [PATCH RFC 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes Neil Armstrong
2 siblings, 1 reply; 15+ messages in thread
From: Neil Armstrong @ 2025-08-21 13:53 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio
Cc: 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
And the layout of the lanes can be swpped depending of an
eventual USB-C connector orientation.
Nevertheless those QMP Comby PHY can be statically used to
drive a DisplayPort connector, DP->HDMI bridge, USB3 A Connector...
But if a 4lanes DP->HDMI bridge is directly connected to the
QMP Comby PHY lanes, in the default routing 2 or the 4 lanes would
probbaly be USB3, making the DP->HDMI bridge non functional.
Add a property to hint in which layout mode the QMP Comby PHY
should be as startup.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
.../bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml | 13 +++++++++++++
1 file changed, 13 insertions(+)
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 c8bc512df08b5694c8599f475de78679a4438449..129475a1d9527733e43ded5a38aad766f9810fe7 100644
--- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml
@@ -76,6 +76,19 @@ properties:
mode-switch: true
orientation-switch: true
+ qcom,combo-initial-mode:
+ description:
+ Describe the initial mode of the Combo PHY configuration.
+ The Combo PHY is a wrapper on top of a DP PHY and an USB3 PHY,
+ sharing the same SuperSpeed lanes with either DisplayPort over
+ the 4 lanes (dp), USB3 on a pair of lanes (usb3) or both
+ technologies in a 2+2 configuration (usb3+dp) as default.
+ default: usb3+dp
+ enum:
+ - usb3+dp
+ - usb3
+ - dp
+
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH RFC 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document default phy mode
2025-08-21 13:53 ` [PATCH RFC 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document default phy mode Neil Armstrong
@ 2025-08-22 10:57 ` Dmitry Baryshkov
2025-08-22 11:02 ` Neil Armstrong
0 siblings, 1 reply; 15+ messages in thread
From: Dmitry Baryshkov @ 2025-08-22 10:57 UTC (permalink / raw)
To: Neil Armstrong
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel
On Thu, Aug 21, 2025 at 03:53:26PM +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
>
> And the layout of the lanes can be swpped depending of an
> eventual USB-C connector orientation.
>
> Nevertheless those QMP Comby PHY can be statically used to
> drive a DisplayPort connector, DP->HDMI bridge, USB3 A Connector...
>
> But if a 4lanes DP->HDMI bridge is directly connected to the
> QMP Comby PHY lanes, in the default routing 2 or the 4 lanes would
> probbaly be USB3, making the DP->HDMI bridge non functional.
>
> Add a property to hint in which layout mode the QMP Comby PHY
> should be as startup.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
> .../bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> 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 c8bc512df08b5694c8599f475de78679a4438449..129475a1d9527733e43ded5a38aad766f9810fe7 100644
> --- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml
> +++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml
> @@ -76,6 +76,19 @@ properties:
> mode-switch: true
> orientation-switch: true
>
> + qcom,combo-initial-mode:
> + description:
> + Describe the initial mode of the Combo PHY configuration.
> + The Combo PHY is a wrapper on top of a DP PHY and an USB3 PHY,
> + sharing the same SuperSpeed lanes with either DisplayPort over
> + the 4 lanes (dp), USB3 on a pair of lanes (usb3) or both
> + technologies in a 2+2 configuration (usb3+dp) as default.
SPecifying this as an initial mode means that it can be switched later.
Should we generalize this and desribe it as bus-type (from
video-interfaces.yaml) and allow it to be present only if there is no
mode-switch property?
> + default: usb3+dp
> + enum:
> + - usb3+dp
> + - usb3
> + - dp
> +
> ports:
> $ref: /schemas/graph.yaml#/properties/ports
> properties:
>
> --
> 2.34.1
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RFC 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document default phy mode
2025-08-22 10:57 ` Dmitry Baryshkov
@ 2025-08-22 11:02 ` Neil Armstrong
2025-08-22 11:39 ` Dmitry Baryshkov
2025-08-23 6:22 ` Xilin Wu
0 siblings, 2 replies; 15+ messages in thread
From: Neil Armstrong @ 2025-08-22 11:02 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel
On 22/08/2025 12:57, Dmitry Baryshkov wrote:
> On Thu, Aug 21, 2025 at 03:53:26PM +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
>>
>> And the layout of the lanes can be swpped depending of an
>> eventual USB-C connector orientation.
>>
>> Nevertheless those QMP Comby PHY can be statically used to
>> drive a DisplayPort connector, DP->HDMI bridge, USB3 A Connector...
>>
>> But if a 4lanes DP->HDMI bridge is directly connected to the
>> QMP Comby PHY lanes, in the default routing 2 or the 4 lanes would
>> probbaly be USB3, making the DP->HDMI bridge non functional.
>>
>> Add a property to hint in which layout mode the QMP Comby PHY
>> should be as startup.
>>
>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>> ---
>> .../bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml | 13 +++++++++++++
>> 1 file changed, 13 insertions(+)
>>
>> 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 c8bc512df08b5694c8599f475de78679a4438449..129475a1d9527733e43ded5a38aad766f9810fe7 100644
>> --- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml
>> +++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml
>> @@ -76,6 +76,19 @@ properties:
>> mode-switch: true
>> orientation-switch: true
>>
>> + qcom,combo-initial-mode:
>> + description:
>> + Describe the initial mode of the Combo PHY configuration.
>> + The Combo PHY is a wrapper on top of a DP PHY and an USB3 PHY,
>> + sharing the same SuperSpeed lanes with either DisplayPort over
>> + the 4 lanes (dp), USB3 on a pair of lanes (usb3) or both
>> + technologies in a 2+2 configuration (usb3+dp) as default.
>
> SPecifying this as an initial mode means that it can be switched later.
> Should we generalize this and desribe it as bus-type (from
> video-interfaces.yaml) and allow it to be present only if there is no
> mode-switch property?
I was not sure about that, and yes we should do that instead but I'm not
sure about how.
bus-type sounds great, but the numbering doesn't match so I was thinking instead
something like phy-type with a string or use the numbers from include/dt-bindings/phy/phy.h
The thing is, do we want to keep the dual dp+usb3 as static ? I think it's very possible
a board would connect the combo phy to an USB3 A connector and a 2lanes DisplayPort connector.
Neil
>
>
>> + default: usb3+dp
>> + enum:
>> + - usb3+dp
>> + - usb3
>> + - dp
>> +
>> ports:
>> $ref: /schemas/graph.yaml#/properties/ports
>> properties:
>>
>> --
>> 2.34.1
>>
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RFC 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document default phy mode
2025-08-22 11:02 ` Neil Armstrong
@ 2025-08-22 11:39 ` Dmitry Baryshkov
2025-08-23 6:22 ` Xilin Wu
1 sibling, 0 replies; 15+ messages in thread
From: Dmitry Baryshkov @ 2025-08-22 11:39 UTC (permalink / raw)
To: Neil Armstrong
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel
On Fri, Aug 22, 2025 at 01:02:21PM +0200, Neil Armstrong wrote:
> On 22/08/2025 12:57, Dmitry Baryshkov wrote:
> > On Thu, Aug 21, 2025 at 03:53:26PM +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
> > >
> > > And the layout of the lanes can be swpped depending of an
> > > eventual USB-C connector orientation.
> > >
> > > Nevertheless those QMP Comby PHY can be statically used to
> > > drive a DisplayPort connector, DP->HDMI bridge, USB3 A Connector...
> > >
> > > But if a 4lanes DP->HDMI bridge is directly connected to the
> > > QMP Comby PHY lanes, in the default routing 2 or the 4 lanes would
> > > probbaly be USB3, making the DP->HDMI bridge non functional.
> > >
> > > Add a property to hint in which layout mode the QMP Comby PHY
> > > should be as startup.
> > >
> > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> > > ---
> > > .../bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml | 13 +++++++++++++
> > > 1 file changed, 13 insertions(+)
> > >
> > > 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 c8bc512df08b5694c8599f475de78679a4438449..129475a1d9527733e43ded5a38aad766f9810fe7 100644
> > > --- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml
> > > +++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml
> > > @@ -76,6 +76,19 @@ properties:
> > > mode-switch: true
> > > orientation-switch: true
> > > + qcom,combo-initial-mode:
> > > + description:
> > > + Describe the initial mode of the Combo PHY configuration.
> > > + The Combo PHY is a wrapper on top of a DP PHY and an USB3 PHY,
> > > + sharing the same SuperSpeed lanes with either DisplayPort over
> > > + the 4 lanes (dp), USB3 on a pair of lanes (usb3) or both
> > > + technologies in a 2+2 configuration (usb3+dp) as default.
> >
> > SPecifying this as an initial mode means that it can be switched later.
> > Should we generalize this and desribe it as bus-type (from
> > video-interfaces.yaml) and allow it to be present only if there is no
> > mode-switch property?
>
> I was not sure about that, and yes we should do that instead but I'm not
> sure about how.
>
> bus-type sounds great, but the numbering doesn't match so I was thinking instead
> something like phy-type with a string or use the numbers from include/dt-bindings/phy/phy.h
Well... we can add more entries there and map them in the driver.
>
> The thing is, do we want to keep the dual dp+usb3 as static ? I think it's very possible
> a board would connect the combo phy to an USB3 A connector and a 2lanes DisplayPort connector.
I'm not sure I follow the question. Could you please explain what you've
meant here?
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RFC 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document default phy mode
2025-08-22 11:02 ` Neil Armstrong
2025-08-22 11:39 ` Dmitry Baryshkov
@ 2025-08-23 6:22 ` Xilin Wu
2025-08-23 14:02 ` Dmitry Baryshkov
1 sibling, 1 reply; 15+ messages in thread
From: Xilin Wu @ 2025-08-23 6:22 UTC (permalink / raw)
To: Neil Armstrong, Dmitry Baryshkov
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel
On 2025/8/22 19:02:21, Neil Armstrong wrote:
> On 22/08/2025 12:57, Dmitry Baryshkov wrote:
>> On Thu, Aug 21, 2025 at 03:53:26PM +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
>>>
>>> And the layout of the lanes can be swpped depending of an
>>> eventual USB-C connector orientation.
>>>
>>> Nevertheless those QMP Comby PHY can be statically used to
>>> drive a DisplayPort connector, DP->HDMI bridge, USB3 A Connector...
>>>
>>> But if a 4lanes DP->HDMI bridge is directly connected to the
>>> QMP Comby PHY lanes, in the default routing 2 or the 4 lanes would
>>> probbaly be USB3, making the DP->HDMI bridge non functional.
>>>
>>> Add a property to hint in which layout mode the QMP Comby PHY
>>> should be as startup.
>>>
>>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>>> ---
>>> .../bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml | 13 ++
>>> +++++++++++
>>> 1 file changed, 13 insertions(+)
>>>
>>> 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
>>> c8bc512df08b5694c8599f475de78679a4438449..129475a1d9527733e43ded5a38aad766f9810fe7 100644
>>> --- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-
>>> usb43dp-phy.yaml
>>> +++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-
>>> usb43dp-phy.yaml
>>> @@ -76,6 +76,19 @@ properties:
>>> mode-switch: true
>>> orientation-switch: true
>>> + qcom,combo-initial-mode:
>>> + description:
>>> + Describe the initial mode of the Combo PHY configuration.
>>> + The Combo PHY is a wrapper on top of a DP PHY and an USB3 PHY,
>>> + sharing the same SuperSpeed lanes with either DisplayPort over
>>> + the 4 lanes (dp), USB3 on a pair of lanes (usb3) or both
>>> + technologies in a 2+2 configuration (usb3+dp) as default.
>>
>> SPecifying this as an initial mode means that it can be switched later.
>> Should we generalize this and desribe it as bus-type (from
>> video-interfaces.yaml) and allow it to be present only if there is no
>> mode-switch property?
>
> I was not sure about that, and yes we should do that instead but I'm not
> sure about how.
>
> bus-type sounds great, but the numbering doesn't match so I was thinking
> instead
> something like phy-type with a string or use the numbers from include/
> dt-bindings/phy/phy.h
>
> The thing is, do we want to keep the dual dp+usb3 as static ? I think
> it's very possible
> a board would connect the combo phy to an USB3 A connector and a 2lanes
> DisplayPort connector.
Yes, our board (Radxa Dragon Q6A) is using such design, but with usb3
and dp lanes swapped. [1] I think this patch series could be extended to
handle such configuration.
Currently I just change the default orientation to reverse in
qmp_combo_probe. [2] It works flawlessly. But of course, it's not an
upstreamable solution :)
FWIW, Rockchip usbdp phy binding [3] has a property called
`rockchip,dp-lane-mux` to support such configuration.
[1]
https://dl.radxa.com/q6a/hw/RADXA%20Dragon%20Q6A%20V1.20%20Schematic%2020250621.pdf
[2]
https://github.com/strongtz/linux-next/commit/928cd166ce81aca7f8e051c72eccbd84ad896d98
[3]
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml#n53
>
> Neil
>
>>
>>
>>> + default: usb3+dp
>>> + enum:
>>> + - usb3+dp
>>> + - usb3
>>> + - dp
>>> +
>>> ports:
>>> $ref: /schemas/graph.yaml#/properties/ports
>>> properties:
>>>
>>> --
>>> 2.34.1
>>>
>>
>
--
Best regards,
Xilin Wu <sophon@radxa.com>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RFC 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document default phy mode
2025-08-23 6:22 ` Xilin Wu
@ 2025-08-23 14:02 ` Dmitry Baryshkov
0 siblings, 0 replies; 15+ messages in thread
From: Dmitry Baryshkov @ 2025-08-23 14:02 UTC (permalink / raw)
To: Xilin Wu
Cc: Neil Armstrong, Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel
On Sat, Aug 23, 2025 at 02:22:56PM +0800, Xilin Wu wrote:
> On 2025/8/22 19:02:21, Neil Armstrong wrote:
> > On 22/08/2025 12:57, Dmitry Baryshkov wrote:
> > > On Thu, Aug 21, 2025 at 03:53:26PM +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
> > > >
> > > > And the layout of the lanes can be swpped depending of an
> > > > eventual USB-C connector orientation.
> > > >
> > > > Nevertheless those QMP Comby PHY can be statically used to
> > > > drive a DisplayPort connector, DP->HDMI bridge, USB3 A Connector...
> > > >
> > > > But if a 4lanes DP->HDMI bridge is directly connected to the
> > > > QMP Comby PHY lanes, in the default routing 2 or the 4 lanes would
> > > > probbaly be USB3, making the DP->HDMI bridge non functional.
> > > >
> > > > Add a property to hint in which layout mode the QMP Comby PHY
> > > > should be as startup.
> > > >
> > > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> > > > ---
> > > > .../bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml |
> > > > 13 ++ +++++++++++
> > > > 1 file changed, 13 insertions(+)
> > > >
> > > > 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 c8bc512df08b5694c8599f475de78679a4438449..129475a1d9527733e43ded5a38aad766f9810fe7
> > > > 100644
> > > > --- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-
> > > > usb43dp-phy.yaml
> > > > +++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-
> > > > usb43dp-phy.yaml
> > > > @@ -76,6 +76,19 @@ properties:
> > > > mode-switch: true
> > > > orientation-switch: true
> > > > + qcom,combo-initial-mode:
> > > > + description:
> > > > + Describe the initial mode of the Combo PHY configuration.
> > > > + The Combo PHY is a wrapper on top of a DP PHY and an USB3 PHY,
> > > > + sharing the same SuperSpeed lanes with either DisplayPort over
> > > > + the 4 lanes (dp), USB3 on a pair of lanes (usb3) or both
> > > > + technologies in a 2+2 configuration (usb3+dp) as default.
> > >
> > > SPecifying this as an initial mode means that it can be switched later.
> > > Should we generalize this and desribe it as bus-type (from
> > > video-interfaces.yaml) and allow it to be present only if there is no
> > > mode-switch property?
> >
> > I was not sure about that, and yes we should do that instead but I'm not
> > sure about how.
> >
> > bus-type sounds great, but the numbering doesn't match so I was thinking
> > instead
> > something like phy-type with a string or use the numbers from include/
> > dt-bindings/phy/phy.h
> >
> > The thing is, do we want to keep the dual dp+usb3 as static ? I think
> > it's very possible
> > a board would connect the combo phy to an USB3 A connector and a 2lanes
> > DisplayPort connector.
>
> Yes, our board (Radxa Dragon Q6A) is using such design, but with usb3 and dp
> lanes swapped. [1] I think this patch series could be extended to handle
> such configuration.
>
> Currently I just change the default orientation to reverse in
> qmp_combo_probe. [2] It works flawlessly. But of course, it's not an
> upstreamable solution :)
I thought about using data-lanes in the QMP PHY, but then I realised
that there is no way to use that property to correctly describe all
these variants. So, I think it should be the bus-type of some kind.
>
> FWIW, Rockchip usbdp phy binding [3] has a property called
> `rockchip,dp-lane-mux` to support such configuration.
>
> [1] https://dl.radxa.com/q6a/hw/RADXA%20Dragon%20Q6A%20V1.20%20Schematic%2020250621.pdf
>
> [2] https://github.com/strongtz/linux-next/commit/928cd166ce81aca7f8e051c72eccbd84ad896d98
>
> [3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml#n53
>
> >
> > Neil
> >
> > >
> > >
> > > > + default: usb3+dp
> > > > + enum:
> > > > + - usb3+dp
> > > > + - usb3
> > > > + - dp
> > > > +
> > > > ports:
> > > > $ref: /schemas/graph.yaml#/properties/ports
> > > > properties:
> > > >
> > > > --
> > > > 2.34.1
> > > >
> > >
> >
>
>
> --
> Best regards,
> Xilin Wu <sophon@radxa.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH RFC 2/3] phy: qcom: qmp-combo: get default qmpphy_mode from DT
2025-08-21 13:53 [PATCH RFC 0/3] phy: qcom: qmp-combo: set default qmpphy_mode from DT for Thinkpad HDMI support Neil Armstrong
2025-08-21 13:53 ` [PATCH RFC 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document default phy mode Neil Armstrong
@ 2025-08-21 13:53 ` Neil Armstrong
2025-08-21 13:53 ` [PATCH RFC 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes Neil Armstrong
2 siblings, 0 replies; 15+ messages in thread
From: Neil Armstrong @ 2025-08-21 13:53 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio
Cc: 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
And the layout of the lanes can be swpped depending of an
eventual USB-C connector orientation.
Nevertheless those QMP Comby PHY can be statically used to
drive a DisplayPort connector, DP->HDMI bridge, USB3 A Connector...
But if a 4lanes DP->HDMI bridge is directly connected to the
QMP Comby PHY lanes, in the default routing 2 or the 4 lanes would
probbaly be USB3, making the DP->HDMI bridge non functional.
Support the property to set in which layout mode the QMP Comby PHY
should be as startup.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
index 7b5af30f1d028c592500e723ecd27b54ed554709..622db8a204d3c7c95f110e59cab96b07eadabade 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
@@ -4117,13 +4117,19 @@ static struct phy *qmp_combo_phy_xlate(struct device *dev, const struct of_phand
return ERR_PTR(-EINVAL);
}
+static const char * const qmpphy_mode_str[] = {
+ [QMPPHY_MODE_USB3DP] = "usb3+dp",
+ [QMPPHY_MODE_DP_ONLY] = "dp",
+ [QMPPHY_MODE_USB3_ONLY] = "usb3",
+};
+
static int qmp_combo_probe(struct platform_device *pdev)
{
struct qmp_combo *qmp;
struct device *dev = &pdev->dev;
struct device_node *dp_np, *usb_np;
struct phy_provider *phy_provider;
- int ret;
+ int ret, i;
qmp = devm_kzalloc(dev, sizeof(*qmp), GFP_KERNEL);
if (!qmp)
@@ -4195,6 +4201,18 @@ static int qmp_combo_probe(struct platform_device *pdev)
*/
qmp->qmpphy_mode = QMPPHY_MODE_USB3DP;
+ /* Replace with DT provided mode */
+ if (of_find_property(dev->of_node, "qcom,combo-initial-mode", NULL)) {
+ for (i = 0; i < ARRAY_SIZE(qmpphy_mode_str); ++i) {
+ ret = of_property_match_string(dev->of_node, "qcom,combo-initial-mode",
+ qmpphy_mode_str[i]);
+ if (!ret) {
+ qmp->qmpphy_mode = i;
+ break;
+ }
+ }
+ }
+
qmp->usb_phy = devm_phy_create(dev, usb_np, &qmp_combo_usb_phy_ops);
if (IS_ERR(qmp->usb_phy)) {
ret = PTR_ERR(qmp->usb_phy);
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH RFC 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes
2025-08-21 13:53 [PATCH RFC 0/3] phy: qcom: qmp-combo: set default qmpphy_mode from DT for Thinkpad HDMI support Neil Armstrong
2025-08-21 13:53 ` [PATCH RFC 1/3] dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Document default phy mode Neil Armstrong
2025-08-21 13:53 ` [PATCH RFC 2/3] phy: qcom: qmp-combo: get default qmpphy_mode from DT Neil Armstrong
@ 2025-08-21 13:53 ` Neil Armstrong
2025-08-22 11:01 ` Dmitry Baryshkov
2 siblings, 1 reply; 15+ messages in thread
From: Neil Armstrong @ 2025-08-21 13:53 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio
Cc: 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 | 44 ++++++++++++++++++++++
1 file changed, 44 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 4cf61c2a34e31233b1adc93332bcabef22de3f86..5b62b8c3123633360f249e3ecdc8ea23f44e8e09 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,20 @@ switch-lid {
};
};
+
+ hdmi-connector {
+ compatible = "hdmi-connector";
+ type = "a";
+ pinctrl-0 = <&hdmi_hpd_default>;
+ pinctrl-names = "default";
+
+ port {
+ hdmi_con: endpoint {
+ remote-endpoint = <&usb_1_ss2_qmpphy_out>;
+ };
+ };
+ };
+
pmic-glink {
compatible = "qcom,x1e80100-pmic-glink",
"qcom,sm8550-pmic-glink",
@@ -1007,6 +1021,14 @@ &mdss_dp1_out {
link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};
+&mdss_dp2 {
+ status = "okay";
+};
+
+&mdss_dp2_out {
+ data-lanes = <0 1 2 3>;
+};
+
&mdss_dp3 {
/delete-property/ #sound-dai-cells;
@@ -1263,6 +1285,12 @@ &tlmm {
<72 2>, /* Secure EC I2C connection (?) */
<238 1>; /* UFS Reset */
+ hdmi_hpd_default: hdmi-hpd-default-state {
+ pins = "gpio126";
+ function = "usb2_dp";
+ bias-disable;
+ };
+
eusb3_reset_n: eusb3-reset-n-state {
pins = "gpio6";
function = "gpio";
@@ -1486,6 +1514,22 @@ &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>;
+
+ qcom,combo-initial-mode = "dp";
+
+ /delete-property/ mode-switch;
+ /delete-property/ orientation-switch;
+
+ status = "okay";
+};
+
+&usb_1_ss2_qmpphy_out {
+ remote-endpoint = <&hdmi_con>;
+};
+
&usb_1_ss1_hsphy {
vdd-supply = <&vreg_l3j_0p8>;
vdda12-supply = <&vreg_l2j_1p2>;
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH RFC 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes
2025-08-21 13:53 ` [PATCH RFC 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes Neil Armstrong
@ 2025-08-22 11:01 ` Dmitry Baryshkov
2025-08-22 11:02 ` Neil Armstrong
2025-08-22 11:45 ` Stephan Gerhold
0 siblings, 2 replies; 15+ messages in thread
From: Dmitry Baryshkov @ 2025-08-22 11:01 UTC (permalink / raw)
To: Neil Armstrong
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel
On Thu, Aug 21, 2025 at 03:53:28PM +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 | 44 ++++++++++++++++++++++
> 1 file changed, 44 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 4cf61c2a34e31233b1adc93332bcabef22de3f86..5b62b8c3123633360f249e3ecdc8ea23f44e8e09 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,20 @@ switch-lid {
> };
> };
>
> +
> + hdmi-connector {
> + compatible = "hdmi-connector";
> + type = "a";
> + pinctrl-0 = <&hdmi_hpd_default>;
> + pinctrl-names = "default";
If this is a DP HPD signal, it should be a part of the DP device.
> +
> + port {
> + hdmi_con: endpoint {
> + remote-endpoint = <&usb_1_ss2_qmpphy_out>;
Please describe the transparent bridge too. It can be covered by the
simple-bridge.yaml / simple-bridge.c
> + };
> + };
> + };
> +
> pmic-glink {
> compatible = "qcom,x1e80100-pmic-glink",
> "qcom,sm8550-pmic-glink",
> @@ -1007,6 +1021,14 @@ &mdss_dp1_out {
> link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> };
>
> +&mdss_dp2 {
> + status = "okay";
> +};
> +
> +&mdss_dp2_out {
> + data-lanes = <0 1 2 3>;
> +};
> +
> &mdss_dp3 {
> /delete-property/ #sound-dai-cells;
>
> @@ -1263,6 +1285,12 @@ &tlmm {
> <72 2>, /* Secure EC I2C connection (?) */
> <238 1>; /* UFS Reset */
>
> + hdmi_hpd_default: hdmi-hpd-default-state {
> + pins = "gpio126";
> + function = "usb2_dp";
> + bias-disable;
> + };
> +
> eusb3_reset_n: eusb3-reset-n-state {
> pins = "gpio6";
> function = "gpio";
> @@ -1486,6 +1514,22 @@ &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>;
> +
> + qcom,combo-initial-mode = "dp";
> +
> + /delete-property/ mode-switch;
> + /delete-property/ orientation-switch;
> +
> + status = "okay";
> +};
> +
> +&usb_1_ss2_qmpphy_out {
> + remote-endpoint = <&hdmi_con>;
> +};
> +
> &usb_1_ss1_hsphy {
> vdd-supply = <&vreg_l3j_0p8>;
> vdda12-supply = <&vreg_l2j_1p2>;
>
> --
> 2.34.1
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RFC 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes
2025-08-22 11:01 ` Dmitry Baryshkov
@ 2025-08-22 11:02 ` Neil Armstrong
2025-08-22 11:40 ` Dmitry Baryshkov
2025-08-22 11:45 ` Stephan Gerhold
1 sibling, 1 reply; 15+ messages in thread
From: Neil Armstrong @ 2025-08-22 11:02 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel
On 22/08/2025 13:01, Dmitry Baryshkov wrote:
> On Thu, Aug 21, 2025 at 03:53:28PM +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 | 44 ++++++++++++++++++++++
>> 1 file changed, 44 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 4cf61c2a34e31233b1adc93332bcabef22de3f86..5b62b8c3123633360f249e3ecdc8ea23f44e8e09 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,20 @@ switch-lid {
>> };
>> };
>>
>> +
>> + hdmi-connector {
>> + compatible = "hdmi-connector";
>> + type = "a";
>> + pinctrl-0 = <&hdmi_hpd_default>;
>> + pinctrl-names = "default";
>
> If this is a DP HPD signal, it should be a part of the DP device.
>
>> +
>> + port {
>> + hdmi_con: endpoint {
>> + remote-endpoint = <&usb_1_ss2_qmpphy_out>;
>
> Please describe the transparent bridge too. It can be covered by the
> simple-bridge.yaml / simple-bridge.c
Ack, indeed it could take the pinctrl thing.
Neil
>
>
>> + };
>> + };
>> + };
>> +
>> pmic-glink {
>> compatible = "qcom,x1e80100-pmic-glink",
>> "qcom,sm8550-pmic-glink",
>> @@ -1007,6 +1021,14 @@ &mdss_dp1_out {
>> link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
>> };
>>
>> +&mdss_dp2 {
>> + status = "okay";
>> +};
>> +
>> +&mdss_dp2_out {
>> + data-lanes = <0 1 2 3>;
>> +};
>> +
>> &mdss_dp3 {
>> /delete-property/ #sound-dai-cells;
>>
>> @@ -1263,6 +1285,12 @@ &tlmm {
>> <72 2>, /* Secure EC I2C connection (?) */
>> <238 1>; /* UFS Reset */
>>
>> + hdmi_hpd_default: hdmi-hpd-default-state {
>> + pins = "gpio126";
>> + function = "usb2_dp";
>> + bias-disable;
>> + };
>> +
>> eusb3_reset_n: eusb3-reset-n-state {
>> pins = "gpio6";
>> function = "gpio";
>> @@ -1486,6 +1514,22 @@ &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>;
>> +
>> + qcom,combo-initial-mode = "dp";
>> +
>> + /delete-property/ mode-switch;
>> + /delete-property/ orientation-switch;
>> +
>> + status = "okay";
>> +};
>> +
>> +&usb_1_ss2_qmpphy_out {
>> + remote-endpoint = <&hdmi_con>;
>> +};
>> +
>> &usb_1_ss1_hsphy {
>> vdd-supply = <&vreg_l3j_0p8>;
>> vdda12-supply = <&vreg_l2j_1p2>;
>>
>> --
>> 2.34.1
>>
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RFC 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes
2025-08-22 11:02 ` Neil Armstrong
@ 2025-08-22 11:40 ` Dmitry Baryshkov
0 siblings, 0 replies; 15+ messages in thread
From: Dmitry Baryshkov @ 2025-08-22 11:40 UTC (permalink / raw)
To: Neil Armstrong
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel
On Fri, Aug 22, 2025 at 01:02:56PM +0200, Neil Armstrong wrote:
> On 22/08/2025 13:01, Dmitry Baryshkov wrote:
> > On Thu, Aug 21, 2025 at 03:53:28PM +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 | 44 ++++++++++++++++++++++
> > > 1 file changed, 44 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 4cf61c2a34e31233b1adc93332bcabef22de3f86..5b62b8c3123633360f249e3ecdc8ea23f44e8e09 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,20 @@ switch-lid {
> > > };
> > > };
> > > +
> > > + hdmi-connector {
> > > + compatible = "hdmi-connector";
> > > + type = "a";
> > > + pinctrl-0 = <&hdmi_hpd_default>;
> > > + pinctrl-names = "default";
> >
> > If this is a DP HPD signal, it should be a part of the DP device.
> >
> > > +
> > > + port {
> > > + hdmi_con: endpoint {
> > > + remote-endpoint = <&usb_1_ss2_qmpphy_out>;
> >
> > Please describe the transparent bridge too. It can be covered by the
> > simple-bridge.yaml / simple-bridge.c
>
> Ack, indeed it could take the pinctrl thing.
Pinctrl, enables, etc.
But from my POV the HPD pin should be a part of the DP controller
itself.
>
> Neil
>
> >
> >
> > > + };
> > > + };
> > > + };
> > > +
> > > pmic-glink {
> > > compatible = "qcom,x1e80100-pmic-glink",
> > > "qcom,sm8550-pmic-glink",
> > > @@ -1007,6 +1021,14 @@ &mdss_dp1_out {
> > > link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> > > };
> > > +&mdss_dp2 {
> > > + status = "okay";
> > > +};
> > > +
> > > +&mdss_dp2_out {
> > > + data-lanes = <0 1 2 3>;
> > > +};
> > > +
> > > &mdss_dp3 {
> > > /delete-property/ #sound-dai-cells;
> > > @@ -1263,6 +1285,12 @@ &tlmm {
> > > <72 2>, /* Secure EC I2C connection (?) */
> > > <238 1>; /* UFS Reset */
> > > + hdmi_hpd_default: hdmi-hpd-default-state {
> > > + pins = "gpio126";
> > > + function = "usb2_dp";
> > > + bias-disable;
> > > + };
> > > +
> > > eusb3_reset_n: eusb3-reset-n-state {
> > > pins = "gpio6";
> > > function = "gpio";
> > > @@ -1486,6 +1514,22 @@ &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>;
> > > +
> > > + qcom,combo-initial-mode = "dp";
> > > +
> > > + /delete-property/ mode-switch;
> > > + /delete-property/ orientation-switch;
> > > +
> > > + status = "okay";
> > > +};
> > > +
> > > +&usb_1_ss2_qmpphy_out {
> > > + remote-endpoint = <&hdmi_con>;
> > > +};
> > > +
> > > &usb_1_ss1_hsphy {
> > > vdd-supply = <&vreg_l3j_0p8>;
> > > vdda12-supply = <&vreg_l2j_1p2>;
> > >
> > > --
> > > 2.34.1
> > >
> >
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RFC 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes
2025-08-22 11:01 ` Dmitry Baryshkov
2025-08-22 11:02 ` Neil Armstrong
@ 2025-08-22 11:45 ` Stephan Gerhold
2025-08-22 11:57 ` Dmitry Baryshkov
1 sibling, 1 reply; 15+ messages in thread
From: Stephan Gerhold @ 2025-08-22 11:45 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,
linux-arm-msm, linux-phy, devicetree, linux-kernel
On Fri, Aug 22, 2025 at 02:01:30PM +0300, Dmitry Baryshkov wrote:
> On Thu, Aug 21, 2025 at 03:53:28PM +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 | 44 ++++++++++++++++++++++
> > 1 file changed, 44 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 4cf61c2a34e31233b1adc93332bcabef22de3f86..5b62b8c3123633360f249e3ecdc8ea23f44e8e09 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,20 @@ switch-lid {
> > };
> > };
> >
> > +
> > + hdmi-connector {
> > + compatible = "hdmi-connector";
> > + type = "a";
> > + pinctrl-0 = <&hdmi_hpd_default>;
> > + pinctrl-names = "default";
> [...]
> > +
> > + port {
> > + hdmi_con: endpoint {
> > + remote-endpoint = <&usb_1_ss2_qmpphy_out>;
>
> Please describe the transparent bridge too. It can be covered by the
> simple-bridge.yaml / simple-bridge.c
>
I think this isn't the case here(?), but how are we going to handle
devices where we don't know which bridge chip is used? I've seen at
least 3 or 4 different chips already across all X1E laptops and we don't
have schematics for most of them.
Thanks,
Stephan
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RFC 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes
2025-08-22 11:45 ` Stephan Gerhold
@ 2025-08-22 11:57 ` Dmitry Baryshkov
2025-08-22 12:20 ` Stephan Gerhold
0 siblings, 1 reply; 15+ messages in thread
From: Dmitry Baryshkov @ 2025-08-22 11:57 UTC (permalink / raw)
To: Stephan Gerhold
Cc: Neil Armstrong, Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel
On Fri, Aug 22, 2025 at 01:45:38PM +0200, Stephan Gerhold wrote:
> On Fri, Aug 22, 2025 at 02:01:30PM +0300, Dmitry Baryshkov wrote:
> > On Thu, Aug 21, 2025 at 03:53:28PM +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 | 44 ++++++++++++++++++++++
> > > 1 file changed, 44 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 4cf61c2a34e31233b1adc93332bcabef22de3f86..5b62b8c3123633360f249e3ecdc8ea23f44e8e09 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,20 @@ switch-lid {
> > > };
> > > };
> > >
> > > +
> > > + hdmi-connector {
> > > + compatible = "hdmi-connector";
> > > + type = "a";
> > > + pinctrl-0 = <&hdmi_hpd_default>;
> > > + pinctrl-names = "default";
> > [...]
> > > +
> > > + port {
> > > + hdmi_con: endpoint {
> > > + remote-endpoint = <&usb_1_ss2_qmpphy_out>;
> >
> > Please describe the transparent bridge too. It can be covered by the
> > simple-bridge.yaml / simple-bridge.c
> >
>
> I think this isn't the case here(?), but how are we going to handle
> devices where we don't know which bridge chip is used? I've seen at
> least 3 or 4 different chips already across all X1E laptops and we don't
> have schematics for most of them.
Open the case, inspect the board, identify the chip. Everything is as
usual.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH RFC 3/3] arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes
2025-08-22 11:57 ` Dmitry Baryshkov
@ 2025-08-22 12:20 ` Stephan Gerhold
0 siblings, 0 replies; 15+ messages in thread
From: Stephan Gerhold @ 2025-08-22 12:20 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,
linux-arm-msm, linux-phy, devicetree, linux-kernel
On Fri, Aug 22, 2025 at 02:57:24PM +0300, Dmitry Baryshkov wrote:
> On Fri, Aug 22, 2025 at 01:45:38PM +0200, Stephan Gerhold wrote:
> > On Fri, Aug 22, 2025 at 02:01:30PM +0300, Dmitry Baryshkov wrote:
> > > On Thu, Aug 21, 2025 at 03:53:28PM +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 | 44 ++++++++++++++++++++++
> > > > 1 file changed, 44 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 4cf61c2a34e31233b1adc93332bcabef22de3f86..5b62b8c3123633360f249e3ecdc8ea23f44e8e09 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,20 @@ switch-lid {
> > > > };
> > > > };
> > > >
> > > > +
> > > > + hdmi-connector {
> > > > + compatible = "hdmi-connector";
> > > > + type = "a";
> > > > + pinctrl-0 = <&hdmi_hpd_default>;
> > > > + pinctrl-names = "default";
> > > [...]
> > > > +
> > > > + port {
> > > > + hdmi_con: endpoint {
> > > > + remote-endpoint = <&usb_1_ss2_qmpphy_out>;
> > >
> > > Please describe the transparent bridge too. It can be covered by the
> > > simple-bridge.yaml / simple-bridge.c
> > >
> >
> > I think this isn't the case here(?), but how are we going to handle
> > devices where we don't know which bridge chip is used? I've seen at
> > least 3 or 4 different chips already across all X1E laptops and we don't
> > have schematics for most of them.
>
> Open the case, inspect the board, identify the chip. Everything is as
> usual.
>
The chip might not have any visible identifier. :-) But I guess there is
no point theorizing about such potential issues now. We'll see. I agree
it would be cleaner to have the bridges modelled.
Thanks,
Stephan
^ permalink raw reply [flat|nested] 15+ messages in thread