]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
usb: mtu3: get optional vbus for host only mode
authorChunfeng Yun <chunfeng.yun@mediatek.com>
Fri, 13 Oct 2017 09:10:44 +0000 (17:10 +0800)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Thu, 19 Oct 2017 07:38:12 +0000 (10:38 +0300)
When dr_mode is set as USB_DR_MODE_HOST, it's better to try to
get optional vbus, this can increase flexibility, although we
can set vbus as always on for regulator or put it in host driver
to turn it on.

Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/mtu3/mtu3_plat.c

index 1e473b06865032a8ab3abf4f5efb941888afdb9a..7ca81f4e78a390bd99782c1a29ea8a0db0388bfb 100644 (file)
@@ -300,10 +300,6 @@ static int get_ssusb_rscs(struct platform_device *pdev, struct ssusb_mtk *ssusb)
        of_property_read_u32(node, "mediatek,u3p-dis-msk",
                             &ssusb->u3p_dis_msk);
 
-       if (ssusb->dr_mode != USB_DR_MODE_OTG)
-               return 0;
-
-       /* if dual-role mode is supported */
        vbus = devm_regulator_get(&pdev->dev, "vbus");
        if (IS_ERR(vbus)) {
                dev_err(dev, "failed to get vbus\n");
@@ -311,6 +307,10 @@ static int get_ssusb_rscs(struct platform_device *pdev, struct ssusb_mtk *ssusb)
        }
        otg_sx->vbus = vbus;
 
+       if (ssusb->dr_mode == USB_DR_MODE_HOST)
+               return 0;
+
+       /* if dual-role mode is supported */
        otg_sx->is_u3_drd = of_property_read_bool(node, "mediatek,usb3-drd");
        otg_sx->manual_drd_enabled =
                of_property_read_bool(node, "enable-manual-drd");