On Tue, Nov 05, 2013 at 09:49:37AM +0800, Peter Chen wrote:
> It is needed by imx6 SoC serial, but not for imx23 and imx28.

s/serial/series

Should we have another MXS_PHY_XXX flag for this, so that we can
explicitly check when anatop must be there?

Shawn

> 
> Signed-off-by: Peter Chen <[email protected]>
> ---
>  drivers/usb/phy/phy-mxs-usb.c |   15 +++++++++++++++
>  1 files changed, 15 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/usb/phy/phy-mxs-usb.c b/drivers/usb/phy/phy-mxs-usb.c
> index 472fe36..8cdfbf1 100644
> --- a/drivers/usb/phy/phy-mxs-usb.c
> +++ b/drivers/usb/phy/phy-mxs-usb.c
> @@ -21,6 +21,8 @@
>  #include <linux/err.h>
>  #include <linux/io.h>
>  #include <linux/of_device.h>
> +#include <linux/regmap.h>
> +#include <linux/mfd/syscon.h>
>  
>  #define DRIVER_NAME "mxs_phy"
>  
> @@ -87,6 +89,7 @@ struct mxs_phy {
>       struct usb_phy phy;
>       struct clk *clk;
>       unsigned int flags;
> +     struct regmap *regmap_anatop;
>  };
>  
>  static int mxs_phy_hw_init(struct mxs_phy *mxs_phy)
> @@ -191,6 +194,7 @@ static int mxs_phy_probe(struct platform_device *pdev)
>       const struct of_device_id *of_id =
>                       of_match_device(mxs_phy_dt_ids, &pdev->dev);
>       const struct mxs_phy_platform_flag *platform_flag = of_id->data;
> +     struct device_node *np = pdev->dev.of_node;
>  
>       res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>       base = devm_ioremap_resource(&pdev->dev, res);
> @@ -210,6 +214,17 @@ static int mxs_phy_probe(struct platform_device *pdev)
>               return -ENOMEM;
>       }
>  
> +     /* Some SoCs don't have anatop registers */
> +     if (of_get_property(np, "fsl,anatop", NULL)) {
> +             mxs_phy->regmap_anatop = syscon_regmap_lookup_by_phandle
> +                     (np, "fsl,anatop");
> +             if (IS_ERR(mxs_phy->regmap_anatop)) {
> +                     dev_dbg(&pdev->dev,
> +                             "failed to find regmap for anatop\n");
> +                     return PTR_ERR(mxs_phy->regmap_anatop);
> +             }
> +     }
> +
>       mxs_phy->phy.io_priv            = base;
>       mxs_phy->phy.dev                = &pdev->dev;
>       mxs_phy->phy.label              = DRIVER_NAME;
> -- 
> 1.7.1
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to