summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamon Fried <ramon.fried@gmail.com>2018-09-21 13:35:52 +0300
committerTom Rini <trini@konsulko.com>2018-09-30 13:00:36 -0400
commit816495299d1de613feea906389bf88c0faf29ebe (patch)
tree40fdff47ea24f734ad7b116aa9ba2e9b04ed6838
parent0683b27ae30fb00a6c613aec40a78935545c600b (diff)
downloadu-boot-816495299d1de613feea906389bf88c0faf29ebe.tar.gz
usb:ci_udc: Introduce init_after_reset phy function
MSM variant of Chipidea must reinitalize the phy after controller reset. Introduce ci_init_after_reset() weak function that can be used to achieve the above init. Signed-off-by: Ramon Fried <ramon.fried@gmail.com>
-rw-r--r--drivers/usb/gadget/ci_udc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/usb/gadget/ci_udc.c b/drivers/usb/gadget/ci_udc.c
index 2b9dbf06b9..8d23fab3b7 100644
--- a/drivers/usb/gadget/ci_udc.c
+++ b/drivers/usb/gadget/ci_udc.c
@@ -104,6 +104,10 @@ static struct usb_ep_ops ci_ep_ops = {
.free_request = ci_ep_free_request,
};
+__weak void ci_init_after_reset(struct ehci_ctrl *ctrl)
+{
+}
+
/* Init values for USB endpoints. */
static const struct usb_ep ci_ep_init[5] = {
[0] = { /* EP 0 */
@@ -887,6 +891,8 @@ static int ci_pullup(struct usb_gadget *gadget, int is_on)
writel(USBCMD_ITC(MICRO_8FRAME) | USBCMD_RST, &udc->usbcmd);
udelay(200);
+ ci_init_after_reset(controller.ctrl);
+
writel((unsigned long)controller.epts, &udc->epinitaddr);
/* select DEVICE mode */