#include <linux/clk.h>
 #include <linux/usb/omap_control_usb.h>
 
-static struct omap_control_usb *control_usb;
-
-/**
- * omap_get_control_dev - returns the device pointer for this control device
- *
- * This API should be called to get the device pointer for this control
- * module device. This device pointer should be used for called other
- * exported API's in this driver.
- *
- * To be used by PHY driver and glue driver.
- */
-struct device *omap_get_control_dev(void)
-{
-       if (!control_usb)
-               return ERR_PTR(-ENODEV);
-
-       return control_usb->dev;
-}
-EXPORT_SYMBOL_GPL(omap_get_control_dev);
-
 /**
  * omap_control_usb_phy_power - power on/off the phy using control module reg
  * @dev: the control module device
 {
        struct omap_control_usb *ctrl_usb;
 
-       if (IS_ERR(dev) || control_usb->type != OMAP_CTRL_TYPE_OTGHS)
+       if (IS_ERR(dev) || !dev)
                return;
 
        ctrl_usb = dev_get_drvdata(dev);
 
+       if (!ctrl_usb) {
+               dev_err(dev, "Invalid control usb device\n");
+               return;
+       }
+
+       if (ctrl_usb->type != OMAP_CTRL_TYPE_OTGHS)
+               return;
+
        switch (mode) {
        case USB_MODE_HOST:
                omap_control_usb_host_mode(ctrl_usb);
 {
        struct resource *res;
        const struct of_device_id *of_id;
+       struct omap_control_usb *control_usb;
 
        of_id = of_match_device(of_match_ptr(omap_control_usb_id_table),
                                                                &pdev->dev);
 
 #define OMAP_CTRL_USB2_PHY_PD          BIT(28)
 
 #if IS_ENABLED(CONFIG_OMAP_CONTROL_USB)
-extern struct device *omap_get_control_dev(void);
 extern void omap_control_usb_phy_power(struct device *dev, int on);
 extern void omap_control_usb_set_mode(struct device *dev,
        enum omap_control_usb_mode mode);
 #else
-static inline struct device *omap_get_control_dev(void)
-{
-       return ERR_PTR(-ENODEV);
-}
 
 static inline void omap_control_usb_phy_power(struct device *dev, int on)
 {