summaryrefslogtreecommitdiff
path: root/drivers/usb/chipidea/ci_hdrc_imx.c
diff options
context:
space:
mode:
authorLi Jun <jun.li@freescale.com>2015-07-22 13:59:50 +0800
committerNitin Garg <nitin.garg@nxp.com>2016-01-14 10:59:21 -0600
commit999482b251bcfa6b97183de2806a745b41c3db89 (patch)
tree5646b9ef0f57ed1826b336b73b307d43afe77a12 /drivers/usb/chipidea/ci_hdrc_imx.c
parentf31b9c209571f7a36dbdde6df22576a2b618b6be (diff)
MLK-11272 usb: chipidea: otg: data pulse detection work around for imx7d
i.MX7D has a silicon issue on full speed termination after A device ends a session, which causes it can not detect data pulse from B device if A device isn't in low power mode, this patch work around it by override Termsel bit to be 1 for FS mode termination. After A device detects data pulse or turns on vbus, this override will be cleared and disabled. Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit 1ec37968c892efbb1925784446a75d35e8bda228)
Diffstat (limited to 'drivers/usb/chipidea/ci_hdrc_imx.c')
-rw-r--r--drivers/usb/chipidea/ci_hdrc_imx.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c
index 362eb7d4703b..e969156382d4 100644
--- a/drivers/usb/chipidea/ci_hdrc_imx.c
+++ b/drivers/usb/chipidea/ci_hdrc_imx.c
@@ -347,6 +347,14 @@ static int ci_hdrc_imx_notify_event(struct ci_hdrc *ci, unsigned event)
return ret;
}
break;
+ case CI_HDRC_IMX_TERM_SELECT_OVERRIDE_FS:
+ if (data->usbmisc_data)
+ return imx_usbmisc_term_select_override(
+ data->usbmisc_data, true, 1);
+ case CI_HDRC_IMX_TERM_SELECT_OVERRIDE_OFF:
+ if (data->usbmisc_data)
+ return imx_usbmisc_term_select_override(
+ data->usbmisc_data, false, 0);
default:
dev_dbg(dev, "unknown event\n");
}