summaryrefslogtreecommitdiffstats
path: root/drivers/usb/mtu3
diff options
context:
space:
mode:
authorChunfeng Yun2017-10-13 11:10:44 +0200
committerFelipe Balbi2017-10-19 09:38:12 +0200
commit6638ec515f2cce73ba996a725fe351fd643e27c8 (patch)
treeebaf1babd3624fc767a1c1eb4b36a6219e5afdb8 /drivers/usb/mtu3
parentusb: mtu3: add support for usb3.1 IP (diff)
downloadkernel-qcow2-linux-6638ec515f2cce73ba996a725fe351fd643e27c8.tar.gz
kernel-qcow2-linux-6638ec515f2cce73ba996a725fe351fd643e27c8.tar.xz
kernel-qcow2-linux-6638ec515f2cce73ba996a725fe351fd643e27c8.zip
usb: mtu3: get optional vbus for host only mode
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>
Diffstat (limited to 'drivers/usb/mtu3')
-rw-r--r--drivers/usb/mtu3/mtu3_plat.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/usb/mtu3/mtu3_plat.c b/drivers/usb/mtu3/mtu3_plat.c
index 1e473b068650..7ca81f4e78a3 100644
--- a/drivers/usb/mtu3/mtu3_plat.c
+++ b/drivers/usb/mtu3/mtu3_plat.c
@@ -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");