diff --git a/qcom/lahaina-rumi.dtsi b/qcom/lahaina-rumi.dtsi index 653b5282f60d..ad80f4f9aedc 100644 --- a/qcom/lahaina-rumi.dtsi +++ b/qcom/lahaina-rumi.dtsi @@ -72,6 +72,10 @@ status = "disabled"; }; +&usb_qmp_phy { + status = "disabled"; +}; + &usb0 { /delete-property/ extcon; dwc3@a600000 { diff --git a/qcom/lahaina-usb.dtsi b/qcom/lahaina-usb.dtsi index 8c335892a4bc..371cb78b761b 100644 --- a/qcom/lahaina-usb.dtsi +++ b/qcom/lahaina-usb.dtsi @@ -354,7 +354,7 @@ compatible = "snps,dwc3"; reg = <0xa800000 0xcd00>; interrupts = ; - usb-phy = <&usb2_phy1>, <&usb_nop_phy>; + usb-phy = <&usb2_phy1>, <&usb_qmp_phy>; linux,sysdev_is_parent; snps,disable-clk-gating; snps,has-lpm-erratum; @@ -365,7 +365,7 @@ snps,dis_enblslpm_quirk; usb-core-id = <1>; tx-fifo-resize; - maximum-speed = "high-speed"; + maximum-speed = "super-speed"; dr_mode = "drd"; }; }; @@ -392,4 +392,132 @@ usb_nop_phy: usb_nop_phy { compatible = "usb-nop-xceiv"; }; + + /* Secondary USB port related QMP PHY */ + usb_qmp_phy: ssphy@88eb000 { + compatible = "qcom,usb-ssphy-qmp-v2"; + reg = <0x88eb000 0x2000>, + <0x088eb28c 0x4>; + reg-names = "qmp_phy_base", + "pcs_clamp_enable_reg"; + vdd-supply = <&pm8350_l1>; + qcom,vdd-voltage-level = <0 912000 912000>; + qcom,vdd-max-load-uA = <47000>; + core-supply = <&pm8350_l6>; + + clocks = <&clock_gcc GCC_USB3_SEC_PHY_AUX_CLK>, + <&clock_gcc GCC_USB3_SEC_PHY_PIPE_CLK>, + <&clock_gcc GCC_USB3_SEC_PHY_PIPE_CLK_SRC>, + <&clock_gcc USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK>, + <&clock_rpmh RPMH_CXO_CLK>, + <&clock_gcc GCC_USB3_SEC_CLKREF_EN>, + <&clock_gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>; + clock-names = "aux_clk", "pipe_clk", "pipe_clk_mux", + "pipe_clk_ext_src", "ref_clk_src", + "ref_clk", "com_aux_clk"; + + resets = <&clock_gcc GCC_USB3_DP_PHY_SEC_BCR>, + <&clock_gcc GCC_USB3PHY_PHY_SEC_BCR>; + reset-names = "phy_reset", "phy_phy_reset"; + qcom,qmp-phy-reg-offset = + ; + + qcom,qmp-phy-init-seq = + /* */ + ; + }; };