usb@78d9000 {
                        extcon = <&usb_id>, <&usb_id>;
                        status = "okay";
-               };
-
-               ehci@78d9000 {
-                       status = "okay";
-               };
-
-               phy@78d9000 {
-                       v1p8-supply = <&pm8916_l7>;
-                       v3p3-supply = <&pm8916_l13>;
-                       vddcx-supply = <&pm8916_s1>;
-                       extcon = <&usb_id>, <&usb_id>;
-                       dr_mode = "otg";
-                       status = "okay";
-                       switch-gpio = <&pm8916_gpios 4 GPIO_ACTIVE_HIGH>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&usb_sw_sel_pm>;
+                       adp-disable;
+                       hnp-disable;
+                       srp-disable;
+                       ulpi {
+                               phy {
+                                       v1p8-supply = <&pm8916_l7>;
+                                       v3p3-supply = <&pm8916_l13>;
+                                       extcon = <&usb_id>;
+                               };
+                       };
                };
 
                lpass@07708000 {
                pinctrl-0 = <&usb_id_default>;
        };
 
+       usb-switch {
+               compatible = "toshiba,tc7usb40mu";
+               switch-gpios = <&pm8916_gpios 4 GPIO_ACTIVE_HIGH>;
+               extcon = <&usb_id>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb_sw_sel_pm>;
+       };
+
        hdmi-out {
                compatible = "hdmi-connector";
                type = "a";
 
                        status = "disabled";
                };
 
-               usb_dev: usb@78d9000 {
+               otg: usb@78d9000 {
                        compatible = "qcom,ci-hdrc";
-                       reg = <0x78d9000 0x400>;
-                       dr_mode = "peripheral";
-                       interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
-                       usb-phy = <&usb_otg>;
-                       status = "disabled";
-               };
-
-               usb_host: ehci@78d9000 {
-                       compatible = "qcom,ehci-host";
-                       reg = <0x78d9000 0x400>;
-                       interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
-                       usb-phy = <&usb_otg>;
-                       status = "disabled";
-               };
-
-               usb_otg: phy@78d9000 {
-                       compatible = "qcom,usb-otg-snps";
-                       reg = <0x78d9000 0x400>;
+                       reg = <0x78d9000 0x200>,
+                             <0x78d9200 0x200>;
                        interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
-
-                       qcom,vdd-levels = <500000 1000000 1320000>;
-                       qcom,phy-init-sequence = <0x44 0x6B 0x24 0x13>;
-                       dr_mode = "peripheral";
-                       qcom,otg-control = <2>; // PMIC
-                       qcom,manual-pullup;
-
                        clocks = <&gcc GCC_USB_HS_AHB_CLK>,
-                                <&gcc GCC_USB_HS_SYSTEM_CLK>,
-                                <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
-                       clock-names = "iface", "core", "sleep";
-
-                       resets = <&gcc GCC_USB2A_PHY_BCR>,
-                                <&gcc GCC_USB_HS_BCR>;
-                       reset-names = "phy", "link";
+                                <&gcc GCC_USB_HS_SYSTEM_CLK>;
+                       clock-names = "iface", "core";
+                       assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
+                       assigned-clock-rates = <80000000>;
+                       resets = <&gcc GCC_USB_HS_BCR>;
+                       reset-names = "core";
+                       phy_type = "ulpi";
+                       dr_mode = "otg";
+                       ahb-burst-config = <0>;
+                       phy-names = "usb-phy";
+                       phys = <&usb_hs_phy>;
                        status = "disabled";
+                       #reset-cells = <1>;
+
+                       ulpi {
+                               usb_hs_phy: phy {
+                                       compatible = "qcom,usb-hs-phy-msm8916",
+                                                    "qcom,usb-hs-phy";
+                                       #phy-cells = <0>;
+                                       clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
+                                       clock-names = "ref", "sleep";
+                                       resets = <&gcc GCC_USB2A_PHY_BCR>, <&otg 0>;
+                                       reset-names = "phy", "por";
+                                       qcom,init-seq = /bits/ 8 <0x0 0x44
+                                               0x1 0x6b 0x2 0x24 0x3 0x13>;
+                               };
+                       };
                };
 
                intc: interrupt-controller@b000000 {