Re: Aw: Re: [PATCH 0/2] Add MUSB for MT7623
From: Sungbo Eo <hidden>
Date: 2021-08-05 01:34:59
Also in:
linux-arm-kernel, linux-devicetree, linux-mediatek, lkml
On 2021-08-04 17:11, Frank Wunderlich wrote:
quoted
Gesendet: Mittwoch, 04. August 2021 um 02:14 Uhr Von: "Sungbo Eo" [off-list ref]quoted
quoted
thanks for working on it. do both otg-roles (host/client) work on your device?Yes, I tested it with host mode and device mode. I also tried manual role-switch via sysfs and it worked with some prior setup. Note that my device has a USB Type-A connector and not micro B, so I can't help with id pin stuff...quoted
quoted
but usb-stick is not powered (led of the stick is off) and of course i see no mass-storage device.I observed the same symptom (but different error log). [ 2.722253] musb-hdrc musb-hdrc.1.auto: VBUS_ERROR in a_idle (80, <SessEnd), retry #0, port1 00000104 In my case adding `regulator-always-on;` in the regulator node solved the problem temporarily. But after that I switched to relying on pinctrl.i've found out that usb-stick is powered if i first connect otg-cable and then the stick to the cable...regulator always on does not change anything for me (only supporess "disabling vusb" message on boot). traceback on poweroff is still there.
I tried to reproduce your usb-conn-gpio message on my machine but I failed. Probably because my USB port does not have ID pin... Currently OpenWrt does not enable CONFIG_POWER_RESET_MT6323 so I was not aware of the poweroff error. After I enabled it I got the same error and I could not resolve it... I'd better disable it for now.
role switch happen on inserting stick into cable, not before (insert cable into r2) as i expected. need to figure out which CONFIG options i need to get USB-Stick as mass storage working.
Do you mean that vbus turns on but your usb stick is not detected? Does that change if you use `dr_mode = "host"`?
i wonder why it works on your board without the vusb/connector subnodes
Do you mean vbus subnode in musb or vusb subnode in pmic? I've never used vusb node, it did not affect me in any way. When I used usb_vbus regulator node to enable vbus line, it did not turn on the line unless I added `regulator-always-on`... It seems the connector node is not really required for me.
quoted
+&pio { + musb_pins: musb { + pins-musb { + pinmux = <MT7623_PIN_237_EXT_SDIO2_FUNC_DRV_VBUS>; + }; + }; +};imho it's the same gpio used for regulator, right? whats the difference? i tried this instead of the regulator-node => not powered (cable first, then stick).
I don't really know how it does work, but for me it does turn on vbus in host mode and turn it off in device mode. I imagined DRV_VBUS setup will make the musb controller itself (and not kernel) control the line as needed, but it's just my guess.
quoted
+&usb3 { + pinctrl-names = "default"; + pinctrl-0 = <&musb_pins>; + status = "okay"; + + dr_mode = "host"; + + connector { + compatible = "usb-a-connector"; + }; +}; root@OpenWrt:~# lsusb -t /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=musb-hdrc/1p, 480M |__ Port 1: Dev 2, If 0, Class=, Driver=usb-storage, 480M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-mtk/1p, 5000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-mtk/1p, 480M