diff options
Diffstat (limited to 'drivers/usb/host/ohci-omap3.c')
| -rw-r--r-- | drivers/usb/host/ohci-omap3.c | 24 | 
1 files changed, 21 insertions, 3 deletions
diff --git a/drivers/usb/host/ohci-omap3.c b/drivers/usb/host/ohci-omap3.c index eb35d963023..ddfc31427bc 100644 --- a/drivers/usb/host/ohci-omap3.c +++ b/drivers/usb/host/ohci-omap3.c @@ -31,6 +31,8 @@  #include <linux/platform_device.h>  #include <linux/pm_runtime.h> +#include <linux/of.h> +#include <linux/dma-mapping.h>  /*-------------------------------------------------------------------------*/ @@ -112,6 +114,8 @@ static const struct hc_driver ohci_omap3_hc_driver = {  /*-------------------------------------------------------------------------*/ +static u64 omap_ohci_dma_mask = DMA_BIT_MASK(32); +  /*   * configure so an HC device and id are always provided   * always called with process context; sleeping is OK @@ -141,14 +145,13 @@ static int ohci_hcd_omap3_probe(struct platform_device *pdev)  		return -ENODEV;  	} -	irq = platform_get_irq_byname(pdev, "ohci-irq"); +	irq = platform_get_irq(pdev, 0);  	if (irq < 0) {  		dev_err(dev, "OHCI irq failed\n");  		return -ENODEV;  	} -	res = platform_get_resource_byname(pdev, -				IORESOURCE_MEM, "ohci"); +	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);  	if (!res) {  		dev_err(dev, "UHH OHCI get resource failed\n");  		return -ENOMEM; @@ -160,6 +163,13 @@ static int ohci_hcd_omap3_probe(struct platform_device *pdev)  		return -ENOMEM;  	} +	/* +	 * 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 have dma capability bindings this can go away. +	 */ +	if (!pdev->dev.dma_mask) +		pdev->dev.dma_mask = &omap_ohci_dma_mask;  	hcd = usb_create_hcd(&ohci_omap3_hc_driver, dev,  			dev_name(dev)); @@ -229,12 +239,20 @@ static void ohci_hcd_omap3_shutdown(struct platform_device *pdev)  		hcd->driver->shutdown(hcd);  } +static const struct of_device_id omap_ohci_dt_ids[] = { +	{ .compatible = "ti,ohci-omap3" }, +	{ } +}; + +MODULE_DEVICE_TABLE(of, omap_ohci_dt_ids); +  static struct platform_driver ohci_hcd_omap3_driver = {  	.probe		= ohci_hcd_omap3_probe,  	.remove		= ohci_hcd_omap3_remove,  	.shutdown	= ohci_hcd_omap3_shutdown,  	.driver		= {  		.name	= "ohci-omap3", +		.of_match_table = of_match_ptr(omap_ohci_dt_ids),  	},  };  |