Commit 63b78ca1 authored by Neil Armstrong's avatar Neil Armstrong Committed by Bjorn Andersson

arm64: dts: qcom: sm8650-qrd: add USB-C Altmode Support

Add the necessary nodes to support the USB-C Altmode path by
adding the following
- WCD939x USBSS Mux I2C device
- nb7vpq904m Redriver I2C device
- Port/Endpoint graph links bettween PMIC-Glink, Mux, Redriver and USB PHY nodes.

WCD939x USBSS port 2 Path to Codec will be added later when Audio support
is added.
Signed-off-by: default avatarNeil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20240123-topic-sm8650-upstream-altmode-v3-1-300a5ac80e1e@linaro.orgSigned-off-by: default avatarBjorn Andersson <andersson@kernel.org>
parent f6afb821
...@@ -77,9 +77,17 @@ port@1 { ...@@ -77,9 +77,17 @@ port@1 {
reg = <1>; reg = <1>;
pmic_glink_ss_in: endpoint { pmic_glink_ss_in: endpoint {
remote-endpoint = <&usb_1_dwc3_ss>; remote-endpoint = <&redriver_ss_out>;
}; };
}; };
port@2 {
reg = <2>;
pmic_glink_sbu: endpoint {
remote-endpoint = <&wcd_usbss_sbu_mux>;
};
};
}; };
}; };
}; };
...@@ -446,6 +454,70 @@ &gpi_dma1 { ...@@ -446,6 +454,70 @@ &gpi_dma1 {
status = "okay"; status = "okay";
}; };
&i2c3 {
status = "okay";
wcd_usbss: typec-mux@e {
compatible = "qcom,wcd9395-usbss", "qcom,wcd9390-usbss";
reg = <0xe>;
vdd-supply = <&vreg_l15b_1p8>;
reset-gpios = <&tlmm 152 GPIO_ACTIVE_HIGH>;
mode-switch;
orientation-switch;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
wcd_usbss_sbu_mux: endpoint {
remote-endpoint = <&pmic_glink_sbu>;
};
};
};
};
};
&i2c6 {
status = "okay";
typec-mux@1c {
compatible = "onnn,nb7vpq904m";
reg = <0x1c>;
vcc-supply = <&vreg_l15b_1p8>;
retimer-switch;
orientation-switch;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
redriver_ss_out: endpoint {
remote-endpoint = <&pmic_glink_ss_in>;
};
};
port@1 {
reg = <1>;
redriver_ss_in: endpoint {
data-lanes = <3 2 1 0>;
remote-endpoint = <&usb_dp_qmpphy_out>;
};
};
};
};
};
&ipa { &ipa {
qcom,gsi-loader = "self"; qcom,gsi-loader = "self";
memory-region = <&ipa_fw_mem>; memory-region = <&ipa_fw_mem>;
...@@ -495,6 +567,15 @@ &mdss_dsi0_phy { ...@@ -495,6 +567,15 @@ &mdss_dsi0_phy {
status = "okay"; status = "okay";
}; };
&mdss_dp0 {
status = "okay";
};
&mdss_dp0_out {
data-lanes = <0 1>;
remote-endpoint = <&usb_dp_qmpphy_dp_in>;
};
&mdss_mdp { &mdss_mdp {
status = "okay"; status = "okay";
}; };
...@@ -600,6 +681,11 @@ &pmk8550_rtc { ...@@ -600,6 +681,11 @@ &pmk8550_rtc {
status = "okay"; status = "okay";
}; };
&qup_i2c3_data_clk {
/* Use internal I2C pull-up */
bias-pull-up = <2200>;
};
&qupv3_id_0 { &qupv3_id_0 {
status = "okay"; status = "okay";
}; };
...@@ -787,7 +873,7 @@ &usb_1_dwc3_hs { ...@@ -787,7 +873,7 @@ &usb_1_dwc3_hs {
}; };
&usb_1_dwc3_ss { &usb_1_dwc3_ss {
remote-endpoint = <&pmic_glink_ss_in>; remote-endpoint = <&usb_dp_qmpphy_usb_ss_in>;
}; };
&usb_1_hsphy { &usb_1_hsphy {
...@@ -803,9 +889,23 @@ &usb_dp_qmpphy { ...@@ -803,9 +889,23 @@ &usb_dp_qmpphy {
vdda-phy-supply = <&vreg_l3i_1p2>; vdda-phy-supply = <&vreg_l3i_1p2>;
vdda-pll-supply = <&vreg_l3g_0p91>; vdda-pll-supply = <&vreg_l3g_0p91>;
orientation-switch;
status = "okay"; status = "okay";
}; };
&usb_dp_qmpphy_dp_in {
remote-endpoint = <&mdss_dp0_out>;
};
&usb_dp_qmpphy_out {
remote-endpoint = <&redriver_ss_in>;
};
&usb_dp_qmpphy_usb_ss_in {
remote-endpoint = <&usb_1_dwc3_ss>;
};
&xo_board { &xo_board {
clock-frequency = <76800000>; clock-frequency = <76800000>;
}; };
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment