[U-Boot] [PATCH V3] usb:ci_udc: Remove ULPI setting for i.MX OTG controller
Marek Vasut
marex at denx.de
Tue Jan 5 12:40:45 CET 2016
On Thursday, December 31, 2015 at 10:34:06 AM, Li Ye-B37916 wrote:
> On 12/31/2015 5:07 PM, Marek Vasut wrote:
> > On Thursday, December 31, 2015 at 08:24:45 AM, Peng Fan wrote:
> >> From: "Ye.Li" <B37916 at freescale.com>
> >>
> >> 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 at freescale.com>
> >> Signed-off-by: Peng Fan <peng.fan at nxp.com>
> >> ---
> >>
> >> Hi Marek,
> >>
> >> In V2: https://patchwork.ozlabs.org/patch/541663/
> >> The reason still use DBG, but not change to debug, is that the driver
> >> use DBG for debugging and error handling usage.
> >> So In this patch, I still keep DBG. If you think, it better to switch
> >> to use function debug, I can write another patch to convert all the
> >> DBGs to debug for ci_udc driver.
> >>
> >> Regards,
> >> Peng.
> >>
> >> Changes since v2:
> >> - Correct code indent.
> >>
> >> Changes since v1:
> >> - Add error handling for udc probe
> >>
> >> drivers/usb/gadget/ci_udc.c | 14 +++-----------
> >> 1 file changed, 3 insertions(+), 11 deletions(-)
> >>
> >> diff --git a/drivers/usb/gadget/ci_udc.c b/drivers/usb/gadget/ci_udc.c
> >> index 1ba5054..d36bcf6 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);
> >
> > So if ci_udc_probe() doesn't fail, this code will select PTS_ENABLE and
> > PFSC in the portsc register, right ? If you remove this code, who will
> > do this configuration ? I suspect this breaks all i.MXes, no ?
>
> Selecting PTS_ENABLE and PFSC are NOT correct for i.MXes. This code wants
> to select ULPI PHY, but only UTMI PHY is supported. So we have to remove
> this code and leave the default UTMI setting.
>
> Actually when setting to ULPI, other platforms except the i.MX6UL refuse
> the settings and keep default value. So there is no problem for them. But
> on 6UL TO1.0, there is a IC bug that the PTW bit of PORTSC1 register which
> is documented as RO can change. This cause the interface setting problem
> with USB PHY. And finally we traced to this incorrect setting.
Tested on i.MX28 M28EVK board and applied, thanks.
More information about the U-Boot
mailing list