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

Marek Vasut marex at denx.de
Thu Dec 31 10:07:41 CET 2015


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 ?

> +	if (ret) {
> +		DBG("udc probe failed, returned %d\n", ret);
> +		return ret;
>  	}
> -#endif
> 
>  	ret = driver->bind(&controller.gadget);
>  	if (ret) {

Best regards,
Marek Vasut


More information about the U-Boot mailing list