Re: OMAP3/AM3517 EHCI USB Issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 23, 2014 at 3:34 PM, Michael Welling <mwelling@xxxxxxxxxxx> wrote:
> There appears to be a bug in the USB host driver for the AM3517 in the
> 3.16 kernel. When the AM3517 board boots with a USB device plugged in
> the host it detects and works fines as long as it is plugged in.
>
> The board does not detect any device that is hotplugged and the kernel
> message report nothing.
>
> The board that I am porting is using the USB3320 PHY connected to the
> USB host 1 interface. It should be noted that the same hardware worked
> fine using an old 2.6.30 kernel.
>
> The kernel has drastically changed since then and it appears that
> something broke along the way.
>
> I did notice this magical code in the old kernel:
> http://marc.info/?l=linux-usb&m=127841764930798&w=2
So I may be barking up the wrong tree on this one.

Today I discovered something that may lead to the resolution of my issue.

The hardware I am using incorporates a USB switch on-board to avoid the
having an external switch to plug in keyboards etc. If two devices are plugged
into the downstream ports they are both detected on boot. When I unplug
one of the devices and plug it back in, it is detected again.

As long as one downstream device ports is populated the device discovery works
on the other. Any clue on this?

This reminded of a note that I made on the schematic after talking to SMSC.

Set "UseExternalVbus Indicator" BIT 7 in register 0x0a.

This is a PHY register that may actually be accessible in
drivers/usb/phy/phy-ulpi.c
but it looks like I cannot access the code from device tree.

What would be the best way to go about adding support for this?

Added a few more on the CC list to see if I can get any answers.

https://lkml.org/lkml/2013/12/4/50

>
> Since then the PHY code and host driver have been seperated. I am not
> sure that the soft reset is ever being performed. I do notice that there
> are remnants of the old driver as there are multiple macro defines that
> are never used in the driver:
> #define EHCI_INSNREG05_ULPI                             (0xA4)
> #define EHCI_INSNREG05_ULPI_CONTROL_SHIFT               31
> #define EHCI_INSNREG05_ULPI_PORTSEL_SHIFT               24
> #define EHCI_INSNREG05_ULPI_OPSEL_SHIFT                 22
> #define EHCI_INSNREG05_ULPI_REGADD_SHIFT                16
> #define EHCI_INSNREG05_ULPI_EXTREGADD_SHIFT             8
> #define EHCI_INSNREG05_ULPI_WRDATA_SHIFT                0
>
> Any advice as to how to address this would be greatly appreciated.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux