I have a custom carrier board which is very similar to P3509 carrier board with very minimal changes.
I have a USB3.2 USB hub from TI TUSB8044A used in the carrier board.
In the Jetpack 6.2 , i dont have to make any changes to the device tree as, the default linux drivers are able to enumerate and use this USB hub chip.
However I have a problem here. The USB hub gets powered on or enumerated by the Orin kernel only if any usb device is connected to the usb port at the boot time/power on time. If no usb device is connected, the USB hub does not get enumerated in the kernel and hotplugging after boot is not working.
I have a GPIO12 which is soc_gpio39_pn1 which is pin 218 on the orin module connected to the TUSB8044A as reset pin connection GRST pin 50.
Now please help me out in changing the device tree settings of Jtepack 6.2 to control this GPIO pin to configure a reset timing of the USB hub chip during power on / booting of the Orin.
The below attached is the dmesg log and lsusb -v -t log when the USB hub gets enumerated( only when a usb device is connected at boot)
What “port” is this one? USB device connected on the usb port on the hub? or some other port?
I have a GPIO12 which is soc_gpio39_pn1 which is pin 218 on the orin module connected to the TUSB8044A as reset pin connection GRST pin 50.
Now please help me out in changing the device tree settings of Jtepack 6.2 to control this GPIO pin to configure a reset timing of the USB hub chip during power on / booting of the Orin.
Are you talking about using soc_gpio39_pn1 from the Orin SOM to control the hub?
If so, have you configured this GPIO to the vbus-supply of this usb2-x in the device tree?
Yes I am talking about using the soc_gpio_pn1 from the orin som to control the USB 3.2 HUB.
No I have not configured the GPIO to the vbus_supply. I do not know how and where to do it for this USB 3.2 Hub . so please help me out.
I need to use the gpio to make an active reset of the USB hub chip as mentioned by the datasheet ” This active reset shall meet the 3 ms power-up delay counting from both power supplies stable to de-assertion of GRSTz”
I referred this document above earlier too and it did not make any sense to my particular use case.
Please help me out by telling me where to add this gpio configuration in the kernel where the gpio pin is set to low for 10 micro seconds and then drive it high during the boot time,
I can directly configure the soc_gpio_pn1 in the tegra234-mb1-pinmux file as it is just one change.
i also need info on how to add some code to the device tree where it drives the gpio during boot time to reset the usb Hub chip
I do not know the specific changes you need. If you want to edit an existing device tree, then the dtc tool will do the job (if you don’t have this, then “sudo apt-get install device-tree-compiler”). An example, assuming the device tree is named “original.dtb”, would go something like this:
dtc -I dtb -O dts -o extracted.dts original.dtb
# Edit extracted.dts; then put it in a new file name without
# overwriting the old one unless you are confident:
dtc -I dts -O dtb -o original-edited.dtb extracted.dts
# Then perhaps add an extlinux.conf new boot entry to try this
# on with FDT edited to name the original-edited.dtb, or just replace
# original.dtb.
I do not know the details of the specific edits you would need.
There is no requirement of regulators as my design has complete isolation of power between the orin and the usb hub. the only connections are usb signals and reset pin soc_gpio_pn1. i just need to be able to toggle the gpio to high at boot and also be able drive it after boot if required.
so i just need a solution to drive the gpio