SLVUCR8A September   2023  – March 2024 TPS25751

 

  1.   1
  2.   Read This First
    1.     Notational Conventions
    2.     Glossary
    3.     Related Documents
    4.     Support Resources
    5.     Trademarks
  3. 1Introduction
    1. 1.1 Introduction
      1. 1.1.1 Purpose and Scope
    2. 1.2 PD Controller Host Interface Description
      1. 1.2.1 Overview
      2. 1.2.2 Register and Field Notation
    3. 1.3 Unique Address Interface
      1. 1.3.1 Unique Address Interface Protocol
  4. 2PD Controller Policy Modes
    1. 2.1 Overview
    2. 2.2 Source Policy Mode
    3. 2.3 Sink Policy Mode
  5. 3TPS25751 Registers
  6. 44CC Task Detailed Descriptions
    1. 4.1 CPU Control Tasks
      1. 4.1.1 'Gaid' - Return to Normal Operation
      2. 4.1.2 'GAID' - Cold Reset Request
    2. 4.2 PD Message Tasks
      1. 4.2.1 'SWSk' - PD PR_Swap to Sink
      2. 4.2.2 'SWSr' - PD PR_Swap to Source
      3. 4.2.3 'SWDF' - PD DR_Swap to DFP
      4. 4.2.4 'SWUF' - PD DR_Swap to UFP
      5. 4.2.5 'GSkC' - PD Get Sink Capabilities
      6. 4.2.6 'GSrC' - PD Get Source Capabilities
      7. 4.2.7 'GPPI' - PD Get Port Partner Information
      8. 4.2.8 'SSrC' - PD Send Source Capabilities
      9. 4.2.9 'MBRd' - Message Buffer Read
    3. 4.3 Patch Bundle Update Tasks
      1. 4.3.1 'PBMs' - Start Patch Burst Mode Download Sequence
      2. 4.3.2 'PBMc' - Patch Burst Mode Download Complete
      3. 4.3.3 'PBMe' - End Patch Burst Mode Download Sequence
      4. 4.3.4 'GO2P' - Go to Patch Mode
    4. 4.4 System Tasks
      1. 4.4.1 'DBfg' - Clear Dead Battery Flag
      2. 4.4.2 'I2Cr' - I2C Read Transaction
      3. 4.4.3 'I2Cw' - I2C Write Transaction
  7. 5User Reference
    1. 5.1 PD Controller Application Customization
    2. 5.2 Loading a Patch Bundle
    3. 5.3 GPIO Events
    4. 5.4 AUTO_NEGOTIATE_SINK Register
      1. 5.4.1 AUTO_NEGOTIATE_SINK Usage Example 1
      2. 5.4.2 AUTO_NEGOTIATE_SINK Usage Example 2
      3. 5.4.3 AUTO_NEGOTIATE_SINK Usage Example 3
      4. 5.4.4 AUTO_NEGOTIATE_SINK Usage Example 4
  8. 6Revision History

Loading a Patch Bundle

The patch bundle can contain Application Customization data and a Patch binary that modifies the default application firmware in the PD controller. This section will describe how the host can load the patch bundle. The host uses the I2Ct bus for all transactions related to loading the patch bundle. As noted in the flow diagram below, the I2C target address varies depending upon which mode the PD controller is in. The Patch Burst Mode allows the host to push the Patch Bundle to multiple PD controllers simultaneously.

The following flow diagram illustrates the normal successful patch loading process. Other error handling steps can be necessary depending upon the nature of the errors encountered for a particular system. The EC can reset and restart the patch process by issuing a 'PBMe' 4CC Task.

The following table summarizes the target addresses in the different modes of operation.

Table 5-1 Use of Target Addresses During Different Modes of Operation
MODE Register Read-Back Value I2Ct
Target Address 1
'BOOT' As configured by ADCINx pins. This is the "Fundamental" I2C target address. BOOT indicates that the PD controller is in the boot stage due to a bad firmware image or incorrect ADCINx settings. APP indicates that the firmware has successfully loaded and is in normal operation. PTCH indicates that the PD controller is waiting for a patch or is in the patch process using the PBMx commands.
'PTCH'(1)
'APP '(2)
A successful 'PBMs' Task puts the PD controller into the 'PTCH' mode.
A successful 'PBMc' Task puts the PD controller into the 'APP ' mode.
GUID-20230918-SS0I-CVVK-QTL3-8BZDQRRR12NK-low.svg Figure 5-1 Flow for Pushing a Patch Bundle Over the I2Ct Bus to Multiple PD Controllers at the Same Time

While the host is writing the Patch Bundle burst data, the I2C protocol in the following figure must be followed. The host can send the entire Patch Bundle in a single I2C transaction, or it can break it up into multiple transactions. The PD controller increments the pointer into its patch memory space with each byte received on the Patch Target address that was configured by DATA1.TargetAddress as part of the 'PBMs' 4CC Task. The EC can re-issue a 'PBMs' 4CC Task or it can issue a 'PBMe' 4CC Task in order to reset the pointer.

GUID-20230904-SS0I-MLTW-6KRH-9MDFFDCNSLML-low.svg Figure 5-2 Protocol of Patch Bundle Burst Data Assuming it is Broken Into Two Transactions