]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
usb: dwc3: exynos: add support for device tree
authorVivek Gautam <gautam.vivek@samsung.com>
Sat, 3 Nov 2012 12:30:27 +0000 (18:00 +0530)
committerFelipe Balbi <balbi@ti.com>
Tue, 6 Nov 2012 11:44:15 +0000 (13:44 +0200)
This patch adds support to parse probe data for
dwc3-exynos driver using device tree.

Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/dwc3/dwc3-exynos.c

index 586f1051b0598f1baa063c9973646bae529695cc..6471d786b3cfffad3401dedaab29cfa1396347e3 100644 (file)
@@ -21,6 +21,7 @@
 #include <linux/clk.h>
 #include <linux/usb/otg.h>
 #include <linux/usb/nop-usb-xceiv.h>
+#include <linux/of.h>
 
 #include "core.h"
 
@@ -87,6 +88,8 @@ static int __devinit dwc3_exynos_register_phys(struct dwc3_exynos *exynos)
        return ret;
 }
 
+static u64 dwc3_exynos_dma_mask = DMA_BIT_MASK(32);
+
 static int __devinit dwc3_exynos_probe(struct platform_device *pdev)
 {
        struct dwc3_exynos_data *pdata = pdev->dev.platform_data;
@@ -102,6 +105,14 @@ static int __devinit dwc3_exynos_probe(struct platform_device *pdev)
                goto err0;
        }
 
+       /*
+        * Right now device-tree probed devices don't get dma_mask set.
+        * Since shared usb code relies on it, set it here for now.
+        * Once we move to full device tree support this will vanish off.
+        */
+       if (!pdev->dev.dma_mask)
+               pdev->dev.dma_mask = &dwc3_exynos_dma_mask;
+
        platform_set_drvdata(pdev, exynos);
 
        ret = dwc3_exynos_register_phys(exynos);
@@ -191,11 +202,20 @@ static int __devexit dwc3_exynos_remove(struct platform_device *pdev)
        return 0;
 }
 
+#ifdef CONFIG_OF
+static const struct of_device_id exynos_dwc3_match[] = {
+       { .compatible = "samsung,exynos-dwc3" },
+       {},
+};
+MODULE_DEVICE_TABLE(of, exynos_dwc3_match);
+#endif
+
 static struct platform_driver dwc3_exynos_driver = {
        .probe          = dwc3_exynos_probe,
        .remove         = __devexit_p(dwc3_exynos_remove),
        .driver         = {
                .name   = "exynos-dwc3",
+               .of_match_table = of_match_ptr(exynos_dwc3_match),
        },
 };