[U-Boot] [PATCH v2] usb:ci_udc: Remove ULPI setting for i.MX OTG controller

All the i.MX6, i.MX23 and i.MX28 OTG controllers only support UTMI interface. Set to ULPI is not correct, even the controller will reject this setting in PORTSC register.
Signed-off-by: Ye.Li B37916@freescale.com --- Changes since v1: - Add error handling for udc probe
drivers/usb/gadget/ci_udc.c | 14 +++----------- 1 files changed, 3 insertions(+), 11 deletions(-)
diff --git a/drivers/usb/gadget/ci_udc.c b/drivers/usb/gadget/ci_udc.c index 1ba5054..d93cba5 100644 --- a/drivers/usb/gadget/ci_udc.c +++ b/drivers/usb/gadget/ci_udc.c @@ -1018,18 +1018,10 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver) return ret;
ret = ci_udc_probe(); -#if defined(CONFIG_USB_EHCI_MX6) || defined(CONFIG_USB_EHCI_MXS) - /* - * FIXME: usb_lowlevel_init()->ehci_hcd_init() should be doing all - * HW-specific initialization, e.g. ULPI-vs-UTMI PHY selection - */ - if (!ret) { - struct ci_udc *udc = (struct ci_udc *)controller.ctrl->hcor; - - /* select ULPI phy */ - writel(PTS(PTS_ENABLE) | PFSC, &udc->portsc); + if (ret) { + DBG("udc probe failed, returned %d\n", ret); + return ret; } -#endif
ret = driver->bind(&controller.gadget); if (ret) {

On 11/09/2015 02:03 AM, Ye.Li wrote:
All the i.MX6, i.MX23 and i.MX28 OTG controllers only support UTMI interface. Set to ULPI is not correct, even the controller will reject this setting in PORTSC register.
diff --git a/drivers/usb/gadget/ci_udc.c b/drivers/usb/gadget/ci_udc.c
@@ -1018,18 +1018,10 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver) return ret;
ret = ci_udc_probe();
...
- if (ret) {
DBG("udc probe failed, returned %d\n", ret);
}return ret;
The indentation of the "if" line is incorrect.

On Monday, November 09, 2015 at 04:16:37 PM, Stephen Warren wrote:
On 11/09/2015 02:03 AM, Ye.Li wrote:
All the i.MX6, i.MX23 and i.MX28 OTG controllers only support UTMI interface. Set to ULPI is not correct, even the controller will reject this setting in PORTSC register.
diff --git a/drivers/usb/gadget/ci_udc.c b/drivers/usb/gadget/ci_udc.c
@@ -1018,18 +1018,10 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
return ret;
ret = ci_udc_probe();
...
if (ret) {
DBG("udc probe failed, returned %d\n", ret);
return ret;
}
The indentation of the "if" line is incorrect.
I'm also not quite fond of the DBG() statement, why not change it to plain debug() ?
Best regards, Marek Vasut
participants (3)
-
Marek Vasut
-
Stephen Warren
-
Ye.Li