Message ID | 20230709041926.4052245-4-dmitry.baryshkov@linaro.org |
---|---|
State | New |
Headers | show |
Series | arm64: dts: qcom: qrb5165-rb5: enable DP support | expand |
On 9.07.2023 06:19, Dmitry Baryshkov wrote: > Add the nb7vpq904m, onboard USB-C redriver / retimer. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- [...] > + port@1 { > + reg = <1>; > + > + redriver_phy_con_ss: endpoint { > + remote-endpoint = <&usb_1_qmpphy_typec_mux_in>; > + data-lanes = <0 1 2 3>; That's USB+DP lines combined, or how does it work? I'm confused :/ Konrad > + }; > + }; > + > + port@2 { > + reg = <2>; > + > + redriver_usb_con_sbu: endpoint { > + remote-endpoint = <&pm8150b_typec_sbu_out>; > + }; > + }; > + }; > + }; > }; > > &mdss { > @@ -1294,7 +1334,7 @@ &usb_1_qmpphy { > }; > > &usb_1_qmpphy_typec_mux_in { > - remote-endpoint = <&pm8150b_typec_mux_out>; > + remote-endpoint = <&redriver_phy_con_ss>; > }; > > &usb_2 { > @@ -1382,7 +1422,15 @@ pm8150b_role_switch_out: endpoint { > port@1 { > reg = <1>; > pm8150b_typec_mux_out: endpoint { > - remote-endpoint = <&usb_1_qmpphy_typec_mux_in>; > + remote-endpoint = <&redriver_usb_con_ss>; > + }; > + }; > + > + port@2 { > + reg = <2>; > + > + pm8150b_typec_sbu_out: endpoint { > + remote-endpoint = <&redriver_usb_con_sbu>; > }; > }; > };
On 12/07/2023 00:36, Konrad Dybcio wrote: > On 9.07.2023 06:19, Dmitry Baryshkov wrote: >> Add the nb7vpq904m, onboard USB-C redriver / retimer. >> >> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >> --- > [...] > >> + port@1 { >> + reg = <1>; >> + >> + redriver_phy_con_ss: endpoint { >> + remote-endpoint = <&usb_1_qmpphy_typec_mux_in>; >> + data-lanes = <0 1 2 3>; > That's USB+DP lines combined, or how does it work? I'm confused :/ 4 generic purpose SS lanes, which can be purposed for USB or for DP. > > Konrad >> + }; >> + }; >> + >> + port@2 { >> + reg = <2>; >> + >> + redriver_usb_con_sbu: endpoint { >> + remote-endpoint = <&pm8150b_typec_sbu_out>; >> + }; >> + }; >> + }; >> + }; >> }; >> >> &mdss { >> @@ -1294,7 +1334,7 @@ &usb_1_qmpphy { >> }; >> >> &usb_1_qmpphy_typec_mux_in { >> - remote-endpoint = <&pm8150b_typec_mux_out>; >> + remote-endpoint = <&redriver_phy_con_ss>; >> }; >> >> &usb_2 { >> @@ -1382,7 +1422,15 @@ pm8150b_role_switch_out: endpoint { >> port@1 { >> reg = <1>; >> pm8150b_typec_mux_out: endpoint { >> - remote-endpoint = <&usb_1_qmpphy_typec_mux_in>; >> + remote-endpoint = <&redriver_usb_con_ss>; >> + }; >> + }; >> + >> + port@2 { >> + reg = <2>; >> + >> + pm8150b_typec_sbu_out: endpoint { >> + remote-endpoint = <&redriver_usb_con_sbu>; >> }; >> }; >> };
On 12.07.2023 00:39, Dmitry Baryshkov wrote: > On 12/07/2023 00:36, Konrad Dybcio wrote: >> On 9.07.2023 06:19, Dmitry Baryshkov wrote: >>> Add the nb7vpq904m, onboard USB-C redriver / retimer. >>> >>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >>> --- >> [...] >> >>> + port@1 { >>> + reg = <1>; >>> + >>> + redriver_phy_con_ss: endpoint { >>> + remote-endpoint = <&usb_1_qmpphy_typec_mux_in>; >>> + data-lanes = <0 1 2 3>; >> That's USB+DP lines combined, or how does it work? I'm confused :/ > > 4 generic purpose SS lanes, which can be purposed for USB or for DP. Okay, so my gut did better than my brain. Other than that, I'm reading the bindings and it looks like ports 0 and 1 may possibly be swapped? Konrad > >> >> Konrad >>> + }; >>> + }; >>> + >>> + port@2 { >>> + reg = <2>; >>> + >>> + redriver_usb_con_sbu: endpoint { >>> + remote-endpoint = <&pm8150b_typec_sbu_out>; >>> + }; >>> + }; >>> + }; >>> + }; >>> }; >>> &mdss { >>> @@ -1294,7 +1334,7 @@ &usb_1_qmpphy { >>> }; >>> &usb_1_qmpphy_typec_mux_in { >>> - remote-endpoint = <&pm8150b_typec_mux_out>; >>> + remote-endpoint = <&redriver_phy_con_ss>; >>> }; >>> &usb_2 { >>> @@ -1382,7 +1422,15 @@ pm8150b_role_switch_out: endpoint { >>> port@1 { >>> reg = <1>; >>> pm8150b_typec_mux_out: endpoint { >>> - remote-endpoint = <&usb_1_qmpphy_typec_mux_in>; >>> + remote-endpoint = <&redriver_usb_con_ss>; >>> + }; >>> + }; >>> + >>> + port@2 { >>> + reg = <2>; >>> + >>> + pm8150b_typec_sbu_out: endpoint { >>> + remote-endpoint = <&redriver_usb_con_sbu>; >>> }; >>> }; >>> }; >
On Wed, 12 Jul 2023 at 01:59, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > > On 12.07.2023 00:39, Dmitry Baryshkov wrote: > > On 12/07/2023 00:36, Konrad Dybcio wrote: > >> On 9.07.2023 06:19, Dmitry Baryshkov wrote: > >>> Add the nb7vpq904m, onboard USB-C redriver / retimer. > >>> > >>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > >>> --- > >> [...] > >> > >>> + port@1 { > >>> + reg = <1>; > >>> + > >>> + redriver_phy_con_ss: endpoint { > >>> + remote-endpoint = <&usb_1_qmpphy_typec_mux_in>; > >>> + data-lanes = <0 1 2 3>; > >> That's USB+DP lines combined, or how does it work? I'm confused :/ > > > > 4 generic purpose SS lanes, which can be purposed for USB or for DP. > Okay, so my gut did better than my brain. > > Other than that, I'm reading the bindings and it looks like ports 0 and > 1 may possibly be swapped? Yes. But if I get schematics right, the lanes are not swapped in this case. > > Konrad > > > >> > >> Konrad > >>> + }; > >>> + }; > >>> + > >>> + port@2 { > >>> + reg = <2>; > >>> + > >>> + redriver_usb_con_sbu: endpoint { > >>> + remote-endpoint = <&pm8150b_typec_sbu_out>; > >>> + }; > >>> + }; > >>> + }; > >>> + }; > >>> }; > >>> &mdss { > >>> @@ -1294,7 +1334,7 @@ &usb_1_qmpphy { > >>> }; > >>> &usb_1_qmpphy_typec_mux_in { > >>> - remote-endpoint = <&pm8150b_typec_mux_out>; > >>> + remote-endpoint = <&redriver_phy_con_ss>; > >>> }; > >>> &usb_2 { > >>> @@ -1382,7 +1422,15 @@ pm8150b_role_switch_out: endpoint { > >>> port@1 { > >>> reg = <1>; > >>> pm8150b_typec_mux_out: endpoint { > >>> - remote-endpoint = <&usb_1_qmpphy_typec_mux_in>; > >>> + remote-endpoint = <&redriver_usb_con_ss>; > >>> + }; > >>> + }; > >>> + > >>> + port@2 { > >>> + reg = <2>; > >>> + > >>> + pm8150b_typec_sbu_out: endpoint { > >>> + remote-endpoint = <&redriver_usb_con_sbu>; > >>> }; > >>> }; > >>> }; > >
On 12.07.2023 01:01, Dmitry Baryshkov wrote: > On Wed, 12 Jul 2023 at 01:59, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: >> >> On 12.07.2023 00:39, Dmitry Baryshkov wrote: >>> On 12/07/2023 00:36, Konrad Dybcio wrote: >>>> On 9.07.2023 06:19, Dmitry Baryshkov wrote: >>>>> Add the nb7vpq904m, onboard USB-C redriver / retimer. >>>>> >>>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >>>>> --- >>>> [...] >>>> >>>>> + port@1 { >>>>> + reg = <1>; >>>>> + >>>>> + redriver_phy_con_ss: endpoint { >>>>> + remote-endpoint = <&usb_1_qmpphy_typec_mux_in>; >>>>> + data-lanes = <0 1 2 3>; >>>> That's USB+DP lines combined, or how does it work? I'm confused :/ >>> >>> 4 generic purpose SS lanes, which can be purposed for USB or for DP. >> Okay, so my gut did better than my brain. >> >> Other than that, I'm reading the bindings and it looks like ports 0 and >> 1 may possibly be swapped? > > Yes. But if I get schematics right, the lanes are not swapped in this case. I'm not talking about the 0123-3210 swap, but rather in/out being swapped. Unless I'm reading the bindings wrong (or they may be written in a confusing way). Konrad > >> >> Konrad >>> >>>> >>>> Konrad >>>>> + }; >>>>> + }; >>>>> + >>>>> + port@2 { >>>>> + reg = <2>; >>>>> + >>>>> + redriver_usb_con_sbu: endpoint { >>>>> + remote-endpoint = <&pm8150b_typec_sbu_out>; >>>>> + }; >>>>> + }; >>>>> + }; >>>>> + }; >>>>> }; >>>>> &mdss { >>>>> @@ -1294,7 +1334,7 @@ &usb_1_qmpphy { >>>>> }; >>>>> &usb_1_qmpphy_typec_mux_in { >>>>> - remote-endpoint = <&pm8150b_typec_mux_out>; >>>>> + remote-endpoint = <&redriver_phy_con_ss>; >>>>> }; >>>>> &usb_2 { >>>>> @@ -1382,7 +1422,15 @@ pm8150b_role_switch_out: endpoint { >>>>> port@1 { >>>>> reg = <1>; >>>>> pm8150b_typec_mux_out: endpoint { >>>>> - remote-endpoint = <&usb_1_qmpphy_typec_mux_in>; >>>>> + remote-endpoint = <&redriver_usb_con_ss>; >>>>> + }; >>>>> + }; >>>>> + >>>>> + port@2 { >>>>> + reg = <2>; >>>>> + >>>>> + pm8150b_typec_sbu_out: endpoint { >>>>> + remote-endpoint = <&redriver_usb_con_sbu>; >>>>> }; >>>>> }; >>>>> }; >>> > > >
On 12/07/2023 02:04, Konrad Dybcio wrote: > On 12.07.2023 01:01, Dmitry Baryshkov wrote: >> On Wed, 12 Jul 2023 at 01:59, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: >>> >>> On 12.07.2023 00:39, Dmitry Baryshkov wrote: >>>> On 12/07/2023 00:36, Konrad Dybcio wrote: >>>>> On 9.07.2023 06:19, Dmitry Baryshkov wrote: >>>>>> Add the nb7vpq904m, onboard USB-C redriver / retimer. >>>>>> >>>>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >>>>>> --- >>>>> [...] >>>>> >>>>>> + port@1 { >>>>>> + reg = <1>; >>>>>> + >>>>>> + redriver_phy_con_ss: endpoint { >>>>>> + remote-endpoint = <&usb_1_qmpphy_typec_mux_in>; >>>>>> + data-lanes = <0 1 2 3>; >>>>> That's USB+DP lines combined, or how does it work? I'm confused :/ >>>> >>>> 4 generic purpose SS lanes, which can be purposed for USB or for DP. >>> Okay, so my gut did better than my brain. >>> >>> Other than that, I'm reading the bindings and it looks like ports 0 and >>> 1 may possibly be swapped? >> >> Yes. But if I get schematics right, the lanes are not swapped in this case. > I'm not talking about the 0123-3210 swap, but rather in/out being swapped. > Unless I'm reading the bindings wrong (or they may be written in a > confusing way). Hmm, no. port@0 goes to the connector, port@1 to SS PHY, port@2 to SBU source. > > Konrad >> >>> >>> Konrad >>>> >>>>> >>>>> Konrad >>>>>> + }; >>>>>> + }; >>>>>> + >>>>>> + port@2 { >>>>>> + reg = <2>; >>>>>> + >>>>>> + redriver_usb_con_sbu: endpoint { >>>>>> + remote-endpoint = <&pm8150b_typec_sbu_out>; >>>>>> + }; >>>>>> + }; >>>>>> + }; >>>>>> + }; >>>>>> }; >>>>>> &mdss { >>>>>> @@ -1294,7 +1334,7 @@ &usb_1_qmpphy { >>>>>> }; >>>>>> &usb_1_qmpphy_typec_mux_in { >>>>>> - remote-endpoint = <&pm8150b_typec_mux_out>; >>>>>> + remote-endpoint = <&redriver_phy_con_ss>; >>>>>> }; >>>>>> &usb_2 { >>>>>> @@ -1382,7 +1422,15 @@ pm8150b_role_switch_out: endpoint { >>>>>> port@1 { >>>>>> reg = <1>; >>>>>> pm8150b_typec_mux_out: endpoint { >>>>>> - remote-endpoint = <&usb_1_qmpphy_typec_mux_in>; >>>>>> + remote-endpoint = <&redriver_usb_con_ss>; >>>>>> + }; >>>>>> + }; >>>>>> + >>>>>> + port@2 { >>>>>> + reg = <2>; >>>>>> + >>>>>> + pm8150b_typec_sbu_out: endpoint { >>>>>> + remote-endpoint = <&redriver_usb_con_sbu>; >>>>>> }; >>>>>> }; >>>>>> }; >>>> >> >> >>
diff --git a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts index b6c587ffdf8f..a03f334a3d01 100644 --- a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts +++ b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts @@ -610,6 +610,46 @@ lt9611_out: endpoint { /* LS-I2C1 */ &i2c15 { status = "okay"; + + typec-mux@1c { + compatible = "onnn,nb7vpq904m"; + reg = <0x1c>; + + vcc-supply = <&vreg_s4a_1p8>; + + retimer-switch; + orientation-switch; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + redriver_usb_con_ss: endpoint { + remote-endpoint = <&pm8150b_typec_mux_out>; + }; + }; + + port@1 { + reg = <1>; + + redriver_phy_con_ss: endpoint { + remote-endpoint = <&usb_1_qmpphy_typec_mux_in>; + data-lanes = <0 1 2 3>; + }; + }; + + port@2 { + reg = <2>; + + redriver_usb_con_sbu: endpoint { + remote-endpoint = <&pm8150b_typec_sbu_out>; + }; + }; + }; + }; }; &mdss { @@ -1294,7 +1334,7 @@ &usb_1_qmpphy { }; &usb_1_qmpphy_typec_mux_in { - remote-endpoint = <&pm8150b_typec_mux_out>; + remote-endpoint = <&redriver_phy_con_ss>; }; &usb_2 { @@ -1382,7 +1422,15 @@ pm8150b_role_switch_out: endpoint { port@1 { reg = <1>; pm8150b_typec_mux_out: endpoint { - remote-endpoint = <&usb_1_qmpphy_typec_mux_in>; + remote-endpoint = <&redriver_usb_con_ss>; + }; + }; + + port@2 { + reg = <2>; + + pm8150b_typec_sbu_out: endpoint { + remote-endpoint = <&redriver_usb_con_sbu>; }; }; };
Add the nb7vpq904m, onboard USB-C redriver / retimer. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 52 +++++++++++++++++++++++- 1 file changed, 50 insertions(+), 2 deletions(-)