TX2i custom carrier, no USB root port

I have a custom carrier board and on my board there is a USB peripheral. There is no port; the peripheral is on the board with USB data pins connected to the TX2i (USB2-0 and USB3-0). Neither the TX2i nor the peripheral need 5V power. As such, I don’t have a 5V regulator, so I don’t need to worry about 5V regulator control, VBUS detection, OC, ect. I just want the USB2/3 communication to work with the TX2i as host.

The TX2i boots, and when on the standard TX2 carrier lsusb shows a USB2 root port and USB3 root port. When I then move it to my custom carrier, it still boots but lsusb no longer shows any root ports. “dmesg | grep -i usb” shows the following kernel messages:

[    0.000000] Kernel command line: console=ttyS0,115200 androidboot.presilicon=true firmware_class.path=/etc/firmware root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2  video=tegrafb earlycon=uart8250,mmio32,0x3100000 nvdumper_reserved=0x2372e0000 gpt rootfs.slot_suffix= usbcore.old_scheme_first=1 tegraid=18.1.2.0.0 maxcpus=6 no_console_suspend boot.slot_suffix= boot.ratchetvalues=0.2031647.1 vpr_resize bl_prof_dataptr=0x10000@0x235840000 sdhci_tegra.en_boot_part_access=1 quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2
[    0.508738] usbcore: registered new interface driver usbfs
[    0.508770] usbcore: registered new interface driver hub
[    0.508798] usbcore: registered new device driver usb
[    0.564100] vdd-usb0-5v: 5000 mV
[    0.564384] vdd-usb1-5v: 5000 mV
[    0.984695] tegra-xusb-padctl 3520000.xusb_padctl: failed to setup XUSB ports: -517
[    1.128094] usbcore: registered new interface driver r8152
[    1.128124] usbcore: registered new interface driver asix
[    1.128153] usbcore: registered new interface driver ax88179_178a
[    1.128181] usbcore: registered new interface driver cdc_ether
[    1.128206] usbcore: registered new interface driver net1080
[    1.128230] usbcore: registered new interface driver cdc_subset
[    1.128255] usbcore: registered new interface driver zaurus
[    1.128287] usbcore: registered new interface driver cdc_ncm
[    1.129227] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.129268] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.131818] usbcore: registered new interface driver uas
[    1.131860] usbcore: registered new interface driver usb-storage
[    1.131928] usbcore: registered new interface driver usbserial
[    1.133470] tegra-usb-cd usb_cd: otg phy is not available yet
[    1.136044] usbcore: registered new interface driver xpad
[   21.387944] usbcore: registered new interface driver usbhid
[   21.387947] usbhid: USB HID core driver
[   21.423041] usbcore: registered new interface driver snd-usb-audio
[   21.604522] tegra-xusb-padctl 3520000.xusb_padctl: failed to setup XUSB ports: -517
[   21.607416] tegra-usb-cd usb_cd: otg phy is not available yet
[   21.610986] tegra-xusb-padctl 3520000.xusb_padctl: failed to setup XUSB ports: -517
[   21.613841] tegra-usb-cd usb_cd: otg phy is not available yet
[   21.617422] tegra-xusb-padctl 3520000.xusb_padctl: failed to setup XUSB ports: -517
[   22.489634] tegra-usb-cd usb_cd: otg phy is not available yet
[   22.494734] tegra-xusb-padctl 3520000.xusb_padctl: failed to setup XUSB ports: -517
[   24.023518] tegra-usb-cd usb_cd: otg phy is not available yet
[   24.030560] tegra-xusb-padctl 3520000.xusb_padctl: failed to setup XUSB ports: -517
[   24.038035] tegra-usb-cd usb_cd: otg phy is not available yet
[   24.043894] tegra-xusb-padctl 3520000.xusb_padctl: failed to setup XUSB ports: -517
[   24.048917] tegra-usb-cd usb_cd: otg phy is not available yet
[   24.054366] tegra-xusb-padctl 3520000.xusb_padctl: failed to setup XUSB ports: -517
[   52.300230] vdd-usb0-5v: disabling
[   52.300242] vdd-usb1-5v: disabling

I tried changing vbus-2-supply to battery_reg as suggested here but the results have not changed.

What difference between my board and the TX2 carrier is causing this behavior? What change to the DT is needed to make this work? Thanks!

It seems despite working at it for days, I made this forum post an hour too early. It turns out there are two places where vbus-2-supply must be set to battery_reg in the DT. One is in pinctrl@3520000 as mentioned in the link above. The second is xusb_padctl@3520000/ports/usb2-2. There is an identical setting there that also needs to be changed.

I have not yet gotten the peripheral recognized but my root ports are now showing up from a lsusb command. Hope this post helps someone in the future!

1 Like

If you are using rel-32 based release code, need to use xusb_padctl@3520000. pinctrl@3520000 only takes effect in rel-28.

1 Like

I see. Thank you for the clarification.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.