On 04/01/2023 09:13, Anand Moon wrote:
Hi Martin,
On Wed, 28 Dec 2022 at 20:14, Anand Moon <linux.amoon@xxxxxxxxx> wrote:
Hi Martin,
On Wed, 28 Dec 2022 at 18:21, Martin Blumenstingl
<martin.blumenstingl@xxxxxxxxxxxxxx> wrote:
Hi Anand,
Thanks for your review comments.
thank you for working on this topic!
On Wed, Dec 28, 2022 at 11:05 AM Anand Moon <linux.amoon@xxxxxxxxx> wrote:
[...]
+ usb {
+ dr_mode = "host";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ hub@1 {
+ /* Genesys Logic GL852G-OHG usb hub */
+ compatible = "genesys,usb5e3,610";
+ reg = <1>;
+ vdd-supply = <&usb_otg_pwr>;
+ reset-gpio = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>;
+ };
+ };
My understanding is that the hub@1 node should be part of the
corresponding USB controller node, not a new node.
In this case hub@1 should go into the existing &usb1 node. That way we
describe the way the hardware is set up (meaning: hub@1 is connected
to &usb1).
Ok, I will move this code under &usb0 and &usb1 nodes.
onboard_usb_hub module just assists in usb hub reset.
so these changes are meant to replace the gpio-hog.
$ dmesg | grep onboard
[ 5.405558] usbcore: registered new device driver onboard-usb-hub
[ 6.383428] onboard-usb-hub 1-1: reset high-speed USB device number
2 using dwc2
Here is the boot log of the odroid c2 [0] https://pastebin.com/PFy5waPb
Moving the usb hub into usb subnode usb0 or usb1 does not work
on Odroid n2 and c4, we have a combo phys of usb 2.0 and usb 3.0
so the onboard usb hub reset does not get initialized until both the PHY
and USB nodes are brought up by the drivers.
Fine, then add a comment before the usb node explaining that.
Thanks,
Neil
# On Odroid n2 has a combo hub
alarm@odroid-n2:~$ lsusb -tv
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
ID 1d6b:0003 Linux Foundation 3.0 root hub
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
ID 05e3:0620 Genesys Logic, Inc. GL3523 Hub
|__ Port 1: Dev 5, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
ID 174c:5106 ASMedia Technology Inc. ASM1051 SATA 3Gb/s bridge
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/2p, 480M
ID 1d6b:0002 Linux Foundation 2.0 root hub
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
ID 05e3:0610 Genesys Logic, Inc. Hub
|__ Port 2: Dev 4, If 0, Class=Vendor Specific Class,
Driver=ax88179_178a, 480M
ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
# Odroid C4 also has a combo hub
alarm@odroid-c4:~$ lsusb -tv
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
ID 1d6b:0003 Linux Foundation 3.0 root hub
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
ID 2109:0817 VIA Labs, Inc.
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/2p, 480M
ID 1d6b:0002 Linux Foundation 2.0 root hub
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
ID 2109:2817 VIA Labs, Inc.
So I will continue to work with this usb hub node to do a proper reset
of the USB hub.
In case hub@1 is not detected within &usb1 then you maym need something
like [0] (not tested for your use-case).
If that helps: feel free to include that patch in your series.
Thanks, will check if this is needed in this case. As of now it just
reinitializes the hub.
Best regards,
Martin
[0] https://github.com/xdarklight/linux/commit/d8b96e5bc9c20ab2585194e0e59580c3b062c431
Thanks
-Anand
Thanks
-Anand