usb: phy: generic: allow multiples calls to usb_phy_generic_register()
[linux-2.6-block.git] / drivers / usb / phy / phy-generic.c
index 2c49cd8f6d253adc2f1f9b36d9052683cb82778f..7594e5069ae59d2f621054ff7f6cd7331022f5a2 100644 (file)
 
 #include "phy-generic.h"
 
-static struct platform_device *pd;
-
-void usb_phy_generic_register(void)
+struct platform_device *usb_phy_generic_register(void)
 {
-       if (pd)
-               return;
-       pd = platform_device_register_simple("usb_phy_generic", -1, NULL, 0);
-       if (IS_ERR(pd)) {
-               pr_err("Unable to register generic usb transceiver\n");
-               pd = NULL;
-               return;
-       }
+       return platform_device_register_simple("usb_phy_generic",
+                       PLATFORM_DEVID_AUTO, NULL, 0);
 }
 EXPORT_SYMBOL_GPL(usb_phy_generic_register);
 
-void usb_phy_generic_unregister(void)
+void usb_phy_generic_unregister(struct platform_device *pdev)
 {
-       platform_device_unregister(pd);
-       pd = NULL;
+       platform_device_unregister(pdev);
 }
 EXPORT_SYMBOL_GPL(usb_phy_generic_unregister);