usb: ehci-s5p: skip phy setup for Exynos5440 based platforms
authorThomas Abraham <thomas.ab@samsung.com>
Mon, 27 May 2013 09:42:12 +0000 (18:42 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 May 2013 12:34:29 +0000 (21:34 +0900)
Exynos5440 does not require any explict USB phy configuration. So skip
the USB phy configuration for Exynos5440 based platforms.

Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
Ackked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/ehci-s5p.c

index 379037f51a2fc41b7e7aaaf112a759ce70615ac5..7cc26e621aa7c509da43e3712c9f0febc9fbfcdd 100644 (file)
@@ -50,6 +50,8 @@ struct s5p_ehci_hcd {
        struct s5p_ehci_platdata *pdata;
 };
 
+static struct s5p_ehci_platdata empty_platdata;
+
 #define to_s5p_ehci(hcd)      (struct s5p_ehci_hcd *)(hcd_to_ehci(hcd)->priv)
 
 static void s5p_setup_vbus_gpio(struct platform_device *pdev)
@@ -101,6 +103,13 @@ static int s5p_ehci_probe(struct platform_device *pdev)
                return -ENOMEM;
        }
        s5p_ehci = to_s5p_ehci(hcd);
+
+       if (of_device_is_compatible(pdev->dev.of_node,
+                                       "samsung,exynos5440-ehci")) {
+               s5p_ehci->pdata = &empty_platdata;
+               goto skip_phy;
+       }
+
        phy = devm_usb_get_phy(&pdev->dev, USB_PHY_TYPE_USB2);
        if (IS_ERR(phy)) {
                /* Fallback to pdata */
@@ -116,6 +125,8 @@ static int s5p_ehci_probe(struct platform_device *pdev)
                s5p_ehci->otg = phy->otg;
        }
 
+skip_phy:
+
        s5p_ehci->clk = devm_clk_get(&pdev->dev, "usbhost");
 
        if (IS_ERR(s5p_ehci->clk)) {
@@ -277,6 +288,7 @@ static const struct dev_pm_ops s5p_ehci_pm_ops = {
 #ifdef CONFIG_OF
 static const struct of_device_id exynos_ehci_match[] = {
        { .compatible = "samsung,exynos4210-ehci" },
+       { .compatible = "samsung,exynos5440-ehci" },
        {},
 };
 MODULE_DEVICE_TABLE(of, exynos_ehci_match);