usb:ci_udc: don't overwrite configuration on pullup
authorRamon Fried <ramon.fried@gmail.com>
Fri, 21 Sep 2018 10:35:56 +0000 (13:35 +0300)
committerTom Rini <trini@konsulko.com>
Sun, 30 Sep 2018 17:00:37 +0000 (13:00 -0400)
change writel to writebits32 in ci_pullup() in order
to keep phy configuration in tact.

Signed-off-by: Ramon Fried <ramon.fried@gmail.com>
drivers/usb/gadget/ci_udc.c

index 8d23fab3b79a2101884d2133476d56ac2b085865..0a84f6850d130719995f6a2a973cb51659976b22 100644 (file)
@@ -906,7 +906,8 @@ static int ci_pullup(struct usb_gadget *gadget, int is_on)
                writel(0xffffffff, &udc->epflush);
 
                /* Turn on the USB connection by enabling the pullup resistor */
-               writel(USBCMD_ITC(MICRO_8FRAME) | USBCMD_RUN, &udc->usbcmd);
+               setbits_le32(&udc->usbcmd, USBCMD_ITC(MICRO_8FRAME) |
+                            USBCMD_RUN);
        } else {
                udc_disconnect();
        }