[LE11] USB otg on odroid C2

  • Hello,

    I'm giving a try to new build of le11 on my odroid c2. I was previously on le9.

    My usb dac SA9023 connected using usb otg port is not detected. It is properly detected when plugged directly in usb classic port, but i get a lot of sound 'glitch', if i remember well, that's why i moved to usb otg for this device (bandwith issue.. ?).

    This setup was working well with on LE9:

    Code
    LibreELEC:~ # uname -r
    3.14.29
    
    LibreELEC:~ # lsusb -t
    /:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
       |__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M
       |__ Port 1: Dev 2, If 1, Class=Audio, Driver=snd-usb-audio, 12M
       |__ Port 1: Dev 2, If 3, Class=Audio, Driver=snd-usb-audio, 12M
    /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
       |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M


    But device is not detected on LE11:

    Code
    odroid:~ # uname -r
    6.1.38
    
    odroid:~ # lsusb -t
    /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc2/1p, 480M
        |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        
    odroid:~ # modprobe dwc_otg
    modprobe: FATAL: Module dwc_otg not found in directory /lib/modules/6.1.38


    Do you have any info which could help me resolve this issue ?


    Thx

  • CONFIG_USB_OTG=y is set in the kernel defconfig so it's built-in not a loadable module but dr_mode is set to "host" not "otg" in the upstream C2 device-tree so you'll need to change that; either with a tweaked and recompiled device-tree or with fdtput commands executed from userspace at boot-time.

  • Thanks, it's fixed !

    Second usb port (micro usb) was just disabled in device tree. I just moved from disabled => okay, dac is now detected and seems working properly (no crackling sound like on other usb ports).

    How to:

  • If it's a simple "okay" enable I'd do that from userspace using an fdtput command that's executed by a systemd service; as updates will always overwrite the modified dtb with a clean one.