[U-Boot] [PATCH] ehci: mx7: Fix OTG ID detection

Marek Vasut marex at denx.de
Sat Jun 18 00:48:07 CEST 2016


On 06/17/2016 08:19 AM, Peng Fan wrote:
> From: Ye Li <ye.li at nxp.com>
> 
> 1. The offset for phy_status register in usbnc_regs is not correct.
> 2. We should clear the USBNC_PHYCFG2_ACAENB bit to enable the OTG ID detection,
>    not set it.  When the bit is set, the ACA Resistance Detection is enabled,
>    which disables the OTG ID detection, because the internal pull up is off.

So this is one patch which does two things? This should be split into
two patches then.

> Signed-off-by: Peng Fan <peng.fan at nxp.com>
> Signed-off-by: Ye Li <ye.li at nxp.com>
> Cc: Marek Vasut <marex at denx.de>
> Cc: Mateusz Kulikowski <mateusz.kulikowski at gmail.com>
> Cc: Stefan Agner <stefan at agner.ch>
> ---
>  drivers/usb/host/ehci-mx6.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/usb/host/ehci-mx6.c b/drivers/usb/host/ehci-mx6.c
> index bb48d0d..922ef29 100644
> --- a/drivers/usb/host/ehci-mx6.c
> +++ b/drivers/usb/host/ehci-mx6.c
> @@ -194,8 +194,9 @@ struct usbnc_regs {
>  	u32 reserve1[10];
>  	u32 phy_cfg1;
>  	u32 phy_cfg2;
> +	u32 reserve2[1];
>  	u32 phy_status;
> -	u32 reserve2[4];
> +	u32 reserve3[4];

This will also shift all the registers below by 8 bytes, is that correct ?

>  	u32 adp_cfg1;
>  	u32 adp_cfg2;
>  	u32 adp_status;
> @@ -207,8 +208,11 @@ static void usb_power_config(int index)
>  			(0x10000 * index) + USBNC_OFFSET);
>  	void __iomem *phy_cfg2 = (void __iomem *)(&usbnc->phy_cfg2);
>  
> -	/* Enable usb_otg_id detection */
> -	setbits_le32(phy_cfg2, USBNC_PHYCFG2_ACAENB);
> +	/*
> +	 * Clear the ACAENB to enable usb_otg_id detection,
> +	 * otherwise it is the ACA detection enabled.
> +	 */
> +	clrbits_le32(phy_cfg2, USBNC_PHYCFG2_ACAENB);
>  }
>  
>  int usb_phy_mode(int port)
> 


-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list