diff options
author | Vivek Gautam <gautam.vivek@samsung.com> | 2012-11-03 18:00:27 +0530 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2012-11-06 13:44:15 +0200 |
commit | accefdd4b234f029a530928ee930b9dcac88fe84 (patch) | |
tree | bde0b8305905a3a99338b94f796f7ac8519a45b7 /drivers/usb/dwc3/dwc3-exynos.c | |
parent | 124dafde8f8174caf5cef1c3eaba001657d66f4f (diff) | |
download | linux-accefdd4b234f029a530928ee930b9dcac88fe84.tar.gz linux-accefdd4b234f029a530928ee930b9dcac88fe84.tar.bz2 linux-accefdd4b234f029a530928ee930b9dcac88fe84.zip |
usb: dwc3: exynos: add support for device tree
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>
Diffstat (limited to 'drivers/usb/dwc3/dwc3-exynos.c')
-rw-r--r-- | drivers/usb/dwc3/dwc3-exynos.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/usb/dwc3/dwc3-exynos.c b/drivers/usb/dwc3/dwc3-exynos.c index 586f1051b059..6471d786b3cf 100644 --- a/drivers/usb/dwc3/dwc3-exynos.c +++ b/drivers/usb/dwc3/dwc3-exynos.c @@ -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 @@ err1: 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), }, }; |