if (!hsotg)
                return -ENOMEM;
 
+       /* Set default UTMI width */
+       hsotg->phyif = GUSBCFG_PHYIF16;
+
        /*
         * Attempt to find a generic PHY, then look for an old style
         * USB PHY, finally fall back to pdata
                        hsotg->plat = plat;
                } else
                        hsotg->uphy = uphy;
-       } else
+       } else {
                hsotg->phy = phy;
+               /*
+                * If using the generic PHY framework, check if the PHY bus
+                * width is 8-bit and set the phyif appropriately.
+                */
+               if (phy_get_bus_width(phy) == 8)
+                       hsotg->phyif = GUSBCFG_PHYIF8;
+       }
 
        hsotg->dev = dev;
 
                goto err_supplies;
        }
 
-       /* Set default UTMI width */
-       hsotg->phyif = GUSBCFG_PHYIF16;
-
-       /*
-        * If using the generic PHY framework, check if the PHY bus
-        * width is 8-bit and set the phyif appropriately.
-        */
-       if (hsotg->phy && (phy_get_bus_width(phy) == 8))
-               hsotg->phyif = GUSBCFG_PHYIF8;
-
        /* usb phy enable */
        s3c_hsotg_phy_enable(hsotg);