USB: ehci-s5p: Add support for device tree
This patch adds support to parse probe data for ehci driver for exynos using device tree Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org> Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com> Acked-by: Jingoo Han <jg1.han@samsung.com> Acked-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
		
							parent
							
								
									d51389306f
								
							
						
					
					
						commit
						2c026e2b36
					
				| @ -13,6 +13,7 @@ | ||||
|  */ | ||||
| 
 | ||||
| #include <linux/clk.h> | ||||
| #include <linux/of.h> | ||||
| #include <linux/platform_device.h> | ||||
| #include <plat/ehci.h> | ||||
| #include <plat/usb-phy.h> | ||||
| @ -63,6 +64,8 @@ static const struct hc_driver s5p_ehci_hc_driver = { | ||||
| 	.clear_tt_buffer_complete	= ehci_clear_tt_buffer_complete, | ||||
| }; | ||||
| 
 | ||||
| static u64 ehci_s5p_dma_mask = DMA_BIT_MASK(32); | ||||
| 
 | ||||
| static int __devinit s5p_ehci_probe(struct platform_device *pdev) | ||||
| { | ||||
| 	struct s5p_ehci_platdata *pdata; | ||||
| @ -79,6 +82,16 @@ static int __devinit s5p_ehci_probe(struct platform_device *pdev) | ||||
| 		return -EINVAL; | ||||
| 	} | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * 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 = &ehci_s5p_dma_mask; | ||||
| 	if (!pdev->dev.coherent_dma_mask) | ||||
| 		pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 
 | ||||
| 	s5p_ehci = devm_kzalloc(&pdev->dev, sizeof(struct s5p_ehci_hcd), | ||||
| 				GFP_KERNEL); | ||||
| 	if (!s5p_ehci) | ||||
| @ -233,6 +246,14 @@ static const struct dev_pm_ops s5p_ehci_pm_ops = { | ||||
| 	.resume		= s5p_ehci_resume, | ||||
| }; | ||||
| 
 | ||||
| #ifdef CONFIG_OF | ||||
| static const struct of_device_id exynos_ehci_match[] = { | ||||
| 	{ .compatible = "samsung,exynos-ehci" }, | ||||
| 	{}, | ||||
| }; | ||||
| MODULE_DEVICE_TABLE(of, exynos_ehci_match); | ||||
| #endif | ||||
| 
 | ||||
| static struct platform_driver s5p_ehci_driver = { | ||||
| 	.probe		= s5p_ehci_probe, | ||||
| 	.remove		= __devexit_p(s5p_ehci_remove), | ||||
| @ -241,6 +262,7 @@ static struct platform_driver s5p_ehci_driver = { | ||||
| 		.name	= "s5p-ehci", | ||||
| 		.owner	= THIS_MODULE, | ||||
| 		.pm	= &s5p_ehci_pm_ops, | ||||
| 		.of_match_table = of_match_ptr(exynos_ehci_match), | ||||
| 	} | ||||
| }; | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user