This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TPS65982: Details of the behavior of Status Register(0x5f)

Part Number: TPS65982

Hi Team,

Although we discussed how to get DP role assignment before in following thread, my customer noticed that there is a bug on DPSourceSink bit. This bit doesn't work at all and they can not get DP role from this bit.

e2e.ti.com/.../639715

Please help us to clarify behavior of Status Register(0x5f) for their EC driver.
For coding EC Driver, It is necessary to understand "access timing" and "how to handle register".

1.  Appropriate Read timing to judge DP role and assignment
 In the state where nothing is connected, Data status register shows 0x00.
So When just by judging Assignment from the table below, it means DFP_D AssignmentE.
Since there is a possibility that the EC wrongly recognizes the assignment, it is necessary to confirm if  the value of these bits are updated by Alt mode communication or not, prior to read DPPinAssignment, DPSourceSink and USB3Connection bits.

DPPinAssignment USB3Connection DPSourceSink = 0 DPSourceSink = 1
00 0 DP Source Pin Assignment "E" DP Source Pin Assignment "E"
00 1 DP Source Pin Assignment "F" INVALID
01 0 DP Source Pin Assignment "C" DP Source Pin Assignment "C"
01 1 DP Source Pin Assignment "D" DP Source Pin Assignment "D"
10 0 DP Source Pin Assignment "A" DP Source Pin Assignment "A"
10 1 DP Source Pin Assignment "B" DP Source Pin Assignment "B"
11 0 INVALID INVALID
11 1 INVALID INVALID

Which timing should EC read read register? 
And What is the trigger for updating this Date status register(0x5f) internally?


They are wandering if they can use IRQ event or DPconnection bit in the Data status register to get the timing.


2. Data status behavior and its reference

Which register values do the following bits refer to?

‐ DPPinAssignment
‐ DPSourceSink (Bug exist, this information is never updated at FW Version 3.10)
‐ DPConnection
‐ USB3Connection

Please tell me in detail which bit of which register consists the values of Data Status register. it looks that these bit values are created from 0x58 DP SID Status's value but I’m not sure. Especially, my customer is requiring workaround for a bug in DPSourceSink.

In other words, which register should we refer to judge DP role instead of DPSourceSink register in Data status register(0x5f)?

Regards,

Takashi Onawa

Regards,

Takashi Onawa

  • Hi Takashi-san,

    We received your question and should be able to respond by Monday. Thank you :-)
  • Hi Aramis-san,

    Can I get any update today?
    Please let me know if you have some delay.

    Regards,
    Takashi Onawa
  • Hi Takashi,

    Sorry for the delay.

    Answers to your queries are as follows:

    1. Please check the "DPModeActive" bit in DP SID register (0x58). Once this bit is set then you can read all the other bits in data status register to get accurate data about the assignment.

    2. None of these registers are available anywhere else. We are looking onto the bug reported by you and will update you once we have any updates.

    Thanks,
    Rahul
  • Hi Rahul-san,

    >Please check the "DPModeActive" bit in DP SID register (0x58).
    >Once this bit is set then you can read all the other bits in data status register to get accurate data about the assignment.

    "DPModeActive" only shows if DP connection is active or not, right?
    So I'm understanding "DPModeActive" has a same meaning of DPConnection bit in Data Status register(0x58).
    As I mentioned above, we also need to clarify which bits should be referred to get same info against following bits.

    ‐ DPPinAssignment
    ‐ DPSourceSink (Bug exist, this information is never updated at FW Version 3.10)
    ‐ USB3Connection

    Regards,
    Takashi Onawa
  • Hi Rahul-san,

    Could you comment for the remaining our questions above?

    Regards,
    Takashi Onawa
  • Hi Rahul-san,

    Any comments?

    Regards,
    Takashi Onawa
  • Hi Team,

    Any comments?

    Regards,
    Takashi Onawa
  • Hi Team,

    Any comments?

    Regards,
    Takashi Onawa
  • Hi Takashi-san,

    DPModeActive and DPConnection bit have very similar function, but slightly different. The DPModeActive bit is set as soon as the DisplayPort alternate mode is entered. The DPConnection bit is set after the configuration message is sent and acknowledged within the alternate mode.

    So there is a very brief period in which the DPModeActive bit is set but the DPConnection bit is not yet set, but in most situations these bits will have the same value. (It is also possible that for some reason a device would enter the mode but never send a configuration message, in which case DPModeActive would be set, but DPConnection bit would never be set. This would be unlikely, however.)

    As you have said, there is some overlap between the DataStatus register (0x5F) and some other registers, primarily the DPStatus (0x58) and IntelStatus (0x59) registers. This is because the DataStatus register is defined by Intel spec for interface to Intel devices, whereas these other registers are defined by TI.

    To complete your question, here are the alternate locations where your queries can be found:
    -- DPPinAssignment
    --> Available in 0x5F but also available in DPStatus register 0x58 configuration message, bits [72:95]

    ‐ DPSourceSink (Bug exist, this information is never updated at FW Version 3.10)
    --> This can be determined by first reading if the device is UFP_U or DFP_U from the status register 0x1A, and then checking the first two bits of the DPConfig message from DPStatus register [72:73]. Has following translation:
    00b = USB only
    01b = UFP_U as DFP_D
    10b = DFP_U as DFP_D
    11b = reserved

    ‐ USB3Connection
    --> I am not aware of another register where this information is presented