[PATCH v3 02/20] usb: ehci-orion: Add the optional PHY support

Andrew Lunn
2014-05-06T13:33:41Z

On Tue, May 06, 2014 at 02:13:57AM +0200, Gregory CLEMENT wrote:
> This commit allows to use the PHY provided through the device tree. It
> will be useful for the Armada 375 SoCs. if no PHY is provided then the
> behavior of the driver is unchanged.
>
> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
> ---
> drivers/usb/host/ehci-orion.c | 25 +++++++++++++++++++++++--
> 1 file changed, 23 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/host/ehci-orion.c b/drivers/usb/host/ehci-orion.c
> index d6c19c37c76b..f6d9eb2e33cd 100644
> --- a/drivers/usb/host/ehci-orion.c
> +++ b/drivers/usb/host/ehci-orion.c
> @@ -15,6 +15,7 @@
> #include <linux/clk.h>
> #include <linux/platform_data/usb-ehci-orion.h>
> #include <linux/of.h>
> +#include <linux/phy/phy.h>
> #include <linux/of_device.h>
> #include <linux/of_irq.h>
> #include <linux/usb.h>
> @@ -46,6 +47,7 @@
>
> struct orion_ehci_hcd {
> struct clk *clk;
> + struct phy *phy;
> };
>
> static const char hcd_name[] = "ehci-orion";
> @@ -224,6 +226,18 @@ static int ehci_orion_drv_probe(struct platform_device *pdev)
> if (!IS_ERR(priv->clk))
> clk_prepare_enable(priv->clk);
>
> +
> + priv->phy = devm_phy_get(&pdev->dev, "usb");
> + if (!IS_ERR(priv->phy)) {
> + err = phy_init(priv->phy);
> + if (err)
> + goto err2;
> +
> + err = phy_power_on(priv->phy);
> + if (err)
> + goto err3;
> + }

Hi Gregory

What about EPROBE_DEFERRED?

Andrew