mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-20 17:44:33 +08:00
usb: gadget: tegra-xudc: Use phy_set_mode() to set/unset device mode
When device mode is set/unset, VBUS override activity is done via exported functions from padctl driver. Use phy_set_mode() instead. Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com> Acked-by: Felipe Balbi <balbi@kernel.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
b77f2ffe76
commit
b9c9fd4a36
@ -612,7 +612,7 @@ static void tegra_xudc_device_mode_on(struct tegra_xudc *xudc)
|
||||
|
||||
dev_dbg(xudc->dev, "device mode on\n");
|
||||
|
||||
tegra_xusb_padctl_set_vbus_override(xudc->padctl, true);
|
||||
phy_set_mode_ext(xudc->utmi_phy, PHY_MODE_USB_OTG, USB_ROLE_DEVICE);
|
||||
}
|
||||
|
||||
static void tegra_xudc_device_mode_off(struct tegra_xudc *xudc)
|
||||
@ -627,7 +627,7 @@ static void tegra_xudc_device_mode_off(struct tegra_xudc *xudc)
|
||||
|
||||
reinit_completion(&xudc->disconnect_complete);
|
||||
|
||||
tegra_xusb_padctl_set_vbus_override(xudc->padctl, false);
|
||||
phy_set_mode_ext(xudc->utmi_phy, PHY_MODE_USB_OTG, USB_ROLE_NONE);
|
||||
|
||||
pls = (xudc_readl(xudc, PORTSC) & PORTSC_PLS_MASK) >>
|
||||
PORTSC_PLS_SHIFT;
|
||||
@ -714,9 +714,11 @@ static void tegra_xudc_plc_reset_work(struct work_struct *work)
|
||||
|
||||
if (pls == PORTSC_PLS_INACTIVE) {
|
||||
dev_info(xudc->dev, "PLS = Inactive. Toggle VBUS\n");
|
||||
tegra_xusb_padctl_set_vbus_override(xudc->padctl,
|
||||
false);
|
||||
tegra_xusb_padctl_set_vbus_override(xudc->padctl, true);
|
||||
phy_set_mode_ext(xudc->utmi_phy, PHY_MODE_USB_OTG,
|
||||
USB_ROLE_NONE);
|
||||
phy_set_mode_ext(xudc->utmi_phy, PHY_MODE_USB_OTG,
|
||||
USB_ROLE_DEVICE);
|
||||
|
||||
xudc->wait_csc = false;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user