In our device, we need to differentiate between high power ports and standard ports. I've been testing the I2C registers to ensure the main processor can access the cable attached and manage the system accordingly. However, I've noticed a discrepancy in the Power Status (0x3F) register when a USB cable is connected in Dead Battery mode versus when the TPS65981 is already powered on and mode is "APP". For example, when I connect the device to a PC, the register readings return the following information:
Power Status 0x3F | Dead Battery | In App Mode |
PowerConnection | Connected | Connected |
SourceSink | Sink | Sink |
Type-C Current | USB DEF | 1.5A |
BC1.2 Detect | Enabled | Enabled |
BC1.2 Status | SDP | SDP |
The value for Type-C current is inconsistent in detection for the same connection to the PC. This happens for all modes relying on BC1.2 detection whether its a SDP or a DCP. (I don't have a CDP port to test this case).
Could you please explain the discrepancy and how to fix this.
Also, there was a bug in the python script "register_definitions.py" At line 1369, the definitions for BC12Status_list are wrong
BC12Status_list = ['SDP', 'Res', 'CCP', 'DDP']
I fixed my script to read
BC12Status_list = ['SDP', 'Res', 'CDP', 'DCP']