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

Andrew Lunn andrew at lunn.ch
Tue May 6 06:33:41 PDT 2014


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 at 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



More information about the linux-arm-kernel mailing list