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

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


> 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)

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



More information about the Letux-kernel mailing list