Because of the Thanksgiving holiday in the U.S., TI E2E™ design support forum responses may be delayed from November 25 through December 2. Thank you for your patience.

TPS65994AD: Using Questions

Part Number: TPS65994AD
Other Parts Discussed in Thread: TPS65994

Tool/software:

We have some questions related to the configuration of the USB-C controller chip, the TPS65994. We have been studying the project file provided TPS65994 data sheet, it is quite difficult to understand all the details.
 
A:
We observe a problem that, when connecting our product to another USB-C device that also has dual data roles (DRP), then it is not deterministic if product takes a host or a device role in the negotiation process. It is just random, which is a problem to the user. To improve this experience, we want to be able to communicate with the TPS65994 via its Linux driver and re-configure / override the role via software. We understand this is a normal thing to do, and expected to be supported by the driver. However, we get errors when trying to change the role via software (i.e. via I2C commands).
 
We wonder if it may require additional configuration of the TPS65994 through the TI software in order to allow for software-override for the negotiated roles?
 
We referred to the documentation from TI in the attached PDF on how to re-configure roles from Linux via I2C. But it only responds with error message when tried on our system.
 
B:
In addition, we would like to ensure that the our product takes as default the DEVICE (SINK) data role, instead of taking HOST (SOURCE) data role. Does it need changes to the EEPROM config? May it be feasible to more clearly define this in the EEPROM? We are looking into trying this out through setting registers via I2C. Not yet successful.
 
C:
Do you have general documentation for the settings of the TPS65994 ship available, to understand the detailed settings that we see inside the TI tool?
 
D:
In case we needs to change the EEPROM configuration of the TPS65994 at a later point in time, on the field. Can this be done from the SoC? I.e. re-program of EEPROM via the SoC-connected EEPROM? Or may it be a good idea to expose the EEPROM to another I2C bus also that the SoC can re-program?