Commit b9c9fd4a authored by Nagarjuna Kristam's avatar Nagarjuna Kristam Committed by Thierry Reding
Browse files

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: default avatarNagarjuna Kristam <nkristam@nvidia.com>
Acked-by: default avatarFelipe Balbi <balbi@kernel.org>
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent b77f2ffe
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -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;
		}
	}