From d4179fa84050324620c201e217a7f86e08ef577d Mon Sep 17 00:00:00 2001 From: William Wu Date: Tue, 21 Feb 2017 17:37:58 +0800 Subject: [PATCH] usb: host: xhci-plat: get the usb3 phy for shared_hcd This patch tries to get the USB3 PHY using, and associates the XHCI shared_hcd device with it. With this patch, the USB HUB core driver can do USB PHY operations base on USB PHY framework, e.g. call usb_phy_ notify_connect() or usb_phy_notify_disconnect() to notify USB PHY driver to do soft connect or soft disconnect. Change-Id: I3b51181b840a68ae477b764013446f49dbf7ca70 Signed-off-by: William Wu --- drivers/usb/host/xhci-plat.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c index fe7de8a58ef5..0f50c1cdea5a 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -175,6 +175,15 @@ static int xhci_plat_probe(struct platform_device *pdev) if (pdata && pdata->usb3_disable_autosuspend) xhci->quirks |= XHCI_DIS_AUTOSUSPEND; + xhci->shared_hcd->usb_phy = devm_usb_get_phy(&pdev->dev, + USB_PHY_TYPE_USB3); + if (IS_ERR(xhci->shared_hcd->usb_phy)) { + ret = PTR_ERR(xhci->shared_hcd->usb_phy); + if (ret == -EPROBE_DEFER) + goto put_usb3_hcd; + xhci->shared_hcd->usb_phy = NULL; + } + hcd->usb_phy = devm_usb_get_phy_by_phandle(&pdev->dev, "usb-phy", 0); if (IS_ERR(hcd->usb_phy)) { ret = PTR_ERR(hcd->usb_phy); -- 2.34.1