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 {
reg = <1>;
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 {
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 {
qcom,gsi-loader = "self";
memory-region = <&ipa_fw_mem>;
......@@ -495,6 +567,15 @@ &mdss_dsi0_phy {
status = "okay";
};
&mdss_dp0 {
status = "okay";
};
&mdss_dp0_out {
data-lanes = <0 1>;
remote-endpoint = <&usb_dp_qmpphy_dp_in>;
};
&mdss_mdp {
status = "okay";
};
......@@ -600,6 +681,11 @@ &pmk8550_rtc {
status = "okay";
};
&qup_i2c3_data_clk {
/* Use internal I2C pull-up */
bias-pull-up = <2200>;
};
&qupv3_id_0 {
status = "okay";
};
......@@ -787,7 +873,7 @@ &usb_1_dwc3_hs {
};
&usb_1_dwc3_ss {
remote-endpoint = <&pmic_glink_ss_in>;
remote-endpoint = <&usb_dp_qmpphy_usb_ss_in>;
};
&usb_1_hsphy {
......@@ -803,9 +889,23 @@ &usb_dp_qmpphy {
vdda-phy-supply = <&vreg_l3i_1p2>;
vdda-pll-supply = <&vreg_l3g_0p91>;
orientation-switch;
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 {
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