#include <linux/phy/phy.h>
 #include <linux/usb.h>
 #include <linux/usb/hcd.h>
-#include <linux/usb/phy.h>
 #include <linux/usb/otg.h>
 
 #include "usb.h"
        int retval;
        struct usb_device *rhdev;
 
-       if (IS_ENABLED(CONFIG_USB_PHY) && !hcd->skip_phy_initialization) {
-               struct usb_phy *phy = usb_get_phy_dev(hcd->self.sysdev, 0);
-
-               if (IS_ERR(phy)) {
-                       retval = PTR_ERR(phy);
-                       if (retval == -EPROBE_DEFER)
-                               return retval;
-               } else {
-                       retval = usb_phy_init(phy);
-                       if (retval) {
-                               usb_put_phy(phy);
-                               return retval;
-                       }
-                       hcd->usb_phy = phy;
-                       hcd->remove_phy = 1;
-               }
-       }
-
        if (!hcd->skip_phy_initialization && usb_hcd_is_primary_hcd(hcd)) {
                hcd->phy_roothub = usb_phy_roothub_init(hcd->self.sysdev);
-               if (IS_ERR(hcd->phy_roothub)) {
-                       retval = PTR_ERR(hcd->phy_roothub);
-                       goto err_phy_roothub_init;
-               }
+               if (IS_ERR(hcd->phy_roothub))
+                       return PTR_ERR(hcd->phy_roothub);
 
                retval = usb_phy_roothub_power_on(hcd->phy_roothub);
                if (retval)
        usb_phy_roothub_power_off(hcd->phy_roothub);
 err_usb_phy_roothub_power_on:
        usb_phy_roothub_exit(hcd->phy_roothub);
-err_phy_roothub_init:
-       if (hcd->remove_phy && hcd->usb_phy) {
-               usb_phy_shutdown(hcd->usb_phy);
-               usb_put_phy(hcd->usb_phy);
-               hcd->usb_phy = NULL;
-       }
+
        return retval;
 }
 EXPORT_SYMBOL_GPL(usb_add_hcd);
        usb_phy_roothub_power_off(hcd->phy_roothub);
        usb_phy_roothub_exit(hcd->phy_roothub);
 
-       if (hcd->remove_phy && hcd->usb_phy) {
-               usb_phy_shutdown(hcd->usb_phy);
-               usb_put_phy(hcd->usb_phy);
-               hcd->usb_phy = NULL;
-       }
-
        usb_put_invalidate_rhdev(hcd);
        hcd->flags = 0;
 }
 
        unsigned                rh_pollable:1;  /* may we poll the root hub? */
        unsigned                msix_enabled:1; /* driver has MSI-X enabled? */
        unsigned                msi_enabled:1;  /* driver has MSI enabled? */
-       unsigned                remove_phy:1;   /* auto-remove USB phy */
        /*
         * do not manage the PHY state in the HCD core, instead let the driver
         * handle this (for example if the PHY can only be turned on after a