SLVUCR7 September 2024 TPS26750
In general, writing to AUTO_NEGOTIATE_SINK register while a sink contract is in place will not cause an automatic renegotiation, changes will take effect the next time a contract is negotiated. The GSrC command forces a re-evaluation of this register and a new Request message will be issued if appropriate.
However, if a Sink PPS Explicit Contract is already in place there are some fields that do cause the PD controller to automatically reevaluate the register and send a new Request message if appropriate:
PPSOperatingCurrent
If PPSEnableSinkMode is changed while a Sink PPS Explicit Contract is not already in place the PD controller also automatically re-evaluates the register and sends a new Request message if appropriate.
If the first four bytes of this register are written as zero, then the PD controller will always request a 5V Fixed Suppy contract at 100 mA ; unless PPSEnableSinkMode is asserted in which case an APDO can be selected.
In order to implement Sink PPS features in this register, the host shall provide an APDO in the TX_SINK_CAPS register. If the PD controller is evaluating a PPS supply type, it only uses the first APDO in the TX_SINK_CAPS register to determine when to assert the Capability Mismatch bit. Therefore, it is recommended that the host only have one APDO in the TX_SINK_CAPS register. In order to not assert the Capability Mismatch bit, the source APDO advertised by the source must meet these conditions:
RX_SOURCE_CAPS.APDO.MinVoltage <= TX_SINK_CAPS.APDO.MinVoltage
RX_SOURCE_CAPS.APDO.MaxVoltage >= TX_SINK_CAPS.APDO.MaxVoltage
RX_SOURCE_CAPS.APDO.MaxCurrent >= TX_SINK_CAPS.APDO.MaxCurrent
If the source fails any of the conditions above, a sink PPS contract is still requested if one of the source's APDO's meets these conditions:
During PPS operation, if the host sets the PPSOutputVolage field to a value outside what the source's APDO can deliver as reported in the RX_SOURCE_CAPS register, then a Fixed Supply PDO will be selected and the sink path can be automatically disabled (see AUTO_NEGOTIATE_SINK.PPSDisableSinkUponNonAPDOContract).
If PPS is enabled, then an APDO that fulfills the requirements is given highest priority.
Below is a highlevel summary of how this register drives the PDO selection when PPS is disabled or no matching APDO is found.
Parse the received PDO's in the register RX_SOURCE_CAPS. Discard any PDO whose voltage range is below ANMinVoltage or above ANMaxVoltage.
Calculate the PDO power for each received PDO (RX_SOURCE_CAPS.SourcePdoX). Rank all PDO's according to the PDO power.