Message ID | 20230503-topic-sm8450-graphics-dp-next-v1-3-d1ee9397f2a6@linaro.org |
---|---|
State | New |
Headers | show |
Series | arm64: qcom: sm84[34]50: enable DP altmode on USB-C Connector | expand |
On 3.05.2023 15:10, Neil Armstrong wrote: > With support for the QMP combo phy to react to USB Type-C switch events, > introduce it as the next hop for the SuperSpeed lanes of the Type-C > connector, and connect the output of the DisplayPort controller > to the QMP combo phy. > > This allows the TCPM to perform orientation switching of both USB and > DisplayPort signals. > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> > --- > arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 74 ++++++++++++++++++++++++++++++++- > 1 file changed, 72 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > index 2ee1b121686a..fa835bdb7408 100644 > --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > @@ -58,7 +58,15 @@ port@1 { > reg = <1>; > > pmic_glink_ss_in: endpoint { > - remote-endpoint = <&usb_1_dwc3_ss>; > + remote-endpoint = <&usb_1_qmpphy_out>; > + }; > + }; > + > + port@2 { > + reg = <2>; > + > + pmic_glink_sbu: endpoint { > + remote-endpoint = <&fsa4480_sbu_mux>; > }; > }; > }; > @@ -326,6 +334,36 @@ zap-shader { > }; > }; > > +&i2c13 { > + status = "okay"; > + clock-frequency = <100000>; Status last > + > + fsa4480@42 { > + compatible = "fcs,fsa4480"; > + reg = <0x42>; > + > + interrupts-extended = <&tlmm 2 IRQ_TYPE_LEVEL_LOW>; > + > + vcc-supply = <&vreg_bob>; > + mode-switch; > + orientation-switch; > + svid = /bits/ 16 <0xff01>; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + fsa4480_sbu_mux: endpoint { > + remote-endpoint = <&pmic_glink_sbu>; > + }; > + }; > + }; > + }; > +}; > + > &i2c15 { > clock-frequency = <400000>; > status = "okay"; > @@ -370,6 +408,20 @@ &mdss { > status = "okay"; > }; > > +&mdss_dp { > + status = "okay"; > + > + ports { > + port@1 { > + reg = <1>; missing newline > + mdss_dp0_out: endpoint { > + data-lanes = <0 1>; > + remote-endpoint = <&usb_1_qmpphy_dp_in>; > + }; > + }; > + }; > +}; > + > &mdss_mdp { > status = "okay"; > }; > @@ -416,6 +468,10 @@ &qupv3_id_0 { > status = "okay"; > }; > > +&qupv3_id_1 { > + status = "okay"; > +}; > + > &qupv3_id_2 { > status = "okay"; > }; > @@ -716,7 +772,7 @@ &usb_1_dwc3_hs { > }; > > &usb_1_dwc3_ss { > - remote-endpoint = <&pmic_glink_ss_in>; > + remote-endpoint = <&usb_1_qmpphy_usb_ss_in>; > }; > > &usb_1_hsphy { > @@ -732,6 +788,20 @@ &usb_1_qmpphy { > > vdda-phy-supply = <&vreg_l6b_1p2>; > vdda-pll-supply = <&vreg_l1b_0p88>; > + > + orientation-switch; this is a common property which will/should be ignored if no usbc is present > +}; > + > +&usb_1_qmpphy_out { > + remote-endpoint = <&pmic_glink_ss_in>; > +}; > + > +&usb_1_qmpphy_usb_ss_in { > + remote-endpoint = <&usb_1_dwc3_ss>; > +}; > + > +&usb_1_qmpphy_dp_in { > + remote-endpoint = <&mdss_dp0_out>; 'd' < 'o' < 'u' with that fixed Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> Konrad > }; > > &usb_2 { >
diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts index 2ee1b121686a..fa835bdb7408 100644 --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts @@ -58,7 +58,15 @@ port@1 { reg = <1>; pmic_glink_ss_in: endpoint { - remote-endpoint = <&usb_1_dwc3_ss>; + remote-endpoint = <&usb_1_qmpphy_out>; + }; + }; + + port@2 { + reg = <2>; + + pmic_glink_sbu: endpoint { + remote-endpoint = <&fsa4480_sbu_mux>; }; }; }; @@ -326,6 +334,36 @@ zap-shader { }; }; +&i2c13 { + status = "okay"; + clock-frequency = <100000>; + + fsa4480@42 { + compatible = "fcs,fsa4480"; + reg = <0x42>; + + interrupts-extended = <&tlmm 2 IRQ_TYPE_LEVEL_LOW>; + + vcc-supply = <&vreg_bob>; + mode-switch; + orientation-switch; + svid = /bits/ 16 <0xff01>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + fsa4480_sbu_mux: endpoint { + remote-endpoint = <&pmic_glink_sbu>; + }; + }; + }; + }; +}; + &i2c15 { clock-frequency = <400000>; status = "okay"; @@ -370,6 +408,20 @@ &mdss { status = "okay"; }; +&mdss_dp { + status = "okay"; + + ports { + port@1 { + reg = <1>; + mdss_dp0_out: endpoint { + data-lanes = <0 1>; + remote-endpoint = <&usb_1_qmpphy_dp_in>; + }; + }; + }; +}; + &mdss_mdp { status = "okay"; }; @@ -416,6 +468,10 @@ &qupv3_id_0 { status = "okay"; }; +&qupv3_id_1 { + status = "okay"; +}; + &qupv3_id_2 { status = "okay"; }; @@ -716,7 +772,7 @@ &usb_1_dwc3_hs { }; &usb_1_dwc3_ss { - remote-endpoint = <&pmic_glink_ss_in>; + remote-endpoint = <&usb_1_qmpphy_usb_ss_in>; }; &usb_1_hsphy { @@ -732,6 +788,20 @@ &usb_1_qmpphy { vdda-phy-supply = <&vreg_l6b_1p2>; vdda-pll-supply = <&vreg_l1b_0p88>; + + orientation-switch; +}; + +&usb_1_qmpphy_out { + remote-endpoint = <&pmic_glink_ss_in>; +}; + +&usb_1_qmpphy_usb_ss_in { + remote-endpoint = <&usb_1_dwc3_ss>; +}; + +&usb_1_qmpphy_dp_in { + remote-endpoint = <&mdss_dp0_out>; }; &usb_2 {
With support for the QMP combo phy to react to USB Type-C switch events, introduce it as the next hop for the SuperSpeed lanes of the Type-C connector, and connect the output of the DisplayPort controller to the QMP combo phy. This allows the TCPM to perform orientation switching of both USB and DisplayPort signals. Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> --- arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 74 ++++++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 2 deletions(-)