[Letux-kernel] [PATCH 0/3] MIPS: CI20: USB EHCI/OHCI

H. Nikolaus Schaller hns at goldelico.com
Sat Sep 26 10:27:47 CEST 2020


> Am 26.09.2020 um 10:10 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
> 
>> 
>> Am 26.09.2020 um 08:21 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>> 
>> 
>>> Am 25.09.2020 um 22:55 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>>> 
>>> 
>>>> Am 25.09.2020 um 22:53 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>>>> 
>>>> I still get the problem with "usb usb2-port1: Cannot enable. Maybe the USB cable is bad?".
>>>> 
>>>> Some analysis shows that this code returns -EBUSY:
>>>> 
>>>> https://elixir.bootlin.com/linux/latest/source/drivers/usb/core/hub.c#L2825
>>>> 
>>>> which means the port is not enabled (portstatus == 0x101).
>>>> 
>>>> Since this is coming from some USB communication message
>>>> (https://elixir.bootlin.com/linux/latest/source/drivers/usb/core/hub.c#L566),
>>>> I think it is not related to our drivers.
>>>> 
>>>> Could it be that the EHCI/OHCI do not have the clock running? This could
>>>> IMHO result in no response or the module not being enabled.
>>> 
>>> Or is it not allowed to share the phy between ehci and ohci?
>>> This is something which may be tested easily by disabling either one.
>> 
>> Ok, if I have EHCI only, the message is gone. But EHCI alone doesn't show a connected device.
>> If I have OHCI only, the message is back.
> 
> I have found something by comparing jz4740.dtsi. This also has
> 
> 		assigned-clocks = <&cgu JZ4740_CLK_UHC>;
> 		assigned-clock-rates = <48000000>;
> 
> Unfortunately adding this (with JZ4780_CLK_UHC) makes no difference:
> 
> root at letux:~# dmesg|fgrep 'usb usb1-port1'
> [   11.115855] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
> [   12.666946] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
> [   12.719847] usb usb1-port1: attempt power cycle
> [   14.883641] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
> [   17.270381] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
> [   17.334813] usb usb1-port1: unable to enumerate USB device
> root at letux:~# lsusb
> Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
> root at letux:~# 
> 
> So to summarise what we know:
> * error message comes from OHCI driver after several attempts (incl. power cycle)
> * specifically from get_port_status() [which sends some URB]
> * portstatus = 0x101 and therefore USB_PORT_STAT_ENABLE (0x0002) is false
> * does not depend on EHCI "okay" or "disabled"
> * assigned-clocks does not help
> * phy-names doesn't seem to have an influence
> * 1.1 root hub is initialized
> * power is on (I have my LCD panel/touch screen connected and would expect to see the touch device)
* hub_port_connect() is called when plugging/unplugging the device

This means that the USB-PHY is almost working and detecting plug events. Only communication to enumerate the device is failing.
This seems to be a positive effect of using the assigned-clocks. Have to cross-check. No. Doesn't matter.

Theoretically my board hardware could be broken... I can verify this by booting the NAND kernel. Yes, works there.

So we are missing just one bit in portstatus...

> 
> Ideas and suggestions are welcome :)
> 
> BR,
> Nikolaus
> 
>>> 
>>>> 
>>>> 
>>>> H. Nikolaus Schaller (3):
>>>> MIPS: DTS: JZ4780: add EHCI/OHCI
>>>> MIPS: DTS: CI20: add EHCI/OHCI vbus
>>>> MIPS: CI20: defconfig: configure for EHCI/OHCI
>>>> 
>>>> arch/mips/boot/dts/ingenic/ci20.dts    | 25 ++++++++++++++++++++
>>>> arch/mips/boot/dts/ingenic/jz4780.dtsi | 32 ++++++++++++++++++++++++++
>>>> arch/mips/configs/ci20_defconfig       |  4 ++++
>>>> 3 files changed, 61 insertions(+)
>>>> 
>>>> -- 
>>>> 2.26.2
>>>> 
>>> 
>>> _______________________________________________
>>> https://projects.goldelico.com/p/gta04-kernel/
>>> Letux-kernel mailing list
>>> Letux-kernel at openphoenux.org
>>> http://lists.goldelico.com/mailman/listinfo.cgi/letux-kernel
>> 
>> _______________________________________________
>> https://projects.goldelico.com/p/gta04-kernel/
>> Letux-kernel mailing list
>> Letux-kernel at openphoenux.org
>> http://lists.goldelico.com/mailman/listinfo.cgi/letux-kernel
> 
> _______________________________________________
> https://projects.goldelico.com/p/gta04-kernel/
> Letux-kernel mailing list
> Letux-kernel at openphoenux.org
> http://lists.goldelico.com/mailman/listinfo.cgi/letux-kernel



More information about the Letux-kernel mailing list