[PATCH 2/3] usb: ehci-mx6: add IMX8MM OTG support

Marek Vasut marex at denx.de
Tue Apr 27 21:52:25 CEST 2021

On 4/27/21 9:24 PM, Patrick Wildt wrote:
> Am Tue, Apr 27, 2021 at 10:50:34AM -0700 schrieb Tim Harvey:
>> On Tue, Apr 27, 2021 at 10:44 AM Marek Vasut <marex at denx.de> wrote:
>>> On 4/27/21 7:08 PM, Tim Harvey wrote:
>>>> Add support for determining host vs peripheral mode for IMX8MM
>>>> configured as OTG.
>>>> Signed-off-by: Tim Harvey <tharvey at gateworks.com>
>>>> ---
>>>>    drivers/usb/host/ehci-mx6.c | 2 +-
>>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>> diff --git a/drivers/usb/host/ehci-mx6.c b/drivers/usb/host/ehci-mx6.c
>>>> index c2dfe49012..d055d2b1fe 100644
>>>> --- a/drivers/usb/host/ehci-mx6.c
>>>> +++ b/drivers/usb/host/ehci-mx6.c
>>>> @@ -523,7 +523,7 @@ static int ehci_usb_phy_mode(struct udevice *dev)
>>>>                        plat->init_type = USB_INIT_DEVICE;
>>>>                else
>>>>                        plat->init_type = USB_INIT_HOST;
>>>> -     } else if (is_mx7()) {
>>>> +     } else if (is_mx7() || is_imx8mm()) {
>>> This likely also applies to 8mq/mm/mn/mp , i.e. all of them.
>> Agreed. Perhaps Adam, Frieder, or Fabio have something to test with? I
>> only have IMX8M Mini at the moment.
> No, I don't think this applies to all of them, 8MM and 8MN should be
> correct.
> So from a historic point of view the first one that showed up is the
> 8MQ, which has a DesignWare xHCI controller.  There's no eHCI, so this
> driver doesn't attach and there is neither the fsl,imx27-usb nor the
> fsl,imx7d-usb compatible.  Hence not having imx8mq should be correct.
> When the i.MX8MM showed up the biggest difference obviously was the
> silicon technology, reducing temperature.  But it also replaced the
> DesignWare xHCI with ... what was it, the cadence OTG controller?


> This is basically a carbon copy of the fsl,imx7d-usb (which has the
> i.MX6 as heritage).  Hence imx8mm is correct here.

Not quite, the mx8mm/mn variant is a bit more complex due to the extra 
power domain stuff. And the PHY/MISC bits changed from mx7 too.

> Then the i.MX8MP showed up, which is builds on that, but it finally
> gets the DesignWare xHCI back.  So in that regard it's more a better
> version of i.MX8MQ.  The fsl,imx7d-usb compatible is not part of the
> dts, hence not having imx8mp should be correct.
> The i.MX8MN is new to me, but by grepping you can see that the MN also
> has the fsl,imx7d-usb compatible.

Seems there is always some sort of overlap between the Ms in terms of 
IPs that are reused.

> Hence I think only 8MM and 8MN should be added, not 8MQ or 8MP.

I agree, 8MP also only lists xhci (likely dwc3), like original M(Q).
MN should work, I use these patches on a board with it, in host mode only.

More information about the U-Boot mailing list