Hi NV SUPPORT TEAM
Follow up Thor design guide and P4071 Schematic, The USB RCM circuit used TYPEC with Cypress PD controller (I2C) take host/device mode switch.
In our custome board we only used CC controller for Type C connector.
My question:
Do we must used PD Controller for OTG (HOST/DEVICE) for RCM Type C circuit?
If we dont used PD controller and only used CC controller, Do we must used ID / VBUS Detect signal to THOR/ORIN for port switch ?
A USB connector class represents a physical USB connector. When it is attached to the MUX and USB interface controllers, it should be a child of a USB interface controller or a separate node. Generally, port switching between the roles of an OTG port is controlled by the host driver (xHCI) and device driver (xUDC). You can determine the role by the states of the ID pin and the VBUS_DETECT pin.
It is not a hard requirement to use the PD controller from the Jetson Thor Dev Kit carrier board (reference design). But NVIDIA does not have a reference design for any other implementation so you would have to ensure the USB-C port still follows the USB spec.
ID and VBUS detect are part of the USB Type C spec so not including them would violate spec.
Becasue only micro USB connector only have ID pin.
Type C USB connector dont have ID pin, So we still need create our circuit ,
Use one GPIO IN as ID function and GPIO IN as VBUS_DETECT to implement OTG function.
Is it correct?
One more qurey :
IF the RCM(flash) Type C USB connector pin we setting the USB roles as “HOST ONLY”.
Because recovery mode the ORIN/THOR working in device mode.
So from your suggestion if we must setting RCM(flash) USB ports to “OTG”
You could make a micro USB port as flash port . No need to be a type C port.
But your design for OTG is wrong.
If you want a device mode only design, then you could abort the ID pin. But now you abort the vbus_DET, so even device mode won’t switch correctly.
Flash process is like this
Recovery mode. → this one is hardware to trigger. Actually we don’t care how your design looks like in this stage.
Initrd flash → this one starts to have Linux kernel joined. We need OTG to support here.
Thus, the must have OTG is because of (2) but not (1).
When we setting OTG in DTS from SW side,
HW must have ID and VBUS_DETECT to ORIN/THOR follow up below truth table to meet OTG requirement.
But we can select other gpio, the below GPIO_Q0 and M3 only for reference,
Is it correct ?
Other soultion is that we can use I2C (FUSB301TMX) to get OTG info same as your reference design :Jetson Orin NX Carrier Board - P3768.
Summaries for our communction.
OTG GPIO soultion : Used ID and VBUS_DETECT. e.g Micro USB connector case.
OTG I2C soultion: Used CC controller or PD controller I2C message. . e.g Type C connector case.
Please check if my understanding in correct ? Thanks
One more qurey:
If my custom board only have USB TYPE A connector, as you know TYPE A dont have ID pin
and also dont hace CC pin.
Any soution to used OTG for USB TYPE A connector from your suggestion. Thanks.