Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 26250d54 authored by Michael Trimarchi's avatar Michael Trimarchi Committed by Greg Kroah-Hartman
Browse files

usb: chipidea: usbmisc: evdo can be set e/o reset



evdo bit can be set or reset. We can not trust evdo bit
status after bootloader stage

Signed-off-by: default avatarMichael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: default avatarPeter Chen <peter.chen@nxp.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9618d093
Loading
Loading
Loading
Loading
+12 −8
Original line number Diff line number Diff line
@@ -151,14 +151,18 @@ static int usbmisc_imx25_post(struct imx_usbmisc_data *data)
	if (data->index)
		return 0;

	if (data->evdo) {
	spin_lock_irqsave(&usbmisc->lock, flags);
	reg = usbmisc->base + MX25_USB_PHY_CTRL_OFFSET;
	val = readl(reg);
		writel(val | MX25_BM_EXTERNAL_VBUS_DIVIDER, reg);

	if (data->evdo)
		val |= MX25_BM_EXTERNAL_VBUS_DIVIDER;
	else
		val &= ~MX25_BM_EXTERNAL_VBUS_DIVIDER;

	writel(val, reg);
	spin_unlock_irqrestore(&usbmisc->lock, flags);
	usleep_range(5000, 10000); /* needed to stabilize voltage */
	}

	return 0;
}