|
@@ -22,9 +22,6 @@
|
|
|
#include <linux/pci.h>
|
|
|
#include <linux/platform_device.h>
|
|
|
|
|
|
-#include <linux/usb/otg.h>
|
|
|
-#include <linux/usb/usb_phy_generic.h>
|
|
|
-
|
|
|
#include "platform_data.h"
|
|
|
|
|
|
/* FIXME define these in <linux/pci_ids.h> */
|
|
@@ -37,65 +34,8 @@
|
|
|
struct dwc3_pci {
|
|
|
struct device *dev;
|
|
|
struct platform_device *dwc3;
|
|
|
- struct platform_device *usb2_phy;
|
|
|
- struct platform_device *usb3_phy;
|
|
|
};
|
|
|
|
|
|
-static int dwc3_pci_register_phys(struct dwc3_pci *glue)
|
|
|
-{
|
|
|
- struct usb_phy_generic_platform_data pdata;
|
|
|
- struct platform_device *pdev;
|
|
|
- int ret;
|
|
|
-
|
|
|
- memset(&pdata, 0x00, sizeof(pdata));
|
|
|
-
|
|
|
- pdev = platform_device_alloc("usb_phy_generic", 0);
|
|
|
- if (!pdev)
|
|
|
- return -ENOMEM;
|
|
|
-
|
|
|
- glue->usb2_phy = pdev;
|
|
|
- pdata.type = USB_PHY_TYPE_USB2;
|
|
|
- pdata.gpio_reset = -1;
|
|
|
-
|
|
|
- ret = platform_device_add_data(glue->usb2_phy, &pdata, sizeof(pdata));
|
|
|
- if (ret)
|
|
|
- goto err1;
|
|
|
-
|
|
|
- pdev = platform_device_alloc("usb_phy_generic", 1);
|
|
|
- if (!pdev) {
|
|
|
- ret = -ENOMEM;
|
|
|
- goto err1;
|
|
|
- }
|
|
|
-
|
|
|
- glue->usb3_phy = pdev;
|
|
|
- pdata.type = USB_PHY_TYPE_USB3;
|
|
|
-
|
|
|
- ret = platform_device_add_data(glue->usb3_phy, &pdata, sizeof(pdata));
|
|
|
- if (ret)
|
|
|
- goto err2;
|
|
|
-
|
|
|
- ret = platform_device_add(glue->usb2_phy);
|
|
|
- if (ret)
|
|
|
- goto err2;
|
|
|
-
|
|
|
- ret = platform_device_add(glue->usb3_phy);
|
|
|
- if (ret)
|
|
|
- goto err3;
|
|
|
-
|
|
|
- return 0;
|
|
|
-
|
|
|
-err3:
|
|
|
- platform_device_del(glue->usb2_phy);
|
|
|
-
|
|
|
-err2:
|
|
|
- platform_device_put(glue->usb3_phy);
|
|
|
-
|
|
|
-err1:
|
|
|
- platform_device_put(glue->usb2_phy);
|
|
|
-
|
|
|
- return ret;
|
|
|
-}
|
|
|
-
|
|
|
static int dwc3_pci_probe(struct pci_dev *pci,
|
|
|
const struct pci_device_id *id)
|
|
|
{
|
|
@@ -122,12 +62,6 @@ static int dwc3_pci_probe(struct pci_dev *pci,
|
|
|
|
|
|
pci_set_master(pci);
|
|
|
|
|
|
- ret = dwc3_pci_register_phys(glue);
|
|
|
- if (ret) {
|
|
|
- dev_err(dev, "couldn't register PHYs\n");
|
|
|
- return ret;
|
|
|
- }
|
|
|
-
|
|
|
dwc3 = platform_device_alloc("dwc3", PLATFORM_DEVID_AUTO);
|
|
|
if (!dwc3) {
|
|
|
dev_err(dev, "couldn't allocate dwc3 device\n");
|
|
@@ -207,8 +141,6 @@ static void dwc3_pci_remove(struct pci_dev *pci)
|
|
|
struct dwc3_pci *glue = pci_get_drvdata(pci);
|
|
|
|
|
|
platform_device_unregister(glue->dwc3);
|
|
|
- platform_device_unregister(glue->usb2_phy);
|
|
|
- platform_device_unregister(glue->usb3_phy);
|
|
|
}
|
|
|
|
|
|
static const struct pci_device_id dwc3_pci_id_table[] = {
|