| From 465d6433505f4cdaec358f16e6fc86814baeeb8d Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 27 Aug 2018 15:59:56 +0200 |
| Subject: usb: chipidea: imx: enable OTG overcurrent in case USB subsystem is |
| already started |
| |
| From: Nicolas Adell <nicolas.adell@actia.fr> |
| |
| [ Upstream commit 1dedbdf2bbb1ede8d96f35f9845ecae179dc1988 ] |
| |
| When initializing the USB subsystem before starting the kernel, |
| OTG overcurrent detection is disabled. In case the OTG polarity of |
| overcurrent is low active, the overcurrent detection is never enabled |
| again and events cannot be reported as expected. Because imx usb |
| overcurrent polarity is low active by default, only detection needs |
| to be enable in usbmisc init function. |
| |
| Signed-off-by: Nicolas Adell <nicolas.adell@actia.fr> |
| Signed-off-by: Peter Chen <peter.chen@nxp.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/usb/chipidea/usbmisc_imx.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| diff --git a/drivers/usb/chipidea/usbmisc_imx.c b/drivers/usb/chipidea/usbmisc_imx.c |
| index 34ad5bf8acd8d..424ecb1f003fe 100644 |
| --- a/drivers/usb/chipidea/usbmisc_imx.c |
| +++ b/drivers/usb/chipidea/usbmisc_imx.c |
| @@ -343,6 +343,8 @@ static int usbmisc_imx6q_init(struct imx_usbmisc_data *data) |
| } else if (data->oc_polarity == 1) { |
| /* High active */ |
| reg &= ~(MX6_BM_OVER_CUR_DIS | MX6_BM_OVER_CUR_POLARITY); |
| + } else { |
| + reg &= ~(MX6_BM_OVER_CUR_DIS); |
| } |
| writel(reg, usbmisc->base + data->index * 4); |
| |
| -- |
| 2.20.1 |
| |