[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