OSDN Git Service

usb: dwc2: Add PCI properties
authorVahram Aharonyan <vahrama@synopsys.com>
Fri, 4 Nov 2016 00:56:15 +0000 (17:56 -0700)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Fri, 18 Nov 2016 11:54:13 +0000 (13:54 +0200)
Add device parameters handling in dwc2-pci similar what is done in dwc3.

Signed-off-by: Vahram Aharonyan <vahrama@synopsys.com>
Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/dwc2/pci.c

index ae41961..b3f3b58 100644 (file)
@@ -62,6 +62,21 @@ struct dwc2_pci_glue {
        struct platform_device *phy;
 };
 
+static int dwc2_pci_quirks(struct pci_dev *pdev, struct platform_device *dwc2)
+{
+       if (pdev->vendor == PCI_VENDOR_ID_SYNOPSYS &&
+           pdev->device == PCI_PRODUCT_ID_HAPS_HSOTG) {
+               struct property_entry properties[] = {
+                       PROPERTY_ENTRY_BOOL("g-use-dma"),
+                       { },
+               };
+
+               return platform_device_add_properties(dwc2, properties);
+       }
+
+       return 0;
+}
+
 static void dwc2_pci_remove(struct pci_dev *pci)
 {
        struct dwc2_pci_glue *glue = pci_get_drvdata(pci);
@@ -122,6 +137,10 @@ static int dwc2_pci_probe(struct pci_dev *pci,
                return PTR_ERR(phy);
        }
 
+       ret = dwc2_pci_quirks(pci, dwc2);
+       if (ret)
+               goto err;
+
        ret = platform_device_add(dwc2);
        if (ret) {
                dev_err(dev, "failed to register dwc2 device\n");