From: Santhapuri, Damodar <damodar.santhapuri@xxxxxx> AM33xx has two PHY of same type used by each musb controller so use phandle of phy nodes to get the phy pointer. Signed-off-by: Ajay Kumar Gupta <ajay.gupta@xxxxxx> Signed-off-by: Santhapuri, Damodar <damodar.santhapuri@xxxxxx> Signed-off-by: Ravi Babu <ravibabu@xxxxxx> --- .../devicetree/bindings/usb/am33xx-usb.txt | 2 ++ drivers/usb/musb/musb_dsps.c | 5 ++++- 2 files changed, 6 insertions(+), 1 deletions(-) diff --git a/Documentation/devicetree/bindings/usb/am33xx-usb.txt b/Documentation/devicetree/bindings/usb/am33xx-usb.txt index ca8fa56..b0caac3 100644 --- a/Documentation/devicetree/bindings/usb/am33xx-usb.txt +++ b/Documentation/devicetree/bindings/usb/am33xx-usb.txt @@ -12,3 +12,5 @@ AM33XX MUSB GLUE represents PERIPHERAL. - power : Should be "250". This signifies the controller can supply upto 500mA when operating in host mode. + - usb0-phy : phandle for usb0 NOP PHY + - usb1-phy : phandle for usb1 NOP PHY diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c index eb6bfec..992cd50 100644 --- a/drivers/usb/musb/musb_dsps.c +++ b/drivers/usb/musb/musb_dsps.c @@ -409,9 +409,11 @@ static int dsps_musb_init(struct musb *musb) { struct device *dev = musb->controller; struct platform_device *pdev = to_platform_device(dev); + struct platform_device *parent_pdev = to_platform_device(dev->parent); struct dsps_glue *glue = dev_get_drvdata(dev->parent); const struct dsps_musb_wrapper *wrp = glue->wrp; void __iomem *reg_base = musb->ctrl_base; + char name[10]; u32 rev, val; int status; @@ -419,7 +421,8 @@ static int dsps_musb_init(struct musb *musb) musb->mregs += wrp->musb_core_offset; /* Get the NOP PHY */ - musb->xceiv = usb_get_phy(USB_PHY_TYPE_USB2); + sprintf(name, "usb%d-phy", pdev->id); + musb->xceiv = devm_usb_get_phy_by_phandle(&parent_pdev->dev, name); if (IS_ERR_OR_NULL(musb->xceiv)) return -ENODEV; -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html