[Linux-stm32] [PATCH V4 21/22] ARM: dts: stm32: Add bindings for USB on AV96

Manivannan Sadhasivam manivannan.sadhasivam at linaro.org
Sat Apr 11 04:12:13 UTC 2020


On Fri, Apr 10, 2020 at 08:02:51PM +0200, Marek Vasut wrote:
> On 4/10/20 1:34 PM, Manivannan Sadhasivam wrote:
> > On Fri, Apr 10, 2020 at 11:16:53AM +0200, Marek Vasut wrote:
> >> On 4/10/20 11:08 AM, Manivannan Sadhasivam wrote:
> >>> Hi,
> >>
> >> Hi,
> >>
> >>> On Tue, Apr 07, 2020 at 08:37:50PM +0200, Marek Vasut wrote:
> >>>> On 4/6/20 1:08 PM, Marek Vasut wrote:
> >>>>> On 4/6/20 9:22 AM, Manivannan Sadhasivam wrote:
> >>>>>> On Wed, Apr 01, 2020 at 03:22:36PM +0200, Marek Vasut wrote:
> >>>>>>> Fill in the bindings for USB host and gadget on AV96.
> >>>>>>>
> >>>>>>> Signed-off-by: Marek Vasut <marex at denx.de>
> >>>>>>
> >>>>>> I can't get the USB B-Micro OTG port to work with this patch. Do I need to
> >>>>>> enable any configs other than PHY and USB DWC2 drivers?
> >>>>>
> >>>>> Only the DWC2 GADGET (and possibly host, for dual-role) and some gadget
> >>>>> implementation (e.g. gadget zero).
> >>>>
> >>>> I think I see what doesn't work for you.
> >>>>
> >>>> It seems the following works on next:
> >>>> power on -> plug in USB stick (or any other USB device) -> unplug ->
> >>>> plug in usb host (e.g. PC)
> >>>>
> >>>> But this does not:
> >>>> power on -> plug in usb host (e.g. PC)
> >>>>  - the PC is not detected
> >>>>
> >>>
> >>> Both doesn't work. I have the rndis gadget configured in userspace but plugging
> >>> in the micro-b cable doesn't do anything.
> >>>
> >>>> Did that ^ ever work for you before ? I suspect this is a bug in the
> >>>> DWC2 driver. The OTG operation there is known to be flaky at best.
> >>>
> >>> Not on this board. I don't recall what happended with vendor image. But I do
> >>> have another STM32MP1 based 96Board (which will be submitted soon), there I can
> >>> get OTG port working.
> >>>
> >>> But in that board a BG96 modem is connected to USB2 port on the board itself
> >>> which gets enumerated during probe.
> >>
> >> But it's not configured as OTG on this other board, right ?
> > 
> > It is configured as a OTG port. But that board has a different issue which
> > resets the board when we connect any OTG cable to act as a host. That's not
> > related to DWC2 or this issue btw.
> 
> Do I misunderstand the part where you claim there is a modem connected
> to the DWC2 ? That would mean it's in Host mode, no ?
> 

Let me make it clear. On that board, the USB connection is almost similar to
Avenger96 except that there is only one host port used and it is connected to
the BG96 modem onboard. The other OTG port is connected to micro-b connector.

There I can _only_ get the OTG port to work in device mode. I haven't figured
out what is the exact issue yet. So in the meantime, I may use

dr_mode = "peripheral"

to avoid it being used as host. But on Avenger96 board, the host ports are
working but the OTG port is neither working as host nor as device.

> > Anyway, I can't get OTG (device/host) to work on both old and new boards.
> 
> Do you have 588-200 now too ?
> 

I have both 588-100 and 588-200 now. I told you that at the time of initial
upstreaming I had only 588-100 but later Arrow sent me the new board.

> I think there is some fix in current linux-next which partly fixes the
> DWC2 role switching, so rebase this patchset on current linux-next and
> see what happens. But it's still not perfect. I also think that ST
> managed to side-step this issue by using the STUSB1600 chip, but I might
> be wrong.

Okay, I'll try for both Avenger96 and Stinger96 (yeah that's the name of the
board I'm working on right now).

Thanks,
Mani



More information about the Linux-stm32 mailing list